<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

教你快速定制Google助理器件

電子設計 ? 來源:互聯網 ? 作者:佚名 ? 2018-08-08 09:19 ? 次閱讀

語音助理已經迅速成為一個重要的產品功能,這要歸功于流行的基于智能語音的產品,例如 Amazon Echo 和 Google Home。雖然語音服務提供商為開發人員提供了應用程序編程接口 (API) 支持,因此他們不必成為語音識別和解析細節方面的專家,但是將音頻硬件和語音處理軟件相結合的要求仍然是一個重大障礙。

此外,在與每個學科相關的細節工作中,在聲學設計、音頻工程、基于云的服務方面沒有豐富經驗的項目可能會面臨嚴重延遲。

為了解決這些問題,供應商提供了完整的語音助理開發套件,以求顯著簡化問題。本文將分別介紹兩種此類套件,一個套件來自XMOS,另一個套件來自Seeed Technology,它們分別實現了基于 Amazon Alexa 語音服務 (AVS) 和谷歌助理的定制產品的快速開發。這些電路板可與Raspberry Foundation的Raspberry Pi 3(RPi 3) 電路板連接。

本文將介紹如何讓每個套件投入運行,并展示每個套件如何隨時利用語音助理技術。

快速 AVS 評估

Amazon 公司推出了 Alexa 智能音箱,這是一款面向家庭的產品,提供智能語音助理功能,但過去這些功能在很大程度上僅限于智能手機。對于開發人員來說,AVS API 的發布為在定制系統設計中使用相同的語音助理功能打開了大門,但其仍然需要音頻硬件和軟件方面的豐富專業知識?,F在,隨著適用于 Amazon Alexa 語音服務 (AVS) 的 XMOSxCORE VocalFusion 4-Mic 套件的推出,實施語音助理功能的最后一個難題也迎刃而解。

XMOS 套件包括一個 XVF3000 處理器基板、由四個InfineonIM69D130MEMS 麥克風組成的 100 mm 線性陣列、xTAG調試器、安裝套件和電纜。開發人員需要為 RPi 3 提供有源揚聲器、USB 電源,以及 USB 鍵盤、鼠標、監視器和互聯網連接。在使用安裝套件將 XMOS 板和麥克風陣列連接到 RPi 3 之后,開發人員可以快速評估 Amazon Alexa 語音助理(圖1)。

圖 1: 開發人員使用 XMOS xCORE VocalFusion 套件開始工作,將提供的麥克風陣列板(最左側)和 XMOS 處理器板(中間)插入 Raspberry Pi 3 板(右側)。(圖片來源: XMOS)

將 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 包含八個內核,以提供高性能音頻處理。(圖片來源: XMOS)

該器件專為并行處理任務而構建,包含兩個 xCORE Tile,每個 Tile 包含八個帶集成 I/O 的 32 位 xCORE 內核、256 KB 的 SRAM、8 KB 的一次性可編程(OTP)片上存儲器。xTIME 調度程序管理內核,并觸發來自 I/O 引腳的硬件事件的內核操作。每個內核都可以獨立執行計算、信號處理或控制任務,利用了 xCORE VocalFusion 套件中的集成式 2MB 閃存,以及用于套件設置和執行的代碼和數據。

除了 XVF3000-TQ128 器件之外,XMOS 處理器基板還需要少量的附加組件(圖 3)。除了基本的緩沖器和針座連接外,基板還包括Cirrus LogicCS43L21數模轉換器DAC),用于為外部揚聲器生成輸出音頻。最后,底板還引出了 XVF3000-TQ128 器件 I2C 端口,以及經過音頻優化的 I2S 數字音頻接口。

XMOS 套件的基板包括 XVF3000-TQ128 器件的圖片(單擊放大)

圖 3: XMOS 套件的基板包括 XVF3000-TQ128 器件、DAC、緩沖器,以及用于連接 Raspberry Pi 3 板和外部揚聲器的針座。(圖片來源: XMOS)

