语音识别的端点检测
端點檢測的概念
端點檢測,也叫語音活動檢測,Voice Activity Detection,VAD,它的目的是對語音和非語音的區(qū)域進(jìn)行區(qū)分。通俗來理解,端點檢測就是為了從帶有噪聲的語音中準(zhǔn)確的定位出語音的開始點,和結(jié)束點,去掉靜音的部分,去掉噪聲的部分,找到一段語音真正有效的內(nèi)容。
在噪聲環(huán)境下使用語音識別系統(tǒng),或者講話人產(chǎn)生情緒或心里上的變化,導(dǎo)致發(fā)音失真、發(fā)音速度和音調(diào)改變,都會產(chǎn)生Lombard/Loud效應(yīng)。研究表明,即使在安靜的環(huán)境下,語音識別系統(tǒng)一半以上的識別錯誤來自端點檢測器。
?
端點檢測的分類
VAD 算法可以粗略的分為三類:基于閾值的 VAD、作為分類器的 VAD、模型 VAD。
基于閾值的 VAD:通過提取時域(短時能量、短期過零率等)或頻域(MFCC、譜熵等)特征,通過合理的設(shè)置門限,達(dá)到區(qū)分語音和非語音的目的。這是傳統(tǒng)的 VAD 方法。
作為分類器的 VAD:可以將語音檢測視作語音/非語音的兩分類問題,進(jìn)而用機(jī)器學(xué)習(xí)的方法訓(xùn)練分類器,達(dá)到檢測語音的目的。
模型 VAD:可以利用一個完整的聲學(xué)模型(建模單元的粒度可以很粗),在解碼的基礎(chǔ),通過全局信息,判別語音段和非語音段。
VAD 作為整個流程的最前端,需要在本地實時的完成。由于計算資源非常有限,因此,VAD 一般會采用閾值法中某種算法;經(jīng)過工程優(yōu)化的分類法也可能被利用;而模型 VAD 目前難以在本地部署應(yīng)用。
?
端點檢測處理的好,不僅將處理的時間序列變小,還能消除無聲段道噪聲。
?
端點檢測的原理
為了能更清楚說明端點檢測的原理,錄制了一段音頻,并且將語音信號截取了幾部分。
開始,有片刻的準(zhǔn)備工作,并未發(fā)出聲音
?
第一次講”你好”
?
第二次講”你好”
?
第三次偽裝了聲音講”你好”
?
可以看到如下特點:
?
由此可以了解到端點檢測中涉及到的一些概念:
噪聲:背景音稱之為噪聲。有外界環(huán)境的噪聲,也有設(shè)備本身的噪聲。在實際使用中,如果出現(xiàn)長時間的靜默,會使用戶感到很不自然。因此接收端常常會在靜音期間發(fā)送一些分組,從而生成使用戶感覺舒服一些的背景噪聲,即所謂的舒適噪聲。
靜音:連續(xù)若干幀能量值持續(xù)維持在低水平。理想情況下靜音能量值為0,但實際無法做到,因為一般有背景音,而背景音有基礎(chǔ)能量值。
端點:靜音和有效語音信號變化臨界點。
在實際應(yīng)用中,比如說電話通話時,用戶沒有講話時,就沒有語音分組的發(fā)送,從而可以進(jìn)一步降低語音比特率。當(dāng)用戶的語音信號能量低于一定門限值時就認(rèn)為是靜默狀態(tài),也不發(fā)送語音分組。當(dāng)檢測到突發(fā)的活動聲音時才生成語音信號,并加以傳輸。運(yùn)用這種技術(shù)能夠獲得大于50%的帶寬。
同理,在實際測試過程中我們也需要考慮非連續(xù)性說話,比如口吃、猶豫、吞吞吐吐時,語言的識別準(zhǔn)確性,避免斷點檢測環(huán)節(jié)處理出現(xiàn)異常或者不合理的情況。
總結(jié)
- 上一篇: FishC《零基础学习python》笔记
- 下一篇: 火狐使用谷歌搜索_Google拒绝使用F