概述
本文是一片低资源合成的文章,主要关注两方面,一方面关注如何针对每个新的说话人使用尽量少的的数据实现相同的合成效果;一方面关注如何针对每个说话人占用更少的内存资源(模型参数)。
针对上述问题,文章总结了目前的custom voice系统面临的挑战有两个:
- 新的声音与训练集声音不一样
- 保持音质的同事降低模型参数数量
针对上述挑战,文章提出了两方面的解决方法:
- 分别使用两个encoder建模句子级别和音素级别的声学参数
- 在decoder部分引入条件层正则化,新的数据来了以后仅finetune一个speaker embedding以及条件层正则化的两个系数矩阵一共三个参数,以便在参数量和声音质量上求得平衡。
通过上述方法,该模型仅使用每个说话人20句话(1分钟),每个人占用5K参数就能实现该音色的合成。
系统概述
系统如图所示,系统基于fastspeech实现,从训练到推理一共需要三步,分别是training(绿色), finetune(红色), inference(全部)。
红色部分的具体模块如下:
pretrain阶段先训练(a)(b)©60k steps, 然后用c的输出作为groundtruth, 训练(d)。finetune阶段,只训练speaker embedding,以及正则化层的参数。inference阶段则将上述参数的全集作为推理的依据。
其中正则化层的示意图如下:
具体算法如下:
结果分析:
可以看出
可以看出
-
跨域adaption对合成系统而言仍然具有较大的挑战性。
-
仅训练speaker embedding效果较差(参数少,难以handle说话人个性化信息),训练decoder参数较多,本系统则获得了二者的平衡
此外,本文方法学习到的说话人特征分类较为清晰(但不排除短句子或者带情感句子造成的噪声干扰),adaption阶段使用的句子数目也较少(20句左右):