該套件的整體功能分為兩個部分:XMOS 板上的音頻處理、RPi 3 上的高級語音處理服務(圖 4)。RPi 的Broadcom四核處理器運行軟件,該軟件用于分析音頻流,進行喚醒詞識別,并且處理與 Amazon AVS 的交互。

圖 4: XMOS VocalFusion 套件將基板和 Raspberry Pi 3 板上的 Alexa 功能分開,前者用于音頻信號處理,后者用于語音識別和更高級別的 Alexa 服務。(圖片來源: XMOS)

軟件安裝過程配置這些子系統并加載所需的軟件包,包括 Sensory 的獨立于揚聲器的喚醒詞引擎,以及 AVS 客戶端軟件等。

AVS 提供了一系列與高級功能(如語音識別、音頻回放和音量控制)相關的接口。操作通過來自 AVS 的消息(指令)和來自客戶端的消息(事件)進行。例如,為了響應某些條件,AVS 可能會向客戶端發送指示,指示客戶端應播放音頻、設置鬧鐘或打開燈光。相反,來自客戶端的事件可通知 AVS 發生了某些事件,例如來自用戶的新語音請求。

開發人員可以使用AVS 器件軟件開發套件(SDK) API 和 C++ 軟件庫來擴展其 XMOS 套件或 XMOS 定制設計的功能。AVS Device SDK 通過一系列單獨的 C++ 類和對象,提取出低級別操作,如音頻輸入處理、通信和 AVS 指令管理,開發人員可以使用或擴展它們,用于定制應用程序(圖 5)。

圖 5: Amazon AVS Device SDK 將 AVS 的廣泛功能組織為單獨的功能區域,每個功能區域都有自己的接口和庫。(圖片來源: AWS)

包含在 AVS Device SDK 中的完整樣例應用程序展示了關鍵設計模式,包括創建設備客戶端和喚醒詞交互管理器(列表 1)除了全套的樣例服務例程之外,該應用還顯示了主程序如何只需要實例化樣例應用程序對象sampleApplication,并使用一個簡單的命令來啟動它:sampleApplication->run().

Copy/*
*CreatingtheDefaultClient-thiscomponentservesasanout-of-boxdefaultobjectthatinstantiatesand"glues"
*togetherallthemodules.
*/
std::shared_ptrclient=
alexaClientSDK::defaultClient::DefaultClient::create(
m_speakMediaPlayer,
m_audioMediaPlayer,
m_alertsMediaPlayer,
speakSpeaker,
audioSpeaker,
alertsSpeaker,
audioFactory,
authDelegate,
alertStorage,
settingsStorage,
{userInterfaceManager},
{connectionObserver,userInterfaceManager});

...

//Ifwakewordisenabled,thencreatingtheinteractionmanagerwithawakewordaudioprovider.
autointeractionManager=std::make_shared(
client,
micWrapper,
userInterfaceManager,
holdToTalkAudioProvider,
tapToTalkAudioProvider,
wakeWordAudioProvider);

...

client->addAlexaDialogStateObserver(interactionManager);

//Creatingtheinputobserver.
m_userInputManager=alexaClientSDK::sampleApp::UserInputManager::create(interactionManager);

...

