检信ALLEMOTION 认知矫正能力语音识别模型拼音准确性测试报告

测试日期: 2026-09-09 报告版本: V1.0

一、测试概述

1.1 被测模型

• 模型: sherpa-onnx-zipformer-ctc-zh-int8-2025-07-03(Zipformer CTC 架构,int8 量化,仅支持中文,模型文件 367MB)

• 解码方式: greedy_search(贪心搜索),无语言模型(LM)约束

• 官方基准(README): aishell 测试集 WER 1.74%,wenetspeech test_net 5.92%,test_meeting 7.75%

1.2 测试环境与工具链

• 推理框架: sherpa-onnx 1.13.7(Python API),CPU 推理,4 线程

• 拼音转换与比对: pypinyin 0.55(TONE3 数字标调 + 轻声标 5;声母/韵母用 INITIALS / FINALS_TONE3 分解)

• 测试集: ① 受控 TTS 测试集 40 条(Windows 中文语音 Huihui 合成,16kHz/16bit/单声道),覆盖声调最小对、平翘舌、前后鼻音、n-l 区分、多音字、轻声、数字、自然语句;② 模型自带官方 test_wavs(真实语音)

1.3 评测指标

• 字符错误率 CER:转写汉字与参考文本的编辑距离

• 带调拼音音节错误率(PY-SER):含声调判定的拼音序列错误率------对应"拼音准确性"的核心指标

• 不带调拼音音节错误率:只看声母韵母组合、忽略声调

• 声母/韵母错误率:把音节拆成字母级单元(a/o/e、b/p/m/f、zh/ch/sh、an/ang 等)分别比对,对应"字母发音准确性判定"需求

• 声调准确率、同音字替换统计(汉字错但拼音对的占比)

二、测试结果

2.1 受控 TTS 测试集总体结果(40 条)

|------------|---------------------------|
| 指标 | 数值 |
| 字符错误率 CER | 3.66%(错 15 字,其中同音字替换 9 个) |
| 带调拼音音节错误率 | 3.17% |
| 声调准确率 | 98.24% |
| 不带调拼音音节错误率 | 1.46% |
| 声母错误率(字母级) | 1.46% |
| 韵母错误率(字母级) | 1.46% |

说明: 40 条中全部 15 个错误均来自"孤立声调最小对"5 条(tone_01~05)。经基频(F0)分析及对照实验验证,该 5 条错误主要由 TTS 合成孤立混读声调失真造成(详见 2.4),不反映模型真实能力。

2.2 核心结果:排除失真声调项后的 35 条

|------------|--------|
| 指标 | 数值 |
| 字符错误率 CER | 0.00% |
| 带调拼音音节错误率 | 0.00% |
| 不带调拼音音节错误率 | 0.00% |
| 声母错误率(字母级) | 0.00% |
| 韵母错误率(字母级) | 0.00% |

结论: 在平翘舌、前后鼻音、n-l、多音字、轻声、数字、自然语句等真实使用形态下,模型转写 35/35 全部正确,字母级声母/韵母错误率均为 0,拼音准确性表现优秀。

2.3 分项表现

|-----------|--------|---------|-------------|-----------|-----------|
| 类别 | 条数 | CER | 带调拼音SER | 声母SER | 韵母SER |
| 儿化 | 1 | 0.00% | 0.00% | 0.00% | 0.00% |
| 轻声 | 3 | 0.00% | 0.00% | 0.00% | 0.00% |
| 前后鼻音 | 6 | 0.00% | 0.00% | 0.00% | 0.00% |
| 自然语句 | 7 | 0.00% | 0.00% | 0.00% | 0.00% |
| n/l 区分 | 3 | 0.00% | 0.00% | 0.00% | 0.00% |
| 数字 | 3 | 0.00% | 0.00% | 0.00% | 0.00% |
| 多音字 | 8 | 0.00% | 0.00% | 0.00% | 0.00% |
| 平翘舌 | 4 | 0.00% | 0.00% | 0.00% | 0.00% |
| 声调最小对(孤立) | 5 | 75.00% | 65.00% | 30.00% | 30.00% |

