Luna-TTS 把中文姓名念错,通常不完全是模型本身不行,而是文本没做预处理就直接送进合成。多音字在姓名、地名里高发:单、解、仇、曾、查、区、缪、乐、重、厦、蚌、六、行、长。可以先把这些字在文本里改成拼音或经确认的同音字,再重新合成,用改前改后的听感对比确认是否真的解决。
判断顺序建议是:先从音频里逐句定位读错的具体字,再判断是分词切错还是多音字取错音,然后只替换这一类字,重新合成做 A/B 对比。替换能解决的多半是多音字和生僻姓氏;如果错误跟着词边界走,改文本往往无效,需要调整切分或加分词词典。所有结论都要靠同一句改前改后的听感对比来确认,不要凭单次听感下判断。
把念错的字从合成结果里逐句标记出来
不要笼统地说「读得不对」。把合成稿按句子顺序听一遍,遇到读错就暂停,记下三列:时间点、原文字、实际读法。时间点用播放器显示的位置即可,原文字写文本里那几个字,实际读法用拼音或同音字描述。
时间点 原文字 实际读法
00:03 单怡 dān yí(应为 shàn yí)
00:11 重庆 zhòng qìng(应为 chóng qìng)
00:19 行者 xíng zhě(此处应为 háng zhě,视语境)标记时以「字」为单位,不要以「整句读起来别扭」为单位。有些问题其实是停顿或语调,不属于多音字,也一并写清楚,避免后面替换了文本却解决不了。
判断是分词切错还是多音字取错音
区分办法是:同一句只改一个地方,重新合成一次,看错误是否跟着这个字变。
- 多音字取错音:把「单」写成 shàn 后重合成,读音变正确,说明模型给这个字取错了音,改文本有效。
- 分词切错:把「单/怡」之间的边界改对,或直接写成 shànyí 连写后读音才对,单独把「单」改成拼音反而没变化,说明是切分把词拆错了,单纯替换单字可能无效。
两种对照例子:
- 分词问题:「区长」被切成「区/长」读 qū zhǎng,而人名实际是 ōu cháng;此时改「区」为 ōu 通常有用,但如果切分仍把两个音节拆开,也可能没变化。
- 多音字问题:「重庆」读成 zhòng qìng,把「重」写成 chóng 或整词写成 chóngqìng,一般能纠正。
如果同一句里多个错都跟着同一个词的位置变化,往往指向切分;如果错误固定落在某个字上,指向多音字取音。具体要看 Luna-TTS 当前的切分方式和有没有自定义词典,不同版本行为可能不一样,需要结合实际环境确认。
把易错字替换成拼音或同音字写法
替换规则可以直接照抄,先小范围试,确认后再批量套用。姓氏、地名、多音字三类各给一组示例。
姓氏
- 单 → shàn,或同音字「善」;「单怡」写作 shàn yí
- 解 → xiè;「解磊」写作 xiè lěi
- 仇 → qiú;「仇明」写作 qiú míng
- 区 → ōu;「区杰」写作 ōu jié
- 曾 → zēng;「曾磊」写作 zēng lěi
地名
- 重庆 → chóngqìng
- 厦门 → xiàmén(避开「大厦」的 shà 干扰)
- 蚌埠 → bèngbù
- 六安 → lù'ān
通用多音字
- 行(háng / xíng):银行写成 yínháng,行走写成 xíngzǒu
- 长(zhǎng / cháng):成长写成 chéngzhǎng,长度写成 chángdù
- 乐(yuè / lè):乐章写成 yuèzhāng,快乐写成 kuàilè
# 替换规则示例,按顺序执行,注意词边界匹配
单怡 -> shàn yí
重庆 -> chóngqìng
厦门 -> xiàmén
银行 -> yínháng替换后要检查两件事:一是拼音会不会被当成英文字母逐字母读,有些合成前端会把裸拼音按英文处理,可以先合成一小段试听确认;二是是否影响相邻字,比如「一」「不」在不同声调前的变调、连写拼音与前后汉字之间的停顿。整句要再听一遍,不能只听那一个词。
改完再合成一遍并做 A/B 听感记录
验证方式是同一句改前改后并排听,不要拿不同句子比较。固定音量和播放器,先听改前再听改后,逐条记录判断结果。
句子ID 改前文本 改后文本 改前听感 改后听感 是否解决
S01 单怡 shàn yí 读 dān 读 shàn 是
S02 重庆 chóngqìng 读 zhòng 读 chóng 是
S03 行者 hángzhě 读 xíng 仍读 xíng 否结论只写「解决」「未解决」「部分解决」三种,不要写「好一些」「差不多」这类模糊描述。未解决就回上一步换思路:是切分问题就去调切分或加词典,是拼音被按英文读就换同音字写法,而不是在同一处反复替换同一写法。部分解决时要写清还剩哪个字没读对。
把验证过的替换整理成固定文本规范
把上面验证通过的替换固化成一份术语表,后续稿件先过一遍再合成,不用每次重新试错。
- 术语表:分姓氏、地名、专有名词、通用多音字四组,每行写「原词 → 替换写法 → 适用条件」。只收已经做过 A/B 对比通过的条目,没验证的不要进表。
- 替换顺序:先替换专有名词和姓氏,再替换地名,最后处理通用多音字。长词先替换,减少与后续短词替换互相干扰;匹配时用带词边界的方式,避免把「一单」这类普通词一起改掉。
- 每次合成前的检查动作:① 扫描稿件中属于术语表的词,确认已替换;② 看替换后的拼音与相邻汉字连写是否正常;③ 挑两到三句含多音字的句子先做小样合成,听感没问题再整篇合成。
术语表建议跟着 Luna-TTS 的版本和切分配置一起维护。换版本或调整词典后,之前验证过的替换要重新抽查一遍,确认行为没有变化。