alibabacloud-nls-cpp-sdk-master
先到阿里官网下载nls库的源代码,编译生成对应的库文件和头文件。
我编译的放到了以下目录。
/home/jp/2025/alibabacloud-nls-cpp-sdk-master/build/install/NlsSdk3.X_LINUX/include/
/home/jp/2025/alibabacloud-nls-cpp-sdk-master/build/install/NlsSdk3.X_LINUX/lib/
mod_asr demo
https://download.csdn.net/download/qq_46187594/89714581https://download.csdn.net/download/qq_46187594/89714581下载asr的一个demo,在其中的mod_asr.cpp中调用webrtc静音检测算法,先判断语音静音包,非静音包丢给asr进行识别。
在/home/jp/2025/alibabacloud-nls-cpp-sdk-master/build/install/NlsSdk3.X_LINUX/include目录下mkdir vad目录,用于放后面静音检测的文件代码。
webrtc静音检测
GitHub - cpuimage/WebRTC_VAD: Voice Activity Detector Module Port From WebRTCVoice Activity Detector Module Port From WebRTC. Contribute to cpuimage/WebRTC_VAD development by creating an account on GitHub.https://github.com/cpuimage/WebRTC_VAD/下载这个webrtc静音检测程序,稍微修改下,进行调用。
下载完成后,include目录拷贝到/home/jp/2025/alibabacloud-nls-cpp-sdk-master/build/install/NlsSdk3.X_LINUX/include/vad/下,dr_wav.h,timing.h,
vad.cc也放到/home/jp/2025/alibabacloud-nls-cpp-sdk-master/build/install/NlsSdk3.X_LINUX/include/vod目录下。
main.c修改文件名为windaka.h.
mod_asr集成静音检测
在mod_asr.cpp的asr_callback()方法中增加vadProcess()方法的调用。返回为1表示非静音包,返回不为1表示静音包。特别注意vadProcess()第四个参数为WebRTC_VAD允许设置四个不同级别的敏感度(0-3),其中0最不敏感,3最敏感。
编译mod_asr3.0
编译语句为
g++ -shared -fPIC -O2 -Wall -o mod_asr.so mod_asr.cpp ./vod/*.c -I/home/jp/2025/alibabacloud-nls-cpp-sdk-master/build/install/NlsSdk3.X_LINUX/include -I/home/jp/2025/alibabacloud-nls-cpp-sdk-master/build/install/NlsSdk3.X_LINUX/include/vod -I/home/jp/2025/alibabacloud-nls-cpp-sdk-master/build/install/NlsSdk3.X_LINUX/include/vod/include -L/home/jp/2025/alibabacloud-nls-cpp-sdk-master/build/install/NlsSdk3.X_LINUX/lib -lpthread -lalibabacloud-idst-speech -ldl -D_GLIBCXX_USE_CXX11_ABI=1 -lrt -lz -ldl -lanl -I/usr/local/freeswitch/include/freeswitch -L/usr/local/freeswitch/lib -lfreeswitch
编译出来的mod_asr放到/usr/local/freeswitch/mod下,启动freeswitch时手动加载此模块,即可测试静音是否被检测出来。
代码下载
https://download.csdn.net/download/ware_soft/90239465