ADASPEECH 2: ADAPTIVE TEXT TO SPEECH WITH UNTRANSCRIBED DATA
论文地址:https://arxiv.org/pdf/2104.09715v1.pdf
合成样例:https://speechresearch.github.io/adaspeech
1、简介
本文解决的问题是:无文本标注语音的个性化语音合成问题;作者采用的方法是在一个已经训练好的TTS模型基础上,使用一个附加的Mel-spectrogram Encoder,其作用是用来模拟原始Phoneme Encoder的功能,当模型训练完成后,进行个性化语音训练时,有了这个Phoneme Encoder模拟器,只需Fine-tune 原始模型Decoder模块的网络参数,就能达到个性化语音发音学习的目的。其优点是,适用于已训练的各种TTS模型,并且不用重新训练原来的网络,另外就是使用等量的未标注数据,就能达到不比现有的个性化学习方法差的合成效果。
2、模型方法
图1 AdaSpeech 2 网络结构AdaSpeech 网络结构如图1所示,模型主要由两个模块组成,分别为:(1)一个通用的端到端TTS模型,本文采用的是AdaSpeech网络;(2)Mel-spectrogram Encoder模块,用于无文本标注的语音进行目标发音自适应学习;
图2 模型训练至推理的4个步骤发音自适应学习的整个流程包括4个阶段,分别为:(1)使用多人含文本标注语料训练多人TTS模型。(2)训练Mel Encoder,使其与原始TTS模型Phoneme Encoder对齐对齐网络;(3)利用目标发音人的Mel谱,Fine-tune Decoder 网络;(4)合成目标发音人语音;
图2展示了网络训练及推理的所有过程(其中橙色表示需要学习参数的模块,灰色表示固定参数模块)。
作者使用与AdaSpeech网络一样的训练方法训练AdaSpeech2。其中,Mel-sepctrogram Encoder网络由4个feed-forward Transformer blocks 构成。
对齐Mel-spectrogram Encoder和原始Phoneme Encoder网络的方法其实比较简单,就是在学习好原始TTS模型后,训练训练Mel-spectrogram Encoder网络,让其输出与原始Phoneme Encoder网络输出一致,作者使用的损失函数是L2损失。图2中右上角部分的图片展示了这个过程。
3 实验
作者使用了LibriTTS和VCTK数据集作为训练数据和发音自适应数据。音频处理方法,作者使用的还是tacotron的那一套参数,只是音频采样率改成16KHz了。作者训练用了4个P10进行模型训练,原始TTS模型训练了10000步,Mel-Encoder网络微调了10000步,最后的Decoder微调训练了2000步。最终的效果可以参见链接:https:// speechresearch.github.io/adaspeech2/
最终的效果如表1所示。
表1 AdaSpeech2 实验结果这个工作想法上比较新颖,但是很容易理解。Mel-spectrogram模块是否适用于所有现有的TTS模型中,我觉得可能得打个问号,因为并不是所有的TTS模型通过fine-tune Decoder部分就能进行发音的学习的。
网友评论