資料介紹
描述
這個(gè)項(xiàng)目的目標(biāo)是創(chuàng)建一個(gè)保護(hù)隱私的語音助手來控制我的物聯(lián)網(wǎng)設(shè)備,即我的燈和電視。自從我發(fā)現(xiàn)即使是我的智能燈也一直試圖與中國(guó)的服務(wù)器通信以發(fā)揮作用,我決定盡量將我的數(shù)據(jù)保存在本地。我建立了一個(gè)基于家庭助理的服務(wù)器來本地控制所??有這些設(shè)備,并為語音助理提供一個(gè)界面。因此,語音助手本身會(huì)在被喚醒詞喚醒后將一些語音片段轉(zhuǎn)錄為文本,然后通過 MQTT 將轉(zhuǎn)錄內(nèi)容發(fā)送到服務(wù)器,由我的基本意圖引擎解析,之后服務(wù)器會(huì)將預(yù)期的命令發(fā)送給我的設(shè)備。語音助手本身是完全獨(dú)立的,不需要與任何其他計(jì)算機(jī)持續(xù)連接即可運(yùn)行。
Dexter 的工作流程中有很多步驟——我將通過每一步解釋我為使它們發(fā)揮作用所做的工作。
工作流程:
1. 使用永遠(yuǎn)在線的程序監(jiān)聽喚醒詞
2. 監(jiān)聽命令并轉(zhuǎn)錄
3. 將命令發(fā)送到本地服務(wù)器進(jìn)行處理
4. 解析命令并執(zhí)行所需功能
我的主程序是一個(gè) python 腳本——它運(yùn)行一個(gè)無限循環(huán),通過腳本調(diào)用喚醒詞檢測(cè)程序,并在檢測(cè)到喚醒詞時(shí)移動(dòng)以收集音頻,最后轉(zhuǎn)錄并將該命令發(fā)送到我的服務(wù)器。然后,循環(huán)再次開始,并調(diào)用喚醒詞檢測(cè)程序。
為了使設(shè)備正常工作,我首先需要將其連接到 wifi,并
在啟動(dòng)時(shí)連接。我最初嘗試使用 cron 作業(yè)并使用 wpa_supplicant,但 cron 作業(yè)不可靠。相反,network-manager 是即時(shí)無線連接的無憂解決方案。為 Pocketbeagle 分配一個(gè)靜態(tài)本地 IP 意味著我也可以始終通過 SSH 訪問它以使用命令行,或者簡(jiǎn)單地使用 Web 瀏覽器連接到 cloud9 IDE。一個(gè)
順便說一句 - 如果您嘗試復(fù)制它,請(qǐng)不要使用任何基于 RealTek 芯片組的 WiFi 卡。安裝一些社區(qū)編譯的驅(qū)動(dòng)程序以使其正常運(yùn)行是非常痛苦的。謝天謝地,我最終找到了這個(gè) GitHub 項(xiàng)目來處理它。
聽喚醒詞
對(duì)于設(shè)備上的喚醒詞檢測(cè),我使用的是 Porcupine,這是一個(gè)非常輕量級(jí)的程序,也設(shè)計(jì)用于在 BeagleBone 設(shè)備上運(yùn)行。首先,我們需要在picovoice.ai上創(chuàng)建一個(gè)帳戶(不用擔(dān)心,它是免費(fèi)供個(gè)人使用的)以獲得訪問密鑰。雖然 Porcupine 是完全本地的,但它在初始化時(shí)確實(shí)需要訪問密鑰。接下來,我們需要在 picovoice 控制臺(tái)上為我們選擇的喚醒詞訓(xùn)練一個(gè)模型。Dexter 是喚醒詞的絕佳選擇,因?yàn)樗话R姷穆曇?,換句話說,減少了誤報(bào)的機(jī)會(huì)。出于這個(gè)原因,Dexter(甚至 Alexa)中的“x”非常有用。
立刻,這個(gè)項(xiàng)目變得相當(dāng) hacky——Porcupine 的 python 實(shí)現(xiàn)在 PocketBeagle 上遇到了重大問題,在我放棄之前拋出了各種錯(cuò)誤。相反,我嘗試了 C 實(shí)現(xiàn),并且能夠讓他們的命令行演示工作。但是,我使用 C 的經(jīng)驗(yàn)為零,并且無法充分利用他們的 SDK。給定的演示文件被設(shè)計(jì)為從命令行調(diào)用,并運(yùn)行啟動(dòng)指令檢測(cè)的無限循環(huán),檢測(cè)時(shí)僅返回“檢測(cè)到啟動(dòng)指令”。我修改了演示文件,改為在檢測(cè)到啟動(dòng)指令后退出,并從 python 腳本(實(shí)際上稱為名為 wakeword 程序的 bash 腳本)調(diào)用它。此腳本僅在喚醒詞程序結(jié)束后才會(huì)繼續(xù),因此這是一個(gè)功能齊全的解決方法,可避免不熟悉 C 語言編程。
要獲得演示功能,需要使用 cmake 對(duì)其進(jìn)行編譯,并識(shí)別功能麥克風(fēng),可以在他們的github 頁(yè)面上找到更多說明。
聽命令并轉(zhuǎn)錄
這里的子工作流程相當(dāng)簡(jiǎn)單——調(diào)用 3s 的 arecord 流程創(chuàng)建一個(gè) .wav 文件,然后上傳該 .wav 文件以供 IBM Watson 處理。與 Porcupine 類似,IBM 也需要一個(gè)帳戶和一個(gè)訪問密鑰。有關(guān)如何設(shè)置的更多說明可以在他們的網(wǎng)站上找到。我的麥克風(fēng)帽以 44100 Hz 錄制音頻,這是傳遞給 arecord 的調(diào)用的重要參數(shù),這是通過一個(gè)簡(jiǎn)單的腳本調(diào)用完成的。
在音頻文件被記錄并存儲(chǔ)在 PocketBeagle 上之后,另一個(gè) python 程序使用他們的 ibm-watson api 將其上傳到 IBM,并等待接收轉(zhuǎn)錄。
向本地服務(wù)器發(fā)送命令
一旦命令被轉(zhuǎn)換為文本,系統(tǒng)就會(huì)通過 MQTT 協(xié)議向本地服務(wù)器發(fā)送一條消息。我已經(jīng)為服務(wù)器分配了一個(gè)靜態(tài)本地 IP,并使用 Mosquitto 設(shè)置了一個(gè) MQTT 代理服務(wù)。我不打算解釋如何設(shè)置它,因?yàn)橛泻芏噘Y源。我使用 Mosquitto 的 Home Assistant 集成來盡可能輕松地完成此操作。
為了從 python 發(fā)送命令,我使用了 paho-mqtt 庫(kù)。
解析命令和執(zhí)行功能
為了理解發(fā)送的命令,我編寫了一個(gè)基本的意圖引擎。對(duì)于每個(gè)語句,引擎都會(huì)嘗試識(shí)別一個(gè)實(shí)體(在我的房間中,燈 1、3 或 3 中的一個(gè),電視,或像整個(gè)房間這樣的自定義組)。然后,它會(huì)嘗試識(shí)別意圖。這就像打開,變紅或變亮。它通過檢查命令字符串并查看它是否包含實(shí)體關(guān)鍵字以及查看它是否包含意圖關(guān)鍵字來執(zhí)行此操作。因此,就引擎確認(rèn)而言,命令“打開電視”和“打開電視”在功能上是相同的。默認(rèn)情況下,如果沒有找到實(shí)體或意圖,則將實(shí)體設(shè)置為整個(gè)房間,并將意圖設(shè)置為將它們變?yōu)榘咨?/font>
為了實(shí)現(xiàn)它,我使用了 Node-RED,它是 Home Assistant 中的一個(gè)集成,允許使用 javascript 程序來執(zhí)行功能。下圖顯示了程序的流程,左側(cè)有一個(gè) MQTT 輸入,進(jìn)入一個(gè)實(shí)體標(biāo)識(shí)符,然后根據(jù)實(shí)體是燈還是電視拆分為意圖類型。
這是 parsed 命令的可選用法 - MQTT 可以以您認(rèn)為合適的任何方式使用。

