亞馬遜音箱的ESP技術是如何實現的?悟1594113342018-03-13 09:31:45

1、硬體:(1)聯網——WIFI晶片或模組(博通、瑞昱、MTK都可以)。(2)語音演算法本地處理單元:主要是解決降噪(背景噪音消除,回聲消除);喚醒詞喚醒;語音方向識別這幾個問題。需要用到MIC陣列(咪頭)+ADC(音訊模擬轉數字訊號晶片)+DSP(語音數字訊號處理晶片)(一般由CPU模擬運算)。MIC陣列負責語音的採集。一般來講MIC越多聲音採集的效果越好,但演算法也就越複雜,對CPU的主頻要求也就越高。ADC將MIC採集的語音模擬訊號轉換成數字訊號,並物理濾波消除一部分外部噪音,只保留20-20KHZ頻段的聲音。DSP負責執行語音數字訊號的處理,分兩種:一種是用強大的CPU資源模擬運算降噪演算法處理語音音訊數字訊號,一種是用晶片硬體處理的方式最終得到乾淨的人的語音資訊。處理完成之後,利用wifi訊號,將乾淨的語音資訊編碼打包上傳到雲伺服器上,然後做進一步的處理(語音識別,語義理解,服務呼叫)。MIC的引數主要注重靈敏度和幾個MIC的一致性;ADC主要注重的是模擬轉數字的取樣率,一般亞馬遜對人聲取樣格式要求是44.1KHZ&16bit,這跟音響IIS音訊高保真輸出的192KHz&24bit的規格不一致,要做到相容比較困難,尤其是外掛MP3解碼晶片的這種方案。(3)整套音響系統的中央單元:CPU(處理器)+DDR(記憶體)+Flash(儲存)CPU主要的功能是跑整套音響作業系統。包括Linux底層系統,類似於BIOS即各個硬體的驅動程式——CPU的SDK,WIFI或者藍芽的驅動,音效DSP處理器驅動(一般是alsa協議),USB驅動,IIS驅動,GPIO的呼叫等);還有Linux之上的應用系統,類似於安卓系統或者window系統,包括網路上層通訊協議——配網的Smartconfig協議,AP-Station協議;網路資料下傳協議Http、DLNA、Airplay、Qplay;網路服務API介面配置Spotify、Alexa,QQ音樂,喜馬拉雅音樂等服務;作業系統邏輯控制單元;軟解碼音訊播放器;此外前面提到的語音演算法運算也由CPU完成。一般的CPU是透過IIS接ADC晶片,ADC晶片再接模擬MIC,一路IIS可以接2個ADC,1個ADC可以接4個MIC;但是有些晶片原廠開發了直接支援數字MIC介面的晶片,就省去了ADC晶片的成本,但需要演算法去滿足這種直接數字MIC的輸入。(4)音訊解碼單元:一般是CPU跑軟Codec解決,也有采用外掛一顆支援IIS介面的MP3的晶片做硬解碼。(5)音效單元:音訊DSP+功放+喇叭音訊DSP是需要除錯的,尤其有EQ需求的音響除錯就更困難,除錯完以後把調音引數給到CPU的音樂播放器中。另外,一般的MP3晶片做硬解碼的模式的是不能支援音效DSP的。功放分數字功放和模擬功放,如果DSP帶DAC功能的可以接模擬功放,不帶的只能接數字功放,現在主流的是用數字功放。由於wifi訊號比藍芽功耗大,功率也就大,帶來音效效果影響的可能也就越大,在電路設計和PCB的layout上需要做到訊號遮蔽,防止影片電路對音訊電路的訊號干擾,一旦干擾會由於音訊電路的訊號放大在喇叭端引入很大的底噪,導致音質效果不好。(6)電源管理單元:一般會有一顆電源管理IC負責分配從火牛或者鋰電池輸出的電流電壓,Echo沒有內建電池,所以不需要有電池充放電管理電路。也可以用DCDC來做出簡單的電源供電電路。2、軟體這裡的軟體是指音響端的整套系統軟體。現在有用安卓系統開發音響的,也有linux開發Echo的。安卓系統穩定性不如Linux,有很多冗餘的功能需要底層裁剪,有可能裁剪錯誤導致系統不穩定,最大限度的裁剪也會導致系統韌體有150MB,至少需要256MB的DDR,需要512MB的nanflash。同時開機速度會比linux系統的音響慢10-15S,用得越久還會產生系統冗餘導致執行得越來越慢。所以,無論從器件的成本,系統的穩定性,還是使用者的體驗上安卓都不適合做wifi音響,這也難怪亞馬遜會選擇用linux開發Echo音響,雖然開發時間多耗費了兩年時間。而linux系統的音響只需要4MB的韌體只需要16MB的norflah,64MB的DDR,開機速度可以做到10S以內開機,而且不會產生冗餘檔案,始終如一的使用者體驗。所以,SONOS和Echo都是用的linux平臺。這套作業系統包括:a、各個外圍器件的驅動(DSP,按鍵,AUX、USB結構,IIS,IIC協議),配網,語音演算法執行,音樂播放器,內容對接整合,網路傳輸協議(HTTP,DLNA,Airplay),服務API介面對接等等。b、本地語音識別的演算法,對於演算法包括兩部分,一部分是本地裝置端的降噪,背景噪音消除演算法,本地喚醒演算法,一部分是雲端的語音識別和語意理解演算法。我們先將第一部分,裝置端的語音識別演算法,裝置端需要將背景噪音消除,降噪之後得到乾淨的語音內容。而這有兩種解決方式:一是透過科勝訊這種帶DSP的ADC晶片透過固化到晶片裡面的DSP將ADC轉換得到的數字語音訊號分析之後透過IIS介面輸送給CPU再上傳到雲端,一個IIS介面可以接兩個ADC晶片,每個ADC晶片可以接4個MIC。當然喚醒的演算法是本地的一套軟體整合到CPU裡面——即裝置的名字,如”Alexa”這個名字,啟用詞需要訓練的,需要採集至少100多個人不同音色的發音,所以定製啟用詞會產生費用。二是透過降噪演算法和啟用詞演算法全部執行在CPU裡面,所以,需要數字MIC將數字語音訊號直接接到CPU端。目前能直接接數字MIC的晶片並不多,如全志的G102是可以直接接8個數字MIC的,但需要演算法去把8個數字MIC直接調通。三、雲服務雲服務是Echo的重點,包括了人工智慧+各種服務,人工智慧是負責語意理解和內容搜尋並回答的。比如:你問Alexa今天天氣怎麼樣,他會先把你說的話透過本地處理完以後的語音音訊檔案上傳到雲端的伺服器,伺服器將語音資訊翻譯成文字,然後把文字的關鍵詞找出來,並通過了大資料的訓練以後明白這段文字的抽象意思,然後幫你找到對應的答案,這個答案又必須去呼叫如氣象資訊的資料庫(這個資料庫也要支援語音搜尋調取才行),最後反饋給音響,音響播報出來:“今天天氣晴轉小雨,需要帶傘哦。”那麼這一系列的動作是人工智慧,天氣資訊資料庫就是雲內容。亞馬遜集成了至少5000個雲內容,包括天氣,音樂,打車,訂機票,叫外賣,控制支援IFTTT協議的家電裝置等等,並且每天還在增加。人工智慧用的人越多,Alexa辨識的準確率就越高,內容越豐富Echo的功能就越強大,人們就越來越離不開它。四、APPEcho也有一個APP,可以安裝在手機端,負責將Echo聯上路由器網路(因為Echo沒有螢幕,無法直接輸入wifi密碼),並且還可以檢視到使用者使用的歷史資訊和教育使用者怎麼用Echo更多的功能。五、生產亞馬遜不直接生產Echo,而是設計好之後發給代工廠代工生產,亞馬遜負責品質驗收然後開始銷售,主要的銷售渠道是亞馬遜網店,線下渠道也開始銷售。目前所有公司的產品都需要過亞馬遜的認證才能開始銷售,不僅僅需要先自己過亞馬遜的一個100多項的測試項,簽訂NDA,而且還需要回答一些問題,如銷售渠道是哪些、銷量預估是多少等等。此外,還有MIC的除錯,WIFI的測試,軟體穩定性的測試。這三個測試專案最複雜的是穩定性測試,MIC的除錯最大的影響是有效語音控制的距離,測試的裝置比較昂貴,需要專業的MIC廠配合除錯,WIFI技術除錯得很好,配網成功率高也需要真功夫,比如我們公司的wifi功能就能保證100%連上。2015年我問過微信有個微聯的功能,他們說他們網路配置的成功率只有不到60%。六、成本幾個主要的成本:研發的人員支出、硬體的成本、語音識別演算法的license費用、雲伺服器租用的費用(國內可以用阿里雲、國外可以用亞馬遜AWS)、內容整合授權費(如百度音樂是每次調取5分錢)。七、生態開始做生態之前,大家需要明確一下Alexa和Echo的區別:Echo只是具有Alexa應用的一個成功的產品,未來還會有很多的支援Alexa的產品,如閘道器、OTT盒子、車機、手機等等。任何支援Alexa功能的裝置都會聯入到Alexa的雲服務上。目前比較火的三大市場我相信Alexa都有涉足的可能:智慧家居,智慧汽車,智慧手機,未來可能還會有智慧穿戴(耳機,手錶等)。所以,Alexa會成為一個物聯網的大腦,各種裝置是他的觸手,透過觸手不斷獲得資訊訓練Alexa讓它越來越強大,融入越來越多演算法,越來越多內容讓Alexa越來越成為家庭、車載、工作的一個服務管家。所以Alexa具有兩個重要屬性:人工智慧和物聯網。深度學習得到更多網際網路服務是人工智慧,可以控制家電裝置(如燈,門)屬於家庭物聯網。