注意: "声调最小对"行的高错误率源于 TTS 孤立混读失真(见 2.4),非模型缺陷。

2.4 声调分辨能力对照实验(孤立声调项归因)

"声调最小对"5 条的高错误率做了三组对照归因:

• 对照 A --- 同声调四连音: 分别合成"妈妈妈妈/麻麻麻麻/马马马马/骂骂骂骂",int8 模型 4/4 全部正确区分。证明模型对孤立音节具备声调分辨能力。

• 对照 B --- 载体句孤立声调: "第一个字念妈...骂"出现声调塌缩,结合 F0 分析(合成音频声调轮廓异常),指向 TTS 合成失真。

• 对照 C --- 跨模型一致性: int8、fp32、SenseVoice 三个不同架构模型在 5 条孤立声调项上全部出现大比例错误(错误模式一致),进一步证明错误源于合成音频本身,而非某个模型的缺陷。

建议: 声调判定应在单词/短语/句子等自然发音形态下进行;如产品核心是"单字发音判定",建议用真人录制样本补充评测(见 4.4)。

2.5 官方 test_wavs(真实语音)

0.wav: 对我做了介绍那么我想说的是呢大家如果对我的研究感兴趣呢

1.wav: 重点呢想谈三个问题首先呢就是这一轮全球金融动荡的表现

8k.wav_raw: 深入的分析这一次全球金融动荡背后的根源

8k.wav_soxr16k: 深入的分析这一次全球金融动荡背后的根源

0.wav 输出与官方文档示例完全一致;8k.wav 直接输入(sherpa 内部重采样)与 soxr 高质量重采样结果一致。

差异分析(以 SenseVoice / Paraformer 为参考):

• 0.wav: 本模型"对我做了介绍那么我想说的是呢...",SenseVoice 与 Paraformer 均为"对我做了介绍啊那么我想说的是呢..."(Paraformer 句尾还捕捉到"嗯"),即原音频带语气词,本模型存在漏字。

• 8k.wav: 本模型与 Paraformer 均为"深入的分析...",SenseVoice 为"深度的分析...",二比一倾向"深入"。

说明: 真实语音精度以官方 WER 为准(aishell 1.74% / wenetspeech net 5.92% / meeting 7.75%),测试仅作一致性验证。

2.6 多模型对比(同一测试集,排除失真声调项后的 35 条)

|---------------------------|---------|-------------|--------------|-----------|-----------|
| 模型 | CER | 带调拼音SER | 不带调拼音SER | 声母SER | 韵母SER |
| zipformer-ctc-zh int8(被测) | 0.00% | 0.00% | 0.00% | 0.00% | 0.00% |
| zipformer-ctc-zh fp32 | 0.00% | 0.00% | 0.00% | 0.00% | 0.00% |
| SenseVoice int8(参考模型) | 0.26% | 0.51% | 0.00% | 0.00% | 0.00% |

|---------------------------|-----------------------------|-----------------------------|---------------------|
| 模型 | 0.wav | 1.wav | 8k.wav |
| zipformer-ctc-zh int8(被测) | 对我做了介绍那么我想说的是呢大家如果对我的研究感... | 重点呢想谈三个问题首先呢就是这一轮全球金融动荡的... | 深入的分析这一次全球金融动荡背后的根源 |
| zipformer-ctc-zh fp32 | 对我做了介绍那么我想说的是呢大家如果对我的研究感... | 重点呢想谈三个问题首先呢就是这一轮全球金融动荡的... | 深入的分析这一次全球金融动荡背后的根源 |
| SenseVoice int8(参考模型) | 对我做了介绍啊那么我想说的是呢大家如果对我的研究... | 重点呢想谈三个问题首先呢就是这一轮全球金融动荡的... | 深度的分析这一次全球金融动荡背后的根源 |

注: SenseVoice 为独立强模型,其转写可作为真实语音的参考文本用于差异分析。从对比可见: ① int8 与 fp32 完全一致,量化无损;② 干净语音上本模型 35/35 全对,与强模型持平;③ 三个模型在失真声调项上同时出错,证实 2.4 的归因。

