微信读书的Ai朗读里有“鬼”,冷不丁吓我一跳

早就听说AI驱动的语音TTS遇到某些特定字符组合会“突发恶疾”
bilibili搜索 AI语音突发恶疾 能看到很多,比如这个盘点

今天让我也给碰到了,吓我一跳。
微信读书的 AI男声2022

只要读到这句就会突发恶疾(黼字位置):
日、月、星辰、山、龙、雉鸟、宗彝、藻、火、粉米、黼、黻


不知道是什么原理?太离谱。
我试了下单独读 黼 又不会有问题。

1 个赞

果然离谱。

所以现在AI发声是从人类语言学来的还是怎么来的?

记得好久之前就有这问题了,一直没解决吗

应该就还是用成对文本和语音训练出来的玩意,原理上简单来说就是编码器把文本投影为特征空间中的特征表示,解码器将其解码为语音信号,可以用VAE之类的方式实现,并且可以在特征层注入一些类似于语气或者口音之类的信息。

早期方法是把单独的字和词语都提前录制,TTS时连接在一起,优点是简单稳定,但听起来就是字和词一个个蹦出来,而且效果严重受分词影响。

现在深度学习方法应该是以句或段为单位生成,能连读也能附加语气了,但一方面大部分文本没有提供语气的标注,用另外的语气预测又可能不准。另一方面就是鲁棒性不足,像是视频里“依次为e-d-c……”的TTS模型的训练样本里可能几乎没有非中文语音-文本对,输出就是在乱搞;或者那个带口音的英文,可能是在某些英文TTS模型上微调的,保留了英文发音能力,但附带了中文的发音方式;“火、粉米、黼、黻”这个连在一起可能恰好构成某种对抗样本(毕竟这个句子很奇怪,不是正常的、有意义的句子),但单独的“黼”字就不能构成对抗样本,或者是退回为单独录制的版本了。

2 个赞

简化来说,传统的 TTS 方法:

句子分解成词语 → 词语合成语音 → 情感和语气修正

现在基于深度学习:

句子整个转换成一团「浆糊」(向量) → 直接把浆糊丢给模型 → 模型自己从浆糊里还原句子,转换出完整语音

这里的问题就是,「浆糊」和句子的对应关系是从模型训练中由统计学优化方法自己得出来的。换句话说,假如训练时没有见过某个字,转换的时候就完全不知道怎么转换,模型也还原不出来。见得越多,转换精度越高。

大模型已经复杂到不可解释了,所以以后会有更多问题没有原因。