無需網路連線或雲端服務,能在 ESP32 開發板上運行的離線語音辨識與合成系統「Babytalk」現已公開。
試著想像一下。早上起床問智慧音箱:「今天天氣如何?」時,這個設備不與任何伺服器通訊,僅靠內部的小大腦就能聽懂並回答你的問題。安裝在客廳的設備不會將你的聲音傳送到伺服器,因此也不必擔心隱私問題。
最近在開發者社群公開的 「Babytalk」 專案,正讓這樣的未來更早成為現實。該系統能在小型且低價的微控制器(Microcontroller,控制小型設備的晶片)ESP32 開發板上,無需網路連線即可完美執行語音辨識與合成。 出處: Hacker News
為什麼 Babytalk 很重要?
過去我們身邊的「說話設備」大多要求必須連上網路。這是因為諸如「Hey Google」或「Alexa」等既有的語音助理,為了聽懂你的話,必須將語音數據傳輸到雲端伺服器,再從伺服器接收解析後的回答。
然而,Babytalk 切斷了這種對雲端的依賴。無需網路的離線語音系統有三大優點:
- 強大的隱私性: 你的語音數據不會傳輸到外部伺服器。
- 隨處可用: 即使在沒有 Wi-Fi 的環境下,設備也能自由地聽說。
- 高獨立性: 即使雲端服務中斷或網路斷連,設備也能正常運作。
對於喜愛嵌入式專案的開發者來說,過去對雲端的依賴一直是大難題,而 Babytalk 成了能解決此問題的強力替代方案。 出處: Building an Offline Text-to-Speech System With ESP32
簡單理解:熟記捷徑的嚮導
簡單來說,Babytalk 是在設備內部搭載了高度壓縮的「AI 大腦」。
比喻來說,Babytalk 就像是 「熟記捷徑的嚮導」。如果說需要網路連線的既有方式是每次前往目的地時都要打開地圖 App 搜尋路徑,那麼 Babytalk 的狀態就是設備已經將通往目的地的路徑完整記在腦中。
為了實現這一點,Babytalk 使用了以下特殊技術:
- 微調模型(Finetuned Model): 使用特別訓練的語音辨識模型,即使在充滿噪音的客廳或工作室環境,也能準確提取出人的聲音。 出處: GitHub - tlack/babytalk
- 高效能計算引擎: 像 ESP32 這樣的小晶片比 PC 慢得多。因此,Babytalk 使用了 4 位元或 8 位元整數(Int)形式的運算引擎,將晶片的處理能力提升到極限。可以看作是一個體格嬌小的人為了搬運重物,優化全身肌肉的使用方式。 出處: GitHub - tlack/babytalk
目前進度如何?
目前 Babytalk 已完美支援 ESP32-S3 及 ESP32-P4 開發板上的離線語音辨識(STT, Speech-to-Text)與語音合成(TTS, Text-to-Speech)功能。 出處: GitHub - tlack/babytalk
當然,它也有其極限。它並不具備雲端上擁有數十億個參數(Parameter,AI 學習到的數值)的巨型語言模型那麼聰明。比起進行非常複雜的哲學對話,它更適合用於執行特定指令或告知簡單資訊,優化製作「智慧小裝置」。與既有離線 TTS 專案多使用的「Talkie」函式庫(透過線性預測編碼方式生成聲音)相比,Babytalk 結合了語音辨識功能,能實現更豐富的互動,這是其重大差異。 出處: ESP32 Text to Speech Offline: TTS with PAM8403 & Arduino
未來將展現什麼樣的願景?
隨著 Babytalk 的出現,預計未來將會有大量在無網路環境下也能運作的「語音基礎嵌入式設備」問世。
- 即時智慧家庭: 使用語音開啟家中智慧開關時,因為無需經過雲端,回應速度將大幅提升。
- 安全輔助設備: 為老弱殘障人士設計的輔助設備將能以離線方式運作,確保隨時皆可安全使用。 出處: Build an Offline ESP32 Text-to-Speech System - No Internet needed
即便不與網路這個巨大的世界連結,手心中的小晶片也能自主思考並說話的時代已經開始了。
參考資料
- GitHub - tlack/babytalk: Optimized ESP32-S3/P4 fully offline speech to text and text to speech system. (https://github.com/tlack/babytalk)
- Building an Offline Text-to-Speech System With ESP32. (https://www.instructables.com/Building-an-Offline-Text-to-Speech-System-With-ESP/)
- Build an Offline ESP32 Text-to-Speech System - No Internet needed. (https://dev.to/david_thomas/build-an-offline-esp32-text-to-speech-system-no-internet-needed-aj5)
-
Show Hacker News. (https://nhn.yuu.is/show) - ESP32 Text to Speech Offline: TTS with PAM8403 & Arduino. (https://circuitdigest.com/microcontroller-projects/esp32-text-to-speech-offline-system)
- 雲端語音助理
- 離線語音辨識與合成
- 線上串流服務
- 需要更多網路頻寬
- 不需要網路連線
- 需要更強大的 PC 連線
- 極度安靜的研究室
- 有噪音的環境
- 有強力伺服器的地方