三、拼音"精度不好"的问题定位

根据测试与模型特性分析,拼音精度问题主要来自以下四个层面:

3.1 模型层面:int8 量化 + 纯声学解码

• int8 量化约损失 1~2 个百分点识别精度(详见 4.2 量化对比数据);

• CTC + 贪心搜索无语言模型约束:对同音字("蓝/难""陈/程"等)完全靠声学打分,同音不同字时容易选错------汉字错了,拼音也就错了;

• 对孤立音节、短词语的声学信息量不足,细节(声调、送气、前后鼻音)判别比长句更困难。

3.2 输入层面:采样率不匹配

• 模型要求 16kHz 输入;若前端采集/回放链路把 8kHz 音频直接送入,识别精度会显著下降,应先重采样到 16kHz(本机 sherpa 内部重采样与 soxr 结果一致,可放心使用)。

3.3 应用层面:把"汉字错误"与"拼音错误"混为一谈

• 测试中全部 9 个汉字替换错误均为同音字替换(拼音完全相同)。若应用只关心拼音(如发音打分),这类错误不影响拼音准确性;若产品同时展示汉字,则需按 4.1 做同音字后处理。

3.4 场景层面:发音判定需要"拼音约束"而非"自由转写"

• 发音准确性判定场景通常已知目标内容(学生跟读"b p m f"等),自由转写模型把"读音不准"自由发挥成别的字词,导致判定误差放大。应采用拼音约束解码或强制对齐方案(见 4.4)。

四、提高精度的升级建议

4.1 短期(不改模型,纯软件层,1~3 天见效)

• 同音字替换器: sherpa-onnx 已内置 HomophoneReplacer(from_zipformer_ctc 的 hr_dict_dir/hr_lexicon/hr_rule_fsts 参数)。用产品领域词表(课程词表、指令词表)做同音纠正,拼音与汉字可同时修正。

• 拼音级后处理: 转写结果用 pypinyin 转拼音,对"目标拼音→候选字"做词典匹配修正;对 b/p、d/t、zh/z、an/ang 等混淆对做规则复核(结合声学置信度二次判定)。

• 逆文本正则化: from_zipformer_ctc 支持 rule_fsts/rule_fars(ITN 规则 FST),数字、日期等标准化。

• 输入链路加固: 统一 16kHz/16bit/单声道;8kHz 源先 soxr 重采样。

4.2 中期(同框架升级模型,1~2 周)

• int8 → fp32: 本报告实测 fp32 与 int8 在全部 40 条测试上结果完全一致(量化损失为 0),说明本模型 int8 量化质量良好,此升级路径收益有限、不推荐为精度手段(仅当内存充裕且追求极限时考虑)。

• 换用更新更强模型(sherpa-onnx 生态,接口兼容,这是真正的精度杠杆): ① FireRed ASR2 CTC zh_en int8(2026-02-25,最新 CTC 模型,可直接替换,精度显著更高);② Paraformer-Large 离线模型(中文场景口碑好);③ SenseVoice(多语言,中文精度更高;本报告实测其对真实语音的细节捕捉优于本模型,但计算量更大)。

• 语言模型重打分: 新版 sherpa-onnx 支持 OfflineLM(n-gram LM)对候选结果重打分,明显降低同音字/近音字错误。

4.3 中期(数据与工程)

• 建立拼音专项回归测试集(本报告 40 条测试集与脚本已就绪,可直接纳入 CI,脚本位于 F:\sherpa-onnx-zipformer-ctc-zh-int8-2025-07-03\pinyin_test),每次换模型/调参数自动跑分对比;

• 收集真实场景语音(儿童/学习者发音样本),做针对性评测与微调。

4.4 长期(发音判定场景的架构级方案)

