首先是论文链接如下:
SR-TTS: a rhyme-based end-to-end speech synthesis system
https://doi.org/10.3389/fnbot.2024.1322312
背景就是FastSpeech系列啦,链接如下,不再赘述了
DOI: https://doi.org/10.48550/arXiv.1905.09263
DOI: https://doi.org/10.48550/arXiv.2006.04558
问题的提出:
FastSpeech系列也算是TTS(text2speech)领域中十分经典且实用的模型了,魔改的文章也很多,那么提出本文的动机在哪呢?一开始在学习FastSpeech2的代码(https://github.com/ming024/FastSpeech2),第一步预处理都会进行这一步(prepare_align.py)的对齐操作,其实也很好理解,TTS的本质就是在做每个文本的音节(严格一点叫音素phoneme)和对应的语音的梅尔频谱图的映射关系,也就是说模型学习的是一个不断对齐的过程,那么问题就出现了,为了模型的更快更好的学习我们强制将文本与语音对齐了,那么对于不管是文本还是语音而言原来的时序信息就全被丢弃了,怎么在这个生成任务中去补齐这个时序信息就是我们工作的关注点了。
解决方法:
既然是时序信息丢失了,那么很自然的想到在模型里补点时序模块,那么在原来FastSpeech2的结构中方差适应层(Variance Adaptor)起着关键的作用,它负责调整合成语音的音高(pitch)、时长(duration)和能量(energy),以提高合成语音的自然性和表达力。这个层是在编码器和解码器之间,编码解码有着固定结构的前提下,这个模块我们就选在了Variance Adaptor中,当然duration先放前面还是必要的,时序当然首选考虑lstm,这也就是加入了prosody model的原因,同时方差适应层(Variance Adaptor)原有的预测模块都是普通的卷积层,很自然的想到加入注意力改善一下全局信息,创新的方法差不多就这些了。
细节图和一些实验结果图,包括模型的对比与消融实验,都在论文链接中自取了,如果对代码感兴趣可发邮件交流讨论。