
本文內容
我們使用包含小數、識別碼、貨幣、公式與科學單位的 600 個中文語音複製樣本,測試 Fish Audio S2.1、CosyVoice3-RL、IndexTTS2 與 Qwen3-TTS Base。
摘要
數字語音錯誤是語意問題,不只是發音問題。TTS 系統可以聽起來非常流暢,卻漏掉識別碼中的零、把 9*14 讀成九十四,或移除面積單位的指數。中文尤其容易暴露這個盲點,因為 001000000066、9*14 或 12cm² 的正確讀法取決於這些符號在句子中的角色,而不只是符號本身。
我們使用內部資料集中的兩個中文參考音色,測試四個語音複製模型系列:Fish Audio S2.1、CosyVoice3-RL、IndexTTS2 與 Qwen3-TTS Base。每個模型與音色組合都接收相同的 75 句商務情境文字,共產生 600 個音訊樣本。
在自動數字完全匹配指標上,Fish Audio S2.1 以 79.3%(119/150)排名第一,CosyVoice3-RL 以 74.7%(112/150)排名第二。但總分掩蓋了模型間截然不同的表現:CosyVoice3-RL 在識別碼達到 90.0%;Qwen3-TTS Base 的識別碼得分為 0%,卻在公式與科學單位均以 86.7% 領先。
這是自動篩選基準,並非人工聽測。附錄B提供一組另外產生的試聽音訊;這些音訊不是基準測試樣本。
為什麼數字 TTS 是語意問題
正確朗讀數字,並不等於清楚念出每個數字。TTS 模型必須先判斷數字在句子中的角色:
| 顯示文字 | 預期中文讀法 | 模型需要判斷的內容 |
|---|---|---|
3786.712 | 三千七百八十六点七一二 | 小數點後的數字應逐位保留。 |
001000000066 | 零零一零零零零零零零六六 | 識別碼是數字序列,不是一般數值。 |
HK$100 | 一百港元 | 前綴指定貨幣;只有 $100 無法確定地區貨幣。 |
9*14 | 九乘以十四 | 該符號是運算子,不是標點。 |
12cm^2 | 十二平方厘米 | 指數會把長度單位變成面積單位。 |
因此,一句流暢的話仍可能包含嚴重的數字錯誤。對識別碼、金額、測量值與公式而言,這類錯誤可能比輕微的發音瑕疵更危險。
基準測試概覽
| 項目 | 設計 |
|---|---|
| 範圍 | 僅語音複製條件 |
| 模型系列 | Fish Audio S2.1、CosyVoice3-RL、IndexTTS2、Qwen3-TTS Base |
| 參考音色 | 內部資料集中的兩個中文參考音色 |
| 每個模型系列的提示數 | 150:75 句提示 × 2 個參考音色 |
| 音訊總數 | 600 個產生的 WAV 檔案 |
| 數字類別 | 小數、識別碼、貨幣、公式、科學/工程單位 |
| 每類提示數 | 每個模型與音色組合 15 句 |
| 輸入策略 | 直接傳送包含阿拉伯數字表示法的原句 |
| 貨幣歧義 | 裸 $ 與 ¥ 按符號類別評分;明確代碼或貨幣名稱要求精確匹配 |
| 核心判定器 | 固定 revision 的 Qwen3-ASR-1.7B |
| 主要指標 | 數字目標的語意完全匹配 |
實驗設計
1. 建立五組均衡提示
每個模型與音色組合使用 75 句中文,五個數字類別各 15 句。
- 小數測試中間的零、重複數字與小數末尾的零。
- 識別碼使用合成、無法歸屬到個人的長數字序列,其中包含開頭與重複的零,不能合併讀成一般數值。
- 貨幣涵蓋 USD、CNY、JPY、CAD、AUD、SGD 與 HKD,包括語意不明確的
$與¥。 - 公式涵蓋乘法與除法,包括
二分之三與三除以二等同義讀法。 - 科學與工程單位涵蓋
cm、µm與nm。
每句載體文字都依照真實的商務、工程、物流或營運訊息個別撰寫,而不是在同一個範本中替換目標值。
2. 固定參考音色
四個模型系列都複製了內部資料集中的同兩個中文參考音色。
分數合併兩個參考音色,因此每個模型系列共有 150 個評估樣本。
3. 原樣傳送顯示文字
本基準在合成前刻意不把數字展開為讀法。
例如:
| |
我們沒有把數字替換成預期讀法:
| |
這樣可以單獨觀察模型的文字正規化行為。在實際產品中,預先展開關鍵數字通常更安全;但在本次實驗中,這樣做會消除我們想測量的問題。
4. 產生並統一音訊格式
開放權重模型從固定 checkpoint 執行,並在支援時使用確定性隨機種子。Fish Audio S2.1 的每個請求都設定了 normalize=true。 服務採用 normal latency 模式,因此這裡的分數代表啟用供應商正規化器後的 Fish Audio S2.1。
我們把各供應商輸出統一為單聲道、24 kHz、16-bit PCM WAV,並檢查聲道數、取樣率、取樣寬度與可解碼性。
全部 600 個產生樣本都通過格式檢查。
5. 轉寫並評估數字含義
每個產生檔案都使用同一個固定 revision 的 Qwen/Qwen3-ASR-1.7B 轉寫。我們將 ASR 轉寫與目標轉換為依類別定義的正規值,再要求完全匹配。因此,即使周圍句子流暢,缺少零、運算子改變、貨幣衝突或指數遺失都會判定失敗。各類別規則請見文末附錄。
結果

