電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>Dexter獨立語音助手開源分享

Dexter獨立語音助手開源分享

2023-06-25 | zip | 0.00 MB | 次下載 | 免費

資料介紹

描述

這個項目的目標是創(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 可以以您認為合適的任何方式使用。

poYBAGNYfpOAYifLAAF_OPGwDR4156.jpg
Dexter 的 Node-RED 流程圖。頂部:電視命令。底部:燈光命令
?

用法

使用系統(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 的接線設置。

poYBAGNYfpiAfg0lAAa--W7Z74w824.jpg
德克斯特接線設置
。

未來目標

將來,我打算擴展系統(tǒng)的功能。就目前而言,Dexter 不會回復你,也不能在一個語句中執(zhí)行多個命令。這兩個都是我很快就會做的事情。


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關(guān)電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數(shù)字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅(qū)動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費