1. 程式人生 > >智慧音箱技術概覽

智慧音箱技術概覽

目前的智慧音箱多基於語音控制,其基本互動流程可以用圖1 概括:
1)使用者通過自然語言向音箱提出服務請求或問題
2)音箱拾取使用者聲音(音箱本地完成)並分析(一般在伺服器端完成)
3)音箱通過語言播報(音箱端)和 APP 推送(關聯的手機等)對使用者的請求進行反饋。
在這裡插入圖片描述
圖1. 智慧音箱基本互動方式

智慧音箱可以以自然的方式(自然語言),為使用者提供一些常用的服務,未來還可能成為家庭的控制中樞。

從使用者的角度,可直觀感知硬體和功能(圖2)。其中,智慧音箱的功能關係到產品設計和使用者體驗, 直接關係到產品的成敗,我們會在產品分析的文章中進行深入分析。本文對智慧音箱的硬體及執行在硬體之上,作為音箱“大腦”的系列演算法進行簡要介紹,希望讀者能對智慧音箱有更全面的瞭解。
在這裡插入圖片描述


圖2. 智慧音箱硬體組成和功能示意

1.1 外觀設計
智慧音箱想要成為常駐案頭的“家庭成員”,其形態必然是經過精心設計,在形狀、大小、燈效甚至重量等因素要充分考慮在內。圖 4 展示了一些智慧音箱,讀者可根據自己的審美,判斷下哪些是想要或不想要放在家裡的。
在這裡插入圖片描述
圖4. 音箱ID設計(按閱讀順序依次為:Amazon Echo、Google Home、叮咚、若琪、若琪月石、聯想音箱)(僅圖示設計,不代表實際產品尺寸)

ID 設計除了出於美學和互動設計的考慮外,還要和音腔設計(影響音效)、麥列方案(影響語音互動)等相互耦合,需要通盤考慮。

圖5和圖6分別展示了 Echo 和若琪的揚聲器設計,兩者對比可以看到在選擇揚聲器上的不同折衷和權衡。

Echo 採用封閉式揚聲器設計,高音和低音喇叭上下相對,聲音各個方向是對稱的,這有有利於前端訊號處理,但音效會受到限制。若琪採用開口式設計,喇叭朝前,這樣音效可以設計的更好,但訊號處理難度會大。

僅就音效而言,音腔越大越有利於設計,但這會導致最後智慧音箱非常笨重。也因此,許多設計上都有音腔部分略微鼓起的外觀設計(如 Google Home,叮咚)。

為了支援雙工(例如,在播放音樂的同時可以對音箱下達命令),揚聲器的功率不能太大,這樣就限制了音箱的最大音量。反過來,如果要確保音箱有較大的音量,可能會限制雙工條件下的音箱理解使用者語音的靈敏度。

1.3 麥克風陣列(Microphone Array)


麥克風陣列(以下簡稱麥列),是由一定數目的麥克風組成,用來對聲場的空間特性進行取樣並處理的系統。簡單而言,使用麥列而非單個麥克風,是為了在使用者距離音箱較遠時,依然能夠正常的收聽使用者的語音指令。

智慧音箱多使用環狀麥列(圖7),目前以 6(+1)麥為主流方案,也有2、4和8麥的產品。
在這裡插入圖片描述
圖7. 6+1 麥列

麥列方案主要受成本和演算法兩個因素限制。一方面,雖然麥克風本身成本並不是特別高,但增加麥克風數量需要配套的增加取樣等後續硬體的投入,會大大增加成本。另一方面,麥列涉及一系列演算法(見下文),演算法設計難度和計算複雜度都會隨著麥克風數量的增加而加大。

在選擇麥克風時,除了指向性、靈敏度、信噪比、頻響範圍、失真度等常規的引數要求,其安放位置、開口設計也要考慮ID設計和揚聲器的位置、功放等,需要全盤考慮。

1.4 主控板
本質上,和手機等移動裝置的主機板並無差別,包括主機板、CPU、儲存器等(如圖8)。主控板的選擇要在滿足響應延遲的前提下,儘量壓縮成本和功耗。
在這裡插入圖片描述
圖8. 全志G102

1.5 藍芽/WIFI
智慧音箱需要伺服器提供大部分功能,因此,WiFi 是不可缺少的模組。有些音箱會通過藍芽同手機通訊。

1.6 電池
目前主要的智慧音箱還是依賴電源線供電,但不排除隨著電源蓄電能力和成本的改善,智慧音箱會向手機一樣,脫離成為可自由移動的裝置。如果使用電池,還要結合 ID 設計、音腔設計等因素,合理選擇電池的大小和位置、充電方案等。圖 9 展示的是 Echo Tab 的電池方案。
在這裡插入圖片描述
圖 9. Echo Tab 電池方案設計

2. 演算法
使用者在同音箱進行語音互動的時,後臺有一系列演算法在支撐的互動的正確進行。