結果彙整兩個內部參考音色。貨幣輸出依照附錄中的歧義感知策略,根據儲存的判定轉寫重新評分。綜合分數以每個模型系列 150 個樣本為基礎,每個類別分數則以 30 個樣本為基礎。
Fish Audio S2.1 以 79.3% 的綜合得分領先,但沒有任何模型贏得所有類別。更值得關注的是:當相同數字分別代表識別碼、小數、金額、公式或單位時,各模型的失敗方式明顯不同。
識別碼:模型差距最大的類別
| 模型系列 | 完全匹配(n=30) |
|---|---|
| Fish Audio S2.1 | 66.7% |
| CosyVoice3-RL | 90.0% |
| IndexTTS2 | 40.0% |
| Qwen3-TTS Base | 0.0% |
識別碼的模型間分差最大。主要問題不是發音品質,而是序列完整性:模型會合併數字、漏掉重複的零,或插入額外數字。
小數:整體較穩定
| 模型系列 | 完全匹配(n=30) |
|---|---|
| Fish Audio S2.1 | 93.3% |
| CosyVoice3-RL | 96.7% |
| IndexTTS2 | 100.0% |
| Qwen3-TTS Base | 93.3% |
小數是最可靠的類別。它有熟悉的口語結構,因此比要求嚴格保留每個位置的識別碼更容易。
貨幣:區分金額與符號
| 模型系列 | 完全匹配(n=30) |
|---|---|
| Fish Audio S2.1 | 93.3% |
| CosyVoice3-RL | 46.7% |
| IndexTTS2 | 93.3% |
| Qwen3-TTS Base | 86.7% |
我們分別判斷口述金額與貨幣含義。單獨的 $ 不能唯一指定某個地區的貨幣,但明確寫出 CAD 或 加拿大元 的輸入必須讀成加拿大元。在評分樣本中,Fish Audio S2.1 把明確的 HK$100 讀成美元;CosyVoice3-RL 的多數失敗則改變了金額本身。
公式:運算子容易遺失
| 模型系列 | 完全匹配(n=30) |
|---|---|
| Fish Audio S2.1 | 73.3% |
| CosyVoice3-RL | 70.0% |
| IndexTTS2 | 70.0% |
| Qwen3-TTS Base | 86.7% |
一個聽起來自然的數字仍可能包含語意錯誤:乘法運算子消失後,9*14 就變成 94。
科學與工程單位:指數必須保留
| 模型系列 | 完全匹配(n=30) |
|---|---|
| Fish Audio S2.1 | 70.0% |
| CosyVoice3-RL | 70.0% |
| IndexTTS2 | 66.7% |
| Qwen3-TTS Base | 86.7% |
即使基數與單位仍可辨認,平方指數一旦遺失,面積測量就會變成不同的含義。
模型結論
| 模型系列 | 綜合(n=150) | 主要結論 |
|---|---|---|
| Fish Audio S2.1 | 79.3% | 綜合分最高;最弱的識別碼類別為 66.7% |
| CosyVoice3-RL | 74.7% | 識別碼最強;貨幣中經常改變金額 |
| IndexTTS2 | 74.0% | 小數達到 100%;識別碼明顯較弱 |
| Qwen3-TTS Base | 70.7% | 公式、貨幣與單位較強;所有識別碼樣本都失敗 |
可重現性資訊
| 元件 | 固定條件 |
|---|---|
| Qwen3-TTS Base | Qwen3-TTS-12Hz-1.7B-Base,revision fd4b254389122332181a7c3db7f27e918eec64e3 |
| CosyVoice3-RL | Fun-CosyVoice3-0.5B-2512_RL,revision 29e01c4e8d000f4bcd70751be16fa94bf3d85a18 |
| IndexTTS2 | IndexTTS2,revision 740dcaff396282ffb241903d150ac011cd4b1ede |
| Fish Audio S2.1 | 合成服務;normal latency 模式;normalize=true |
| 判定 ASR | Qwen/Qwen3-ASR-1.7B,revision 7278e1e70fe206f11671096ffdd38061171dd6e5 |
限制
- 判定器是 ASR 模型,而不是中文母語者聽測小組。ASR 錯誤可能被誤判為 TTS 錯誤。
- 兩個內部參考音色無法代表所有中文說話者、口音、音高或錄音條件。
- 本基準測試原始顯示寫法。正式環境中的文字正規化層可以顯著改善結果。
- 百分比根據合併兩個音色後、每個模型系列與類別的 30 個樣本計算;不應過度解讀較小差異。
- 供應商服務與模型實作可能在固定評估日期後改變。
結論
中文數字 TTS 沒有全能贏家。
Fish Audio S2.1 是表現最均衡的模型系列,並以 79.3% 的綜合得分領先。CosyVoice3-RL 在識別碼最強。IndexTTS2 的小數得分為 100%,但長數字序列表現較弱。Qwen3-TTS Base 在三個符號密集類別最強,卻未通過任何識別碼樣本。
比排名更重要的是:數字含義是一個獨立的可靠性面向。如果朗讀錯誤的數字可能改變付款、測量、路線、身分或存取決策,就應明確正規化輸入,並在合成後再次驗證。
附錄 A:依類別劃分的正規化規則
| 類別 | 正規化步驟與完全匹配條件 |
|---|---|
| 小數 | 把阿拉伯數字與中文數詞轉換為小數形式,同時保留每一位小數,包括末尾的零。 |
| 識別碼 | 擷取完整數字序列,將 幺 等口語數字變體正規化為 1,並保留前導零、順序與長度。 |
| 貨幣 | 先將金額正規化,再依輸入文字中的幣別線索判定。單獨的 $ 可對應美元、加幣、澳幣、新加坡幣或港幣,單獨的 ¥ 可對應人民幣或日圓;若輸入明確標示 US$、HK$、JPY 或貨幣名稱,則中文讀法必須與指定幣別一致。 |
| 公式 | 先將中文數字或阿拉伯數字轉換為數值運算元,再把 乘/乘以/×/* 統一為 multiply,把 除以///÷/分之 統一為 divide。由於 A分之B 表示 B ÷ A,儲存時會調換它在文字中的運算元順序。最後不計算結果,只對運算子與有序運算元做完全匹配。因此 三除以二 與 二分之三 都與 3/2 匹配;只有結果而沒有運算子的 一點五 會失敗。 |
| 科學或工程單位 | 先正規化數值,再把 厘米/cm、微米/µm、纳米/奈米/nm 等口語與書面別名映射到同一個基本單位。平方、²、^2 記為指數 2,沒有指數標記時記為 1。只有數值、基本單位與指數全部一致才通過。因此 12cm² 與 十二平方厘米 通過,而 十二厘米 因為把指數從 2 變為 1 而失敗。 |
附錄 B:公開音訊範例
為什麼加入試聽範例: 彙總分數可以說明模型多常產生預期讀法,卻無法呈現錯誤聽起來是什麼樣。下方範例讓主要失誤變得具體:數字遺漏或成組朗讀、小數結構改變,以及運算子或指數遺失。這20段音訊只用於試聽,是另外產生的展示集,不屬於600個樣本的基準測試,也未參與文中百分比的計算。
展示所使用的合成參考音訊
四個系統都使用同一段AI生成的Qwen3-TTS Serena音訊作為聲音參考。建議先試聽這段音訊,了解下方各個展示嘗試重現的共同音色。
參考文字: 今天我们将讨论项目进度、客户反馈与后续安排。请各位确认会议内容,并在结束后整理需要继续跟进的事项,感谢大家的配合。
識別碼範例
輸入: 维修平台确认,本次设备校验码为001000000066。
目標: 零零一零零零零零零零六六
| 模型系列 | 範例音訊與 ASR 轉寫 | 值得留意的現象 |
|---|---|---|
| Fish Audio S2.1 | 零零幺零零零零零零六六 | 遺漏一個零 |
| CosyVoice3-RL | 零零幺零零零零零零零六六 | 保留全部數字 |
| IndexTTS2 | 零零幺零零零零零零六六 | 遺漏一個零 |
| Qwen3-TTS Base | 零零幺零零万零六六 | 合併並遺漏數字 |
小數範例
輸入: 值班工程师在电话会上报告:“主回路当前读数是3168.846。”
目標: 三千一百六十八点八四六
| 模型系列 | 範例音訊與 ASR 轉寫 | 值得留意的現象 |
|---|---|---|
| Fish Audio S2.1 | 三幺六八八四六 | 小數結構遺失 |
| CosyVoice3-RL | 三千一百六十八点八四六 | 保留目標讀法 |
| IndexTTS2 | 三千一百六十八点八四六 | 保留目標讀法 |
| Qwen3-TTS Base | 三千一百六十八点八四六 | 保留目標讀法 |
貨幣範例
輸入: 设计负责人提醒大家,加拿大外包插画的尾款还有$640未付。
可接受目標: 金額 640,加上美元類別的讀法
| 模型系列 | 範例音訊與 ASR 轉寫 | 值得留意的現象 |
|---|---|---|
| Fish Audio S2.1 | 六百四十美元 | 保留金額與美元類別讀法 |
| CosyVoice3-RL | 六百四十美元 | 保留金額與美元類別讀法 |
| IndexTTS2 | 六百四十美元 | 保留金額與美元類別讀法 |
| Qwen3-TTS Base | 六百四十美元 | 保留金額與美元類別讀法 |
公式範例
輸入: 生成标签底稿时,把画布网格参数填写为9*14。
目標: 九乘以十四
| 模型系列 | 範例音訊與 ASR 轉寫 | 值得留意的現象 |
|---|---|---|
| Fish Audio S2.1 | 九州十四 | 未辨識出乘法運算子 |
| CosyVoice3-RL | 九十四 | 省略乘法運算子 |
| IndexTTS2 | 九掺十四 | 未辨識出乘法運算子 |
| Qwen3-TTS Base | 九乘以十四 | 保留目標讀法 |
科學與工程單位範例
輸入: 封装测试要求导热贴的接触面积达到12cm^2。
目標: 十二平方厘米
| 模型系列 | 範例音訊與 ASR 轉寫 | 值得留意的現象 |
|---|---|---|
| Fish Audio S2.1 | 十二厘米定二 | 平方面積含義遺失 |
| CosyVoice3-RL | 十二厘米二 | 平方面積含義遺失 |
| IndexTTS2 | 十二厘米,S二 | 平方面積含義遺失 |
| Qwen3-TTS Base | 十二厘米方 | 平方厘米含義遺失 |


