Seirenes TTS — 中文音質驗證 v2
2026-05-05 · 三 vocoder 對比 · ASR 客觀驗證 (Qwen3-ASR + OpenCC 繁簡正規化)
三 vocoder 整體 CER 比較
| TTS | 4 句純中文 CER | 中英混雜 CER | 狀態 |
| SirenaVoice ZipVoice + Vocos(舊) | 4.9% | —(未測) | 有痰音 ⚠️ |
| SirenaVoice ZipVoice + BigVGAN(新) | 2.4% | 0.0% | 清晰 ✨ |
| VibeVoice-Realtime-0.5B | 90.5% | — | 不支援中文 ❌ |
① BigVGAN vs Vocos — 同句直接 A/B 對照
1. 歡迎使用 Seirenes 智慧家居語音助理,請問需要什麼協助嗎?
5. Open the door please,順便關掉客廳的燈。(中英混雜)
② 進階 6 句 — 雙 prompt × 雙 vocoder 完整對照
4 欄:子睿 Vocos · 子睿 BigVGAN · 采芸 Vocos · 采芸 BigVGAN
6. 請打電話給張先生,他的電話是零九三七八八八九九九。
7. 提醒我明天下午三點要去開會,主題是 AI 產品設計。
8. 今天的股市表現如何?台積電漲了百分之二點五。
9. 請播放周杰倫的歌,特別是他二零零一年的專輯。
10. 我想預訂明天晚上七點的兩人座位,幫我訂忠孝東路的義式餐廳。
11. Open the door please,順便關掉客廳的燈。(中英混雜)
③ 6 個聲音 全測試(BigVGAN)
4 句基準 × 6 個 prompt 聲音。
A. 歡迎使用 Seirenes 智慧家居語音助理。
D. Open the door please,順便關掉客廳的燈。(中英混雜)
④ F5-TTS Base 完整對照(6 voices × 4 sentences, nfe=16)
F5-TTS Base 1.2GB(不蒸餾,16 步收斂),ref_text 用完整 prompt 解決前一版時長失控。
這是「teacher 模型 + 充足 NFE」應該長什麼樣。
A. 歡迎使用 Seirenes 智慧家居語音助理。
D. Open the door please,順便關掉客廳的燈。(中英混雜)
⑤ F5-TTS NFE 速度/品質 trade-off
同句 (采芸 prompt) NFE 8 / 12 / 16 / 24 / 32 直接 A/B。
NFE=8 在 RTX 2060 RTF 0.38×,比 SirenaVoice distill 還快 + 品質乾淨。
D. Open the door please,順便關掉客廳的燈。
⑥ Seirenes V2 — End-to-End PoC(已部署)
F5-TTS Base FP16 · NFE 12 · Vocos vocoder · 采芸 prompt · TCP socket :9998 streaming
完整 server / client 在 D:\Software\SeirenesV2\ · 啟動:python server/start_f5_tts.py --voice caiyun --nfe 12
V2 規格
| 項目 | 數值 |
| TTS backbone | F5-TTS V1 Base 337M |
| dtype | FP16 |
| NFE | 12(甜蜜點) |
| RTF (RTX 2060) | 0.51× |
| Memory | 674 MB |
| Voices | 6 個 preset(子睿 / 采芸 / 雨榛 / 佑希 / 俊傑 / 楷心) |
| 痰音 / 滋滋 | 無 |
V2 PoC 1. 歡迎使用 Seirenes 智慧家居語音助理。
★ Seirenes V2 · 采芸 · 端到端 streaming server
V2 PoC 2. 好的,幫您把客廳冷氣調到二十六度。
★ Seirenes V2 · 采芸 · 端到端 streaming server
V2 PoC 3. Open the door please,順便關掉客廳的燈。(中英混雜)
★ Seirenes V2 · 采芸 · 端到端 streaming server
⑦ Seirenes V2 + 多音字 / 數字 normalizer(CER 2.3%)
F5-TTS Base FP16 NFE 12 + polyphone_dict.py (90+ TW 多音字) + text_normalizer.py (M2.7 寫的數字/日期/英文保留)
8 句多音字測項 ASR-CER 驗證
| # | 句子 | 測項 | CER |
| 1 | 重新開機後請告訴我 | 重 chóng (非 zhòng) | 0% |
| 2 | 銀行幾點開門 | 行 háng (非 xíng) | 0% |
| 3 | 客廳冷氣調到 26 度 | 26→二十六 | 0% |
| 4 | 台積電漲了 2.5% | 2.5→百分之二點五(已修 . bug) | — |
| 5 | 下午 3:30,知道時間 | 3:30→三點半 | 0% |
| 6 | 電話 0937888999 | 電話 → 零九三七… | 0% |
| 7 | 長度兩公尺、重量五公斤 | 長 cháng / 重 zhòng | 0% |
| 8 | Open the door please... | 英文保留 | 0% |
| OVERALL | 2.3% |
V2-poly 1. 重新開機後,請告訴我。(重 chóng)
V2-poly 2. 銀行幾點開門,我要去處理事情。(行 háng)
V2-poly 3. 幫我把客廳冷氣調到 26 度。(數字正規化)
V2-poly 4. 台積電今天漲了 2.5%,現在股價非常重要。(2.5→百分之二點五)
★ V2 + normalizer (decimal fix)
V2-poly 5. 現在是下午 3:30,我想知道時間。(時間正規化)
V2-poly 6. 請打電話給張先生,電話 0937888999。(電話念法)
V2-poly 7. 長度大約是兩公尺,重量五公斤。(長 cháng / 重 zhòng)
V2-poly 8. Open the door please,順便關掉客廳的燈。(英文段保留)
⑧ V2 Chunked client(標點符號切,NFE 12 monkey-patched)
按標點切句客戶端流式 + server first_package=False + NFE 12 強制(原 socket_server 預設 32)
D:\Software\SeirenesV2\client\chunked_client.py
First audio 演進
| 版本 | first_audio | RTF | 說明 |
| 單句 server-side first_package | 3724ms | 2.04× | NFE 32 default + 重複切批 + first_package on |
| chunked + first_package off | 3725ms | 1.70× | 仍 NFE 32(沒 monkey-patch) |
| ★ chunked + NFE 12 monkey-patched | 1447ms | 0.66× | 2.6× 改善 + canned opener 後感知 50ms |
完整 demo: 幫我把客廳冷氣調到二十六度,現在是下午三點半,台積電今天漲了百分之二點五。
★ V2 chunked NFE 12 · first_audio 1.4s · 7.1s 全句
產生時間 2026-05-05 · 引擎 SirenaVoice ZipVoice-distill 122M (ONNX INT8)
· vocoder Vocos vs NVIDIA BigVGAN v2 24kHz 100band
· prompt 男聲 小男孩_子睿.wav / 女聲 台灣女主播_采芸.wav
· loudness norm I=-16 LUFS TP=-1.5
· ASR Qwen3-ASR-0.6B ONNX (INT8) on DGX :8100, OpenCC s2t 後計算 CER