如圖10所示,總體而言,音箱工作時,麥列始終處於拾音狀態(持續對聲音訊號進行取樣、量化)。進過基本的訊號處理(靜音檢測、降噪等),喚醒模組會判斷是否出現喚醒詞,如果是,後續語音會進行更復雜的語音訊號處理,(理想情況下)得到乾淨的語音訊號,開始真正的語音互動流程。
在這裡插入圖片描述
圖10. 智慧音箱互動

2.1 前端訊號處理

2.1.1 語音檢測(VAD)
語音檢測(英文一般稱為 Voice Activity Detection,VAD)的目標是,準確的檢測出音訊訊號的語音段起始位置,從而分離出語音段和非語音段(靜音或噪聲)訊號。由於能夠濾除不相干非語音訊號,高效準確的 VAD 不但能減輕後續處理的計算量,提高整體實時性,還能有效提高下游演算法的效能。

VAD 演算法可以粗略的分為三類:基於閾值的 VAD、作為分類器的 VAD、模型 VAD。
基於閾值的 VAD:通過提取時域(短時能量、短期過零率等)或頻域(MFCC、譜熵等)特徵,通過合理的設定門限,達到區分語音和非語音的目的。這是傳統的 VAD 方法。
作為分類器的 VAD:可以將語音檢測視作語音/非語音的兩分類問題,進而用機器學習的方法訓練分類器,達到檢測語音的目的。
模型 VAD:可以利用一個完整的聲學模型(建模單元的粒度可以很粗),在解碼的基礎,通過全域性資訊,判別語音段和非語音段。

VAD 作為整個流程的最前端,需要在本地實時的完成。由於計算資源非常有限,因此,VAD 一般會採用閾值法中某種演算法;經過工程優化的分類法也可能被利用;而模型 VAD 目前難以在本地部署應用。

2.1.2 降噪
實際環境中存在著空調、風扇以及其他各種各樣的噪聲。降低噪聲干擾,提高信噪比,降低後端語音識別的難度。
常用的降噪演算法有 自適應 LMS 和維納濾波等。

2.1.3 聲學回聲消除(Acoustic Echo Cancellaction, AEC)
AEC也是一種常見的技術,在語音通話中,AEC是必不可少的基礎技術。
在這裡插入圖片描述
圖11. AEC 示意

具體的,AEC 的目的是,在音箱揚聲器工作(播放音樂或語音)時,從麥克風中收集的語音中,去除自身播放的聲音訊號。這是雙工模式的前提。否則,當音樂播放時,我們的聲音訊號會淹沒在音樂聲中,不能繼續對音箱進行有效的語音控制。

2.1.4 去混響處理
在室內,語音會被牆壁等多次反射,麥克風採集到(圖12)。混響對於人耳完全不是問題,但是,延遲的語音疊加產生掩蔽效應,這對語音識別是致命的障礙。
在這裡插入圖片描述
圖12. 混響【來源】

對於混響,一般從兩個方面來嘗試解決:1)去混響 2)對語音識別的聲學模型加混響訓練。由於真實環境的複雜性,一定的前端去混響演算法還是非常有必要的。

2.1.5 聲源定位(Direction of Arrival estimation, DOA)
聲源定位是根據麥列收集的聲音語,確定說話人的位置。DOA 至少有兩個用途,1)用於方位燈的展示,增強互動效果;2)作為波束形成的前導任務,確定空間濾波的引數。

聲源定位有如下常用方法有基於波束掃描的聲源定位、基於起解析度率譜估計的聲源定位以及 基於到達時間差(Time Difference of Arrival, TDOA)的聲源定位。考慮到演算法複雜性和延時,一般採用TDOA方法。

