
本文内容
我们使用包含小数、标识符、货币、公式和科学单位的 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 | 十二厘米方 | 平方厘米含义丢失 |


