语音识别(三)——声学模型, 解码器技术
聲源定位(續)
波束形成
聲源定位的方法包括波束形成,超分辨譜估計和TDOA,分別將聲源和陣列之間的關系轉變為空間波束,空間譜和到達時間差,并通過相應的信息進行定位。
波束形成是通用的信號處理方法,這里是指將一定幾何結構排列的麥克風陣列的各麥克風輸出信號經過處理(例如加權、時延、求和等)形成空間指向性的方法。波束形成主要是抑制主瓣以外的聲音干擾,這里也包括人聲,比如幾個人圍繞Echo談話的時候,Echo只會識別其中一個人的聲音。
波束形成可分為常規的波束形成CBF(Conventional Beam Forming)、CBF+Adaptive Filter和自適應波束形成ABF(Adaptive Beam Forming)。
超分辨譜估計
如MUSIC,ESPRIT等,對其協方差矩陣(相關矩陣)進行特征分解,構造空間譜,關于方向的頻譜,譜峰對應的方向即為聲源方向。適合多個聲源的情況,且聲源的分辨率與陣列尺寸無關,突破了物理限制,因此成為超分辨譜方案。這類方法可以拓展到寬帶處理,但是對誤差十分敏感,如麥克風單體誤差,通道誤差,適合遠場模型,矩陣運算量巨大。
TDOA
TDOA(time difference of arrival)是先后估計聲源到達不同麥克風的時延差,通過時延來計算距離差,再利用距離差和麥克風陣列的空間幾何位置來確定聲源的位置。分為TDOA估計和TDOA定位兩步:
TDOA估計
常用的有廣義互相關GCC(Generalized Cross Correlation)和LMS自適應濾波。
TDOA定位
TDOA估值進行聲源定位,三顆麥克風陣列可以確定空間聲源位置,增加麥克風會增高數據精度。定位的方法有MLE最大似然估計,最小方差,球形差值和線性相交等。
TDOA相對來講應用廣泛,定位精度高,且計算量最小,實時性好,可用于實時跟蹤,在目前大部分的智能定位產品中均采用TDOA技術做為定位技術。
參考
https://wenku.baidu.com/view/903f907f31b765ce05081431.html
基于傳聲器陣列的聲源定位
https://zhuanlan.zhihu.com/p/35590325
MIT提出像素級聲源定位系統PixelPlayer:無監督地分離視頻中的目標聲源
https://zhuanlan.zhihu.com/p/27921878
揭秘武林絕學——“聽聲辨位”
其他前端問題
語音增強
語音增強是指當語音信號被各種各樣的噪聲(包括語音)干擾甚至淹沒后,從含噪聲的語音信號中提取出純凈語音的過程。
去混響(Dereverberation)
一般我們聽音樂時,希望有混響的效果,這是聽覺上的一種享受。合適的混響會使得聲音圓潤動聽、富有感染力。混響(Reverberation)現象指的是聲波在室內傳播時,要被墻壁、天花板、地板等障礙物形成反射聲,并和直達聲形成疊加,這種現象稱為混響。
但是,混響現象對于識別就沒有什么好處了。由于混響則會使得不同步的語音相互疊加,帶來了音素的交疊掩蔽效應(Phoneme Overlap Effect),從而嚴重影響語音識別效果。
影響語音識別的部分一般是晚期混響部分,所以去混響的主要工作重點是放在如何去除晚期混響上面,多年來,去混響技術抑制是業界研究的熱點和難點。利用麥克風陣列去混響的主要方法有以下幾種:
(1)基于盲語音增強的方法(Blind signal enhancement approach),即將混響信號作為普通的加性噪聲信號,在這個上面應用語音增強算法。
(2)基于波束形成的方法(Beamforming based approach),通過將多麥克風對收集的信號進行加權相加,在目標信號的方向形成一個拾音波束,同時衰減來自其他方向的反射聲。
(3)基于逆濾波的方法(An inverse filtering approach),通過麥克風陣列估計房間的房間沖擊響應(Room Impulse Response, RIR),設計重構濾波器來補償來消除混響。
聲源信號提取
家里人說話太多,DingDong聽誰的呢。這個時候就需要DingDong聰明的辨別出哪個聲音才是指令。而麥克風陣列可以實現聲源信號提取,聲源信號的提取就是從多個聲音信號中提取出目標信號,聲源信號分離技術則是將需要將多個混合聲音全部提取出來。
利用麥克風陣列做信號的提取和分離主要有以下幾種方式:
(1)基于波束形成的方法,即通過向不同方向的聲源分別形成拾音波束,并且抑制其他方向的聲音,來進行語音提取或分離;
(2)基于傳統的盲源信號分離(Blind Source Separation)的方法進行,主要包括主成分分析(Principal Component Analysis,PCA)和基于獨立成分分析(Independent Component Analysis,ICA)的方法。
回聲抵消
嚴格來說,這里不應該叫回聲,應該叫“自噪聲”。回聲是混響的延伸概念,這兩者的區別就是回聲的時延更長。一般來說,超過100毫秒時延的混響,人類能夠明顯區分出,似乎一個聲音同時出現了兩次,我們就叫做回聲,比如天壇著名的回聲壁。
實際上,這里所指的是語音交互設備自己發出的聲音,比如Echo音箱,當播放歌曲的時候若叫Alexa,這時候麥克風陣列實際上采集了正在播放的音樂和用戶所叫的Alexa聲音,顯然語音識別無法識別這兩類聲音。回聲抵消就是要去掉其中的音樂信息而只保留用戶的人聲,之所以叫回聲抵消,只是延續大家的習慣而已,其實是不恰當的。
參考
https://zhuanlan.zhihu.com/p/27977550
極限元:智能語音前端處理中的幾個關鍵問題
https://zhuanlan.zhihu.com/p/24139910
遠場語音交互中的麥克風陣列技術解讀
https://zhuanlan.zhihu.com/p/22512377
自然的語音交互——麥克風陣列
語言模型
語言模型是針對某種語言建立的概率模型,目的是建立一個能夠描述給定詞序列在語言中的出現的概率的分布。
給定下邊兩句話:
定義機器人時代的大腦引擎,讓生活更便捷、更有趣、更安全。
代時人機器定義引擎的大腦,生活讓更便捷,有趣更,安更全。
語言模型會告訴你,第一句話的概率更高,更像一句”人話”。
語言模型技術廣泛應用于語音識別、OCR、機器翻譯、輸入法等產品上。語言模型建模過程中,包括詞典、語料、模型選擇,對產品的性能有至關重要的影響。Ngram模型是最常用的建模技術,采用了馬爾科夫假設,目前廣泛地應用于工業界。
語言模型屬于NLP的范疇,這里不再贅述。
參考:
https://zhuanlan.zhihu.com/p/23504402
語言模型技術
聲學模型
聲學模型主要有兩個問題,分別是特征向量序列的可變長和音頻信號的豐富變化性。
可變長特征向量序列問題在學術上通常有動態時間規劃(Dynamic Time Warping, DTW)和隱馬爾科夫模型(Hidden Markov Model, HMM)方法來解決。
音頻信號的豐富變化性是由說話人的各種復雜特性或者說話風格與語速、環境噪聲、信道干擾、方言差異等因素引起的。聲學模型需要足夠的魯棒性來處理以上的情況。
在過去,主流的語音識別系統通常使用梅爾倒譜系數(Mel-Frequency Cepstral Coefficient, MFCC)或者線性感知預測(Perceptual Linear Prediction, PLP)作為特征,使用混合高斯模型-隱馬爾科夫模型(GMM-HMM)作為聲學模型。
在近些年,區分性模型,比如深度神經網絡(Deep Neural Network, DNN)在對聲學特征建模上表現出更好的效果。基于深度神經網絡的聲學模型,比如上下文相關的深度神經網絡-隱馬爾科夫模型(CD-DNN-HMM)在語音識別領域已經大幅度超越了過去的GMM-HMM模型。
參考:
https://zhuanlan.zhihu.com/p/23567981
聲學模型
解碼器技術
解碼器模塊主要完成的工作包括:給定輸入特征序列xT1x1T的情況下,在由聲學模型、聲學上下文、發音詞典和語言模型等四種知識源組成的搜索空間(Search Space)中,通過維特比(Viterbi)搜索,尋找最佳詞串[wN1]opt=[w1,…,wN]opt[w1N]opt=[w1,…,wN]opt,使得滿足:
[wN1]opt=argmaxwN1,Np(wN1∣xT1)[w1N]opt=arg?maxw1N,N?p(w1N∣x1T)
在解碼過程中,各種解碼器的具體實現可以是不同的。按搜索空間的構成方式來分,有動態編譯和靜態編譯兩種方式。
靜態編譯,是把所有知識源統一編譯在一個狀態網絡中,在解碼過程中,根據節點間的轉移權重獲得概率信息。由AT&T提出的Weighted Finite State Transducer(WFST)方法是一種有效編譯搜索空間并消除冗余信息的方法。
動態編譯,預先將發音詞典編譯成狀態網絡構成搜索空間,其他知識源在解碼過程中根據活躍路徑上攜帶的歷史信息動態集成。
參考:
https://zhuanlan.zhihu.com/p/23648888
語音識別之解碼器技術簡介
人類聲音
成年男性:80-140 Hz
成年女性:130-220 Hz
兒童:180-320 Hz
從信號處理的角度,人類聲音的處理方式和普通的雷達信號處理并無本質差異,主要的區別在于:雷達信號經過了載波調制,而人類聲音則沒有這個步驟。
參考:
https://wenku.baidu.com/view/6123ba2f0066f5335a8121fe.html
人聲頻率范圍及各頻段音色效果
建模單元
建模單元是指聲音建模的最小單元。從細到粗,一般有state、phoneme、character三級。
描述一種語言的基本單位被稱為音素phoneme,例如BRYAN這個詞就可以看做是由B, R, AY, AX, N五個音素構成的。這種模式也叫做單音素monophone模式。
然而語音沒有圖像識別那么簡單,因為我們再說話的時候很多發音都是連在一起的,很難區分,所以一般用左中右三個HMM state來描述一個音素,也就是說BRYAN這個詞中的R音素就變成了用B-R, R, R-AY三個HMM state來表示。這種模式又被稱作三音素triphone模式。
character顯然是個最粗的劃分,盡管英語是表音文字,然而一個字母有多個發音,仍然是個普遍現象。
在GMM-HMM時代,人們傾向于細粒度建模,因為模型越細,效果越好。但DL時代,人們更傾向于粗粒度建模,因為這樣做,可以加快語音識別的解碼速度,從而可以使用更深、更復雜的神經網絡建模聲學模型。
總結
以上是生活随笔為你收集整理的语音识别(三)——声学模型, 解码器技术的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图像处理理论(八)——Meanshift
- 下一篇: 语音识别(四)——DTW, Spectr