對于較大的測試集,或者不支持batch解碼的解碼算法,我們可以使用將數(shù)據(jù)集分割成多個子集,使用shell的多進(jìn)程并行化處理。
# 1. 將數(shù)據(jù)集按照行數(shù)進(jìn)行分割
mkdir -p fbank/tmp # 分割后的數(shù)據(jù)都在這
split -l 10009 fbank/train_sp/format.data -d -a 2 fbank/tmp/format.data_
# 對format.data這個文件按照10009行為一個子集進(jìn)行分割
# 2. 將這些文件分別放在fbank/train/{00,01,02,....}下面
for x in `ls fbank/tmp`; do
{
suffix=`echo $x|awk -F'_' '{print $NF}'` # 編號
mkdir -p fbank/train/$suffix
name=`echo $x|awk -F'_' '{print $1}'` # 文件名
cp fbank/tmp/$x fbank/train/$suffix/$name
cp fbank/train_sp/utt2dur fbank/train/$suffix/
cp fbank/train_sp/global_cmvn fbank/train/$suffix
cp fbank/train_sp/text fbank/train/$suffix
}done