[自然语言处理-入门] 语音合成
个人导航
知乎:https://www.zhihu.com/people/byzh_rc
CSDN:https://blog.csdn.net/qq_54636039
注:本文仅对所述内容做了框架性引导,具体细节可查询其余相关资料or源码
参考文章:各方资料
文章目录
- [[自然语言处理-入门] 语音合成](#[自然语言处理-入门] 语音合成)
- 个人导航
- [TTS before End-to-end](#TTS before End-to-end)
-
-
-
- [1. 拼接合成(Concatenative)](#1. 拼接合成(Concatenative))
- [2. 参数合成(Parametric / HTS)](#2. 参数合成(Parametric / HTS))
- [3. Deep Voice](#3. Deep Voice)
-
-
- [:star:Tacotron: End-to-end TTS](#:star:Tacotron: End-to-end TTS)
-
-
-
- [1. Tacotron](#1. Tacotron)
- [2. 模型结构](#2. 模型结构)
- [3. Vocoder 声码器](#3. Vocoder 声码器)
- [4. 效果 MOS 评分](#4. 效果 MOS 评分)
-
-
- [改进方向 Beyond Tacotron](#改进方向 Beyond Tacotron)
-
-
-
- [1. 发音错误(Mispronunciation)](#1. 发音错误(Mispronunciation))
- [2. Encoder 增强](#2. Encoder 增强)
- [3. Attention 改进(重点)](#3. Attention 改进(重点))
- [4. FastSpeech ------ 最大突破](#4. FastSpeech —— 最大突破)
- [5. 双学习(Dual Learning)](#5. 双学习(Dual Learning))
-
-
TTS before End-to-end
TTS: text to speech: 文本转语音
End to end: 端到端: 输入直接到输出(中间不用人工)
1. 拼接合成(Concatenative)
- 从大语音库剪片段拼起来
- 自然度高,但不灵活、库巨大
2. 参数合成(Parametric / HTS)
- 用 HMM/DNN 预测:频谱、激励、时长
- 灵活,但音质差、机器感重、不自然
传统 TTS:
HMM: Hidden Markov Model: 隐马尔可夫模型
DNN: Deep Neural Network: 深度神经网络
3. Deep Voice
- 全深度学习模块:文本→音素→时长→基频→音频
- 标志传统流水线走向深度学习
⭐️Tacotron: End-to-end TTS
1. Tacotron
- 输入:字符(文字)
- 输出:频谱图(Mel/Linear)
- 意义:第一个真正端到端 TTS,不用音素、不用人工特征
Linear 线性频谱:
- 频率轴是均匀的:100Hz→200Hz,和 1000Hz→1100Hz,间隔一样
- 信息100% 完整,没有损失
Mel 梅尔频谱:
- 模仿人耳 的频率轴
- 低频:分得很清(100Hz vs 200Hz 差别很大)
- 高频:分得很粗(10000Hz vs 10100Hz 听不出区别)
- 把高频压缩,低频展开,让频率轴符合人耳
2. 模型结构
- Encoder(编码器)
- CBHG 结构: 专门用来做文本特征提取的模块
- 把文本变成语义特征
- Attention(注意力)
- 把文本序列 和语音帧 做时序对齐
- 必须满足:单调对齐(从左到右,不回头)
- Decoder(解码器)
- 结构: RNN + Attention
-> 一次生成 r 帧梅尔频谱 - 训练技巧:
- Teacher Forcing:用真实上一帧做输入,训练稳定
- Dropout:模拟采样,提升泛化
- 额外输出:停止标志(End token),判断句子是否结束
- 结构: RNN + Attention
3. Vocoder 声码器
Tacotron 1:Griffin-Lim(传统算法,无训练,快但音质差)
Tacotron 2 :WaveNet(神经网络声码器)
-> WaveNet 让音质飞跃提升,远强于 Griffin-Lim
4. 效果 MOS 评分
满分 5 分,越高越像真人
- Tacotron 1:3.82(优于参数合成)
- Tacotron 2 :4.526(接近真人录音 4.582)
- 拼接合成:4.166(Tacotron2 反超传统最优)
改进方向 Beyond Tacotron
1. 发音错误(Mispronunciation)
- 问题:OOV(未登录词)读错
- 解决:
- 词典转音素
- 字符 + 音素混合输入
2. Encoder 增强
- 加入句法信息、BERT 嵌入,让语调更自然
3. Attention 改进(重点)
- Guided Attention:惩罚非对角,强制对齐
- Monotonic Attention:单调注意力
- Location-aware Attention:带历史位置信息
- 目的:解决跳词、重复、读错长句
4. FastSpeech ------ 最大突破
- 去掉自回归,并行生成
- 引入时长预测器(Duration Predictor)
- 结果:
- 0 重复、0 跳词、0 错误句
- 速度极快、合成稳定
5. 双学习(Dual Learning)
- TTS ↔ ASR 形成闭环
- 用无标注数据提升效果
- 语音链(Speech Chain)框架