kaldi编译在线识别工具报错undefined reference to `PaUtil_GetRingBufferReadAvailable'

参考https://blog.csdn.net/u011280621/article/details/68947604

kaldi编译online识别工具的步骤:

1、Installing ALSA Development Kit
sudo apt-get install libasound-dev

2、安装portaudio

cd kaldi/tools
./install_portaudio.sh

根据输出设置LIB等参数(LD_LIBRARY_PATH等)

如果设置正确,发命令sudo  ldconfig -v,可以找到libportaudio.so

/home/boystray/kaldi/tools/extras/portaudio/install/lib:
    libportaudio.so.2 -> libportaudio.so.2.0.0

 

3、# 编译在线识别工具
cd src/
make ext

4、报错

make[1]: 进入目录“/home/boystray/kaldi/src/onlinebin”
g++ -std=c++11 -I.. -isystem /home/boystray/kaldi/tools/openfst/include -O1 -Wno-sign-compare -I../../tools/portaudio/install/include -Wall -Wno-sign-compare -Wno-unused-local-typedefs -Wno-deprecated-declarations -Winit-self -DKALDI_DOUBLEPRECISION=0 -DHAVE_EXECINFO_H=1 -DHAVE_CXXABI_H -DHAVE_ATLAS -I/home/boystray/kaldi/tools/ATLAS_headers/include -msse -msse2 -pthread -g  -DHAVE_CUDA -I/usr/local/cuda/include -fPIC -pthread -isystem /home/boystray/kaldi/tools/openfst/include   -c -o online-net-client.o online-net-client.cc
g++  -Wl,-rpath=/home/boystray/kaldi/tools/openfst/lib  -rdynamic  online-net-client.o ../online/kaldi-online.a ../decoder/kaldi-decoder.a ../lat/kaldi-lat.a ../hmm/kaldi-hmm.a ../feat/kaldi-feat.a ../transform/kaldi-transform.a ../gmm/kaldi-gmm.a ../tree/kaldi-tree.a ../util/kaldi-util.a ../matrix/kaldi-matrix.a ../base/kaldi-base.a  ../../tools/portaudio/install/lib/libportaudio.a -lrt /home/boystray/kaldi/tools/openfst/lib/libfst.so /usr/lib/x86_64-linux-gnu//libatlas.so.3 /usr/lib/x86_64-linux-gnu//libf77blas.so.3 /usr/lib/x86_64-linux-gnu//libcblas.so.3 /usr/lib/x86_64-linux-gnu//liblapack_atlas.so.3 -Wl,-rpath=/usr/lib/x86_64-linux-gnu -lm -lpthread -ldl -o online-net-client
/usr/bin/ld: ../online/kaldi-online.a(online-audio-source.o): in function `kaldi::OnlinePaSource::Read(kaldi::Vector<float>*)':
/home/boystray/kaldi/src/online/online-audio-source.cc:122: undefined reference to `PaUtil_GetRingBufferReadAvailable'
/usr/bin/ld: /home/boystray/kaldi/src/online/online-audio-source.cc:138: undefined reference to `PaUtil_ReadRingBuffer'
/usr/bin/ld: ../online/kaldi-online.a(online-audio-source.o): in function `kaldi::OnlinePaSource::OnlinePaSource(unsigned int, unsigned int, unsigned int, unsigned int)':
/home/boystray/kaldi/src/online/online-audio-source.cc:71: undefined reference to `PaUtil_InitializeRingBuffer'
/usr/bin/ld: ../online/kaldi-online.a(online-audio-source.o): in function `kaldi::OnlinePaSource::Callback(void const*, void*, long, PaStreamCallbackTimeInfo const*, unsigned long)':
/home/boystray/kaldi/src/online/online-audio-source.cc:164: undefined reference to `PaUtil_WriteRingBuffer'
/usr/bin/ld: /home/boystray/kaldi/src/online/online-audio-source.cc:161: undefined reference to `PaUtil_GetRingBufferWriteAvailable'
collect2: error: ld returned 1 exit status
make[1]: *** [<内置>:online-net-client] 错误 1

5、解决方法。修改kaldi/src/online目录下的Makfile,OBJFILES这个变量后面添加pa_ringbuffer.o

OBJFILES = pa_ringbuffer.o online-audio-source.o online-feat-input.o online-decodable.o online-faster-decoder.o onlinebin-util.o online-tcp-source.o

6、cd /src

       make ext

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值