voidSampleApplication::run(){
m_userInputManager->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 助理應用。(圖片來源:Google)

除了 Seeed Voice HAT 擴展板(圖 6 中的 1)、麥克風板 (2) 和揚聲器 (4) 之外,套件還包括紙板外殼 (8) 和內部框架 (9),以及一些基本組件,包括支座 (3)、電纜(6 和 7)和按鈕 (5)。

開發人員首先將 RPi 3、揚聲器電線、麥克風電纜連接到語音 HAT,然后組裝套件。與 AVS 套件不同,Google 套件提供了一個簡單的外殼和內部框架,用于固定電路板組件和揚聲器(圖 7)。

圖 7: Seeed Google AIY 語音套件包括一個內部紙板框架,開發人員將其折疊成為電路板組件的載體。(圖片來源: Seeed Technology)

框架安裝在支撐按鈕和麥克風陣列的外殼內,完成裝配(圖 8)。

圖 8: 除了固定內部框架和揚聲器之外,Seey Google AIY 語音套件的外殼還包括按鈕和麥克風(看起來像外殼頂部的兩個孔)。(圖片來源: Seeed Technology)

下載語音套件鏡像并將其載入 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 語音套件的硬件功能。(圖片來源: Raspberry Pi)

在軟件方面,開發人員可以使用 Google 的語音套件 API軟件,輕松擴展套件的基準功能。除了支持軟件和實用程序之外,該軟件包還包含樣例應用程序軟件,演示了通過 Google Cloud Speech API 和 Google Assistant SDK 實施語音服務的多種方法。

云語音服務與智能助理方法截然不同,它提供了語音識別功能,將實現特定語音啟動操作的任務留給了程序員。對于只需要語音輸入功能的設計,該服務提供了一個簡單的解決方案。開發人員只需將音頻傳遞到云語音服務,即可將語音轉換為文本,并返回識別的文本,如語音套件 API 中包含的樣例 Python 腳本所示(列表 2)。

Copy...

importaiy.audio
importaiy.cloudspeech
importaiy.voicehat


defmain():
recognizer=aiy.cloudspeech.get_recognizer()
recognizer.expect_phrase('turnoffthelight')
recognizer.expect_phrase('turnonthelight')
recognizer.expect_phrase('blink')

button=aiy.voicehat.get_button()
led=aiy.voicehat.get_led()
aiy.audio.get_recorder().start()

whileTrue:
print('Pressthebuttonandspeak')
button.wait_for_press()
print('Listening...')
text=recognizer.recognize()
ifnottext:
print('Sorry,Ididnothearyou.')
else:
print('Yousaid"',text,'"')
if'turnonthelight'intext:
led.set_state(aiy.voicehat.LED.ON)
elif'turnoffthelight'intext:
led.set_state(aiy.voicehat.LED.OFF)
elif'blink'intext:
led.set_state(aiy.voicehat.LED.BLINK)
elif'goodbye'intext:
break


if__name__=='__main__':
main()

列表 2: 在 Google 語音套件 API 提供的軟件例程中,樣例程序的這個片段演示了如何使用 Google Cloud Speech 服務,將語音轉換為文本,并將實現任何語音指導操作的任務留給了程序員。(列表來源: Google)

對于需要 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)。

Copy...

importaiy.assistant.auth_helpers
importaiy.audio
importaiy.voicehat
fromgoogle.assistant.libraryimportAssistant
fromgoogle.assistant.library.eventimportEventType


defpower_off_pi():
aiy.audio.say('Goodbye!')
subprocess.call('sudoshutdownnow',shell=True)


defreboot_pi():
aiy.audio.say('Seeyouinabit!')
subprocess.call('sudoreboot',shell=True)


defsay_ip():
ip_address=subprocess.check_output("hostname-I|cut-d''-f1",shell=True)
aiy.audio.say('MyIPaddressis%s'%ip_address.decode('utf-8'))


defprocess_event(assistant,event):
status_ui=aiy.voicehat.get_status_ui()
ifevent.type==EventType.ON_START_FINISHED:
status_ui.status('ready')
ifsys.stdout.isatty():
print('Say"OK,Google"thenspeak,orpressCtrl+Ctoquit...')

elifevent.type==EventType.ON_CONVERSATION_TURN_STARTED:
status_ui.status('listening')

elifevent.type==EventType.ON_RECOGNIZING_SPEECH_FINISHEDandevent.args:
print('Yousaid:',event.args['text'])
text=event.args['text'].lower()
iftext=='poweroff':
assistant.stop_conversation()
power_off_pi()
eliftext=='reboot':
assistant.stop_conversation()
reboot_pi()
eliftext=='ipaddress':
assistant.stop_conversation()
say_ip()

