麥克風陣列是什么 有哪些關鍵技術?
亞馬遜Echo和谷歌Home爭奇斗艷,除了云端服務,他們在硬件上到底有哪些差異?我們先將Echo和Home兩款音箱拆開來看,區別最大的還是麥克風陣列技術。Amazon Echo采用的是環形6+1麥克風陣列,而Google Home(包括Surface Studio)只采用了2麥克風陣列。這種差異我們在文章《對比Amazon Echo,Google Home為何只采用了2個麥克風?》做了探討。但是好多朋友私信咨詢,因此這里想稍微深入談談麥克風陣列技術,以及智能語音交互設備到底應該選用怎樣的方案。
什么是麥克風陣列技術?
學術上有個概念是“傳聲器陣列”,主要由一定數目的聲學傳感器組成,用來對聲場的空間特性進行采樣并處理的系統。而這篇文章講到的麥克風陣列是其中一個狹義概念,特指應用于語音處理的按一定規則排列的多個麥克風系統,也可以簡單理解為2個以上麥克風組成的錄音系統。
麥克風陣列一般來說有線形、環形和球形之分,嚴謹的應該說成一字、十字、平面、螺旋、球形及無規則陣列等。至于麥克風陣列的陣元數量,也就是麥克風數量,可以從2個到上千個不等。這樣說來,麥克風陣列真的好復雜,別擔心,復雜的麥克風陣列主要應用于工業和國防領域,消費領域考慮到成本會簡化很多。
麥克風陣列是什么
為什么需要麥克風陣列?
消費級麥克風陣列的興起得益于語音交互的市場火熱,主要解決遠距離語音識別的問題,以保證真實場景下的語音識別率。這涉及了語音交互用戶場景的變化,當用戶從手機切換到類似Echo智能音箱或者機器人的時候,實際上麥克風面臨的環境就完全變了,這就如同兩個人竊竊私語和大聲嘶喊的區別。
前幾年,語音交互應用最為普遍的就是以Siri為代表的智能手機,這個場景一般都是采用單麥克風系統。單麥克風系統可以在低噪聲、無混響、距離聲源很近的情況下獲得符合語音識別需求的聲音信號。但是,若聲源距離麥克風距離較遠,并且真實環境存在大量的噪聲、多徑反射和混響,導致拾取信號的質量下降,這會嚴重影響語音識別率。而且,單麥克風接收的信號,是由多個聲源和環境噪聲疊加的,很難實現各個聲源的分離。這樣就無法實現聲源定位和分離,這很重要,因為還有一類聲音的疊加并非噪聲,但是在語音識別中也要抑制,就是人聲的干擾,語音識別顯然不能同時識別兩個以上的聲音。
顯然,當語音交互的場景過渡到以Echo、機器人或者汽車為主要場景的時候,單麥克風的局限就凸顯出來。為了解決單麥克風的這些局限性,利用麥克風陣列進行語音處理的方法應時而生。麥克風陣列由一組按一定幾何結構(常用線形、環形)擺放的麥克風組成,對采集的不同空間方向的聲音信號進行空時處理,實現噪聲抑制、混響去除、人聲干擾抑制、聲源測向、聲源跟蹤、陣列增益等功能,進而提高語音信號處理質量,以提高真實環境下的語音識別率。
事實上,僅靠麥克風陣列也很難保證語音識別率的指標。麥克風陣列還僅是物理入口,只是完成了物理世界的聲音信號處理,得到了語音識別想要的聲音,但是語音識別率卻是在云端測試得到的結果,因此這兩個系統必須匹配在一起才能得到最好的效果。不僅如此,麥克風陣列處理信號的質量還無法定義標準。因為當前的語音識別基本都是深度學習訓練的結果,而深度學習有個局限就是嚴重依賴于輸入訓練的樣本庫,若處理后的聲音與樣本庫不匹配則識別效果也不會太好。從這個角度應該非常容易理解,物理世界的信號處理也并非越是純凈越好,而是越接近于訓練樣本庫的特征越好,即便這個樣本庫的訓練信號很差。顯然,這是一個非常難于實現的過程,至少要聲學處理和深度學習的兩個團隊配合才能做好這個事情,另外聲學信號處理這個層次輸出的信號特征對語義理解也非常重要。看來,小小的麥克風陣列還真的不是那么簡單,為了更好地顯示這種差別,我們測試了某語音識別引擎在單麥克風和四麥克風環形陣列的識別率對比。另外也要提醒,語音識別率并非只有一個WER指標,還有個重要的虛警率指標,稍微有點聲音就亂識別也不行,另外還要考慮閾值的影響,這都是麥克風陣列技術中的陷阱。
為什么需要麥克風陣列?
麥克風陣列的關鍵技術
消費級的麥克風陣列主要面臨環境噪聲、房間混響、人聲疊加、模型噪聲、陣列結構等問題,若使用到語音識別場景,還要考慮針對語音識別的優化和匹配等問題。為了解決上述問題,特別是在消費領域的垂直場景應用環境中,關鍵技術就顯得尤為重要。
噪聲抑制:語音識別倒不需要完全去除噪聲,相對來說通話系統中需要的技術則是噪聲去除。這里說的噪聲一般指環境噪聲,比如空調噪聲,這類噪聲通常不具有空間指向性,能量也不是特別大,不會掩蓋正常的語音,只是影響了語音的清晰度和可懂度。這種方法不適合強噪聲環境下的處理,但是應付日常場景的語音交互足夠了。
混響消除:混響在語音識別中是個蠻討厭的因素,混響去除的效果很大程度影響了語音識別的效果。我們知道,當聲源停止發聲后,聲波在房間內要經過多次反射和吸收,似乎若干個聲波混合持續一段時間,這種現象叫做混響。混響會嚴重影響語音信號處理,比如互相關函數或者波束主瓣,降低測向精度。
麥克風陣列的關鍵技術
回聲抵消:嚴格來說,這里不應該叫回聲,應該叫“自噪聲”。回聲是混響的延伸概念,這兩者的區別就是回聲的時延更長。一般來說,超過100毫秒時延的混響,人類能夠明顯區分出,似乎一個聲音同時出現了兩次,我們就叫做回聲,比如天壇著名的回聲壁。實際上,這里所指的是語音交互設備自己發出的聲音,比如Echo音箱,當播放歌曲的時候若叫Alexa,這時候麥克風陣列實際上采集了正在播放的音樂和用戶所叫的Alexa聲音,顯然語音識別無法識別這兩類聲音。回聲抵消就是要去掉其中的音樂信息而只保留用戶的人聲,之所以叫回聲抵消,只是延續大家的習慣而已,其實是不恰當的。
聲源測向:這里沒有用聲源定位,測向和定位是不太一樣的,而消費級麥克風陣列做到測向就可以了,沒必要在這方面投入太多成本。聲源測向的主要作用就是偵測到與之對話人類的聲音以便后續的波束形成。聲源測向可以基于能量方法,也可以基于譜估計,陣列也常用TDOA技術。聲源測向一般在語音喚醒階段實現,VAD技術其實就可以包含到這個范疇,也是未來功耗降低的關鍵研究內容。
波束形成:波束形成是通用的信號處理方法,這里是指將一定幾何結構排列的麥克風陣列的各麥克風輸出信號經過處理(例如加權、時延、求和等)形成空間指向性的方法。波束形成主要是抑制主瓣以外的聲音干擾,這里也包括人聲,比如幾個人圍繞Echo談話的時候,Echo只會識別其中一個人的聲音。
陣列增益:這個比較容易理解,主要是解決拾音距離的問題,若信號較小,語音識別同樣不能保證,通過陣列處理可以適當加大語音信號的能量。
模型匹配:這個主要是和語音識別以及語義理解進行匹配,語音交互是一個完整的信號鏈,從麥克風陣列開始的語音流不可能割裂的存在,必然需要模型匹配在一起。實際上,效果較好的語音交互專用麥克風陣列,通常是兩套算法,一套內嵌于硬件實時處理,另外一套服務于云端匹配語音處理。
麥克風陣列是什么 有哪些關鍵技術?
http://www.audioapp.cn/thread-27205-1-1.html
(出處: 音頻應用)