一、背景描述
vosk是一個開源語音識別工具,可識別中文,之前介紹過python使用vosk進行中文語音識別,今天記錄下FreeSWITCH對接vosk實現實時語音識別。二、具體實現
1、編譯及安裝vosk模塊
https://github.com/alphacep/freeswitch.git
這裏描述下使用FreeSWITCH 1.10.9 編譯 mod_vosk 的過程,大致步驟如下:
1)將 mod_vosk 代碼複製到 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環境源碼安裝freeswitch1.10
2、配置 vosk 模塊
1)啓用 vosk 模塊;
編輯 autoload_configs/modules.conf.xml 文件,啓用 vosk 模塊:
<load module="mod_vosk"/>
2)配置 conf 文件;
將 mod_vosk/conf/vosk.conf.xml 配置文件複製到 如下路徑:
/usr/local/freeswitch/conf/autoload_configs/
修改 vosk 服務器地址:
三、運行效果
1、啓動 vosk 服務器
目錄:vosk-server\websocket
啓動命令如下:
workon py39env python asr_server.py vosk-model-cn-0.15
運行效果如下:
具體可參考我之前寫的文章:python使用vosk進行中文語音識別
2、實時語音識別
編寫撥號方案:
<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>
本地分機撥打123456進行驗證,運行效果如下:
運行效果視頻獲取途徑:
四、資源下載
本文涉及源碼及預編譯模塊二進制文件,可以從如下途徑獲取: