語音助理已經迅速成為一個重要的產品功能,這要歸功于流行的基于智能語音的產品,例如 Amazon Echo 和 Google Home。雖然語音服務提供商為開發人員提供了應用程序編程接口 (API) 支持,因此他們不必成為語音識別和解析細節方面的專家,但是將音頻硬件和語音處理軟件相結合的要求仍然是一個重大障礙。
此外,在與每個學科相關的細節工作中,在聲學設計、音頻工程、基于云的服務方面沒有豐富經驗的項目可能會面臨嚴重延遲。為了解決這些問題,供應商提供了完整的語音助理開發套件,以求顯著簡化問題。本文將分別介紹兩種此類套件,一個套件來自 XMOS,另一個套件來自 Seeed Technology,它們分別實現了基于 Amazon Alexa 語音服務 (AVS) 和谷歌助理的定制產品的快速開發。這些電路板可與 Raspberry Foundation 的 Raspberry Pi 3 (RPi 3) 電路板連接。本文將介紹如何讓每個套件投入運行,并展示每個套件如何隨時利用語音助理技術。快速 AVS 評估
Amazon 公司推出了 Alexa 智能音箱,這是一款面向家庭的產品,提供智能語音助理功能,但過去這些功能在很大程度上僅限于智能手機。對于開發人員來說,AVS API 的發布為在定制系統設計中使用相同的語音助理功能打開了大門,但其仍然需要音頻硬件和軟件方面的豐富專業知識。現在,隨著適用于 Amazon Alexa 語音服務 (AVS) 的 XMOS xCORE VocalFusion 4-Mic 套件的推出,實施語音助理功能的最后一個難題也迎刃而解。XMOS 套件包括一個 XVF3000 處理器基板、由四個 Infineon IM69D130 MEMS 麥克風組成的 100 mm 線性陣列、xTAG 調試器、安裝套件和電纜。開發人員需要為 RPi 3 提供有源揚聲器、USB 電源,以及 USB 鍵盤、鼠標、監視器和互聯網連接。在使用安裝套件將 XMOS 板和麥克風陣列連接到 RPi 3 之后,開發人員可以快速評估 Amazon Alexa 語音助理(圖1)。
圖 1: 開發人員使用 XMOS xCORE VocalFusion 套件開始工作,將提供的麥克風陣列板(最左側)和 XMOS 處理器板(中間)插入 Raspberry Pi 3 板(右側)。將 RPi 3 連接到 USB 鍵盤、鼠標、監視器和互聯網服務之后,下一步驟是從 SD 微型卡安裝 Raspbian 操作系統,在 RPi 3 上打開端子,并克隆 XMOS VocalFusion 存儲庫。安裝操作系統和存儲庫之后,只需運行位于克隆的 vocalfusion-avs-setup 目錄下的 auto_install.sh。安裝腳本將配置 Raspberry Pi 音頻系統及其與 xCORE VocalFusion 套件的連接,并在 Raspberry Pi 上安裝和配置 AVS Device SDK。這個安裝過程可能需要大約兩個小時完成。
安裝完成后,開發人員需要執行一個簡單的過程來加載他們的 Amazon 開發人員憑據,然后開始測試大量的語音命令和內置功能。此時,XMOS 套件將能夠演示 Alexa 的全套功能,如定時器、鬧鐘和日歷,以及使用 Alexa Skills 套件構建的第三方功能。參考設計
雖然設置步驟簡單,但 XMOS 套件中的硬件和軟件組件的功能卻非常復雜。該套件為開發人員提供了實現定制設計的全面參考設計。XMOS 套件的核心是 XMOS XVF3000-TQ128 器件,它提供了很高的處理能力(圖 2)。
圖 2: XMOS XVF3000-TQ128 器件集成了兩個 xCORE Tile,每個 Tile 包含八個內核,以提供高性能音頻處理。該器件專為并行處理任務而構建,包含兩個 xCORE Tile,每個 Tile 包含八個帶集成 I/O 的 32 位 xCORE 內核、256 KB 的 SRAM、8 KB 的一次性可編程(OTP)片上存儲器。xTIME 調度程序管理內核,并觸發來自 I/O 引腳的硬件事件的內核操作。每個內核都可以獨立執行計算、信號處理或控制任務,利用了 xCORE VocalFusion 套件中的集成式 2MB 閃存,以及用于套件設置和執行的代碼和數據。除了 XVF3000-TQ128 器件之外,XMOS 處理器基板還需要少量的附加組件(圖 3)。除了基本的緩沖器和針座連接外,基板還包括 Cirrus Logic CS43L21 數模轉換器(DAC),用于為外部揚聲器生成輸出音頻。最后,底板還引出了 XVF3000-TQ128 器件 I2C 端口,以及經過音頻優化的 I2S 數字音頻接口。
圖 3: XMOS 套件的基板包括 XVF3000-TQ128 器件、DAC、緩沖器,以及用于連接 Raspberry Pi 3 板和外部揚聲器的針座。該套件的整體功能分為兩個部分:XMOS 板上的音頻處理、RPi 3 上的高級語音處理服務(圖 4)。RPi 的 Broadcom 四核處理器運行軟件,該軟件用于分析音頻流,進行喚醒詞識別,并且處理與 Amazon AVS 的交互。
圖 4: XMOS VocalFusion 套件將基板和 Raspberry Pi 3 板上的 Alexa 功能分開,前者用于音頻信號處理,后者用于語音識別和更高級別的 Alexa 服務。軟件安裝過程配置這些子系統并加載所需的軟件包,包括 Sensory 的獨立于揚聲器的喚醒詞引擎,以及 AVS 客戶端軟件等。AVS 提供了一系列與高級功能(如語音識別、音頻回放和音量控制)相關的接口。操作通過來自 AVS 的消息(指令)和來自客戶端的消息(事件)進行。例如,為了響應某些條件,AVS 可能會向客戶端發送指示,指示客戶端應播放音頻、設置鬧鐘或打開燈光。相反,來自客戶端的事件可通知 AVS 發生了某些事件,例如來自用戶的新語音請求。
開發人員可以使用 AVS 器件軟件開發套件 (SDK) API 和 C++ 軟件庫來擴展其 XMOS 套件或 XMOS 定制設計的功能。AVS Device SDK 通過一系列單獨的 C++ 類和對象,提取出低級別操作,如音頻輸入處理、通信和 AVS 指令管理,開發人員可以使用或擴展它們,用于定制應用程序(圖 5)。
圖 5: Amazon AVS Device SDK 將 AVS 的廣泛功能組織為單獨的功能區域,每個功能區域都有自己的接口和庫。包含在 AVS Device SDK 中的完整樣例應用程序展示了關鍵設計模式,包括創建設備客戶端和喚醒詞交互管理器(列表 1)除了全套的樣例服務例程之外,該應用還顯示了主程序如何只需要實例化樣例應用程序對象 sampleApplication,并使用一個簡單的命令來啟動它: sampleApplication-》run()。列表 1: 開發人員可以使用 AVS Device SDK C++ 樣例應用程序來擴展設備 AVS 客戶端,AVS Device SDK C++ 樣例應用程序演示了用于創建 AVS 客戶端、喚醒詞交互管理器和用戶輸入管理器等的關鍵設計模式。(列表來源: AWS)
Google 助理快速原型
XMOS 套件可加快 Amazon Alexa 原型的開發速度,Seeed Technology 的 Google AIY 語音套件 可幫助開發人員使用 Google Assistant 構建原型。與 XMOS AVS 套件相同,Seeed Google AIY 語音套件可與 Raspberry Pi 3 板配合使用來構建原型,并提供必要的組件(圖 6)。
圖 6: 開發人員可將 Raspberry Pi 3 與 Seeed Technology 的 Google AIY 語音套件配合使用(它提供了構建原型所需的組件),從而快速創建 Google 助理應用。除了 Seeed Voice HAT 擴展板(圖 6 中的 1)、麥克風板 (2) 和揚聲器 (4) 之外,套件還包括紙板外殼 (8) 和內部框架 (9),以及一些基本組件,包括支座 (3)、電纜(6 和 7)和按鈕 (5)。開發人員首先將 RPi 3、揚聲器電線、麥克風電纜連接到語音 HAT,然后組裝套件。與 AVS 套件不同,Google 套件提供了一個簡單的外殼和內部框架,用于固定電路板組件和揚聲器(圖 7)。
圖 7: Seeed Google AIY 語音套件包括一個內部紙板框架,開發人員將其折疊成為電路板組件的載體。框架安裝在支撐按鈕和麥克風陣列的外殼內,完成裝配(圖 8)。
圖 8: 除了固定內部框架和揚聲器之外,Seey Google AIY 語音套件的外殼還包括按鈕和麥克風(看起來像外殼頂部的兩個孔)。下載語音套件鏡像并將其載入 SD 卡中后,只需將 SD 卡插入 RPi 并打開電路板電源,即可調出套件。經過短暫的初始化過程以確認每個組件正常工作之后,開發人員需要激活 Google Cloud 端的服務。為此,請設置工作沙箱區域并啟用 Google 助理 API,以創建和下載身份驗證憑據。最后,開發人員需要在 RPi 3 上打開一個終端控制臺并執行 Python 腳本 assistant_library_demo.py,以便在套件上啟動 Google 助理。此時,開發人員可以毫不費力地使用完整的 Google 助理功能。定制 Google 助理器件
使用 Seeed Google AIY 語音套件進行自定義開發,可以充分利用 Raspberry Pi 的靈活性。Seeed Voice HAT 引出了多個已經為典型 IO 功能配置的 RPi 3 GPIO(圖 9)。
圖 9: 開發人員可以使用 Seeed Voice HAT 擴展板上引出的 I/O 端口,快速擴展 Seeed Google AIY 語音套件的硬件功能。在軟件方面,開發人員可以使用 Google 的語音套件 API 軟件,輕松擴展套件的基準功能。除了支持軟件和實用程序之外,該軟件包還包含樣例應用程序軟件,演示了通過 Google Cloud Speech API 和 Google Assistant SDK 實施語音服務的多種方法。云語音服務與智能助理方法截然不同,它提供了語音識別功能,將實現特定語音啟動操作的任務留給了程序員。對于只需要語音輸入功能的設計,該服務提供了一個簡單的解決方案。開發人員只需將音頻傳遞到云語音服務,即可將語音轉換為文本,并返回識別的文本,如語音套件 API 中包含的樣例 Python 腳本所示(列表 2)。
列表 2: 在 Google 語音套件 API 提供的軟件例程中,樣例程序的這個片段演示了如何使用 Google Cloud Speech 服務,將語音轉換為文本,并將實現任何語音指導操作的任務留給了程序員。對于需要 Google 助理的更廣泛功能的開發人員,Google Assistant SDK 提供了兩個實施選項: Google Assistant Library 和 Google Assistant Service。基于 Python 的 Google Assistant Library 提供了一種在原型中快速實施 Google Assistant 的入門方法,例如在 Seeed 語音套件中。使用這種方法,原型可以即時利用基本的 Google 助理服務,包括音頻捕獲、對話管理和定時器。與 Cloud Speech 方法相反,Google Assistant Library 通過將每個對話處理為一系列與對話和發聲狀態相關的事件來管理對話。語音識別完成后,實例化的助理對象將提供事件對象,其中包括了適當的處理結果。如另一個 Google 樣例腳本所示,開發人員使用特征事件處理設計模式和一系列的 if/else 語句來處理預期的事件結果(列表 3)。
列表 3: 如 Google Voice 套件中的樣例所示,使用 Google Assistant Library 的應用程序中的主循環啟動一個助理對象,然后生成一系列事件,由開發人員的代碼處理。對于要求更高的定制需求,開發人員可以轉向使用 Google Assistant Service(以前稱為 Google Assistant gRPC API)提供的全套接口。Google Assistant Service 基于 Google RPC(gRPC),讓開發人員能夠將音頻查詢傳送到云端,處理識別的語音文本,并且處理相應的響應。為了實現定制功能,開發人員可以使用各種編程語言(包括 C++、Node.js 和 Java)來訪問 Google Assistant Service API。在將 Google Assistant SDK 用于自己的設計時,設計人員可以使用 Google 的器件匹配功能,實現特定于硬件的功能。作為器件設置的一部分,開發人員提供關于定制器件的信息,包括功能和特性,稱為特質。對于涉及到定制器件的用戶語音請求,服務會識別器件的有效特質,并為器件生成適當的響應(圖 10)。開發人員只需在器件的事件處理程序中包括與器件特質相關的對應代碼(例如列表 3 中的 def power_off_pi())。
圖 10: Google Assistant SDK 使用自動語音識別 (ASR) 和自然語言處理 (NLP) 服務,將用戶請求與特定設備進行匹配,并發出與定制設備及其認可特質一致的響應。
過去,智能語音助理在很大程度上是主流開發人員無法實現的。隨著兩個現成套件的推出,開發人員可以在定制設計中快速實施 Amazon Alexa 和 Google 助理。每個套件都允許開發人員在基本原型中快速調用相應的智能助理,或者使用定制的硬件和軟件來擴展設計。
-
互聯網
+關注
關注
54文章
11166瀏覽量
103460 -
智能音箱
+關注
關注
31文章
1783瀏覽量
78660 -
語音助理
+關注
關注
0文章
27瀏覽量
8688
原文標題:如何在“樹莓派”上玩轉語音識別?(附代碼)
文章出處:【微信號:gh_bee81f890fc1,微信公眾號:面包板社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論