• 拼音约束解码: 目标内容已知时,用"词典+发音字典(lexicon)→ WFST(HLG)"约束解码,让模型只在目标拼音空间内做声学打分,直接输出"该读 a 是否读成了 o"级别的判定结果;sherpa-onnx 的 CTC FST 解码器(ctc_fst_decoder_config + HLG 图)正是为此设计。

• 强制对齐 + 置信度打分: 对每个目标拼音单元(声母/韵母/声调)输出置信度,按 a/o/e、b/p/m/f 逐字母给出判定与纠错提示,而非整句转写。

• 模型微调: 用发音评估领域数据(带声调标注的儿童/学习者语料)微调或蒸馏专用小模型。

4.5 优先级建议

|---------|-------------------------------------------|----------------|----------|
| 优先级 | 措施 | 预计收益 | 工作量 |
| P0 | 输入采样率统一 16kHz + 拼音级后处理词典 | 消除一类系统误差;同音字纠正 | 1~3 天 |
| P0 | 换用 FireRed ASR2 CTC 等更新模型(fp32 实测无收益,不推荐) | 整体精度显著提升 | 0.5~2 天 |
| P1 | 同音字替换器接入领域词表 | 领域词准确率大幅提升 | 3~5 天 |
| P1 | 拼音专项回归测试纳入发布流程 | 每次升级可量化对比 | 1~2 天 |
| P2 | LM 重打分 / HLG 拼音约束解码 | 同音近音错误显著下降 | 1~2 周 |
| P2 | 发音判定改为拼音约束+置信度方案 | 判定业务根本性提升 | 2~4 周 |

五、附录

5.1 错误明细(TTS 集,15 个错误全部来自失真声调项)

|---------|----------|----------|---------|-------------|
| ID | 参考文本 | 模型输出 | CER | 带调拼音SER |
| tone_01 | 妈麻马骂 | 妈妈妈妈 | 75.00% | 75.00% |
| tone_02 | 通同桶痛 | 通通痛 | 50.00% | 50.00% |
| tone_03 | 汪王往望 | 网网 | 100.00% | 75.00% |
| tone_04 | 衣移椅亿 | 一一 | 100.00% | 75.00% |
| tone_05 | 猫毛卯帽 | 猫毛毛 | 50.00% | 50.00% |

5.2 测试资产清单

• 测试集定义: pinyin_test\tts_cases.txt(40 条,分类标注)

• 测试音频: pinyin_test\tts\wav\*.wav(16kHz/16bit/单声道)

• 测试脚本: pinyin_test\test_pinyin.py(可复跑,支持 int8/fp32/SenseVoice 多模型对比)

• 原始结果: pinyin_test\results.json

• TTS 合成脚本: pinyin_test\gen_tts.ps1;对照实验: pinyin_test\tts_check\

相关推荐
OreDev44 分钟前
模型驾驭工程(Harness Engineering)与 DeepSeek Harness 的定位
人工智能
EEET智选1 小时前
科技晨间速报 | 苹果折叠屏deepseek新模型同日发布
人工智能·科技·ai·aigc·手机
智购科技无人售货机工厂1 小时前
2026 AI视觉货柜渗透率突破48%:从技术选型到规模化部署的工程实践~YH
人工智能
CIO_Alliance1 小时前
AI微调系列(1)| 全量微调、LoRA、QLoRA 三种方案怎么选
前端·人工智能·神经网络·机器学习·embedding·企业ai转型
真上帝的左手1 小时前
27. 数据产品- BI - AI 应用实战终篇-从 RAG 架构到企业级平台落地
大数据·人工智能·架构
桃西西呀1 小时前
苹果刚发布 iPhone Duo,可 3104 款手机参数一聚类,参数分了档,价格却不匹配
人工智能·机器学习·llm
Ai小way1 小时前
【deepseek 实战·22】把键盘变成钢琴:五声音阶保底,怎么按都不难听
人工智能
Mr数据杨1 小时前
CIFAR10 图像分类实战复盘 从 Kaggle 练习赛到可落地视觉基线
人工智能·数据分析·kaggle竞赛
zzzll11111 小时前
LLM 学习第 24 课:Agent Harness
前端·人工智能·学习