九百萬參數的中文發音家教:深度學習如何幫我聽懂自己的中文

本篇文章更新時間:2026/02/01
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知。
一介資男的 LINE 社群開站囉!歡迎入群聊聊~
如果本站內容對你有幫助,歡迎使用 BFX Pay 加密貨幣新台幣 贊助支持。


小模型,大野心:用 9M 參數打造自己的中文發音家教

副標題:從語音可視化到 Conformer-CTC,作者如何一步步打造能在瀏覽器跑的 CAPT 系統

編輯前言:這篇文章來自 A 9M-parameter Mandarin pronunciation tutor,作者分享他如何用 300 小時語音資料與一個小到能在瀏覽器跑的模型,打造一個能精準糾錯的中文發音家教。對語音學習、ASR、或模型壓縮有興趣的人,絕對值得一讀。

核心觀點 (Key Takeaways)

  • 作者從基於音高分析的 heuristic 方法,轉向以 Conformer + CTC 的深度學習架構,因為後者更穩健也更資料驅動。
  • Mandarin CAPT 的關鍵在於不能自動修正。CTC 比 seq2seq 更能忠實反映「實際說出的聲音」。
  • 透過 Pinyin+Tone 作為 token、Forced Alignment 與小心處理 silence,模型能精準找出錯誤發音並給出信心分數。

深入解析

作者的問題意識很明確:中文的聲調系統對非母語學習者真的很不友善,而他也發現「自己聽不出自己的錯」。於是他開始想辦法讓機器幫他「聽」。

從音高視覺化到深度學習:手刻 heuristic 的極限

作者最初嘗試用 FFT + pitch tracking,類似 Praat,那種靠規則判斷的方式。但很快就遇到大量例外:背景噪音、連音、不同人的音域差異等。於是他引用了機器學習界常講的「bitter lesson」:

當資料與運算夠多時,學習式方法幾乎一定勝過手工規則。

這也讓他決定改為訓練一個小型、能在裝置上跑的深度學習模型。

為什麼選 Conformer + CTC?

我覺得作者的選擇很精準,原因在於中文發音的「局部細節 + 全球語境」兼具。

  • 局部特徵:例如 zh vs z,是毫秒級差異。CNN 擅長捕捉。
  • 全球語境:聲調高低因人而異,還有 tone sandhi。Transformer 擅長長程依賴。

Conformer 正好把兩者組合在一起。

而他放棄常見的 seq2seq,理由更是點題:

seq2seq 模型會自動修正你的發音錯誤,但練口語時你不想要它「猜你想說什麼」。

CTC 則是老老實實 frame-by-frame 告訴你「你說了什麼」。這種嚴格反而更適合做發音訓練。

以 Pinyin+Tone 作為 token:讓錯誤不被 Hanzi 掩蓋

我很喜歡作者這個設計。多數 ASR 系統直接輸出漢字,結果 tone 錯了也會被「理解」掉。但 CAPT 恰恰需要抓 tone 錯。

他因此把每個音節 + 聲調都拆成獨立 token,例如:

  • zhong1 ≠ zhong4
  • ma5 表示原本的輕聲

總共 1254 個 token,這真的算是蠻細的 granularity。

強制對齊與沉默的 bug:關鍵細節影響分數

為了能標出每個音節的正確性,作者用 Viterbi 做 forced alignment。但他遇到一個真實又經典的問題:

當他講「我喜歡…」前多停了一秒,模型竟然判定「我(wo3)」錯到爆。

原因是:

對齊把前面一大片空白()當成 wo3,造成分數被拉低。

修法其實很優雅:對評分時忽略那些模型非常確定是 的 frame。程式碼很短,但效果巨大,準確率從 0.0 拉到 0.99。

筆者心得與啟發

這篇文章讓我最有感的,是作者在「發音」這個常被忽略的語言學習痛點上的細膩觀察。多數 ASR 技術都在追求「聽懂」,但 CAPT 則反其道而行,需要「聽到錯誤」。兩者的模型需求其實完全不同。

我尤其認為以下兩點很具啟發性:

  • 小模型也能很強,前提是資料夠好。 作者將 Conformer 壓到 9M 參數,tone accuracy 仍有 98%+。這強烈暗示這個任務不是 compute-bound,而是 data-bound。
  • 對齊與評分邏輯的細節,決定使用體驗。 CAPT 的容錯率比一般 ASR 低得多,一個小小的 silence 處理錯誤就可能讓使用者被「誤判」。

另外,我也很認同作者最後提到的 domain shift 問題:AISHELL 的語者是朗讀語,這與真實對話的速度、模糊程度、兒童聲音都相差甚遠。這也提醒了我們——如果 CAPT 想做得真實,資料來源必須更生活化。

整體而言,這是一篇技術細節飽滿、但閱讀起來不艱澀的案例分享。對想自做語音模型、或好奇 CAPT 背後挑戰的人都非常值得一讀。


Share:

作者: Chun

資訊愛好人士。主張「人人都該為了偷懶而進步」。期許自己成為斜槓到變進度條 100% 的年輕人。[///////////____36%_________]

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


文章
Filter
Apply Filters
Mastodon