語音交互:先從麥克風(fēng)陣列聊起
隨著智能音箱、智能家居等智能硬件的普及,語音交互熱度也不斷飆升。想要了解語音交互,第一步是了解麥克風(fēng)陣列,本文從概念、分類、作用幾個方面對麥克風(fēng)陣列展開了說明,與大家分享。
語音交互從亞馬遜音箱(Echo)誕生的那一刻,就逐步走進了人們的視野,越來越多的人開始接觸到語音交互的設(shè)備。從電視里的機器人,到家里的音箱,最后到手上的手機,語音交互變得觸手可及。
語音交互的第一步就是拾音,機器人先要有一個耳朵,因為聽不到聲音就不會有反饋,更談不上交互了,而麥克風(fēng)陣列就相當(dāng)于機器人的耳朵。
一、什么是麥克風(fēng)陣列?
麥克風(fēng)相信大家都見過,就是我們常見的話筒,麥克風(fēng)陣列本質(zhì)上和話筒沒有區(qū)別,只是收音的單元比較多而已,基本上超過兩個收音孔就可以說是麥克風(fēng)陣列了。簡單理解為一個麥克風(fēng)就是麥克風(fēng),多個麥克風(fēng)就是麥克風(fēng)陣列。
麥克風(fēng)陣列是由一定數(shù)目的聲學(xué)傳感器(麥克風(fēng))按照一定規(guī)則排列的多麥克風(fēng)系統(tǒng),對聲場的空間特性進行采樣并濾波的系統(tǒng)。
麥克風(fēng)陣列除了看到的麥克風(fēng)數(shù)量以外,還有一系列的前端算法,兩者結(jié)合的系統(tǒng)才是完整的麥克風(fēng)陣列。而麥克風(fēng)陣列也只是完成了物理世界的音頻信號處理,想要完成語音識別,還是需要云端的ASR模型,兩個系統(tǒng)配合在一起才能得到最好的識別效果。
二、麥克風(fēng)陣列如何分類?
由于前端算法看不見,摸不著,我們對于麥克風(fēng)陣列的分類,常常參考麥克風(fēng)的布局和數(shù)量。目前常見的分類,基本上以麥克風(fēng)布局的形狀來做區(qū)分,參考我們中學(xué)課本講的點線面體,可以將麥克風(fēng)陣列分為:線性陣列,平面陣列,立體陣列(點就是一個麥克風(fēng))。
當(dāng)然也有根據(jù)形狀的分類,比如:一字、十字、平面、螺旋、球形及無規(guī)則陣列等。這里我們按照點線面體的方法介紹。
1. 線性陣列
常見的是兩個麥克風(fēng)的組成的線性陣列,目前幾乎所有中高端手機和耳機都采用雙麥克降噪技術(shù)來提升通話效果,也有部分智能音箱采用這種方案。
兩個麥克風(fēng)組成的線性陣列最大的優(yōu)勢就是成本低,相對于多麥克風(fēng),功耗也更低。缺點也比較明顯,降噪效果有限,就是對于遠(yuǎn)場景交互的效果并不好。
2. 平面陣列
平面陣列的組合就比較多樣化,常見的有4麥陣列和6麥陣列,還有升級的4+1麥陣列和6+1麥陣列,甚至8+1麥陣列。平面陣列常見于智能音箱和語音交互機器人上面。
平面陣列的線性陣列可以實現(xiàn)平面360度等效試音,麥克風(fēng)個數(shù)愈多,空間劃分精細(xì)度高,遠(yuǎn)場景識別效果好。缺點就是功耗較高,ID設(shè)計復(fù)雜。
3. 立體陣列
立體陣列多是球狀,或者圓柱體,可以實現(xiàn)真正的全空間360度無損拾音,解決了平面陣高俯仰角信號響應(yīng)差的問題,效果是最好的,成本也是最高的。但是生活中用的比較少,常見于專業(yè)領(lǐng)域。
三、麥克風(fēng)陣列有什么作用?
前面從硬件的角度介紹了麥克風(fēng)陣列的分類,接下來結(jié)合麥克風(fēng)陣列前端算法,看看麥克風(fēng)陣列到底有什么作用?
1. 聲源定位
人有兩個耳朵,可以通過聲音判斷發(fā)聲的方向,機器人也同樣可以做到。這個功能就是聲源定位,通過聲音感知人所在的方向,從而實現(xiàn)對目標(biāo)聲源方向的跟蹤。這也為后續(xù)的波束形成做技術(shù)鋪墊。
比如機器人場景,我們在機器人左邊叫它,機器人聽到聲音后就會把頭轉(zhuǎn)向左邊,我們在機器人背后叫它,機器人聽到聲音后就會轉(zhuǎn)過去,這就是聲源定位最典型的應(yīng)用。通常聲源定位會應(yīng)用在語音喚醒階段,能夠檢測一個大致的方向。
常用到的技術(shù)是TDOA(Time Difference Of Arrival,到達(dá)時間差),簡單理解就是通過計算信號到達(dá)麥克風(fēng)之間的時間差,從而計算出聲源的位置坐標(biāo),需要毫秒級的響應(yīng)和計算。
2. 抑制噪音/增強人聲
在語音識別中,語音信息中往往夾雜著噪音,常見的有環(huán)境噪音和人聲干擾,通常不會掩蓋正常的語音,只是影響聲音的清晰度。麥克風(fēng)陣列主要通過波束形成技術(shù),來抑制噪音,增強人聲??梢岳斫鉃橹蛔R別某個角度的聲音(一般角度可以進行調(diào)節(jié)),其他角度的聲音都會受到抑制,從而實現(xiàn)抑制噪音的目的。反過來也可以增強角度內(nèi)的人聲,就是增強人聲。
比如家庭場景,如果我們開著電視和空調(diào)在和音箱說話,音箱會以喚醒的它的角度為拾音區(qū)域,抑制非該角度的噪音(電視聲音和空調(diào)噪音)。一般我們根據(jù)使用場景去設(shè)置拾音角度,使用距離越遠(yuǎn),角度越小,常見為60°-120°之間。
抑制噪音能夠滿足日常家庭的使用場景,但對于強噪音環(huán)境的抑制效果并不理想,典型的就是雞尾酒效音。
3. 回聲消除
如果不做特殊處理的話,機器人會識別自己發(fā)出來的聲音,很有可能就會變成無休止的自問自答,或者拾音錯誤?;芈曄褪菫榱私鉀Q這個問題,消除掉機器自己發(fā)出的聲音。
比如家庭場景下,你的音箱正在放音樂周杰倫的新歌,但是你想要查一下天氣,這個時候你就會說“小X小X,今天天氣”。回聲消除的目的就是要去掉其中音樂信息而保留你的聲音。
其實回聲消除可能不太好理解,有時也被稱作為“自識別”,即自己識別自己發(fā)出的聲音。
4. 混響消除
在某些場景,發(fā)音會有回音,人能聽到的是17米左右距離返回的回音。但是機器的感知要比人敏感的的多,如果不做處理,就會出現(xiàn)一句話疊加識別的情況?;祉懗V嘎暡ㄔ谑覂?nèi)傳播時,被墻壁、天花板、地板等障礙物形成反射聲,并和直達(dá)聲形成疊加的現(xiàn)象。
比如在演播廳,我們能夠感受到較為明顯的回音,機器同樣能夠識別到這些回音?;祉懴褪窍髱淼幕匾?,只識別第一遍的內(nèi)容。
解決了這些問題,基本上就可以在日常環(huán)境下進行一個正常拾音,從而保證整個語音識別的正常。
四、如何選擇麥克風(fēng)陣列?
市面上可選的麥克風(fēng)陣列方案比較多,國產(chǎn)主要集中在思必馳、云知聲、科大訊飛和智聲科技等,他們也有從單麥克風(fēng)到麥克風(fēng)陣列的全套解決方案,以及前端算法。縱觀全球主要是亞馬遜和蘋果的麥克風(fēng)陣列硬件,谷歌和微軟的前端算法,分別是他們的擅長的地方。
首先從使用場景和ID設(shè)計,進行選擇。如果是像手機一樣拿在手上的近場景交互,產(chǎn)品又追求性價比,那么單麥克風(fēng)完就能夠滿足需求;如果是像音箱一樣放在家庭中的遠(yuǎn)場景交互,建議可以選擇4麥以上的麥克風(fēng)陣列,常見的有4+1和6+1兩種選擇方案;如果是像視頻音箱一樣站在面前的交互場景,建議選擇2-4麥的麥克風(fēng)陣列,當(dāng)然條件允許,6麥的,甚至8麥的都是可以的。另外產(chǎn)品的ID設(shè)計適合什么類型的麥克風(fēng)陣列,這個就因人而異了。
其次就是結(jié)合產(chǎn)品定位和前端算法,進行選擇。如果只需要近場景收音,需求僅限于拾音,建議單麥就可以,成本低,ID設(shè)計簡單;如果是想要實現(xiàn)類似通話降噪這種效果,2麥的麥克風(fēng)陣列就可以滿足需求,再多價值不大;如果是想要去除大部分噪音,建議使用4個以上的麥克風(fēng)陣列,還要考慮前端降噪算法的能力,一般大廠效果更加可靠,麥克風(fēng)陣列的硬件和前端算法的效果要結(jié)合ASR識別來一起評估。
還有就是像軍工領(lǐng)域,航空航天,這些高端產(chǎn)品,就可以考慮使用分布式陣列了,這個不在我們考慮的范圍內(nèi)了。
最后就是參考成本以及研發(fā)速度,進行選擇。看了上面這么多介紹,只需要根據(jù)自己產(chǎn)品的售價,以及這方面的預(yù)算,相信大家都已經(jīng)清楚該怎么做出選擇了。至于研發(fā)速度,個人覺得選擇成熟的方案是最快捷的方式,如果ID設(shè)計不兼容,可能也需要定制,看具體需求。
一般像我們把手機拿到嘴邊的語音交互,單個麥克風(fēng)就夠用了,就像有人在你耳旁說悄悄話,一個耳朵就能聽清楚。但是在面對遠(yuǎn)距離,嘈雜環(huán)境的語音交互,麥克風(fēng)陣列相對于單個麥克風(fēng)有很明顯的優(yōu)勢。
五、行業(yè)內(nèi)麥克風(fēng)陣列介紹
我們盤點一下業(yè)內(nèi)常見的產(chǎn)品在麥克風(fēng)陣列上的使用情況
通過收集素材,發(fā)現(xiàn)小米和天貓的音箱產(chǎn)品線覆蓋非常全,其中2麥到6麥的產(chǎn)品都有。其實大部分音箱設(shè)備還是采用2麥和6麥的方案,隨著前端算法的進步,未來需要的麥克風(fēng)可能會越來越少。
六、如何測試麥克風(fēng)陣列?
評價一個麥克風(fēng)陣列的優(yōu)劣,除了麥克風(fēng)陣列的軟硬件能力,還需要結(jié)合ASR的識別效果一起進行評估,以最終的識別結(jié)果為準(zhǔn)。
我們后面聊到ASR識別的時候,再聊這部分內(nèi)容。
七、總結(jié)
在語音交互普及的今天,消費級麥克風(fēng)陣列主要解決遠(yuǎn)場景交互的語音識別問題,保證真實場景下的語音識別率。
麥克風(fēng)陣列主要從兩方面來實現(xiàn)物理音頻的獲取,一方面是硬件的麥克風(fēng)數(shù)量和布局,一方面是軟前的前端算法。硬件布局越合理,麥克風(fēng)數(shù)量越多,前端算法可以處理的信息越多,識別的效果越好。如果只有1個麥克風(fēng),無論前端算法再怎么牛逼,是無法實現(xiàn)聲源定位的;如果有2個麥克風(fēng)陣列,前端算法如果超級牛逼,是可以實現(xiàn)大概的聲源定位;如果有6+1麥克風(fēng)陣列,前端算法就可以輕松的實現(xiàn)聲源定位。
麥克風(fēng)陣列只是語音識別的一部分,其麥克風(fēng)布局和數(shù)量決定下限,前端算法決定上限。
本文由 @我叫人人 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自Unsplash,基于CC0協(xié)議
作者好~我覺得您的文章很棒,求加微信溝通呀!
作者你好,我看了你的幾篇文章,覺得寫的很好很全,可以加個微信交流交流嗎
人人兄 留微信交流交流
好的,pony兄,已加