開源專案 Oído 成功在約 5 美元的 ESP32-S3 微控制器上,運行完整的 Conformer 開放詞彙語音辨識模型。本文整理 Oído 的技術架構、模型量化方法、向量指令集優化、英文與西班牙語測試表現,以及目前在硬體資源與實體量測上的邊界限制,提供邊緣運算與嵌入式開發者具體的評估參考。
過去在微控制器等級的低成本晶片上,語音辨識多半只能處理預先定義的固定指令集,或是必須將錄音串流送往雲端處理。近期由 Lokutor 官方網站 團隊發布的開源專案 Oído GitHub 專案庫,展示了在不依賴神經網路加速器(NPU)與網路連線的情況下,直接在微控制器上運行開放詞彙語音辨識(Open-vocabulary ASR)的架構設計。「Oído」一詞源自西班牙廚房在確認點餐時的口號,代表「聽到了、收到了」。這套系統讓裝置在本地端直接將自然語音轉化為文字,為邊緣裝置的離線人機互動提供新的開發路線。
核心技術架構:Conformer 模型如何在微控制器運行
要在運算能力有限的晶片上運行大型聲學模型,必須對神經網路結構、記憶體配置與運算核心進行專門調整。Oído 的核心採用 NVIDIA Conformer-CTC Small 架構,並針對微控制器的硬體特質完成了整套工程實現。
模型縮減與聲學特徵處理
在音訊前端處理部分,系統先將輸入聲音轉為 Log-mel 特徵,接著透過兩層卷積下採樣(3x3 卷積核,步長為 2),將音訊幀率降至 25 Hz。編碼器(Encoder)由 16 層 Conformer 組成,隱藏維度為 176,包含 4 個注意力頭、相對位置編碼與核心大小為 31 的卷積模組。解碼階段則透過聯結主義時序分類(CTC)輸出 1024 個 Byte-Pair Encoding(BPE)詞元。
除了純聲學模型,系統還設計了一個參數量約 1.3 M 的 GRU 語言模型。該語言模型專門使用 LibriSpeech LM 語料訓練,微控制器可以在晶片內部運行束搜尋(Prefix Beam Search,Beam 寬度設為 4)。若記憶體有限,系統亦支援直接使用貪婪解碼(Greedy Search),無需載入語言模型。
專為 PIE 向量單元編寫的推論引擎
Oído 並未套用通用的微控制器推論框架,而是以純 C 語言實作名為 TinyASR 的推論引擎。這套引擎直接針對 ESP32-S3 所搭載的 Xtensa LX7 處理器指令擴展(PIE)進行組合語言級別的最佳化。
引擎核心運用了 EE.VMULAS.S8.ACCX 指令,單一指令可完成 16 次乘加運算(MAC),專門用來加速 int8 矩陣相乘。針對更小體積的模型,作者團隊也設計了 int4 外積運算核心。在注意力機制方面,相對位置注意力計算改採查表法處理 Softmax 函數,避開浮點數指數運算的延遲。同時,運算任務分配給雙核心協同處理,以縮短關鍵路徑的處理時間。
記憶體排程與 Flash 讀取頻寬限制
ESP32-S3 的硬體規格包含 240 MHz 雙核心、16 MB 外部 Flash 與 8 MB Octal PSRAM。在推論過程中,資料傳輸瓶頸往往發生在外部匯流排。
為了降低快閃記憶體的讀取壓力,TinyASR 採用了區塊磚化(Tiling)快取策略。權重資料每 64 幀只從 Flash 讀取一次,成功將每秒權重讀取頻寬從 18 MB/s 降至 7.5 MB/s。在記憶體佔用方面,處理一段 20 秒的語音時,PSRAM 的峰值工作記憶體約為 2.4 MB,其餘空間則保留作為常用權重的快取緩衝區。
效能與準確度評測:LibriSpeech 與抗噪數據
根據專案公布的測試結果,模型大小與辨識精確度之間維持了良好的平衡。相關權重檔案已同步託管於 Hugging Face 模型庫 供開發者下載測試。
英文語音辨識基準與量化模型比較
在 LibriSpeech 測試集上,所有系統皆採用相同的文字正規化標準。int8 貪婪解碼版本的字錯誤率(WER)在 test-clean 為 3.7%,在 test-other 為 8.2%,模型體積為 14.0 MB。這項數據與原始 fp32 浮點模型的表現(3.68% 與 8.11%)相差不到 0.1 個百分點。
若搭配 1.3 MB 的語言模型進行束搜尋,int8 模型的錯誤率可進一步降低至 3.3%(test-clean)與 7.2%(test-other)。針對儲存空間受限的場景,專案提供經過量化感知微調(QAT)的 int4 模型,體積縮小至 8.3 MB,貪婪解碼下的錯誤率為 4.6% 與 10.0%。相較於 Espressif 原廠針對固定指令設計的 MultiNet7(錯誤率分別為 8.5% 與 21.3%),Oído 在通用語音辨識上呈現出更完整的泛化能力。
在抗噪測試中,研究者採用 DEMAND 資料集模擬 14 種真實噪音環境(包含車內、廚房與多人背景交談)。在 5 dB 訊噪比條件下,搭配語言模型的 int8 版本平均錯誤率為 7.5%,表現優於在筆記型電腦上運行的 Whisper tiny.en(12.1%)。
低延遲串流模式的運作機制與權衡
標準的語音模式(Utterance Mode)必須等待說話者停頓約 0.8 秒,經由語音活動偵測(VAD)確認切分後才開始集中計算,一段 2 到 4 秒的語音約需 3 秒輸出文字。為了支援需要即時互動的語音代理介面,團隊推出了串流版本。
串流模式將音訊切分為 1.28 秒(32 幀)的區塊,編碼器在使用者說話時同步處理,並保留 5 秒的左側歷史語境。當說話結束時,系統只需計算最後一個區塊,整體延遲縮短至 1.1 到 1.4 秒。串流模式的代價在於無法獲取未來的語音上下文,因此 LibriSpeech clean 的錯誤率微幅上升至 4.9%,噪聲平均錯誤率則為 9.0%。
西班牙語微調模型與多語言支援
除了英文,專案釋出了西班牙語模型,模型體積同樣為 14.0 MB,語言模型為 1.3 MB。該模型使用 Common Voice、MLS、VoxPopuli 與 FLEURS 等語料庫共 2,492 小時的資料進行微調。
在完整的 60 小時測試集中,西班牙語搭配語言模型的平均錯誤率依序為 Common Voice 13.8%、MLS 10.9%、VoxPopuli 15.7% 以及 FLEURS 11.3%。作者團隊在說明中強調,由於 Oído 在這些語料庫的訓練集上進行過微調,而筆電端比較的 Whisper tiny 屬於零樣本推論(Zero-shot),因此在這些特定領域的數據表現上對 Oído 較為有利。若應用於電話錄音、強烈地方口音或特殊專業術語,錯誤率預期會上升。
硬體需求、部署流程與開發限制
想要實際運行這套離線辨識系統,開發者需要準備特定的硬體模組與開發環境。
必備硬體清單與接線方式
系統要求的核心硬體如下:
- 開發板:ESP32-S3-DevKitC-1 N16R8(必須具備 16 MB Flash 與 8 MB Octal PSRAM)。
- 麥克風:INMP441 I2S 數位麥克風模組。
- SCK 連接至 GPIO4
- WS 連接至 GPIO5
- SD 連接至 GPIO6
- L/R 連接至 GND
- 顯示螢幕(非必要):0.96 吋 SSD1306 I2C OLED 螢幕,可即時顯示轉譯文字。
- SDA 連接至 GPIO8
- SCL 連接至 GPIO9
- 韌體環境:ESP-IDF v5.5。
編譯時可直接使用專案內的燒錄腳本部署模型映像檔。若採用 8.3 MB 的 int4 模型,16 MB Flash 中還能保留約 6 MB 的應用程式分割區,供開發者寫入自己的物聯網控制邏輯。
評測現況與目前技術邊界
評估導入此專案時,需要注意當前的技術驗證條件:
首先,專案公布的指令週期與實時率(RTF 約 0.7 至 0.95)是基於 Espressif QEMU 模擬器的指令計數估算,實體晶片在真實矽晶上的精確功耗與時間數據仍有待官方進一步公布。
其次,雖然 QEMU 模擬器輸出的文字結果與電腦端 C 程式在絕大多數測試音訊中完全一致,但由於晶片硬體浮點與主機端數學函式庫在最低有效位元的捨入差異,在極少數高噪音樣本中可能出現個別單詞的分歧。
最後,語言支援目前僅限英語與西班牙語,遇到極度嘈雜的群眾環境或強烈回音空間,識別率仍會受到明顯干擾。
常見問題
Oído 與常見的固定指令語音引擎有何差別?
傳統微控制器語音引擎(如 ESP-SR MultiNet)屬於封閉詞彙辨識,僅能識別數十到數百個預先定義的指令片語。Oído 屬於開放詞彙辨識(Open-vocabulary ASR),具備完整的聲學編碼器與詞元解碼器,使用者可以用自然語言說出任意語句,系統皆能拼讀出對應的文字。
為什麼沒有 NPU 的 ESP32-S3 能夠運行 Conformer?
主要原因有三點:一是模型經過剪裁與量化,int8 與 int4 大幅減少了權重體積與計算量。二是直接利用 ESP32-S3 晶片內建的 PIE SIMD 向量指令集編寫矩陣乘法,單指令完成 16 個 int8 運算。三是透過記憶體分塊排程控制 Flash 讀取次數,避免總線頻寬被權重傳輸占滿。
目前公布的數據是否已在實體板子上測量?
字錯誤率與輸出正確性已透過電腦端主機版本與 QEMU 韌體模擬驗證,在 27 個隨機測試音訊中,模擬器與主機端產生了 22 個完全相同的轉譯文字。即時運算速度與指令數目前來自 QEMU 模擬器統計,實體硬體板子的最終延遲量測數據,官方表示將於近期更新補齊。
專案的授權條款與商用規範為何?
程式碼部分採用 GNU GPL v3 開源授權。若終端商業產品無法符合 GPL v3 要求(例如不允許使用者自行更新韌體的封閉硬體),Lokutor 提供了獨立的商業授權管道,詳情可參閱 商業授權說明。模型權重方面,部分模型採用 CC-BY-4.0,部分微調模型則採用 CC-BY-SA-4.0 授權。
結語
Oído 驗證了在百元台幣等級的微控制器上,無需專用神經網路硬體加速也能運行通用語音辨識。開發團隊表示,後續除了補齊實體晶片的量測數據,也正在研發適用於該晶片的本地端語音合成(TTS)以及加泰隆尼亞語、巴斯克語等其他語言模型。對於希望擺脫雲端 API 依賴、打造完全離線邊緣應用的物聯網開發者而言,這套架構提供了一個實用的評估基礎。

