【问题描述】
使用kaldi工具包进行在线语音识别,识别麦克风输入,输出识别结果。
使用egs/voxforge/online_demo文件夹时,./run.sh --test-mode live输出portaudio failed to open the defalut stream
【解决办法】
分三步进行解决。
1.首先检查linux系统录音功能是否可用:arecord命令,如arecord -d 10 test.wav,也可以使用arecord -l查看当前的录音设备,一般是都有的
2.检查portaudio是否安装成功。可以使用tools/install_portaduio.sh安装,如果之前安装过一遍,一定要先进入tools/portaudio,然后make clean,否则没有用。有些时候一些依赖没有也会安装,但是程序不可用,可以进入tools/portaudio,然后./configure,通常情况alsa显示no,通过sudo apt-get install libasound-dev可以解决
3.检查online-wav-gmm-decode-faster是否使用第二步编译出来的库,通过情况会因为之前编译过一遍,所以即使portaudio重新编译了,online-wav-gmm-decode-faster还是没有链接到新的库,可以使用ldd online-wav-gmm-decode-faster查看。进入src/online和src/onlinebin,分别make clean ,make就完美解决
【参考】
http://blog.csdn.net/lijin6249/article/details/51838936
http://www.portaudio.com/docs/v19-doxydocs/compile_linux.html