admin管理员组

文章数量:1608599

终端的报错提示如下:

wuxie@wuxie:~/kaldi/egs/mobvoihotwords/v1$ sudo ./run.sh
./run.sh: Preparing datasets…
./run.sh: text, utt2spk and wav.scp have been generated in data/{train|dev|eval}.
stage1结束。
./run.sh: Extracting MFCC…
utils/fix_data_dir.sh: file data/eval/utt2spk is not in sorted order or not unique, sorting it
utils/fix_data_dir.sh: file data/eval/text is not in sorted order or not unique, sorting it
utils/fix_data_dir.sh: file data/eval/wav.scp is not in sorted order or not unique, sorting it
utils/fix_data_dir.sh: filtered /tmp/kaldi.sd0u/speakers from 2 to 1 lines based on filter data/eval/cmvn.scp.
utils/fix_data_dir.sh: filtered data/eval/spk2utt from 2 to 1 lines based on filter /tmp/kaldi.sd0u/speakers.
fix_data_dir.sh: no utterances remained: not proceeding further.
报错截图如下:

报错原因分析:

我在用train生成的model,来测试test文件(mobvoi_hotword_dataset_resources/p_test.json和mobvoi_hotword_dataset_resources/n_test.json)
里的语音。出现的这汇总问题。我推测大概是因为更换了p_test.json里面的语音,导致的报错。就是说,在之前测试语音时候,kaldi处理这些语音会成的相关的文件(如utt2spk等),这些文件还存在(被存放在eval文件夹里)。
在新的测试时,我把mobvoi_hotword_dataset_resources/p_test.json和mobvoi_hotword_dataset_resources/n_test.json里的语音换成了其他的语音,kaldi在处理这次语音时,需要生成新的相关文件,和之前的出现了冲突。不知道是不能覆盖还是什么原因,具体原因不详。我追踪到utils/fix_data_dir.sh,发现是这里出现了问题。
代码出错的部分截屏如下:

utils/filter_scp.pl $data/$x $tmpdir/utts > $tmpdir/utts.tmp

我发现明明是存在$data/$x$tmpdir/utts的(在第一次进入for循环的时候,他俩的值不为空),但就是无法生成$tmpdir/utts.tmp。之后每一次for循环$tmpdir/utts.tmp都为空。(具体原因我以后再研究研究,先记录一下)

代码终端输出报错提示的地方如下

[ ! -s $tmpdir/utts ] && echo "fix_data_dir.sh: no utterances remained: not proceeding further." && \
    rm $tmpdir/utts && exit 1;

报错的解决办法:

删除eval文件夹即可解决报错。亲测有效!

本文标签: 报错fixdatadirKaldishproceeding