語音交互
你知道蘋果手機有幾個麥克風嗎?
·
語音交互(VUI)是指人與人/設備通過自然語音進行信息傳遞的過程。
語音交互的優勢:
- 輸入效率高。語音輸入的速度是傳統鍵盤輸入方式的3倍以上。例如:語音電視選台、遠場語音交互、語音支持組合指令輸出(“播放周星馳電影、要免費的、4星以上的”)
- 使用門檻低。人類本就是先有語音再有文字,對於那些無法用文字交互的人來說,語音交互學習成本低,能帶來極大的便利。例如:還不會打字的小孩,或者不方便打字的老人家
- 解放雙手和雙眼,更安全。例如:車載場景通過語音點播音樂和導航,醫療場景(醫生在操作設備的時候,可能還需要記錄病例)
- 傳遞更多的聲學信息。聲紋、性別、年齡、情感等。
語音交互的劣勢
- 信息接收效率低。例如:文字能快速閱覽概括信息,語音的話必須聽完才能理解。
- 復雜的聲學環境
- 心理負擔。交互方式不一樣,例如:不太願意通過語音來進行交互,特別是在一些公共場合
人機語音交互發展
- 1952年,貝爾實驗室,阿拉伯數字識別系統Audrey
- 1962年,IBM-Shoebox
- ......
- 2011年,iphone4s,Siri問世
- 2014年,win8,Cortana
- 2014年,Amazon發布echo音箱
- 2016年,Google發布GoogleHome
應用場景
- 免提通話
- 電話/視頻會議
- 手機——Siri、小愛同學
- 車載
- 智能音響——Amazon
- 家居——電視語音點台
總結起來就是:家里、車里、路上。
復雜的聲學環境
現實中的語音交互系統,無一例外的會受到各種環境不利因素的影響,極大影響了交互成功率和用戶體驗。
- 方向性干擾
- 環境噪聲(散射噪聲)
- 遠講產生的混響
- 聲學回聲
痛點:人和機器都聽不清
一個成功的語音交互產品,意味着對語音交互的場合和使用模式無約束。
前端語音信號處理的意義:
- 面對噪聲、干擾、聲學回聲、混響等不利因素的影響,運用信號處理、機器學習等手段,提高目標語音的信噪比或主觀聽覺感受,增強語音交互后續環節的穩健性。
- 讓人聽清:更高的信噪比,更好的主觀聽覺感受和可懂度,更低的處理延時。
- 讓機器聽清:更好的聲學模型適配,更高的語音識別性能。
總結:語音信號處理的目標,是為了讓人和機器更容易聽清語音,讓語音交互更加自然和無約束。
針對不同的干擾因素,采用不同的信號處理算法
去回聲——去混響——盲源分離——波束賦形——語音降噪——自動增益控制
聲學回聲消除
消除設備自身產生的回聲干擾,最早應用於全雙工語音通信、視頻會議,在語音交互中起到打斷喚醒的作用
主要模塊
- 時延估計(需要把參考信號和輸入信號中跟參考信號高度相關的,時間上對齊)
- 線性回聲消除(回聲消除的核心,設計一組線性自適應濾波器,消除設備自身產生的回聲,同時盡可能的保護近端語音不要受到損傷)
- 雙講檢測(控制在線性回聲消除階段,究竟什么時刻該做什么事情,有以下幾種狀態:只有遠講回聲信號存在、既有遠講回聲信號又有近端的語音信號、
- 殘余回聲抑制(把前面線性回聲消除部分沒有消除干凈遺漏過來的殘余回聲,做進一步回聲消除)
- 參考信號:近端揚聲器播放的語音信號(沒有經過污染的純凈語音),遠端輸入信號,近端輸出信號
- 輸入信號:麥克風接收到的輸入信號(參考信號的回聲+近端說話語音)
- 輸出信號:近端說話語音信號
解混響
混響是由語音的多徑效應所產生,在數學表達上是一個近場的純凈語音信號去卷積一個房間的沖擊響應函數(RIR),這樣的話能得到一個混響的語音信號。我們希望把混響的干擾因素消除掉,技術上有以下幾種方法:
- 盲反卷積法[NeelyandAllen,1979]:直接去估計房間沖擊響應函數的逆函數,如果把RIR當做是一個濾波器的話,我們直接去估計RIR的一個逆濾波器,然后把逆濾波器作用在帶有混響的語音上,就得到了純凈語音信號。(“盲”:即沒有任何的先驗信息(既不知道原始信號的統計信息,也不知道房間的沖擊響應函數),這種情況下想要恢復原始語音信號是非常困難的,所以我們只能假設完全沒有噪聲的場景,並且假設房間的沖擊響應函數RIR是不變的,只有在這種比較嚴格的假設之下,才能得到相對較好的結果,但是這種假設在我們的實際情況當中是不會得到滿足的,所以這種技術缺陷也是比較明顯的)
- 加權預測誤差[WPE,Takuya,2012]:因為語音信號具有線性預測特性(如果把語音信號當做是一系列采樣點信號的話,那么下一個采樣點可以用當前時刻以及當前時刻之前的若干采樣點的值去預測出下一個時刻采樣點的值),WPE認為混響可以分為早期混響和晚期混響,早期混響對於我們人的聽覺感受系統沒有負向作用,相反可能還有正面作用;晚期混響相對於房間沖擊響應的拖尾的聲音。那么加權預測誤差則是希望估計一個最優的線性預測濾波器,這個濾波器的作用能夠將房間沖擊響應函數消除晚期混響的影響,多用於多通道。適用於單通道和多通道場景,多通道效果更好。
- 麥克風陣列波束形成:混響是多路徑反射到達麥克風的,所以入射方向是全向的入射,而語音是方向性的入射,所以可以設計一個波束,拾取手機語音入射方向的語音。這樣其他方向的混響就會被抑制
- 深度學習用於解混響[Han,2015]:通過DAE、DNN、LSTM或者GAN,實現頻譜映射,端到端映射:帶有干擾的語音信號頻譜直接映射成為純凈語音信號的頻譜,mask(掩膜,適用於乘性噪聲):在當前的一個時頻點上,是有效語音多還是帶噪語音多,如果有效語音多則提取,如果帶噪語音多則抑制。
語音分離
旨在解決“雞尾酒會”問題,人類具有這樣一種能力,當我們身處多個說話人環境里面,比如:雞尾酒會,人們可以很容易聚焦我們感興趣的聲音,而當前卻沒有哪個機器算法能達到人的這種專注注意力的能力,這個問題就引領了語音分離這個方向領域的推進
- 聽覺場景分析法[俄亥俄大學 王德亮教授,2004]:將聽覺場景分析引入到了計算領域,因此有了Computational Auditory Scene Analysis (CASA),主要關注的並不僅僅的是語音分離還有語音和其他噪聲或音頻的分離。技術思路:把雞尾酒會問題變成一個二分類問題,這個二分類結果稱為理想二值掩膜,在時頻單元上,噪聲占主導,則IBM的值為0;如果目標語音占主導,則IBM的值為1,。這樣一來語音分離問題就變成了一個二分類問題。可以通過監督學習來實現,
- 非負矩陣分解[LeeandSeung,2001]:基於統計獨立假設,語音信號的稀疏性與諧波特性,把帶有干擾的混合語音信號的頻譜分解成為一個特征矩陣乘以另一個系數矩陣,那么之后屬於不同聲源的那些信號的特征就會很自然的聚集到一起,這樣一來我們把屬於干擾源的特征所對應的系數矩陣進行掩蔽,
- 多通道技術:固定波束形成(fix beamforming)、自適應波束形成(adaptive beamforming)、獨立成分分析(ICA),本質上都是在多通道的場景下,通過一些空間信息和信號的統計獨立假設,去估算一個最優的波束(要么提取目標說話人方向的聲音,要么屏蔽干擾說話人方向的聲音)
- 基於深度學習的語音分離
- Deep clustering [Hershey, 2016]:通過深度學習的手段,把每一個時頻單元結合他的上下文信息把它映射到一個新的空間當中,那么在這個新的空間當中屬於同一個說話人的時頻單元距離會比較小,可以比較容易的聚類到一起。
- Deep attractor network [Luo and Chen, 2017]:
- Permutation invariant training [Yu, 2017]:解決了置換問題(分離出來的語音信號的順序)和輸出維度問題(不知道有幾個聲源的情況下)。
波束形成
波束形成技術多用於多通道語音增強、信號分離、去混響、聲源定位,
原理:通過空間信息來區分不同位置說話人語音,麥克風陣列形成波束只接受目標說話人語音,其他方向進行屏蔽。
主要技術
噪聲抑制
消除或抑制環境噪聲,增強語音信號
- 基於統計模型的方法(GMM...)
- 最小均方誤差MMSE、最大似然估計ML、最大后驗估計MAP
基於子空間的方法(MUSIC算法)
- 利用語音和噪聲的不相關性,借助特征值/奇異值分解手段分解到子空間處理
- 語音增強的核心在於噪聲估計
- 遞歸平均、最小值追蹤、直方圖統計是比較常用的噪聲估計手段
- 基於深度學習的語音增強方法
- 兩大類方法:Masking && Mapping
- 通過DNN、CNN、RNN或者GAN,在頻域或時域實現(多為頻域)
幅度控制
作用:自動調整信號的動態范圍
常用的兩種方法
- 動態范圍控制(Dynamic Range Control)
- 自動增益控制(Automatic Gain Control)
前端信號處理的技術路線
傳統的前端信號處理方案
處理依據——“規則”
- 客觀物理模型,即聲音傳播的物理規律
- 語音信號的時域、頻域和空域特性
針對不同的干擾因素,采用不同的信號處理算法以加以解決
優化目標:抑制干擾信號,提取目標信號
優化准則:MSE(Mean Square Error)准則
信號處理與深度學習相結合的方案
處理依據——“規則+學習”
- 客觀物理模型
- 語音信號的時域、頻域、空域特性
- 海量音頻數據先驗信息
既保留了聲音傳播的物理規律和信號本身的時域、頻域、空域特性,又引入了先驗數據統計建模的方法。
優化准則:MSE准則
基於深度學習的前后端聯合優化方案
處理依據——“端到端聯合建模”
- 輸入多通道麥克風信號,輸出語音識別結果
- 利用近場數據,仿真得到海量的帶有各種干擾的訓練數據
將前端信號處理與后端ASR聲學模型聯合建模,用一套深度學習模型完成語音增強和語音識別任務。
優化准則:識別准確率
參考
深藍學院《語音信號處理》課件
奧本海姆,《信號與系統》,電子工業出版社
奧本海姆,《離散時間信號處理》(Discrete Time Signal Processing, Third Edition)
趙力,《語音信號處理》,機械工業出版社
鄭君里,《信號與系統》,電子工業出版社,高等教育本科國家級規范教材
韓紀慶,《語音信號處理》,機械工業出版社
張賢達,《現代信號處理》,清華大學出版社
張賢達,《矩陣分析與應用》,清華大學出版社
VanTrees,檢測、估計和調制理論(IV)《Optimumarrayprocessing》
Signals and Systems: an Introduction to Analog and Digital Signal Processing. 1987 Lecture. Alan V. Oppenheim
推薦開源項目
Athena-signal:建議大家下載運行一下,有SEC、NS、波束形成、GSC實際應用的代碼
Python for Signal Processing:《Python for Signal Processing: Featuring IPythonNotebooks》對應源碼,包含信號處理12大類(采樣定理、傅里葉變換、濾波器等)、隨機過程15大類(高斯馬爾科夫、最大似然等)
Speex:A Free Codec For Free Speech。專門語音編解碼而設計的,包含超過9種算法:AEC、NS、VAD等,不過現在被Opus替代。
Google WebRTC:一個免費的開放式項目,通過簡單的API為瀏覽器和移動應用程序提供實時通信(RTC)功能。
VOICEBOX: Speech Processing Toolbox for MATLAB:語音處理工具箱,由MATLAB程序組成。超過100個函數,包含語音增強、ASR等在內。