FreeSWITCH 電話機(jī)器人 VAD 打斷 ASR集成 全功能開源代碼
gitcode地址: https://gitcode.net/iyaosan/FreeSWITCH-ASR
github地址: https://github.com/cdevelop/FreeSWITCH-ASR
最近很多人都對(duì)FreeSWITCH和ASR對(duì)接比較感謝興趣,我之前已經(jīng)做了一個(gè)商業(yè)模塊(商業(yè)模塊請(qǐng)點(diǎn)擊這里http://www.ddrj.com/callcenter/asr.html),考慮到大部分人,只是研究一下,并不準(zhǔn)確購(gòu)買商業(yè)模塊,特意做一個(gè)開源項(xiàng)目給大家提供一個(gè)參考。
mod_asr.cpp 第二個(gè)版本,使用了頂頂通VAD(支持噪音人聲識(shí)別)本程序包的授權(quán)文件是10并發(fā)1個(gè)月的體驗(yàn)授權(quán),僅用于體驗(yàn)和測(cè)試使用。
頂頂通VAD介紹
語(yǔ)音活動(dòng)檢測(cè)(Voice Activity Detection,VAD),就是檢測(cè)是否有聲音,常規(guī)的算法是通過聲音音量和頻譜特診來判斷是否有聲音的,但是無法區(qū)分是噪音還是人聲,在電話機(jī)器人中噪音打斷和噪音識(shí)別錯(cuò)誤的關(guān)鍵詞始終是一個(gè)痛點(diǎn),機(jī)器學(xué)習(xí)算法可以通過大量噪音和人聲數(shù)據(jù)訓(xùn)練出判別人聲還是噪音的神經(jīng)網(wǎng)絡(luò)模型,VAD算法結(jié)合深度神經(jīng)網(wǎng)絡(luò)就可以徹底解決這個(gè)痛點(diǎn)了。 頂頂通的最新VAD算法已經(jīng)集成了人聲噪音判別引擎。
噪音識(shí)別的用處
-
防止錯(cuò)誤的意向判斷
噪音識(shí)別成關(guān)鍵詞(是,恩,哦),導(dǎo)致把無意向客戶判斷成有意向客戶,通過噪音識(shí)別模塊,過濾掉噪音,可以大大提高機(jī)器人的意向判斷準(zhǔn)確度。
-
防止噪音打斷機(jī)器人說話
大部分機(jī)器人只要開了打斷功能,有一點(diǎn)噪音就給錯(cuò)誤打斷了,根本沒法在生產(chǎn)環(huán)境開打斷功能,有了噪音識(shí)別模塊,就可以避免噪音打斷了。 -
機(jī)器人反應(yīng)更靈敏
噪音環(huán)境VAD無法判斷用戶說話結(jié)束,會(huì)導(dǎo)致用戶說話完成了,機(jī)器人還一直傻等,有了噪音識(shí)別模塊,可以讓機(jī)器人反應(yīng)更加靈敏。
-
節(jié)約ASR費(fèi)用
在電話機(jī)器人業(yè)務(wù)中,大量的無效聲音(各種噪音)調(diào)用ASR,浪費(fèi)ASR調(diào)用費(fèi)用,有了噪音人聲判別功能,就可以噪音不再調(diào)用ASR接口,節(jié)約大量ASR費(fèi)用。
噪音人聲識(shí)別算法原理
基于20G的噪音聲音文件和100G的正常人聲的聲音文件,使用tdnn(時(shí)延神經(jīng)網(wǎng)絡(luò))和 lstm(長(zhǎng)短期記憶網(wǎng)絡(luò))訓(xùn)練出噪音人聲音判別模型。
噪音人聲識(shí)別的準(zhǔn)確率
準(zhǔn)確率取決訓(xùn)練數(shù)據(jù)的準(zhǔn)確性,目前的模型大于1秒聲音準(zhǔn)確率大于99.9%, 300毫秒以內(nèi)短時(shí)人聲和質(zhì)量很差的人聲,有少量識(shí)別成噪音的錯(cuò)誤率,因?yàn)樵胍魩?kù)包含了大量的背景人聲。
2023-2-28 第二版本代碼提交
請(qǐng)?jiān)贔reeSWITCH 1.8以上版本測(cè)試,低于1.8版本需要修改代碼:switch_buffer.c沒有switch_buffer_get_head_pointer這個(gè)函數(shù)。
-
安裝 libsad
- 目錄 copy到 /var目錄,最后的路徑是
- 授權(quán)文件 /var/libsad/license.jon
- 模型目錄 /var/libsad/model/
- lib文件 /var/libsad/libsad.so
- mod_asr.so copy到 fs的mod目錄
- fs_cli 執(zhí)行 load mod_asr 加載模塊。
- 目錄 copy到 /var目錄,最后的路徑是
-
申請(qǐng)ASR 本例子使用多方asr接口,注冊(cè)地址 http://ai.hiszy.com/#/user/register?code=RK9RD7W 注冊(cè)后可以聯(lián)系A(chǔ)SR服務(wù)商微信 aohu6789 獲取免費(fèi)次數(shù)
在fs安裝目錄/etc/vars.xml 配置asr key
<X-PRE-PROCESS cmd="set" data="appKey=asr后臺(tái)的appkey"></X-PRE-PROCESS> <X-PRE-PROCESS cmd="set" data="appSecret=asr后臺(tái)的appSecret"></X-PRE-PROCESS>
-
測(cè)試
執(zhí)行動(dòng)作 play_and_asr 參數(shù) playfilename waittime maxspeaktime allowbreak recordfilename
語(yǔ)音識(shí)別結(jié)果存入通道變量asr_result,如果沒有檢測(cè)到聲音設(shè)置為silence- playfilename 放音文件
- waittime 等待說話時(shí)間,放音完成開始計(jì)算
- maxspeaktime 最大說話時(shí)間
- allowbreak 是否允許打斷,檢測(cè)到說話就停止放音
- recordfilename 本次說話錄音文件
例子文章來源:http://www.zghlxwxcb.cn/news/detail-451182.html
<action application="play_and_asr" data="welcome.wav 5000 10000 true /tmp/speak.wav"/> <action application="log" data="open=${asr_result}"/>
-
編譯
如果修改了代碼編譯方法是
g++ -shared -fPIC -o mod_asr.so mod_asr.cpp -I /usr/local/freeswitch/include/freeswitch -L /usr/local/freeswitch/lib -lfreeswitch -L /var/libsad/ -lsad -Wl,-rpath=/var/libsad文章來源地址http://www.zghlxwxcb.cn/news/detail-451182.html
到了這里,關(guān)于FreeSWITCH 電話機(jī)器人 VAD 打斷 ASR集成 全功能開源代碼的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!