資料介紹
描述
這個項目的目標是創(chuàng)建一個保護隱私的語音助手來控制我的物聯(lián)網(wǎng)設備,即我的燈和電視。自從我發(fā)現(xiàn)即使是我的智能燈也一直試圖與中國的服務器通信以發(fā)揮作用,我決定盡量將我的數(shù)據(jù)保存在本地。我建立了一個基于家庭助理的服務器來本地控制所??有這些設備,并為語音助理提供一個界面。因此,語音助手本身會在被喚醒詞喚醒后將一些語音片段轉(zhuǎn)錄為文本,然后通過 MQTT 將轉(zhuǎn)錄內(nèi)容發(fā)送到服務器,由我的基本意圖引擎解析,之后服務器會將預期的命令發(fā)送給我的設備。語音助手本身是完全獨立的,不需要與任何其他計算機持續(xù)連接即可運行。
Dexter 的工作流程中有很多步驟——我將通過每一步解釋我為使它們發(fā)揮作用所做的工作。
工作流程:
1. 使用永遠在線的程序監(jiān)聽喚醒詞
2. 監(jiān)聽命令并轉(zhuǎn)錄
3. 將命令發(fā)送到本地服務器進行處理
4. 解析命令并執(zhí)行所需功能
我的主程序是一個 python 腳本——它運行一個無限循環(huán),通過腳本調(diào)用喚醒詞檢測程序,并在檢測到喚醒詞時移動以收集音頻,最后轉(zhuǎn)錄并將該命令發(fā)送到我的服務器。然后,循環(huán)再次開始,并調(diào)用喚醒詞檢測程序。
為了使設備正常工作,我首先需要將其連接到 wifi,并
在啟動時連接。我最初嘗試使用 cron 作業(yè)并使用 wpa_supplicant,但 cron 作業(yè)不可靠。相反,network-manager 是即時無線連接的無憂解決方案。為 Pocketbeagle 分配一個靜態(tài)本地 IP 意味著我也可以始終通過 SSH 訪問它以使用命令行,或者簡單地使用 Web 瀏覽器連接到 cloud9 IDE。一個
順便說一句 - 如果您嘗試復制它,請不要使用任何基于 RealTek 芯片組的 WiFi 卡。安裝一些社區(qū)編譯的驅(qū)動程序以使其正常運行是非常痛苦的。謝天謝地,我最終找到了這個 GitHub 項目來處理它。
聽喚醒詞
對于設備上的喚醒詞檢測,我使用的是 Porcupine,這是一個非常輕量級的程序,也設計用于在 BeagleBone 設備上運行。首先,我們需要在picovoice.ai上創(chuàng)建一個帳戶(不用擔心,它是免費供個人使用的)以獲得訪問密鑰。雖然 Porcupine 是完全本地的,但它在初始化時確實需要訪問密鑰。接下來,我們需要在 picovoice 控制臺上為我們選擇的喚醒詞訓練一個模型。Dexter 是喚醒詞的絕佳選擇,因為它不包含常見的聲音,換句話說,減少了誤報的機會。出于這個原因,Dexter(甚至 Alexa)中的“x”非常有用。
立刻,這個項目變得相當 hacky——Porcupine 的 python 實現(xiàn)在 PocketBeagle 上遇到了重大問題,在我放棄之前拋出了各種錯誤。相反,我嘗試了 C 實現(xiàn),并且能夠讓他們的命令行演示工作。但是,我使用 C 的經(jīng)驗為零,并且無法充分利用他們的 SDK。給定的演示文件被設計為從命令行調(diào)用,并運行啟動指令檢測的無限循環(huán),檢測時僅返回“檢測到啟動指令”。我修改了演示文件,改為在檢測到啟動指令后退出,并從 python 腳本(實際上稱為名為 wakeword 程序的 bash 腳本)調(diào)用它。此腳本僅在喚醒詞程序結(jié)束后才會繼續(xù),因此這是一個功能齊全的解決方法,可避免不熟悉 C 語言編程。
要獲得演示功能,需要使用 cmake 對其進行編譯,并識別功能麥克風,可以在他們的github 頁面上找到更多說明。
聽命令并轉(zhuǎn)錄
這里的子工作流程相當簡單——調(diào)用 3s 的 arecord 流程創(chuàng)建一個 .wav 文件,然后上傳該 .wav 文件以供 IBM Watson 處理。與 Porcupine 類似,IBM 也需要一個帳戶和一個訪問密鑰。有關(guān)如何設置的更多說明可以在他們的網(wǎng)站上找到。我的麥克風帽以 44100 Hz 錄制音頻,這是傳遞給 arecord 的調(diào)用的重要參數(shù),這是通過一個簡單的腳本調(diào)用完成的。
在音頻文件被記錄并存儲在 PocketBeagle 上之后,另一個 python 程序使用他們的 ibm-watson api 將其上傳到 IBM,并等待接收轉(zhuǎn)錄。
向本地服務器發(fā)送命令
一旦命令被轉(zhuǎn)換為文本,系統(tǒng)就會通過 MQTT 協(xié)議向本地服務器發(fā)送一條消息。我已經(jīng)為服務器分配了一個靜態(tài)本地 IP,并使用 Mosquitto 設置了一個 MQTT 代理服務。我不打算解釋如何設置它,因為有很多資源。我使用 Mosquitto 的 Home Assistant 集成來盡可能輕松地完成此操作。
為了從 python 發(fā)送命令,我使用了 paho-mqtt 庫。
解析命令和執(zhí)行功能
為了理解發(fā)送的命令,我編寫了一個基本的意圖引擎。對于每個語句,引擎都會嘗試識別一個實體(在我的房間中,燈 1、3 或 3 中的一個,電視,或像整個房間這樣的自定義組)。然后,它會嘗試識別意圖。這就像打開,變紅或變亮。它通過檢查命令字符串并查看它是否包含實體關(guān)鍵字以及查看它是否包含意圖關(guān)鍵字來執(zhí)行此操作。因此,就引擎確認而言,命令“打開電視”和“打開電視”在功能上是相同的。默認情況下,如果沒有找到實體或意圖,則將實體設置為整個房間,并將意圖設置為將它們變?yōu)榘咨?/font>
為了實現(xiàn)它,我使用了 Node-RED,它是 Home Assistant 中的一個集成,允許使用 javascript 程序來執(zhí)行功能。下圖顯示了程序的流程,左側(cè)有一個 MQTT 輸入,進入一個實體標識符,然后根據(jù)實體是燈還是電視拆分為意圖類型。
這是 parsed 命令的可選用法 - MQTT 可以以您認為合適的任何方式使用。
用法
使用系統(tǒng)很簡單——系統(tǒng)啟動后,您可以通過瀏覽器登錄 IDE,或使用 PuTTY SSH 進入終端。然后,運行RunDexter.sh腳本將 Dexter 啟動到永久的活躍狀態(tài)。說“Dexter”將激活錄音,由綠色 LED 指示。然后,您將有三秒鐘的時間發(fā)出命令,之后綠色 LED 將熄滅,表示錄制完成。然后,此記錄會在后臺上傳到 IBM,系統(tǒng)會負責其余的工作,按照您的命令執(zhí)行命令。
使用像 IBM 這樣的基于 AI 的語音識別的一個怪癖是語音到文本系統(tǒng)傾向于尋找有意義的完整短語。因此,像“淺紫色”之類的東西可能對 AI 沒有意義,它可能會返回一些沒有意義的荒謬解釋,并且由于上述默認設置,您將觸發(fā)“房間白色”結(jié)果。因此,更像“把燈變成紫色”的短語將有更高的機會被正確識別。然而,在我的測試中,如果你說得清楚并且對你的陳述很聰明,那么系統(tǒng)的反應方式是非常好的。
系統(tǒng)接線
這主要是一個編碼項目,涉及許多 hacky 腳本。但是,下圖顯示了 PocketBeagle 的接線設置。
未來目標
將來,我打算擴展系統(tǒng)的功能。就目前而言,Dexter 不會回復你,也不能在一個語句中執(zhí)行多個命令。這兩個都是我很快就會做的事情。
- 谷歌助手LED控制開源分享
- Office M5堆棧助手開源
- 園藝助手開源硬件
- 使用Alexa語音助手制作IOTA支付系統(tǒng)來收款
- GRIPP3R助手機器人開源分享
- 語音控制界面實驗開源分享
- 通過谷歌助手語音控制來控制燈光
- 停車傳感器助手開源分享
- 限客店門助手V3(物聯(lián)網(wǎng)版)開源 0次下載
- 節(jié)能和語音可控的LED開源分享
- 串口調(diào)試助手V2.2軟件程序下載 47次下載
- 串口調(diào)試助手V2.80軟件下載 102次下載
- 安卓系統(tǒng)藍牙調(diào)試助手工具源代碼下載 8次下載
- 蘋果ios藍牙調(diào)試助手工具源代碼下載 7次下載
- 網(wǎng)絡調(diào)試助手
- 電機控制調(diào)試助手怎么用 747次閱讀
- 下一代語音輔助解決方案 747次閱讀
- 自動語音識別技術(shù)基本指南 1834次閱讀
- 使用NVIDIA Riva構(gòu)建語音支持的人工智能虛擬助手 1276次閱讀
- 樂鑫語音助手框架ESP-Skainet的中文語音合成例程 2122次閱讀
- dfrobot語音識別控制板 介紹 2976次閱讀
- 智能語音助手的原理_預測智能語音助手的未來 2w次閱讀
- 語音助手哪個好用點?五款好用的手機語音助手評測 12.9w次閱讀
- 蘋果Siri深度學習語音合成技術(shù)揭秘 3222次閱讀
- 友善串口調(diào)試助手怎么使用及使用方法說明 12.6w次閱讀
- 獨立聲卡是什么_獨立聲卡起什么作用_獨立聲卡怎么安裝 3.8w次閱讀
- “語音助手”如何運行在手機上的? 8736次閱讀
- 智能語音交互是怎么實現(xiàn)交互流程中的輸入輸出呢? 1.2w次閱讀
- 詳細解析WORLD語音合成系統(tǒng)的原理以及使用方法 1.5w次閱讀
- 智能語音助手將成為智能家居用戶入口 2669次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關(guān)電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數(shù)字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅(qū)動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多