使用ESP32和Rust創(chuàng)建自己的AI語音代理
如今,語音人工智能助手無處不在,但大多數(shù)都是基于專有模型和云服務(wù),幾乎沒有機(jī)會(huì)探索它們的實(shí)際工作原理。使用EchoKit,您可以在ESP32板上構(gòu)建自己的本地語音AI助手-完全開源,教育和可定制。
這個(gè)項(xiàng)目是為想要親身體驗(yàn)現(xiàn)代人工智能技術(shù)的創(chuàng)客、學(xué)生、教育工作者和人工智能愛好者設(shè)計(jì)的。EchoKit將端到端模型、語音到文本、大型語言模型和文本到語音集成到一個(gè)緊湊的設(shè)備中,讓您有機(jī)會(huì)安全地進(jìn)行實(shí)驗(yàn),并了解這些系統(tǒng)如何實(shí)時(shí)通信。
通過構(gòu)建和定制自己的EchoKit,您不僅可以獲得交互式語音助手,還可以更深入地了解人工智能管道,固件開發(fā)和設(shè)備集成。它非常適合課堂演示、創(chuàng)客空間項(xiàng)目或人工智能的個(gè)人實(shí)驗(yàn)。
系統(tǒng)概述
下面的圖表說明了整個(gè)架構(gòu)——從語音輸入到人工智能響應(yīng)。
對(duì)于語音交互,我們支持ASR-LLM-TTS管道(經(jīng)典模塊化方法)和端到端管道。在我看來,ASR-LLM-TTS管道允許您自定義更多,例如添加MCP服務(wù)器和知識(shí)庫(kù)。點(diǎn)擊這里了解更多ASR-LLM-TTS管道和端到端管道之間的區(qū)別。
接下來,讓我們一起構(gòu)建一個(gè)語音AI代理。
步驟1:組裝硬件
EchoKit硬件由幾個(gè)組件組成
?ESP32-S3開發(fā)板
?帶有音頻和麥克風(fēng)模塊的擴(kuò)展板
?微型揚(yáng)聲器
?1.54 "液晶屏
讓我們把硬件組裝在一起。
?將迷你揚(yáng)聲器連接到擴(kuò)展板中間的音頻模塊。
?將ESP32-S3板掛載到擴(kuò)展板上。
?將液晶屏插入擴(kuò)展板的頂部槽位。
一旦組裝,你應(yīng)該有一個(gè)功能齊全的EchoKit硬件設(shè)置。
步驟2:刷新固件
現(xiàn)在硬件已經(jīng)組裝好了,是時(shí)候?qū)⒐碳W存到設(shè)備上了。這將使EchoKit能夠與服務(wù)器和人工智能模型進(jìn)行通信。
1. 使用USB-C電纜將EchoKit設(shè)備連接到您的計(jì)算機(jī)。
2. 使用espflash命令行工具刷新固件。
因?yàn)镋choKit固件是用Rust編寫的,你需要安裝Rust工具鏈和espflash及其依賴項(xiàng)。
獲取最新的固件。
將固件Flash到EchoKit設(shè)備。
您將看到以下輸出。EchoKit固件的源代碼可在GitHub上獲得。
一旦閃光,EchoKit設(shè)備將在屏幕上顯示一個(gè)QR碼,并宣布“歡迎”消息。現(xiàn)在您已經(jīng)為下一步做好了準(zhǔn)備。
步驟3:?jiǎn)?dòng)EchoKit服務(wù)器
我們已經(jīng)有預(yù)先設(shè)置的服務(wù)器可以使用。如果您需要快速入門,可以跳過此部分,直接執(zhí)行步驟4連接服務(wù)器和設(shè)備。
您可以在自己的計(jì)算機(jī)上運(yùn)行服務(wù)器,而不是使用預(yù)先設(shè)置的服務(wù)器。再說一次,EchoKit服務(wù)器是用Rust編寫的,請(qǐng)確保你已經(jīng)安裝了Rust。
用Rust構(gòu)建服務(wù)器。
接下來,轉(zhuǎn)到配置。toml文件來編輯您的AI管道。
這里我以Groq為例,因?yàn)樗浅??。?duì)于我們的用例,我認(rèn)為您甚至不需要為此付費(fèi)。
如果你想通過MCP服務(wù)器添加動(dòng)作,我建議你使用像OpenAI這樣的閉源模型。
然后,我們可以運(yùn)行服務(wù)器。
您將看到如下所示的輸出日志:
步驟4:連接EchoKit服務(wù)器和設(shè)備
現(xiàn)在服務(wù)器正在運(yùn)行,是時(shí)候?qū)⑺B接到EchoKit設(shè)備了。
1. 確保您的瀏覽器支持藍(lán)牙。
2. 點(diǎn)擊“連接到EchoKit”,將設(shè)備與服務(wù)器配對(duì)。
3. 在新頁面中輸入以下信息:
Wi-Fi名稱和密碼(需要2.4GHz網(wǎng)絡(luò))
服務(wù)器URL:正在運(yùn)行的EchoKit服務(wù)器的IP和端口,例如:ws://192.168.1.56:8080/ws。如果你不運(yùn)行自己的EchoKit服務(wù)器,你可以使用ws://indie.ehcokit.dev/ws,它是由EchoKit項(xiàng)目提供的。
按下EchoKit設(shè)備左上角的K0按鈕來應(yīng)用設(shè)置。
一旦連接上,EchoKit就會(huì)顯示“連接到Wi-Fi”和“連接到服務(wù)器”等狀態(tài)更新。當(dāng)連接成功時(shí),您將聽到歡迎聲音,并在LCD上看到“Hello Set”消息。
步驟5:與EchoKit交談
現(xiàn)在你已經(jīng)準(zhǔn)備好與你的EchoKit設(shè)備進(jìn)行交互了!
?按K0鍵開始語音輸入。
?一旦你在屏幕上看到“收聽”,就對(duì)著設(shè)備說話。
?EchoKit將使用ASR處理您的語音,將文本發(fā)送給LLM以獲得響應(yīng),然后使用TTS將回復(fù)回復(fù)給您。
接下來是什么?
一旦你建立了基礎(chǔ)系統(tǒng),試著擴(kuò)展它:
?添加MCP服務(wù)器來觸發(fā)智能動(dòng)作。
?集成物聯(lián)網(wǎng)控制-燈,傳感器,電機(jī)等。
?嘗試不同的TTS或LLM提供商。
?為個(gè)性或特定于領(lǐng)域的行為創(chuàng)建自定義提示。
本文編譯自hackster.io





