構(gòu)建離線ESP32語音助手
簡(jiǎn)介:一個(gè)“無麥克風(fēng)”語音助手的案例
在一個(gè)總是監(jiān)聽設(shè)備的時(shí)代,我想探索另一種選擇:一種智能、反應(yīng)靈敏、完全由用戶控制的語音助手。我的ESP32語音助手v0.1項(xiàng)目演示了如何構(gòu)建一個(gè)強(qiáng)大的人工智能驅(qū)動(dòng)的設(shè)備,而不需要一個(gè)“永遠(yuǎn)在線”的麥克風(fēng)。這不僅提供了一層隱私,而且還允許有意控制API令牌的使用(服務(wù)器代碼中限制為25個(gè))。
本指南將引導(dǎo)您將ESP32,使用Gemini API和gTTS的Python服務(wù)器,I2S音頻放大器和OLED顯示器集成到功能性語音助手中。
功能一覽
?離線操作:按鈕驅(qū)動(dòng)的選擇預(yù)定義的提示可重復(fù),麥克風(fēng)自由交互。
?Gemini API集成:Python服務(wù)器使用Gemini進(jìn)行智能文本響應(yīng)。
?token - efficient:在Python服務(wù)器中故意設(shè)置輸出長(zhǎng)度限制(25),以管理AI令牌消耗。
?文本到語音(TTS):通過gTTS庫生成實(shí)時(shí)音頻流。
?I2S音頻輸出:通過MAX98357A放大器和4歐姆揚(yáng)聲器播放高質(zhì)量聲音。
?視覺反饋:0.96英寸的OLED顯示屏和狀態(tài)led提供清晰的操作狀態(tài)(例如,“Thinking…”,“Speaking…”,“Ready”)。
它是如何工作的:系統(tǒng)架構(gòu)
該項(xiàng)目采用客戶機(jī)-服務(wù)器體系結(jié)構(gòu)。ESP32作為客戶端,處理用戶輸入和音頻輸出,而Python服務(wù)器管理AI和TTS處理。
?初始化:ESP32連接到Wi-Fi,顯示“Ready”,等待輸入。
?用戶輸入:
?“下一步”按鈕:循環(huán)通過存儲(chǔ)在ESP32上的預(yù)定義文本提示數(shù)組。
?“發(fā)言”按鈕:觸發(fā)發(fā)言過程。當(dāng)前選擇的提示符通過HTTP GET請(qǐng)求發(fā)送到Python服務(wù)器。
?Python服務(wù)器處理:
?接收到提示后,服務(wù)器將其發(fā)送到Gemini API。
?Gemini返回一個(gè)文本響應(yīng)。然后將此響應(yīng)截?cái)嗷蜻^濾為預(yù)定義的長(zhǎng)度,以保存AI令牌。
?處理后的文本被輸入到gTTS庫中,該庫生成一個(gè)音頻流。
?音頻回放:服務(wù)器將音頻流回ESP32。ESP32利用其I2S外設(shè)通過MAX98357A放大器和揚(yáng)聲器播放該流。
?狀態(tài)更新:服務(wù)器通信時(shí)OLED顯示屏顯示“Thinking…”,音頻播放時(shí)顯示“Speaking…”,并有對(duì)應(yīng)的LED指示燈。
它是如何制作的
硬件組件
?單片機(jī):ESP32 Dev Kit C
?顯示:0.96英寸OLED顯示屏(SSD1306)
?音頻輸出:MAX98357A I2S d類放大器+ 8歐姆揚(yáng)聲器
?用戶輸入:2個(gè)觸覺按鈕
?視覺提示:紅色和綠色led
?雜項(xiàng):面包板,跳線,1A USB電源
接線圖和引腳
(所有接地引腳應(yīng)接在共同接地軌上)
軟件設(shè)置:固件和服務(wù)器
該項(xiàng)目需要設(shè)置ESP32固件(使用Arduino IDE)和Python服務(wù)器。在這里獲取代碼。
1. ESP32固件安裝(Arduino IDE)
?安裝Arduino IDE并添加ESP32板管理器
?從Boards Manager中安裝esp32包。
?通過庫管理器安裝必要的庫:“Adafruit GFX庫”和“Adafruit SSD1306庫”。
?上傳提供的固件代碼(確保更新了Wi-Fi憑據(jù))。
2. Python服務(wù)器設(shè)置
?確保安裝了Python 3。
?創(chuàng)建并激活虛擬環(huán)境。
?安裝依賴:pip Install -r requirements.txt
?使用GEMINI_API_KEY="YOUR_API_KEY_HERE"創(chuàng)建a.e env文件。
?運(yùn)行server: python server.py。
結(jié)論和未來的改進(jìn)
該項(xiàng)目為構(gòu)建交互式AI驅(qū)動(dòng)硬件提供了堅(jiān)實(shí)的基礎(chǔ)。它突出了將現(xiàn)成的微控制器與強(qiáng)大的AI API和高效的TTS解決方案相結(jié)合的能力。未來的增強(qiáng)可能包括添加更復(fù)雜的提示管理、基于web的配置界面,甚至與本地語音模型集成,以實(shí)現(xiàn)完全的氣隙操作。
本文編譯自hackster.io