用法
使用系統(tǒng)很簡(jiǎn)單——系統(tǒng)啟動(dòng)后,您可以通過瀏覽器登錄 IDE,或使用 PuTTY SSH 進(jìn)入終端。然后,運(yùn)行RunDexter.sh腳本將 Dexter 啟動(dòng)到永久的活躍狀態(tài)。說“Dexter”將激活錄音,由綠色 LED 指示。然后,您將有三秒鐘的時(shí)間發(fā)出命令,之后綠色 LED 將熄滅,表示錄制完成。然后,此記錄會(huì)在后臺(tái)上傳到 IBM,系統(tǒng)會(huì)負(fù)責(zé)其余的工作,按照您的命令執(zhí)行命令。
使用像 IBM 這樣的基于 AI 的語音識(shí)別的一個(gè)怪癖是語音到文本系統(tǒng)傾向于尋找有意義的完整短語。因此,像“淺紫色”之類的東西可能對(duì) AI 沒有意義,它可能會(huì)返回一些沒有意義的荒謬解釋,并且由于上述默認(rèn)設(shè)置,您將觸發(fā)“房間白色”結(jié)果。因此,更像“把燈變成紫色”的短語將有更高的機(jī)會(huì)被正確識(shí)別。然而,在我的測(cè)試中,如果你說得清楚并且對(duì)你的陳述很聰明,那么系統(tǒng)的反應(yīng)方式是非常好的。
系統(tǒng)接線
這主要是一個(gè)編碼項(xiàng)目,涉及許多 hacky 腳本。但是,下圖顯示了 PocketBeagle 的接線設(shè)置。

