Skip to content

fix(tts): 修复 Kokoro 英文音色的数字朗读 - #458

Merged
buxuku merged 1 commit into
buxuku:mainfrom
nightt5879:nightt5879/fix-426-kokoro-english-number-reading
Sep 5, 2026
Merged

fix(tts): 修复 Kokoro 英文音色的数字朗读#458
buxuku merged 1 commit into
buxuku:mainfrom
nightt5879:nightt5879/fix-426-kokoro-english-number-reading

Conversation

@nightt5879

@nightt5879 nightt5879 commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

变更内容

  • 为 Kokoro 三个英文音色(sid 0–2)跳过模型包内面向中文的电话、日期和数字 FST 规则,改由 Kokoro 的 espeak-ng 英文前端处理数字
  • 中文音色继续使用原有 FST;未知音色回退和 VITS 路径行为保持不变
  • 抽取 TTS 语言规则决策,补齐三个英文音色、中文音色、未知音色和 VITS 的回归测试

原因与兼容说明

  • sherpa-onnx 的 ruleFsts 配置作用于整个 OfflineTts 模型,而不是单个 sid;此前 SmartSub 会为全部 Kokoro 音色加载中文规则,导致英文音色可能把 1 读成 “yi”,并把 90% 错读为类似 “cent” 的内容
  • 本次只改变 Kokoro 英文音色 sid 0–2 的前端规则;中文音色仍按原方式处理电话、日期和数字
  • 未知 sid 继续沿用原有规则作为保守回退;VITS 引擎不受影响

验证

  • npm run test:dubbing:179/179
  • Prettier 检查通过
  • 使用真实 Kokoro v1.1 对 sid 0、1、2 执行 1. The project is 90% complete. A/B 验证:
    • 修复前:tiny.en 将 1 识别为 Lee / E / Yee,并将 90% 识别为 CO sent / cent 等错误结果
    • 修复后:三个英文音色均可识别为 One / 190% complete

尚未覆盖

  • 语音合成问题 #426 中“新增更多外语模型”的诉求不在本 PR 范围内,后续仍需单独实现
  • 仓库级 npx tsc --noEmit 仍受主线已有的文档依赖、路径别名和旧类型错误影响;本次改动已由专项测试与格式检查覆盖

部分解决 #426

@nightt5879 nightt5879 changed the title fix(tts): fix number reading for Kokoro English voices fix(tts): 修复 Kokoro 英文音色的数字朗读 Sep 1, 2026
@buxuku
buxuku merged commit 1fc3ab8 into buxuku:main Sep 5, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants