解决kaldi报错:fix_data_dir.sh: no utterances remained: not proceeding further.(亲测有效)

终端的报错提示如下:

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文件夹即可解决报错。亲测有效!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值