手心裡的小型 AI,無需網路也能聽說的「Babytalk」是如何實現的?

象徵語音數據在小型電路板上進行處理的圖形
AI Summary

無需網路連線或雲端服務,能在 ESP32 開發板上運行的離線語音辨識與合成系統「Babytalk」現已公開。

試著想像一下。早上起床問智慧音箱:「今天天氣如何?」時,這個設備不與任何伺服器通訊,僅靠內部的小大腦就能聽懂並回答你的問題。安裝在客廳的設備不會將你的聲音傳送到伺服器,因此也不必擔心隱私問題。

最近在開發者社群公開的 「Babytalk」 專案,正讓這樣的未來更早成為現實。該系統能在小型且低價的微控制器(Microcontroller,控制小型設備的晶片)ESP32 開發板上,無需網路連線即可完美執行語音辨識與合成。 出處: Hacker News

為什麼 Babytalk 很重要?

過去我們身邊的「說話設備」大多要求必須連上網路。這是因為諸如「Hey Google」或「Alexa」等既有的語音助理,為了聽懂你的話,必須將語音數據傳輸到雲端伺服器,再從伺服器接收解析後的回答。

然而,Babytalk 切斷了這種對雲端的依賴。無需網路的離線語音系統有三大優點:

  1. 強大的隱私性: 你的語音數據不會傳輸到外部伺服器。
  2. 隨處可用: 即使在沒有 Wi-Fi 的環境下,設備也能自由地聽說。
  3. 高獨立性: 即使雲端服務中斷或網路斷連,設備也能正常運作。

對於喜愛嵌入式專案的開發者來說,過去對雲端的依賴一直是大難題,而 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 的出現,預計未來將會有大量在無網路環境下也能運作的「語音基礎嵌入式設備」問世。

即便不與網路這個巨大的世界連結,手心中的小晶片也能自主思考並說話的時代已經開始了。

參考資料

  1. GitHub - tlack/babytalk: Optimized ESP32-S3/P4 fully offline speech to text and text to speech system. (https://github.com/tlack/babytalk)
  2. Building an Offline Text-to-Speech System With ESP32. (https://www.instructables.com/Building-an-Offline-Text-to-Speech-System-With-ESP/)
  3. 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)
  4. Show Hacker News. (https://nhn.yuu.is/show)
  5. ESP32 Text to Speech Offline: TTS with PAM8403 & Arduino. (https://circuitdigest.com/microcontroller-projects/esp32-text-to-speech-offline-system)
AD
測試你的理解
Q1. Babytalk 支援的主要功能是什麼?
  • 雲端語音助理
  • 離線語音辨識與合成
  • 線上串流服務
Babytalk 提供了無需網路連線,即可在 ESP32 開發板內部將語音轉換為文字(STT),並將文字合成為語音(TTS)的功能。
Q2. Babytalk 與現有依賴雲端的專案有何不同?
  • 需要更多網路頻寬
  • 不需要網路連線
  • 需要更強大的 PC 連線
Babytalk 最大的特點在於不需要網路連線,直接在本地硬體(ESP32)上運行 AI 模型。
Q3. Babytalk 是為了在哪種環境下發揮性能而設計的?
  • 極度安靜的研究室
  • 有噪音的環境
  • 有強力伺服器的地方
Babytalk 包含經過微調的語音辨識模型,即使在有噪音的環境下也能運作。