elifevent.type==EventType.ON_END_OF_UTTERANCE:
status_ui.status('thinking')

elifevent.type==EventType.ON_CONVERSATION_TURN_FINISHED:
status_ui.status('ready')


defmain():
credentials=aiy.assistant.auth_helpers.get_assistant_credentials()
withAssistant(credentials)asassistant:
foreventinassistant.start():
process_event(assistant,event)


if__name__=='__main__':
main()

列表 3: 如 Google Voice 套件中的樣例所示,使用 Google Assistant Library 的應用程序中的主循環啟動一個助理對象,然后生成一系列事件,由開發人員的代碼處理。(圖片來源: Google)

對于要求更高的定制需求,開發人員可以轉向使用 Google Assistant Service(以前稱為 Google Assistant gRPC API)提供的全套接口。Google Assistant Service 基于 Google RPC(gRPC),讓開發人員能夠將音頻查詢傳送到云端,處理識別的語音文本,并且處理相應的響應。為了實現定制功能,開發人員可以使用各種編程語言(包括 C++、Node.jsJava)來訪問 Google Assistant Service API。

在將 Google Assistant SDK 用于自己的設計時,設計人員可以使用 Google 的器件匹配功能,實現特定于硬件的功能。作為器件設置的一部分,開發人員提供關于定制器件的信息,包括功能和特性,稱為特質。對于涉及到定制器件的用戶語音請求,服務會識別器件的有效特質,并為器件生成適當的響應(圖 10)。開發人員只需在器件的事件處理程序中包括與器件特質相關的對應代碼(例如列表 3 中的def power_off_pi())。

圖 10: Google Assistant SDK 使用自動語音識別 (ASR) 和自然語言處理 (NLP) 服務,將用戶請求與特定設備進行匹配,并發出與定制設備及其認可特質一致的響應。(圖片來源: Google)

總結

過去,智能語音助理在很大程度上是主流開發人員無法實現的。隨著兩個現成套件的推出,開發人員可以在定制設計中快速實施 Amazon Alexa 和 Google 助理。每個套件都允許開發人員在基本原型中快速調用相應的智能助理,或者使用定制的硬件和軟件來擴展設計。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • XMOS
    +關注

    關注

    6

    文章

    27

    瀏覽量

    43055
  • Amazon
    +關注

    關注

    1

    文章

    115

    瀏覽量

    17062
  • Alexa
    +關注

    關注

    2

    文章

    193

    瀏覽量

    23152
