資料介紹
描述
這個(gè)項(xiàng)目的目標(biāo)是創(chuàng)建一個(gè)保護(hù)隱私的語(yǔ)音助手來(lái)控制我的物聯(lián)網(wǎng)設(shè)備,即我的燈和電視。自從我發(fā)現(xiàn)即使是我的智能燈也一直試圖與中國(guó)的服務(wù)器通信以發(fā)揮作用,我決定盡量將我的數(shù)據(jù)保存在本地。我建立了一個(gè)基于家庭助理的服務(wù)器來(lái)本地控制所??有這些設(shè)備,并為語(yǔ)音助理提供一個(gè)界面。因此,語(yǔ)音助手本身會(huì)在被喚醒詞喚醒后將一些語(yǔ)音片段轉(zhuǎn)錄為文本,然后通過 MQTT 將轉(zhuǎn)錄內(nèi)容發(fā)送到服務(wù)器,由我的基本意圖引擎解析,之后服務(wù)器會(huì)將預(yù)期的命令發(fā)送給我的設(shè)備。語(yǔ)音助手本身是完全獨(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è)無(wú)限循環(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í)無(wú)線連接的無(wú)憂解決方案。為 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)目來(lái)處理它。
聽喚醒詞
對(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í)需要訪問密鑰。接下來(lái),我們需要在 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)為零,并且無(wú)法充分利用他們的 SDK。給定的演示文件被設(shè)計(jì)為從命令行調(diào)用,并運(yùn)行啟動(dòng)指令檢測(cè)的無(wú)限循環(huán),檢測(cè)時(shí)僅返回“檢測(cè)到啟動(dòng)指令”。我修改了演示文件,改為在檢測(cè)到啟動(dòng)指令后退出,并從 python 腳本(實(shí)際上稱為名為 wakeword 程序的 bash 腳本)調(diào)用它。此腳本僅在喚醒詞程序結(jié)束后才會(huì)繼續(xù),因此這是一個(gè)功能齊全的解決方法,可避免不熟悉 C 語(yǔ)言編程。
要獲得演示功能,需要使用 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 集成來(lái)盡可能輕松地完成此操作。
為了從 python 發(fā)送命令,我使用了 paho-mqtt 庫(kù)。
解析命令和執(zhí)行功能
為了理解發(fā)送的命令,我編寫了一個(gè)基本的意圖引擎。對(duì)于每個(gè)語(yǔ)句,引擎都會(huì)嘗試識(shí)別一個(gè)實(shí)體(在我的房間中,燈 1、3 或 3 中的一個(gè),電視,或像整個(gè)房間這樣的自定義組)。然后,它會(huì)嘗試識(shí)別意圖。這就像打開,變紅或變亮。它通過檢查命令字符串并查看它是否包含實(shí)體關(guān)鍵字以及查看它是否包含意圖關(guān)鍵字來(lái)執(zhí)行此操作。因此,就引擎確認(rèn)而言,命令“打開電視”和“打開電視”在功能上是相同的。默認(rèn)情況下,如果沒有找到實(shí)體或意圖,則將實(shí)體設(shè)置為整個(gè)房間,并將意圖設(shè)置為將它們變?yōu)榘咨?/font>
為了實(shí)現(xiàn)它,我使用了 Node-RED,它是 Home Assistant 中的一個(gè)集成,允許使用 javascript 程序來(lái)執(zhí)行功能。下圖顯示了程序的流程,左側(cè)有一個(gè) MQTT 輸入,進(jìn)入一個(gè)實(shí)體標(biāo)識(shí)符,然后根據(jù)實(shí)體是燈還是電視拆分為意圖類型。
這是 parsed 命令的可選用法 - MQTT 可以以您認(rèn)為合適的任何方式使用。
![poYBAGNYfpOAYifLAAF_OPGwDR4156.jpg](https://file.elecfans.com/web2/M00/73/4A/poYBAGNYfpOAYifLAAF_OPGwDR4156.jpg)
用法
使用系統(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 的語(yǔ)音識(shí)別的一個(gè)怪癖是語(yǔ)音到文本系統(tǒng)傾向于尋找有意義的完整短語(yǔ)。因此,像“淺紫色”之類的東西可能對(duì) AI 沒有意義,它可能會(huì)返回一些沒有意義的荒謬解釋,并且由于上述默認(rèn)設(shè)置,您將觸發(fā)“房間白色”結(jié)果。因此,更像“把燈變成紫色”的短語(yǔ)將有更高的機(jī)會(huì)被正確識(shí)別。然而,在我的測(cè)試中,如果你說得清楚并且對(duì)你的陳述很聰明,那么系統(tǒng)的反應(yīng)方式是非常好的。
系統(tǒng)接線
這主要是一個(gè)編碼項(xiàng)目,涉及許多 hacky 腳本。但是,下圖顯示了 PocketBeagle 的接線設(shè)置。
![poYBAGNYfpiAfg0lAAa--W7Z74w824.jpg](https://file.elecfans.com/web2/M00/73/4A/poYBAGNYfpiAfg0lAAa--W7Z74w824.jpg)
未來(lái)目標(biāo)
將來(lái),我打算擴(kuò)展系統(tǒng)的功能。就目前而言,Dexter 不會(huì)回復(fù)你,也不能在一個(gè)語(yǔ)句中執(zhí)行多個(gè)命令。這兩個(gè)都是我很快就會(huì)做的事情。
- 基于Realtek的智能語(yǔ)音服務(wù)解決方案
- 谷歌助手LED控制開源分享
- Office M5堆棧助手開源
- 園藝助手開源硬件
- 使用Alexa語(yǔ)音助手制作IOTA支付系統(tǒng)來(lái)收款
- GRIPP3R助手機(jī)器人開源分享
- 語(yǔ)音控制界面實(shí)驗(yàn)開源分享
- 通過谷歌助手語(yǔ)音控制來(lái)控制燈光
- 停車傳感器助手開源分享
- 限客店門助手V3(物聯(lián)網(wǎng)版)開源 0次下載
- 節(jié)能和語(yǔ)音可控的LED開源分享
- 串口調(diào)試助手V2.2軟件程序下載 47次下載
- 串口調(diào)試助手V2.80軟件下載 102次下載
- 蘋果ios藍(lán)牙調(diào)試助手工具源代碼下載 7次下載
- 網(wǎng)絡(luò)調(diào)試助手
- 基于Arm Neoverse N2實(shí)現(xiàn)自動(dòng)語(yǔ)音識(shí)別技術(shù) 397次閱讀
- 下一代語(yǔ)音輔助解決方案 898次閱讀
- 自動(dòng)語(yǔ)音識(shí)別技術(shù)基本指南 2027次閱讀
- 使用NVIDIA Riva構(gòu)建語(yǔ)音支持的人工智能虛擬助手 1424次閱讀
- 樂鑫語(yǔ)音助手框架ESP-Skainet的中文語(yǔ)音合成例程 2334次閱讀
- dfrobot語(yǔ)音識(shí)別控制板 介紹 3202次閱讀
- 智能語(yǔ)音助手的原理_預(yù)測(cè)智能語(yǔ)音助手的未來(lái) 2.1w次閱讀
- 語(yǔ)音助手哪個(gè)好用點(diǎn)?五款好用的手機(jī)語(yǔ)音助手評(píng)測(cè) 13w次閱讀
- 蘋果Siri深度學(xué)習(xí)語(yǔ)音合成技術(shù)揭秘 3418次閱讀
- 友善串口調(diào)試助手怎么使用及使用方法說明 12.7w次閱讀
- 獨(dú)立聲卡是什么_獨(dú)立聲卡起什么作用_獨(dú)立聲卡怎么安裝 3.8w次閱讀
- “語(yǔ)音助手”如何運(yùn)行在手機(jī)上的? 8968次閱讀
- 智能語(yǔ)音交互是怎么實(shí)現(xiàn)交互流程中的輸入輸出呢? 1.2w次閱讀
- 詳細(xì)解析WORLD語(yǔ)音合成系統(tǒng)的原理以及使用方法 1.6w次閱讀
- 智能語(yǔ)音助手將成為智能家居用戶入口 2753次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論