一句话音色转换---One-shot Voice Conversion by Separating Speaker and Content Representations with Instan...

One-shot Voice Conversion by Separating Speaker and Content Representations with Instance Normalization

文章地址:https://arxiv.org/abs/1904.05742

相关代码:https://github.com/jjery2243542/adaptive_voice_conversion

出处:台湾大学,李宏毅老师团队

摘要

    过往有许多关于音色转换的研究主要集中在并行语料集的基础上的,已经能够实现将一种的音色转换成其多种其他人音色(例如讯飞留声,百度地图个性化声音导航等),而且效果比较不错。但是这种方案有明显的缺陷,包括:(1)训练数据要求较严格(并行数据)。(2)只能转换处于训练集内的人的音色。基于这些问题,本文提出了一种只需要一句原始音频加一句目标音色音频就能够进行音色转换的方案,甚至于这些音色不需要出现在训练集中。本文方案的主要思想就是通过 instance normalization等技术进行音色和内容分离,然后再重组音色和内容,达到生成目标音色音频的目的。通过各种主观及客观方法评估,证明本文方案效果较好。

1 简介

    语音转换(voice conversion或简称VC)的目标是保留语音的语言特征的同时,转换语言的非语言特征。语言的非语言特征包括口音,音色,说话风格等。本文研究的目标是音色转换。

    关于VC的研究大致可以分为两类,一种是基于并行数据的监督学习方法,一种是基于非并行数据的非监督方法(本文方案)。使用监督方案的优点在于语料足够的话,可以生成相似度很高的音频,缺点在于语料收集难度太大,计算量大(针对每个新的音色都要训练模型)。并且由于需要进行对齐,某些差别很大的音频会导致对齐模型很难收敛。

    非监督方案由于数据收集容易,最近是一个比较热门的研究方向。主要有几种方法,一种是基于ASR的,方法是先将音频用ASR转换成音素,然后再用音素合成不同目标的音频。这种方案严重依赖ASR的准确率。另外一种方案是基于VAE或者GAN(如:StarGAN)的,这种方案能够取得较好的结果,但是缺点是只能转换训练集内的人的音频。

    一段语音通常包括静态信息和动态信息,其中静态信息指的是音色等固有信息,通常在一句话的任意时间片段内都保持不变,动态信息指语言内容信息,随音频时间改变。本文假设音频内容和音色是可分离的,为了实现音色和内容分离,本文提出的模型如图1。主要包括三个部分:(1)Speaker Encoder,该模块用于提出说话人的音色信息。(2)Content Encoder模块,该模块用于提取音频的内容信息,同时利用 instance normalization方法进行音色等静态信息的去除。(3)Decoder模块,该模块用于组合Speaker Encoder模块和Cotent Encoder模块生成的特征,生成目标音频特征,在该模块中,应用adaptive instance normalization将音色信息加入到音频内容信息上。

图1 模型概览

2 具体方案

2.1 变分自编码器

    令x是语音声学特征片段,X是训练集中所有声学特征段的集合。Es是代表Speaker Encoder,Ec表示Content Encoder,D表示Decoder。Es生成的说话者特征用zs表示,Ec生成的内容特征用zc表示。假设p(zc|x)是条件独立的标准高斯分布,那么重构误差可以用公式1表示:

公式1 重构误差

    假设X服从均匀分布,从X从均匀采样x,为了使得p(zc|x)服从标准高斯分布,即接近分布N(0,I),最小化KL散度。由于假设为标准高斯分布,KL散度可简化为计算L2正则化。即:

公式2 简化后的KL散度计算

    由此,可以得出VAE的损失函数为:

公式3 VAE损失函数

    其中,lambda表示权重,本文设置lambda_rec=10, lambda_kl=1。

2.2 Instance Normalization用于特征分离

    用不带仿射变换的Instance normalization很容易就能去除音频中的静态信息,这种技术借鉴于视觉任务的风格迁移。具体计算公式如下:

公式4 均值方差计算公式
公式5 归一化计算公式

    其中,c表示第c个channel,W表示权重集合,w表示第w个权重,无仿射变换即如公式5,归一化时,不加gama和beta。

    为了使得能够从Es中获取说话者信息,通过在解码器D中加adaptive instance normalization (adaIN) 层来获取说话者信息。adaIN公式如下:

