1.文字到语音的整个过程
文字到语音的一般整体结构
主要是下面这个流程,每个网络可能会把其中两者或是三者融合在一起来;
长度不同的问题
生成的语音可能和文字的长度并不一样,因此需要解决这个问题
- Tactron使用的是交叉注意力的方式解决他们长度不同的问题
- fastSpeech直接预测了输出的长度,通过将文本信息拷贝几分的方式,获得了相同的长度。
2.各种具体的网络结构
2.1WaveNet
2.1.1研究动机
- 原有的语音生成模型大多采用RNN这个东西太慢了,不如采用一个卷积的结构,来进行替代;
- 卷积是前后都感知的这不合适,因此改一下,只让其卷进去前面的部分,这样就合理了。称为“因果卷积”
- 既然使用了卷积,那么使用空洞卷积就自然而然了。
2.1.2结构和类型
输入输出
将声学模型和发声器全部都融合在一起了
输入处理过的字符串信息,输出语音
类型是自回归
2.1.3不能解决的问题
- 虽然训练的时候比较快,但是在预测的时候,开始启动时候因为空洞卷积的问题需要多轮。(这里不确定需要再确认)
2.2tactron
2.2.1研究动机
1.前人的融合工作还是不太够,不能真正的端到端,因此作者这里再融合一下;
2.文本序列较长的时候会导致较大的累计误差,作者使用交叉注意力机制来解决这个问题,这个貌似也是交叉注意力本身的研究动机;
3.预测较慢,由于语音信息前后比较相近,因此作者就直接一次预测三帧。
2.2.2结构和类型
输入输出
将字符串分析和声学模型融合在一起了
输入是字符串,输出是梅尔频谱
网络结构
使用机器翻译借鉴过来的模型CBHG
类型是自回归
2.2.3奇怪的点
虽然声学模块用的是自回归的,但是这个交叉注意力一进去,其实每个节点不都有全局信息了吗
2.3fastSpeech
2.3.1研究动机
- 采用自回归是有一定问题的,因为自回归是非常缓慢的,并且由于累计误差会在最终结果当中产生重大错误;
- 前人采用自回归的问题是被迫为之,主要是不知道每个文字需要说多长时间,于是本文作者发明了一个先预测每个字说多长时间再整体预测全流程该怎么说的网络结果。
- 想要实现这个预测说多久其实也不是很复杂,因为可以用别人训练好的TTS模型直接来进行得到。
2.3.2 结构和类型
输入输出
也是将文本分析和声学模型融合在一起
输入是文字串输出是梅尔谱
类型是非自回归
2.4fastSpeech2
- 之前的网络较为复杂,消除蒸馏可以更好的简化网络
- 之前通过长度预测可以调整输入的长度对齐,那么是否可以通过类似位置加入其他模块来增加更多语音信息(音高、能量、情感等);