VAD過程個人總結

2021-10-24 13:58:41 字數 2189 閱讀 5953

趕鴨子上架,讓弄音訊的分割,現成的能用方法找了個webrtc的vad看看吧。才接觸2天,做個記錄,有錯誤望大神指摘。

乙個vad系統通常包括兩個部分,特徵提取和語音/非語音判決(端點檢測);

雜訊:背景音稱之為雜訊。有外界環境的雜訊,也有裝置本身的雜訊。在實際使用中,如果出現長時間的靜默,會使使用者感到很不自然。因此接收端常常會在靜音期間傳送一些分組,從而生成使使用者感覺舒服一些的背景雜訊,即所謂的舒適雜訊。

靜音:連續若干幀能量值持續維持在低水平。理想情況下靜音能量值為0,但實際無法做到,因為一般有背景音,而背景音有基礎能量值。

端點:靜音和有效語音頻號變化臨界點。在實際應用中,比如說**通話時,使用者沒有講話時,就沒有語音分組的傳送,從而可以進一步降低語音位元率。當使用者的語音頻號能量低於一定門限值時就認為是靜默狀態,也不傳送語音分組。當檢測到突發的活動聲音時才生成語音頻號,並加以傳輸。運用這種技術能夠獲得大於50%的頻寬。同理,在實際測試過程中我們也需要考慮非連續性說話,比如口吃、猶豫、吞吞吐吐時,語言的識別準確性,避免斷點檢測環節處理出現異常或者不合理的情況。

常用的特徵提取可以分為五類:基於能量的特徵可硬體實現,   頻域   倒譜   諧波   長時資訊

基於能量:準則是檢測訊號的強度,並且假設語音能量大於背景雜訊能量,這樣當能量大於某一門限時,可以認為有語音存在。然而當雜訊大到和語音一樣時,能量這個特徵無法區分語音還是純雜訊。因此其在高訊雜比可以獲得較好的效果。當訊雜比到達0db時,基於語音諧波和長時語音特徵更具有魯棒性。早先基於能量的方法,將寬頻語音分成各個子帶,在子帶上求能量;因為語音在2khz以下頻帶包含大量的能量,而雜訊在24khz或者4khz以上頻帶比02hkz頻帶傾向有更高的能量。這其實就是頻譜平坦度的概念,webrtc中已經用到了。在訊雜比低於10db時,語音和雜訊的區分能力會加速下降。

頻域特徵:通過短時傅利葉變換將時域訊號變成頻域訊號,即使在訊雜比接近0db時,一些頻帶的長時包絡還是可以區分語音和雜訊。

倒譜特徵:對於vad,能量倒譜峰值確定了語音頻號的基頻(pitch),也有使用mfcc做為特徵的;

長時特徵:語音是非穩態訊號。普通語速通常每秒發出10~15個音素,音素見的譜分布是不一樣的,這就導致了隨著時間變化語音統計特性也是變化的。另一方面,日常的絕大多數雜訊是穩態的(變化比較慢的),如白雜訊/機器雜訊。

前提:一般認為在10ms-30ms之間有連續波動認為是存在語音的平穩訊號

端點檢測,也叫語音活動檢測,voice activity detection,vad,它的目的是對語音和非語音的區域進行區分。通俗來理解,端點檢測就是為了從帶有雜訊的語音中準確的定位出語音的開始點,和結束點,去掉靜音的部分,去掉雜訊的部分,找到一段語音真正有效的內容。

在雜訊環境下使用語音識別系統,或者講話人產生情緒或心裡上的變化,導致發音失真、發音速度和音調改變,都會產生lombard/loud效應。研究表明,即使在安靜的環境下,語音識別系統一半以上的識別錯誤來自端點檢測器。

vad 演算法可以粗略的分為三類:基於閾值的 vad、作為分類器的 vad、模型 vad。

基於閾值的 vad:通過提取時域(短時能量、短期過零率等)或頻域(mfcc、譜熵等)特徵,通過合理的設定門限,達到區分語音和非語音的目的。這是傳統的 vad 方法。

作為分類器的 vad:可以將語音檢測視作語音/非語音的兩分類問題,進而用機器學習的方法訓練分類器,達到檢測語音的目的。在webrtc中,使用的就是這一思想,用的模型是混合高斯模型。

模型 vad:可以利用乙個完整的聲學模型(建模單元的粒度可以很粗),在解碼的基礎,通過全域性資訊,判別語音段和非語音段。看了有用lstm實現的。是基於深度學習的方法。

vad 作為整個流程的最前端,需要在本地實時的完成。由於計算資源非常有限,因此,vad 一般會採用閾值法中某種演算法;經過工程優化的分類法也可能被利用;而模型 vad 目前難以在本地部署應用。

綜述性文章

下面幾篇文章是對webrtc 的vad過程詳解,基於混合高斯模型的。下面文章可以對照**去看。我就看個大概就得了,也不想轉行去做語音識別,哈哈。

這個引數設定,函式呼叫流程介紹的最清晰:

更詳細的混合高斯模型更新權重過程:

神經網路lstm做的demo

** pytorch  神經網路做的端點檢測

個人linux總結

個人linux總結 1.更改telnet登入慢的問題 cd etc vi resolv.conf 將裡面內容清空 2.更改root使用者不能直接遠端登入問題 cd etc cd pam.d vi login 注釋掉這行 auth required pam securetty.so 該行注釋掉 3.掛...

ssh個人總結

技術面試官叫我談談 ssh優缺點 平時用起來倒是挺順手.但是從來沒有系統的總結過.導致很多點會都沒有說出來.這次我認真總結了一下.常說的好處 開源 常說的壞處 配置檔案過大我就不提了 struts 優點 收集,驗證表單資料相比傳統servlet簡單 優雅的實現可配置的請求 缺點 屬侵入設計 acti...

年終個人總結

伴隨著滴答滴答的鐘聲,2009 年馬上就要過去了,感謝 dian 團隊在時光流逝的同時給予我的歷練和成長。回首在dian 團隊度過的 2009 年,經歷了太多的事情,7 8月份的千兆網絡卡專案攻堅階段 9月份的保研以及從 9月份至今的轉戰 h3,每件事都在我的人生軌跡上留下了不可磨滅的痕跡。一年下來...