T T S,
主流TTS模型有:
google:wavenet、Parallel WaveNet、WaveRNN、tacotron1、tacotron2
百度:DeepVoice1 、DeepVoice2、DeepVoice3、ClariNet
Facebook:VoiceLoop
其他:SampleRNN、CHAR2WAV等
相关论文
TTS的工作主要是把文本信息转成音频信息,其大致流程分为前端处理和后端处理两个部分。前端的工作主要是语言领域的处理,主要包括分句、文本正则、分词、韵律预测、拼音预测(g2p),多音字等等。后端的主要工作是把前端预测的语言特征转成音频的时域波形,大体包括声学模型和声码器,其中声学模型是把语言特征转成音频的声学特征,声码器的主要功能是把声学特征转成可播放的语音波形。声码器的好坏直接决定了音频的音质高低,尤其是近几年来基于神经网络声码器的出现,使语音合成的质量提高一个档次。目前,声码器大致可以分为基于相位重构的声码器和基于神经网络的声码器。基于相位重构的声码器主要因为TTS使用的声学特征(mel特征等等)已经损失相位特征,因此使用算法来推算相位特征,并重构语音波形。基于神经网络的声码器则是直接把声学特征和语音波形做mapping,因此合成的音质更高。目前,比较流行的神经网络声码器主要包括wavenet、wavernn、melgan、waveglow、fastspeech和lpcnet等等。
before DPL
Concatenative 方法是过去最常用的语音合成技术。它的思路很直观,直接构建一个庞大的声音数据库。比如想合成“你好吗”,就从数据库中挑出“你”,“好“,”吗”三个字的声音,然后拼接在一起。如果单纯地串起来,有时候会听起来很不自然。所以很多研究都集中在解决怎么挑选出能拼接起来听得自然的语音片段。目前很多网络上可以把政治人物的声音一个个截取下来,然后重新拼接,就可以让他说出他从来没有讲过的话。这个方法的主要局限在合成声音不够丰富。因为它无法合成语音数据量中没有的,某个特定人的声音。
机器学习的方法:
后来有人用机器学习的方法,比如 HMM 和 神经网络 来做语音合成系统。如果用 HMM 筛选出每个 STATE 概率最高的语音,通常都是同一段语音。它们也不是端对端的,而是参数化的方法,非常复杂。
Wavenet
参考:https://blog.csdn.net/jojozhangju/article/details/102620167
文章主要提出了一个能够生成原始音频波形的深度神经网络,叫做WaveNet。它是一个完全的概率自回归模型,即基于之前已经生成的所有样本,来预测当前音频样本的概率分布。文章将会展示WaveNet可以在每秒数万采样率的音频数据上高效的进行训练。当WaveNet被应用到语音合成方面时,不论是英文还是中文普通话,人类听众评价其在自然度上,相比于之前最好的参数式以及拼接式系统,可以获得当前业内最佳的性能。只使用一个WaveNet模型的情况下,可以以相同的保真度捕获很多说话人的特征,并可以在给出说话人身份的条件下,在多说话人之间进行切换。当WaveNet模型应用于音乐合成,文章发现其可以产生新颖的高真实度的音乐片段。同时,文章还展示了其作为判别模型,在音素识别中所获得的可观的结果。
Wavenet并不是一个端到端模型,由于它的输入并不是raw text而是经过处理的特征,因此它实际上只是代替了传统TTS pipeline的后端(回忆我们在之前文章中的概念,传统TTS pipeline由前端和后端组成)。Wavenet最大的成功之处就是使用dilated causal convolution技术来增加CNN的receptive field,从而提升了模型建模long dependency的能力,如下图所示: