前幾年,語音交互應用最為普遍的就是以Siri為代表的智能手機,這個場景一般都是采用單麥克風系統(tǒng)。
單麥克風系統(tǒng)可以在低噪聲、無混響、距離聲源很近的情況下獲得符合語音識別需求的聲音信號。但是,若聲源距離麥克風距離較遠,并且真實環(huán)境存在大量的噪聲、多徑反射和混響,導致拾取信號的質(zhì)量下降,這會嚴重影響語音識別率。而且,單麥克風接收的信號,是由多個聲源和環(huán)境噪聲疊加的,很難實現(xiàn)各個聲源的分離。這樣就無法實現(xiàn)聲源定位和分離,這很重要,因為還有一類聲音的疊加并非噪聲,但是在語音識別中也要抑制,就是人聲的干擾,語音識別顯然不能同時識別兩個以上的聲音。
為什么需要麥克風陣列?
消費級麥克風陣列的興起得益于語音交互的市場火熱,主要解決遠距離語音識別的問題,以保證真實場景下的語音識別率。這涉及了語音交互用戶場景的變化,當用戶從手機切換到類似Echo智能音箱或者機器人的時候,實際上麥克風面臨的環(huán)境就完全變了,這就如同兩個人竊竊私語和大聲嘶喊的區(qū)別。
麥克風陣列還僅是物理入口,只是完成了物理世界的聲音信號處理,得到了語音識別想要的聲音,但是語音識別率卻是在云端測試得到的結果,因此這兩個系統(tǒng)必須匹配在一起才能得到最好的效果。
麥克風陣列的關鍵技術
消費級的麥克風陣列主要面臨環(huán)境噪聲、房間混響、人聲疊加、模型噪聲、陣列結構等問題,若使用到語音識別場景,還要考慮針對語音識別的優(yōu)化和匹配等問題。為了解決上述問題,特別是在消費領域的垂直場景應用環(huán)境中,關鍵技術就顯得尤為重要。
噪聲抑制
語音識別倒不需要完全去除噪聲,相對來說通話系統(tǒng)中需要的技術則是噪聲去除。這里說的噪聲一般指環(huán)境噪聲,比如空調(diào)噪聲,這類噪聲通常不具有空間指向性,能量也不是特別大,不會掩蓋正常的語音,只是影響了語音的清晰度和可懂度。這種方法不適合強噪聲環(huán)境下的處理,但是應付日常場景的語音交互足夠了。
混響消除
混響在語音識別中是個蠻討厭的因素,混響去除的效果很大程度影響了語音識別的效果。我們知道,當聲源停止發(fā)聲后,聲波在房間內(nèi)要經(jīng)過多次反射和吸收,似乎若干個聲波混合持續(xù)一段時間,這種現(xiàn)象叫做混響。混響會嚴重影響語音信號處理,比如互相關函數(shù)或者波束主瓣,降低測向精度。
聲源測向
這里沒有用聲源定位,測向和定位是不太一樣的,而消費級麥克風陣列做到測向就可以了,沒必要在這方面投入太多成本。聲源測向的主要作用就是偵測到與之對話人類的聲音以便后續(xù)的波束形成。聲源測向可以基于能量方法,也可以基于譜估計,陣列也常用TDOA技術。聲源測向一般在語音喚醒階段實現(xiàn),VAD技術其實就可以包含到這個范疇,也是未來功耗降低的關鍵研究內(nèi)容。
波束形成
波束形成是通用的信號處理方法,這里是指將一定幾何結構排列的麥克風陣列的各麥克風輸出信號經(jīng)過處理(例如加權、時延、求和等)形成空間指向性的方法。波束形成主要是抑制主瓣以外的聲音干擾,這里也包括人聲,比如幾個人圍繞Echo談話的時候,Echo只會識別其中一個人的聲音。
陣列增益
這個比較容易理解,主要是解決拾音距離的問題,若信號較小,語音識別同樣不能保證,通過陣列處理可以適當加大語音信號的能量。
模型匹配
這個主要是和語音識別以及語義理解進行匹配,語音交互是一個完整的信號鏈,從麥克風陣列開始的語音流不可能割裂的存在,必然需要模型匹配在一起。實際上,效果較好的語音交互專用麥克風陣列,通常是兩套算法,一套內(nèi)嵌于硬件實時處理,另外一套服務于云端匹配語音處理。