# 发音问题处理手册（活文档：每个新案例都沉淀进来）

> ⛔ **铁律：永不调速。** `prosody.speed` 永远 1.0——调快调慢都会出电音（用户定死）。
> 节奏只能靠文本形态（行尾句号化/标点/段落 gap）调节，没有别的办法。

> 体系三件套：**预检**（配音/预览前自动扫描 `models\读音风险库.json` 报警）→ **决策树**（本文档定修法）→ **进库**（修完案例回填风险库/读音表，下次自动预警）。

> ⚠ **"正确读音"以用户读法为准，不是字典**（实案：祛魅按字典修成 qū 被耳测纠正为 qù；同巴甫洛夫 pǔ 先例）。改读音表前先按用户读法定声调，定不了就留听点请耳裁决。

## 修法决策树

```
听到读音/节奏问题
│
├─ ① 是分词歧义吗？（TTS 把词切错了：如"转换为/什么"读出 wéi）
│    → 加标点断开歧义（确定性 100%，首选）
│    实案：「认知转换为什么重要」→「认知转换，为什么重要」
│
├─ ② 是停顿不足吗？（语气需要顿，逗号顶不住）
│    → 标点升级：逗号→句号（0.31s 自然停顿）；更强→拆独立段（0.45s 段间停顿）
│    实案：「所谓"正常发挥"，暗示…」→「所谓"正常发挥"。暗示…」
│
├─ ③ 是词典型多音字错读吗？（"校验"读成 xiào）
│    → pronounce 读音表，同音字替换。三条铁律：
│       a. 声调必须完全一致（校验→教验 jiào✓）
│       b. 按词组替换不按单字（防"差距 chā"被误伤）
│       c. 假词有断句风险（"较验"被拆开读）→ 替换后必须小样人耳验证连读
│    流程：出 2~4 个候选小样 → 用户耳选 → 入表 → `重roll.py N --force` 修已产段
│    特例·声调型错读（"不一定"读 bú）：ASR 全盲（语言模型把转写纠正回正字）、roll 选不掉
│    → 读音表换死调字（不一定→部一定）+ 该字加进风险库 `tone_sentinels` 列管
│      （声调哨兵按基频验收四声：降幅 <10% 即嫌疑——耳朵听成二声的其实是浅降）
│
├─ ④ 是英文/缩写/符号吗？
│    → AI 类缩写：保持原样靠 roll（用户已定）；% 已自动读"百分之"；新符号先小样
│
├─ ⑤ 是随机翻车吗？（同文本有时对有时错）
│    → `python 重roll.py N` 抽到对的为止；高频翻车词升级为③入表
│
└─ ⑥ 是语气表现力吗？（标题太平/反问读成陈述/强调句没拎出来）
     → 声纹分数度量不了语气，机器挑不出"语气对"的版本 —— 人机分工：
       高 temperature（0.85~0.9）roll 5 版拉开韵律多样性，声纹分保音色底线，
       **语气由人耳终审**（`python 重roll.py N 5 0.9 --keep` 后自己挑）
     实案：章标题播报腔、"你考六百八试试？"反问读平、"不是。"没拎出来
     辅助手段（按需）：反问句试"？"→"？！"标点增强；强调句确保独立句号包裹
```

## 已修案例库

| 词/模式 | 问题 | 修法 | 状态 |
|---|---|---|---|
| 认知转换为什么 | "转换为"连读 wéi | 加逗号断歧义 | ✅ 已修+入预检 |
| ，暗示 | 停顿不足 | 逗号→句号 | ✅ 已修+入预检 |
| 校验 | 读 xiào；"较验"断句 | 读音表→教验（用户耳选） | ✅ 已修 |
| 全盘 | 盘读不出 | 读音表→全磐 | ✅ 已修 |
| 最差/考差/没那么差/考得差/有多差 | 差读 chā | 读音表→岔系列 | ✅ 已修 |
| 重装 | 读 chóng | 读音表→虫装 | ✅ 已修 |
| 一本线 | 一读 yì | 读音表→医本线 | ✅ 已修 |
| ta | 英文小写读法不稳 | 读音表→他 | ✅ 已修 |
| 巴甫洛夫 | 甫的读法（用户读 pǔ） | 读音表→巴普洛夫 | ✅ 已修 |
| 祛魅 | 读成"趣味"，roll 4 次不愈（生僻术语=系统性错读） | 读音表→去魅（qù 用户读法，字典 qū 被耳测否） | ✅ 已修 |
| 力竭 | 竭读 jiě | 读音表→力杰（jié） | ✅ 已修 |
| 不一定 | "不"读 bú（声调型，ASR 盲区） | 读音表→部一定 + tone_sentinels 哨兵列管 | ✅ 已修+列管 |
| AI | 读法不稳 | 保持原样+重roll（用户决策） | ✅ 定案 |

## 维护流程（让体系活下去）

1. 用户报错读 → 按决策树修
2. 修完把案例写进：`models\读音风险库.json`（预警）+ 本文档案例表 + `config.json` pronounce（若③类）
3. 已产段用 `python 重roll.py N --force` 替换，再 `python 合并.py` 重拼
4. 风险库的 words 只放**真实遇到/高危**的词——宁缺勿滥，避免预警噪声
