> 麥克風知識 > 聊一聊麥克風陣列技術:語音交互應該選用怎樣的方案?|深度

聊一聊麥克風陣列技術:語音交互應該選用怎樣的方案?|深度

雷鋒網按:本文作者陳孝良,工學博士,聲智科技創始人。雷鋒網獨家文章。

亞馬遜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只會識別其中一個人的聲音。

陣列增益:這個比較容易理解,主要是解決拾音距離的問題,若信號較小,語音識別同樣不能保證,通過陣列處理可以適當加大語音信號的能量。

模型匹配:這個主要是和語音識別以及語義理解進行匹配,語音交互是一個完整的信號鏈,從麥克風陣列開始的語音流不可能割裂的存在,必然需要模型匹配在一起。實際上,效果較好的語音交互專用麥克風陣列,通常是兩套算法,一套內嵌于硬件實時處理,另外一套服務于云端匹配語音處理。

麥克風陣列的技術趨勢

語音信號其實是不好處理的,我們知道信號處理大多基于平穩信號的假設,但是語音信號的特征參數均是隨時間而變化的,是典型的非平穩態過程。幸運的是語音信號在一個較短時間內的特性相對穩定(語音分幀),因而可以將其看作是一個準穩態過程,也就是說語音信號具有短時平穩的特性,這才能用主流信號處理方法對其處理。從這點來看,麥克風陣列的基本原理和模型方面就存在較大的局限,也包括聲學的非線性處理(現在基本忽略非線性效應),因此基礎研究的突破才是未來的根本。希望能有更多熱愛人工智能的學生關注聲學,報考我們中科院聲學所。

聊一聊麥克風陣列技術:語音交互應該選用怎樣的方案?|深度

另外一個趨勢就是麥克風陣列的小型化,麥克風陣列受制于半波長理論的限制,現在的口徑還是較大,聲智科技現在可以做到2cm-8cm的間距,但是結構布局仍然還是限制了ID設計的自由性。很多產品采用2個麥克風其實并非成本問題,而是ID設計的考慮。實際上,借鑒雷達領域的合成孔徑方法,麥克風陣列可以做的更小,而且這種方法已經在軍工領域成熟驗證,移植到消費領域只是時間問題。

還有一個趨勢是麥克風陣列的低成本化,當前無論是2個麥克風還是4、6個麥克風陣列,成本都是比較高的,這影響了麥克風陣列的普及。低成本化不是簡單的更換芯片器件,而是整個結構的重新設計,包括器件、芯片、算法和云端。這里要強調一下,并非2個麥克風的陣列成本就便宜,實際上2個和4個麥克風陣列的相差不大,2個麥克風陣列的成本也要在60元左右,但是這還不包含進行回聲抵消的硬件成本,若綜合比較,實際上成本相差不大。特別是今年由于新技術的應用,多麥克風陣列的成本下降非常明顯。

再多說一個趨勢就是多人聲的處理和識別,其中典型的是雞尾酒會效應,人的耳朵可以在嘈雜的環境中分辨想要的聲音,并且能夠同時識別多人說話的聲音。現在的麥克風陣列和語音識別還都是單人識別模式,距離多人識別的目標還很遠。前面提到了現在的算法思想主要是“抑制”,而不是“利用”,這實際上就是人為故意簡化了物理模型,說白了就是先拿“軟柿子”下手,因此語音交互格局已定的說法經不起推敲,對語音交互的認識和探究應該說才剛剛開始,基礎世界的探究很可能還會出現諾獎級的成果。若展望的更遠一些,則是物理學的進展和人工智能的進展相結合,可能會顛覆當前的聲學信號處理以及語音識別方法。

如何選用麥克風陣列?

當前成熟的麥克風陣列的主要包括:訊飛的2麥、4麥和6麥方案,思必馳的6+1麥方案,云知聲(科勝訊)的2麥方案,以及聲智科技的單麥、2麥陣列、4(+1)麥陣列、6(+1)麥陣列和8(+1)麥陣列方案,其他家也有麥克風陣列的硬件方案,但是缺乏前端算法和云端識別的優化。由于各家算法原理的不同,有些陣列方案可以由用戶自主選用中間的麥克風,這樣更利于用戶進行ID設計。其中,2個以上的麥克風陣列又分為線形和環形兩種主流結構,而2麥的陣列則又有Broadside和Endfire兩種結構,限于篇幅我們以后的文章再展開敘述。

如此眾多的組合,那么廠商該如何選擇這些方案呢?首先還是要看產品定位和用戶場景。若定位于追求性價比的產品,其實就不用考慮麥克風陣列方案,就直接采用單麥方案,利用算法進行優化,也可實現噪聲抑制和回聲抵消,能夠保證近場環境下的語音識別率,而且成本絕對要低很多。至于單麥語音識別的效果,可以體驗下采用聲智科技單麥識別算法的360兒童機器人。

但是若想更好地去除部分噪聲,可以選用2麥方案,但是這種方案比較折衷,主要優點就是ID設計簡單,在通話模式(也就是給人聽)情況下可以去除某個范圍內的噪音。但是語音識別(也就是給機器聽)的效果和單麥的效果卻沒有實質區別,成本相對也比較高,若再考慮語音交互終端必要的回聲抵消功能,成本還要上升不少。2麥方案最大的弊端還是聲源定位的能力太差,因此大多是用在手機和耳機等設備上實現通話降噪的效果。這種降噪效果可以采用一個指向性麥克風(比如會議話筒)來模擬,這實際上就是2麥的Endfire結構,也就是1個麥克風通過原理設計模擬了2個麥克風的功能。指向性麥克風的不方便之處就是ID設計需要前后兩個開孔,這很麻煩,例如叮咚1代音箱采用的就是這種指向性麥克風方案,因此采用了周邊一圈的懸空設計。

若希望產品能適應更多用戶場景,則可以類似亞馬遜Echo一樣直接選用4麥以上的麥克風陣列。這里簡單給個參考,機器人一般4個麥克風就夠了,音箱建議還是選用6個以上麥克風,至于汽車領域,最好是選用其他結構形式的麥克風陣列,比如分布式陣列。

多個麥克風陣列之間的成本差異現在正在變小,估計明年的成本就會相差不大。這是趨勢,新興的市場剛開始成本必然偏高,但隨著技術進步和規模擴張,成本會快速走低,因此新興產品在研發階段倒是不需要太過糾結成本問題,用戶體驗才是核心的關鍵。

聊一聊麥克風陣列技術:語音交互應該選用怎樣的方案?|深度:等您坐沙發呢!

發表評論

您必須 [ 登錄 ] 才能發表留言!

野花视频高清免费中文|中文天堂最新版在线www|免费的很污的很黄的网站