文章目录
论文: AUTOVC: Zero-Shot Voice Style Transfer with Only Autoencoder Loss
代码:github地址
AutoVC在传统的非平行数据的多对多语音转换任务中表现较好,而且可以实现Zero-shot语音转换(转换为没有听过的语音风格)。
整个转换过程分为三步(1)音频->Mel谱图(2)使用AutoVC模型转换Mel谱图(3)使用WaveNet将Mel谱图转换为音频
网络结构
目前现有的常用的两种VC方法:GAN和VAE,但是GAN较难训练,而VAE并不能保证分布匹配,而且经常出现转换输出过平滑的问题。本文期待结合GAN和VAE两者的优点。AutoVC遵循自编码框架,只针对自编码损耗进行训练,但它引入了精心调整的降维和时间下采样来约束信息流。
整个网络包括三个模块:
内容编码器Ec:产生语音内容
说话人编码器Es:产生说话人风格
解码器D:由Ec和Es的输出产生语音
转换时,将原语音Mel图送入Ec,将目标说话人的任一语音Mel图送入Es,从D中即可得到转换后的语音Mel图
在训练期间,将源语音输入到Ec。将同一个说话人另一个语音输入到Es。使得内容编码器和解码器使自重构误差最小化即可。在整个论文中,假定Es是预训练好的,我们所指的训练指的是训练Ec和D。内容编码器的输入为是X1,但是风格编码器的输入变成了来自同一说话者U1的不同的话语Z1‘,记作X1’。训练时最小化损失函数,即自重构误差和内容码重构误差的加权组合。
min E c ( ⋅ ) , D ( ⋅ , ⋅ ) L = L recon + λ L content \min _{E_{c}(\cdot), D(\cdot, \cdot)} L=L_{\text {recon }}+\lambda L_{\text {content }}Ec(⋅),D(⋅,⋅)minL=Lrecon +λLcontent
L recon = E [ ∥ X ^ 1 → 1 − X 1 ∥ 2 2 ] L_{\text {recon }}=\mathbb{E}\left[\left\|\hat{X}_{1 \rightarrow 1}-X_{1}\right\|_{2}^{2}\right]Lrecon =E[∥∥∥X^1→1−X1∥∥∥22]
L content = E [ ∥ E c ( X ^ 1 → 1 ) − C 1 ∥ 1 ] L_{\text {content }}=\mathbb{E}\left[\left\|E_{c}\left(\hat{X}_{1 \rightarrow 1}\right)-C_{1}\right\|_{1}\right]Lcontent =E[∥∥∥Ec(X^1→1)−C1∥∥∥1]
说话人编码器
Es由两个单元大小为768的LSTM层堆叠而成。只选择上次的输出,并将其投影到具有完全连接层的256维。最终得到的说话人风格是一个256×1的向量。对说话者编码器进行GE2E损耗预训练,最大限度地提高了同一说话者不同话语之间的嵌入相似性,最大限度地降低了不同说话者之间的相似性。
实验中Es是在VoxCeleb1和Librispeech数据集上预训练好的。
内容编码器
Ec的输入X1是80维mel谱图,在每个时间步长上串联扬声器嵌入Es(X1)。将连接后的特征输入到3个5×1卷积层中,每层依次进行批处理归一化和ReLU激活。通道数为512。然后输出传递到两个双向LSTM层的堆栈。向前和向后单元格的维度都是32,因此它们的组合维度是64。
解码器
将Es和Ec的输出进行上采样,以恢复到原始的时间分辨率。形式上,表示上采样特征分别为形式上,表示上采样特征分别为U→和U←
U → ( : , t ) = C 1 → ( : , ⌊ / 32 ⌋ ) U ← ( : , t ) = C 1 ← ( : , ⌊ t / 32 ⌋ )
U→(:,t)=C1→(:,⌊/32⌋)U←(:,t)=C1←(:,⌊t/32⌋)U→(:,t)=C1→(:,⌊/32⌋)U←(:,t)=C1←(:,⌊t/32⌋)
U→(:,t)=C1→(:,⌊/32⌋)U←(:,t)=C1←(:,⌊t/32⌋)
然后,将上采样得到的特征连接并送入3个5×1卷积层,每个卷积层有512个通道,每个通道依次进行批量归一化和ReLU,然后是3个LSTM层,单元尺寸为1024。接着将LSTM层的输出送到维度80,1×1的卷积层中。
声码器
将得到的Mel图转换为语音
使用预训练的WaveNet网络,包含4个反卷积层,实验中mel图的帧速率为62.5 Hz,语音波形的采样速率为16 kHz。因此反卷积层将对Mel图进行上采样,以匹配语音波形的采样率。然后,利用标准的40层的WaveNet对上采样谱图进行出来,生成语音波形。
实验
论文中实现了两种AutoVC,一种是由Es产生的说话人风格向量,另一种AutoVC-one-hot,使用的每个说话人的one-hot编码作为说话人风格向量。
MOS结果表明,AUTOVC在自然度方面优于现有的非并行转换系统。在相似性方面,AUTOVC也优于Baseline。注意,对于Baseline,从同性转换到跨性别转换有显着的下降,但是AUTOVC算法没有显示这种下降。最后,AUTOVC与AUTOVC- one - hot之间没有显着的差异,说明AUTOVC的性能增益并不是由于说话人编码器的使用而得到的。