一、背景描述
vosk是一個(gè)開源語音識(shí)別工具,可識(shí)別中文,之前介紹過python使用vosk進(jìn)行中文語音識(shí)別,今天記錄下FreeSWITCH對(duì)接vosk實(shí)現(xiàn)實(shí)時(shí)語音識(shí)別。二、具體實(shí)現(xiàn)
1、編譯及安裝vosk模塊
https://github.com/alphacep/freeswitch.git
?這里描述下使用FreeSWITCH 1.10.9 編譯 mod_vosk 的過程,大致步驟如下:
1)將 mod_vosk 代碼復(fù)制到 freeswitch-1.10.9.-release/src/mod/asr_tts 目錄;
2)modules.conf 文件中啟用mod_vosk模塊;
?3)生成 Makefile 文件;
./devel-bootstrap.sh && ./configure
4) 編譯并安裝 vosk 模塊;
cd freeswitch-1.10.9.-release/src/mod/asr_tts/mod_vosk make make install
fs編譯遇到問題,可參考這篇文章:CentOS7環(huán)境源碼安裝freeswitch1.10
?2、配置 vosk 模塊
1)啟用 vosk 模塊;
編輯 autoload_configs/modules.conf.xml 文件,啟用 vosk 模塊:
<load module="mod_vosk"/>
2)配置 conf 文件;
將 mod_vosk/conf/vosk.conf.xml 配置文件復(fù)制到 如下路徑:
/usr/local/freeswitch/conf/autoload_configs/
修改 vosk 服務(wù)器地址:
三、運(yùn)行效果
1、啟動(dòng) vosk 服務(wù)器
目錄:vosk-server\websocket
啟動(dòng)命令如下:
workon py39env python asr_server.py vosk-model-cn-0.15
運(yùn)行效果如下:
具體可參考我之前寫的文章:python使用vosk進(jìn)行中文語音識(shí)別
?2、實(shí)時(shí)語音識(shí)別
編寫撥號(hào)方案:
<condition field="destination_number" expression="^123456$"> <action application="answer"/> <action application="set" data="fire_asr_events=true"/> <action application="detect_speech" data="vosk default default"/> <action application="sleep" data="10000000"/> </condition>
本地分機(jī)撥打123456進(jìn)行驗(yàn)證,運(yùn)行效果如下:
?運(yùn)行效果視頻獲取途徑:
3、回鈴音識(shí)別
這里使用其它服務(wù)器配合來模擬回鈴音。<extension name="public_extensions"> <condition field="destination_number" expression="^(654321)$"> <action application="pre_answer"/> <action application="set" data="ringback=/usr/local/freeswitch/sounds/test/tips1.wav"/> <action application="transfer" data="1008 XML default"/> </condition> </extension>
需要注意的是,如果回鈴音不生效,可以看下后續(xù)的撥號(hào)方案是否有替換動(dòng)作。?
3.2 配置網(wǎng)關(guān)
網(wǎng)關(guān)配置信息:?
[root@host32 conf]# cat sip_profiles/external/gw_a.xml <include> <gateway name="gw_A"> <param name="username" value="anonymous"/> <param name="from-user" value=""/> <param name="password" value=""/> <param name="outbound-proxy" value="192.168.137.31:5080"/> <param name="register-proxy" value="192.168.137.31:5080"/> <param name="expire-seconds" value="120"/> <param name="register" value="false"/> <param name="register-transport" value="UDP"/> <param name="caller-id-in-from" value="true"/> <param name="extension-in-contact" value="true"/> <variables> <variable name="gateway_name" value="gw_A"/> </variables> </gateway> </include> [root@host32 conf]#
3.3 編寫本地?fù)芴?hào)方案
本地?fù)芴?hào)方案:
<condition field="destination_number" expression="^9123456$"> <action application="bridge" data="{ignore_early_media=false,bridge_early_media=true,fire_asr_events=true,execute_on_pre_answer='detect_speech vosk default default'}sofia/gateway/gw_A/654321"/> </condition>
本地分機(jī)撥打9123456,可聽到回鈴音,識(shí)別效果如下:
?運(yùn)行效果視頻獲取途徑:
?關(guān)注微信公眾號(hào)(聊聊博文,文末可掃碼)后回復(fù) 2023050402 獲取。
四、資源下載
本文涉及源碼及預(yù)編譯模塊二進(jìn)制文件,可以從如下途徑獲?。?mark hidden color="red">文章來源:http://www.zghlxwxcb.cn/news/detail-433605.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-433605.html
到了這里,關(guān)于FreeSWITCH對(duì)接vosk實(shí)現(xiàn)實(shí)時(shí)語音識(shí)別的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!