调整英文格式化输出和英文G2P逻辑#821
Conversation
KamioRinn
commented
Mar 19, 2024
- 将g2p_en的文字格式化内容前移至text_normalize,暴露至命令行使显示的文字与实际生成音素文字对应。
- 重写g2p_en推理逻辑,将缩写A发音修正为"EY1",量词a仍保持为"AH0"。同时减少递归重复运算。
- 扩展所有格xxx's推理应有的三个正确发音。
|
所以现在用最新的代码训练模型,不会再把“AI”读作“爱”了,是吧? |
无英文素材不需要训练 |
|
谢谢回复,我去试试 |
|
@KamioRinn 现在很多英文人名读不出来了,比如Shenny 这个人名,以前是可以读出来 ['SH', 'EH1', 'N', 'IY0'] 的,现在读作 ['SH', 'EH1', 'N', 'EH1', 'N', 'W', 'AY1'] 后面两个字母直接发单个字母音了。 |
现在的算法逻辑是为了应对复合词(chatgpt、openai、xiaomi)等,对字典里没有的词先考虑进行拆分尝试从字典里查找读音。查找不到的如果小于三个字母就当缩写去读了,长于三个的就还是交由g2p_en predict预测。 |
|
这个感觉没有太好的办法,如果从字母大小写入手,建议可以细化一下:
|
原版Predict的准确性非常低,所以才被换掉了。尝试了几个大模型,测试下都不如现在分词逻辑靠谱。控制用户输入也是特别难的一件事,本身的文本就不知道是哪里复制的,不少都不是自己写的。 其实字典里面有一些传统英文名,但是英文名的自由度很高,长度也没限制,组合也没限制,越起越花,还有一些是外国名转换的。其中一些分词就能直接读出来,一些压根可以说跟传统英文单词毫无关联… 我试着跑了一份英文姓名字典,名字数据来自fb,筛选出现2000次以上的英美加地区名字,对其中无法直接分词朗读的名字用模型预测了读音,我晚些时候传上来,如果你有人名朗读需求可以试试看 |
赞,这类人名确实是移民后裔的名字,起的没有任何章法,通过挂专门的.dict来补充吧,不要影响现在的逻辑了。 |
可以看一下#869 |