收藏 人收藏

    評論

    相關推薦

    Google Cloud推出基于Arm Neoverse V2定制Google Axion處理器

    Arm Neoverse 平臺已成為云服務提供商優化其從芯片到軟件全棧的心儀之選。近日,Google Cloud 推出了基于 Arm Neoverse V2 打造的定制 Google Axion 處理器,面向通用計算和人工智能
    的頭像 發表于 04-16 14:30 ?293次閱讀

    谷景教你如何快速辨別儲能磁環電感的質量好壞

    谷景教你如何快速辨別儲能磁環電感的質量好壞 編輯:谷景電子 儲能磁環電感是電路中特別普遍的電感元件之一,它對于電路運行的穩定性有著特別重要的影響。所以,我們在實際使用中怎樣來快速辨別儲能磁環電感
    的頭像 發表于 03-19 22:32 ?73次閱讀

    華曦達北交所IPO丨多重優勢賦能,快速響應客戶定制化需求

    近日,深圳市華曦達科技股份有限公司(董事長:李波)在北交所更新IPO上市申請審核動態,該公司已回復第二輪審核問詢函。在回復中,華曦達明確回答了“如何快速響應客戶的定制化需求”等相關問題。 ? 科學
    的頭像 發表于 12-21 11:39 ?321次閱讀
    華曦達北交所IPO丨多重優勢賦能,<b class='flag-5'>快速</b>響應客戶<b class='flag-5'>定制</b>化需求

    負壓脈沖高?教你3招制伏

    負壓脈沖高?教你3招制伏
    的頭像 發表于 12-15 16:50 ?247次閱讀
    負壓脈沖高?<b class='flag-5'>教你</b>3招制伏

    教你幾種電路分析的高效方法

    教你幾種電路分析的高效方法
    的頭像 發表于 12-15 09:16 ?475次閱讀
    <b class='flag-5'>教你</b>幾種電路分析的高效方法

    哪些晶體、諧振器和振蕩器可旋轉180°使用?一招兒教你快速識別

    哪些晶體、諧振器和振蕩器可旋轉180°使用?一招兒教你快速識別
    的頭像 發表于 12-05 16:37 ?200次閱讀
    哪些晶體、諧振器和振蕩器可旋轉180°使用?一招兒<b class='flag-5'>教你</b><b class='flag-5'>快速</b>識別

    大電流磁棒電感廠家教你如何快速識別電感好壞

    大電流磁棒電感廠家教你如何快速識別電感好壞 編輯:谷景電子 大電流磁棒電感線圈是一種在電子產品中應用非常廣泛的一類電感產品,大家都在討論是否有什么辦法能夠比較快速的識別它的好壞?要嚴謹的確認一款電感
    的頭像 發表于 11-06 14:41 ?202次閱讀

    App CAD設計助理

    電子發燒友網站提供《App CAD設計助理.exe》資料免費下載
    發表于 07-26 15:04 ?0次下載
    App CAD設計<b class='flag-5'>助理</b>

    定制快速芯片ASIC可實現高達9GHz的射頻功能

    ADI公司有兩種不同的HF ASIC開發方法:半定制QuickChip設計方法和更傳統的全定制設計方法。下面將討論半定制設計方法,為開發客戶設計的RF ASIC提供了一種低成本、快速
    的頭像 發表于 06-26 17:47 ?503次閱讀
    半<b class='flag-5'>定制</b><b class='flag-5'>快速</b>芯片ASIC可實現高達9GHz的射頻功能

    家庭助理的房間監視器

    電子發燒友網站提供《家庭助理的房間監視器.zip》資料免費下載
    發表于 06-19 11:05 ?0次下載
    家庭<b class='flag-5'>助理</b>的房間監視器

    將數據發送到Google表格時出錯怎么解決?

    我已經按照教程將數據從 NodeMcu 加載到 Google 表格 Google 表格并且腳本編輯器工作正常 NodeMcu 代碼拋出錯誤: Temp = 19.50 HUM = 62.80
    發表于 06-05 10:08

    如何使用Google Maps API進行自我定位?

    從使用 Google Maps API 的 ESP 自我定位的簡單概念驗證實施開始。如果掃描本地可見的 SSID,則將請求格式化為 Google Maps Web Service 并接收其當前位置
    發表于 05-23 08:25

    Google Drive推薦的圖像尺寸是多少?

    發布圖片時我看到的都是;未登錄時,是一個小圖標,圖標旁邊帶有“圖像”。 嘗試過使用 Google Drive 托管圖片;登錄或未登錄均無效。另外,嘗試過附加文件,然后復制鏈接地址并在圖像標簽之間粘貼我也嘗試過調整圖像大小。 包含圖像的過程是什么?推薦的圖像尺寸是多少?
    發表于 05-11 08:11

    Esight|類比ChatGPT的AI助理

    為了更好的服務于研發工程師,配套的上位機工具Esight集成了ChatGPT【AI助理】的功能,它可以協助研發工程師進行器件選型、知識學習、代碼編寫及內容創作等很多協助應用。
    的頭像 發表于 05-10 13:31 ?331次閱讀
    Esight|類比ChatGPT的AI<b class='flag-5'>助理</b>
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>