Q:TTS,到底选择用拼接还是参数,哪种更有优势?
答:
拼接法
,即从事先录制的大量语音中,选择所需的基本单位拼接而成。这样的单位可以是音节、音素等等;为了追求合成语音的连贯性,也常常用使用双音子(从一个音素的中央到下一个音素的中央)作为单位。拼接法合成的语音质量较高,但它需要录制大量语音以保证覆盖率。拼接法需要语音学标注系统,需要对文本进行标注,如果分词错误,语言学标注错误,拼接法就会出错。优点是听起来很自然毕竟是真人的声音。
参数法
,即根据统计模型来产生每时每刻的语音参数(包括基频、共振峰频率等),然后把这些参数转化为波形。参数法也需要事先录制语音进行训练,但它并不需要100%的覆盖率。参数法合成出的语音质量比拼接法差一些。它其实是一个文本抽象成语音学特征,再用统计学模型学习出来语音学特征和其声学特征的对应关系后,再从预测出来的声学特征还原成 waveform 的过程。核心是个预测问题,有若干统计模型可以解决,目前主流是用神经网络用来预测。然后用声码器 (vocoder) 生成波形,实现特征到 waveform 这最后一步。这种思路缺点是,听起来不自然,因为最后输出的是用声码器合成的声音,毕竟有损失。优点是,对于语音库里的标注错误不敏感,因为预测时候是学的是一个统计模型。
签于以上取两种思路的优点,混合的语音合成解决方案。用基于参数的语音合成系统预测声学上最匹配的音素后,再从库里把它找出来。业界基本上是用这种,合成效果融合两种思路的长处,效果最优。
其实还有第三种思路
。用神经网络直接学习文本端到声学特征这一端的对应关系,这就直接省去了第一步,不再需要语言学标注系统标注文本了。这就是 Google 的 Tacotron。不过最后还是要需要声码器。再或者,用神经网络直接学习语言学标注端到帧级别的 waveform 端的对应关系,这就直接省去了最后一步,不再需要声码器了。这就是 DeepMind 的 WaveNet。不过第一步还是需要语言学标注系统。