未來目標(biāo)
將來,我打算擴(kuò)展系統(tǒng)的功能。就目前而言,Dexter 不會(huì)回復(fù)你,也不能在一個(gè)語句中執(zhí)行多個(gè)命令。這兩個(gè)都是我很快就會(huì)做的事情。
- 谷歌助手LED控制開源分享
- Office M5堆棧助手開源
- 園藝助手開源硬件
- 使用Alexa語音助手制作IOTA支付系統(tǒng)來收款
- GRIPP3R助手機(jī)器人開源分享
- 語音控制界面實(shí)驗(yàn)開源分享
- 通過谷歌助手語音控制來控制燈光
- 停車傳感器助手開源分享
- 限客店門助手V3(物聯(lián)網(wǎng)版)開源 0次下載
- 節(jié)能和語音可控的LED開源分享
- 串口調(diào)試助手V2.2軟件程序下載 48次下載
- 串口調(diào)試助手V2.80軟件下載 103次下載
- 蘋果ios藍(lán)牙調(diào)試助手工具源代碼下載 7次下載
- 網(wǎng)絡(luò)調(diào)試助手
- Windows 10 VR的Inside-out空間定位系統(tǒng)和Cortana語音助手等四方面技術(shù)的介紹 8次下載
- 基于開源鴻蒙的語音識(shí)別及語音合成應(yīng)用開發(fā)樣例 3.8k次閱讀
- 智能家庭愛好者必看:樹莓派語音助手打造指南! 857次閱讀
- 基于Arm Neoverse N2實(shí)現(xiàn)自動(dòng)語音識(shí)別技術(shù) 1.8k次閱讀
- 下一代語音輔助解決方案 1.6k次閱讀
- 自動(dòng)語音識(shí)別技術(shù)基本指南 2.9k次閱讀
- 使用NVIDIA Riva構(gòu)建語音支持的人工智能虛擬助手 2k次閱讀
- 樂鑫語音助手框架ESP-Skainet的中文語音合成例程 3.3k次閱讀
- 智能語音助手的原理_預(yù)測(cè)智能語音助手的未來 2.3w次閱讀
- 語音助手哪個(gè)好用點(diǎn)?五款好用的手機(jī)語音助手評(píng)測(cè) 13.3w次閱讀
- 蘋果Siri深度學(xué)習(xí)語音合成技術(shù)揭秘 4.2k次閱讀
- 友善串口調(diào)試助手怎么使用及使用方法說明 13w次閱讀
- 獨(dú)立聲卡是什么_獨(dú)立聲卡起什么作用_獨(dú)立聲卡怎么安裝 3.9w次閱讀
- “語音助手”如何運(yùn)行在手機(jī)上的? 1w次閱讀
- 智能語音交互是怎么實(shí)現(xiàn)交互流程中的輸入輸出呢? 1.3w次閱讀
- 智能語音助手將成為智能家居用戶入口 3.2k次閱讀
下載排行
本周
- 1新一代網(wǎng)絡(luò)可視化(NPB 2.0)
- 3.40 MB | 1次下載 | 免費(fèi)
- 2冷柜-電氣控制系統(tǒng)講解
- 13.68 MB | 1次下載 | 10 積分
- 3MDD品牌三極管MMBT3906數(shù)據(jù)手冊(cè)
- 2.33 MB | 次下載 | 免費(fèi)
- 4MDD品牌三極管S9012數(shù)據(jù)手冊(cè)
- 2.62 MB | 次下載 | 免費(fèi)
- 5LAT1218 如何選擇和設(shè)置外部晶體適配 BlueNRG-X
- 0.60 MB | 次下載 | 3 積分
- 6LAT1216 Blue NRG-1/2 系列芯片 Flash 操作與 BLE 事件的互斥處理
- 0.89 MB | 次下載 | 3 積分
- 7收音環(huán)繞擴(kuò)音機(jī) AVR-1507手冊(cè)
- 2.50 MB | 次下載 | 免費(fèi)
- 8MS1000TA 超聲波測(cè)量模擬前端芯片技術(shù)手冊(cè)
- 0.60 MB | 次下載 | 免費(fèi)
本月
- 1愛華AIWA HS-J202維修手冊(cè)
- 3.34 MB | 37次下載 | 免費(fèi)
- 2PC5502負(fù)載均流控制電路數(shù)據(jù)手冊(cè)
- 1.63 MB | 23次下載 | 免費(fèi)
- 3NB-IoT芯片廠商的資料說明
- 0.31 MB | 22次下載 | 1 積分
- 4UWB653Pro USB口測(cè)距通信定位模塊規(guī)格書
- 838.47 KB | 5次下載 | 免費(fèi)
- 5蘇泊爾DCL6907(即CHK-S007)單芯片電磁爐原理圖資料
- 0.04 MB | 4次下載 | 1 積分
- 6蘇泊爾DCL6909(即CHK-S009)單芯片電磁爐原理圖資料
- 0.08 MB | 2次下載 | 1 積分
- 7100W準(zhǔn)諧振反激式恒流電源電路圖資料
- 0.09 MB | 2次下載 | 1 積分
- 8FS8025B USB的PD和OC快充協(xié)議電壓誘騙控制器IC技術(shù)手冊(cè)
- 1.81 MB | 1次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191439次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183353次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81602次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73822次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問
發(fā)資料
發(fā)視頻
上傳資料賺積分
評(píng)論