2.1.6 波束形成(Beam Forming, BF)
波束形成是利用空間濾波的方法,將多路聲音訊號,整合為一路訊號。通過波束形成,一方面可以增強原始的語音訊號,另一方面抑制旁路訊號,起到降噪和去混響的作用(圖13)。
在這裡插入圖片描述
圖13. 波形成示意圖(http://www.dlab.ch/arraybf.html)

2.2 喚醒
出於保護使用者隱私和減少誤識別兩個因素的考慮,智慧音箱一般在檢測到喚醒詞之後,才會開始進一步的複雜訊號處理(聲源定位、波束形成)和後續的語音互動過程。

一般而言,喚喚醒模組是一個小型語音識別引擎。由於目標單一(檢測 出指定的喚醒詞),喚醒只需要較小的聲學模型和語言模型(只需要區分出有無喚醒詞出現),聲學打分和解碼可以很快,空間佔用少,能夠在本地實時。

也有喚醒做為關鍵詞檢索(key word search)或文字相關的聲紋識別問題來解決。

2.3 語音互動
語音互動的基本流程如圖16所示。下面分別對各個環節進行簡要介紹。
在這裡插入圖片描述
圖14. 語音互動基本流程

ICASSP’17 關於對話系統的 tutorial ,並附有系統性的參考文獻。

2.3.1 語音識別(Automatic Speech Recognition, ASR)
語音識別的目的是將語音訊號轉化為文字。語音識別技術相對成熟。目前,基於近場訊號的、受控環境(低噪聲、低混響)下的標準音語音識別能夠達到很的水平。然而在智慧音箱開放性的真實環境,語音識別依然是一個不小的挑戰,需要接合前端訊號處理一起來優化。

2.3.2 自然語言理解(Natural Language Understanding, NLU)
NLU 作為一個研究課題還遠沒有被解決。但是在限定領域下,結合良好的產品設計,我們還是能夠利用現有技術,做出實用的產品。

可以將基於框架的(frame-based) NLU 分為三個子問題去解決(圖15):

  • 領域分類:識別出使用者命令所屬領域。其中,領域是預先設計的封閉集合(如產品設計上,音箱只支援音樂、天氣等領域),而每個領域都只支援無限預設的查詢內容和互動方式。
  • 意圖分類:在相應領域,識別使用者的意圖(如播放音樂、暫停或切換等)。意圖往往對應著實際的操作。
  • 實體抽取(槽填充):確定意圖(操作)的引數(如確定,具體是播放哪首歌或哪位歌手的歌曲)。
    在這裡插入圖片描述
    圖15. 基於框架的自然語言理解

2.3.3 對話管理(Diaglou Management, DM)
多輪對話對於自然的人工互動非常重要。比如,當我們詢問“北京明天的天氣怎麼?”,之後,更習慣追問“那深圳呢?”而不是重複的說”深圳明天的天氣怎麼?

在 NLU 無有得到很好解決的情況下,對話管理似乎不可能。好在限範圍下,結合產品設計,還是能做的不錯。一般的作法是,將輪對話解析出的引數做為上下文(全域性變數),帶入到下一輪對話;當前輪對話,根據一定的條件判斷,是否保持在上一輪的領域,是否清空上下文。

不同於純粹的聊天機器的對話管理,智慧音箱的對話管理還有實際的操作功能(查詢資訊、提供控制指令)。

2.3.4 自然語言生成(Natural Language Generation, NLG)
目前完全自動化的 NLG 方法還不成熟。實際產品中,多采用預先設計的文字模板來生成文字輸出。比如,播放歌曲時,生成語句為:“即將為您播放【歌手名】的【歌曲名】”。

2.3.5 語音合成(Speech Synthesis)
語音合成又叫做文語轉換(Text-to-Speech,TTS),更常見可能是 TTS 這一稱呼。TTS 的終極目標是,使機器能夠像人一樣朗讀任意給定的文字。

評價實用的語音合成系統的兩個主要的標準是1)可懂度(人能夠聽懂)和2)自然度(使人聽著舒服)。目前,可懂度的問題基本得到解決。引數合成和拼接合成是TTS的兩種主要合成方法,其中,引數計算量小,部署靈活,但自然較差;拼接接近真人發音,儲存和計算資源高,一般只能在線合成。例如,Echo 採用的基於單元選擇(unit selection)的拼接合成。

2.4 其他技術
最後,我們簡單列舉一些相對成熟,但還沒有廣泛應用於智慧音箱的技術。
聲紋識別

聲紋識別是據語音波形反映說話人生理和行為特徵的語音引數,自動識別說話人身份的一項技術。微信中的聲音鎖就是聲紋技術的一項具體應用。

通過聲紋識別,可以設計出更加個性化的服務。
人臉檢測

如果音箱配置為攝像頭,可以通人臉檢測,確定使用者的位置。一方面可以有更好的互動設計,另一方面可以輔助聲源定位。
人臉識別

同聲紋識別類似,人臉識別也可以用來確定使用者的身份。

經典架構:
降噪用專門的DSP晶片

主控用Android平臺,

語音識別、語義識別、語音合成三個放在雲端

控制和顯示放在本地

現有的國產智慧音箱,全都是這個架構的

做的最好的:Amazon Echo全球銷量最大的,是Amazon Echo系列,幾年時間賣了3000萬臺,直接導致國內2017年智慧音箱公司大量湧現。

Echo和其他智慧音箱最大的區別是:所有的控制,都放在雲端了。哪怕你家的WIFI檯燈和Echo是在同一個區域網,這個燈也是從雲端直接控制的。

把控制也放到雲端的好處是:智慧音箱本身不需要升級任何程式,就可以支援所有的智慧硬體。

做的最簡單的:Google Android ThingsAndroid Things在2018CES剛釋出了新版本,做的比Amazon更省事,把前端語音降噪都放在雲端去做了。演算法更容易更新,隨著時間的發展,能夠提供比本地降噪更優秀的降噪效果。
還能夠降低硬體要求,從而降低硬體成本。

智慧音箱發展趨勢
沒屏的降成本,越做越簡單帶螢幕,做複雜互動,作為中樞多個房間,分散式拾音網路雲端化,能放在雲端的服務都會放上去。做降噪演算法,會比較難活下去傳統語音識別企業,被網際網路打壓