2016-11-29 339 views
0

我只是第一次建立了Kaldi,并通过了tidigits的例子。然而,随着run.sh,我得到:kaldi tidigits示例中的run.sh错误,我做错了什么?

steps/make_mfcc.sh --cmd run.pl --mem 2G --nj 20 data/test exp/make_mfcc/test mfcc 

utils/validate_data_dir.sh: Successfully validated data-directory data/test 

steps/make_mfcc.sh: [info]: no segments file exists: assuming wav.scp indexed by utterance. 

run.pl: 20/20 failed, log is in exp/make_mfcc/test/make_mfcc_test.*.log 

在日志文件看,我看到的问题是:

bash: line 1: compute-mfcc-feats: command not found 

bash: line 1: copy-feats: command not found 

这似乎是一个路径问题,并寻找其他网上论坛,似乎以确认这一点。但是我不确定如何解决PATH问题。我已经记下了compute-mfcc-feats和copy-feats命令在steps文件夹中的make_mfcc.sh中调用(应该是wsj示例的符号链接)。请帮忙!

+1

从你的问题中,我了解到在日志文件中发现的问题是由'run.pl'制作的,我猜想它是一个** Perl **程序。你如何确定这个问题不是Perl相关的?请添加标签'perl'并显示** run.pl **程序的内容。从哪里启动缺少的命令'compute-mfcc-feats'和'copy-feats'? – Jdamian

回答

1

可执行程序的路径配置为KALDI_ROOT变量在Kaldi食谱中path.sh脚本里面的配方,例如,在tidigits里面它是kaldi/egs/tidigits/s5/path.sh。指定的路径是相对的,因此您必须从kaldi/egs/tidigits/s5文件夹运行命令,而不是从其他文件夹运行命令。可能有以下问题

  1. 你没有编译Kaldi和二进制不 kaldi/src目录存在/ featbin
  2. 您从kaldi移动的培训文件夹和 你没有更新的KALDI_ROOT变量path.sh
  3. 从其他文件夹运行命令run.sh,而不是从 kaldi/egs/tidigits/s5文件夹运行。

通常你只需要检查path.sh的内容并在那里指定正确的卡尔迪根。

+0

是的,似乎Kaldi没有在我的Mac上正确编译。我使用的是Xcode 8.x,并发现我需要降级clang。现在,当运行/ src/make时,出现“make [1]:*** [chain-kernels.o] Error 2”的错误,但至少它向前迈进了一步。 – kashkar