公式6 adaIN公式

3 实现细节

3.1 架构    

    本文的模型涉及的3个模块的架构如图2所示。

图3 模块架构

    在Encoder和Decoder上,都是用1维卷积实现的,其中Speaker Encoder和Content Encoder都用了ConvBank,用于扩大感受野。Instance normalization用于Content Encoder,用来去除全局静态信息。PixelShufflfle1d用在Decoder中,用于模型上采样。 adaIN用于Decoder引入Speaker Encoder的信息。

3.2 声学特征

    本文用的声学特征是Mel谱,处理前将音频进行的VAD(相当于前后静音剪切)处理,归一化音量,并将音频采样统一为24KHz。在生成Mel谱时,所用的FFT为2048,窗口大小为50ms,滑动距离为12.5ms,最终生成的Mel谱维度为512维。为了将最后输出的Mel谱转换维音频,需要先将Mel谱转换为线性谱,然后通过100次迭代Griffin-Lim算法得到音频。(这里作者借鉴了Tactron处理音频的方案)

3.3 训练细节

    优化器:Adam

    初始化学习率:5e-4  

    beta1:0.9

    beta2:0.999

    Batch size:256

    Weight  decay:  1e-4

    Dropout rate:0.5(其实没用)

    训练步数:200 000

    lambda_rac(重构误差权重):10

    lambda_kl(KL损失权重):1

4 实验

    实验设置:

        数据集:VCTK(109人),抽取20人用于训练。20人的训练数据集,90%训练,10%测试。音频统一长度1.6秒,过短音频不用。  

4.1 分离度测试

    作者设计了一个简单的DNN网络用于测试声纹分类情况,以测试Instance Normalization层的有效性。结果如表1(越高,说明越能分离出不同人),其中第一列是Content Encoder加了IN层,第二列是没加的,第三列是Content Encoder没加IN但是在Speaker Encoder层加了IN的,说明IN对于声纹的提取效果明显。

表1 IN层有效性测试结果

4.2 Speaker Embedding可视化

    作者将Speaker Embedding用t-SNE进行了可视化,结果如图4。

图4 可视化结果

4.3 声谱图样例

    作者展示了音色转换前后的声谱图对比,如果5。

图5 转换的声谱图对比

4.4 评价

    作者将转换音频分发给不同人进行相似度评估,结果如图6。

图6 人工相似度度量结果

5 部分参考文献

[1]H. Miyoshi, Y. Saito, S. Takamichi, and H. Saruwatari, “Voice conversion using sequence-to-sequence learning of context postet rior probabilities,” arXiv preprint arXiv:1704.02360, 2017.

[2] T. Nakashika, T. Takiguchi, and Y. Ariki, “Voice conversion based on speaker-dependent restricted boltzmann machines,” IE-ICE TRANSACTIONS on Information and Systems, vol. 97, no. 6,pp. 1403–1410, 2014.

[3] T. Kinnunen, L. Juvela, P. Alku, and J. Yamagishi, “Non-parallel voice conversion using i-vector plda: Towards unifying speaker verifification and transformation,” in Acoustics, Speech and Signal Processing (ICASSP), 2017 IEEE International Conference on. IEEE, 2017, pp. 5535–5539.

[4] N. Hojo, H. Kameoka, K. Tanaka, and T. Kaneko, “Auto� matic speech pronunciation correction with dynamic frequency warping-based spectral conversion,” in 2018 26th European Sig-nal Processing Conference (EUSIPCO). IEEE, 2018, pp. 2310–2314.

[5] L.-W. Chen, H.-Y. Lee, and Y. Tsao, “Generative adversarial nettworks for unpaired voice transformation on impaired speech,”arXiv preprint arXiv:1810.12656, 2018.

[6] Y. Jia, Y. Zhang, R. Weiss, Q. Wang, J. Shen, F. Ren, P. Nguyen,R. Pang, I. L. Moreno, Y. Wu et al., “Transfer learning from speaker verifification to multispeaker text-to-speech synthesis,” in Advances in Neural Information Processing Systems, 2018, pp.4485–4495.

你可能感兴趣的:(一句话音色转换---One-shot Voice Conversion by Separating Speaker and Content Representations with Instan...)