BlueMagpie-TTS:面向台灣口音與中英混合的開源語音合成模型
臺灣口音中文 + 中英 code-switching 的文字轉語音模型,目標是讓 TTS 更像台灣人實際說話。
Barbet 負責「要說什麼、怎麼安排韻律」,VoxCPM 聲學模組負責把規劃轉成聲音,兩者以橋接模組接合。
官方提供 GitHub 程式碼、Hugging Face 模型與線上 Demo;模型內附已授權的李宏毅老師語者向量作為示例聲音。
為什麼這件事值得記錄
台灣的語音產品常卡在兩個問題:第一,多數中文 TTS 的腔調不像台灣華語;第二,台灣真實語境大量混用英文單字、縮寫、產品名、技術名詞,純中文或純英文模型在切換邊界很容易出錯。BlueMagpie-TTS 的價值在於直接把這兩個需求當作模型設計目標,而不是事後補丁。
OpenFormosa 官方用一句話概括它的做法:保留一套已經訓練好的聲學架構,只替換負責文字語意與韻律規劃的語言模型。換句話說,它不是重新發明整個 TTS stack,而是把「聲音品質」與「台灣語境理解」拆開處理。
| 面向 | BlueMagpie-TTS 的做法 | 意義 |
|---|---|---|
| 台灣口音 | 針對台灣華語與在地發音需求設計 | 不只是繁中輸入,而是讓聲音更接近台灣使用者期待 |
| 中英混合 | 處理中文、英文單字、縮寫、專有名詞切換 | 適合 AI、SaaS、工程、教育等常見 code-switching 場景 |
| 評估方式 | TTS 合成 → Breeze-ASR-25 還原 → 逐字比對 | 用可重現的「能不能被聽回正確文字」來衡量清晰度 |
| 開源路徑 | GitHub 程式碼 + Hugging Face 模型 / Demo | 方便社群試用、部署、檢查與再訓練 |
模型架構:保留聲學,替換腦袋
來自 OpenFormosa/Barbet,負責文字語意、韻律規劃、節奏與重音。官方說法是它決定「要說什麼」。
聲學模組取自 OpenBMB VoxCPM,採 Apache-2.0 授權,專案內含於 bluemagpie/_vendor/。
Barbet 與 VoxCPM 內部格式不同,橋接模組負責把語意規劃翻譯成聲學模組可用的形式。
這種設計對開源 TTS 很實際:聲學生成品質通常昂貴,直接保留成熟聲學模組可以降低重訓成本;把語意與韻律端換成更懂台灣語境的 Barbet,則對中英夾雜、專有名詞與本地腔調更有針對性。
官方能力與使用情境
| 模式 | 需要的輸入 | 適用場景 |
|---|---|---|
| 一般語音合成 | target_text | 直接把文字唸出來,最常用 |
| 語音接續 | target_text、prompt_text、prompt_wav_path | 讓長文或分段語音更連續 |
| 參考音檔 | target_text、reference_wav_path | 參考授權音檔模仿語者音色 |
| 指定語者 | speaker_centroid | 使用事先準備好的語者向量控制音色 |
| 串流輸出 | generate_streaming | 邊合成邊回傳音訊區塊,適合即時播放 |
官方推薦推論參數為 cfg_value=2.8、inference_timesteps=9、max_len=2000、retry_badcase=True。如果使用 Transformers 5.x,官方也特別提醒要直接從 tokenizer.json 載入 tokenizer,再傳入 BlueMagpieModel.from_local(...),避免自動載入失敗或 generate 時才出現「No tokenizer attached」。
評估數字:可參考,但不要當公開基準
OpenFormosa 官方文章與 Hugging Face model card 都列出內部測試結果:BlueMagpie-TTS 在內部測試集上 CER 為 4.81%、WER 為 5.36%;參考 baseline 為 CER 11.45%、WER 14.83%,相對降低約 58.0% 與 63.9%。
官方的評估流程是把測試文字交給 BlueMagpie-TTS 合成,再用台灣的 Breeze-ASR-25 把語音聽寫回文字,最後逐字比對。這個方法的優點是直接測量「合成語音是否能被正確聽回原文」;限制是 ASR 本身也會影響結果,因此仍應搭配人工聽感與實際場景測試。
風險邊界:授權與產品化不能省
- 不是免審核產品級系統:官方提醒生成語音仍可能出錯,未經人工審查不應直接用於真實世界通知或對外播放。
- 聲音複製必須有授權:模型內附李宏毅老師語者向量已取得本人授權;其他聲音或語者向量必須先取得授權,不能任意合成與散布。
- 縮寫邊界仍會翻車:官方示例提到
LLM曾被 ASR 聽成「LOL and」,英文縮寫與 code-switching 邊界仍是弱點。 - 模型權重授權有限制:GitHub README 顯示程式碼採 Apache-2.0;Hugging Face model card 顯示模型權重為
otherlicense,並強調不得在權利與同意未清楚前散布 checkpoint 或生成語音。
對 BigIntTech / Kate 語音提醒需求的啟發
Allen 長期想要「自然語言指定時間與內容,Kate 到時直接打電話朗讀提醒」的能力。BlueMagpie-TTS 對這條路線有三個直接啟發:
如果提醒電話講得像外地中文 TTS,可信任感會下降;台灣腔 TTS 會更像真正的個人助理。
Allen 的提醒很可能包含 repo、CI、API、invoice、Claude、Codex 等英文詞;code-switching 能力不是加分,是基本要求。
若未來要做 Kate 專屬聲線,必須把聲音來源、授權、儲存、生成音檔散布範圍放進產品規格。
短期可把 BlueMagpie-TTS 視為台灣腔 TTS 候選技術之一:先用 Hugging Face Demo 聽感評估,再測短句提醒、英文縮寫、數字、時間、公司名與常見技術詞。如果能穩定處理「明天下午三點提醒我 check GitLab pipeline」、「Claude Max invoice 要報帳」這類句子,就值得進一步評估本地部署或服務化。