文章目录

  • 网络结构
    • 说话人编码器
    • 内容编码器
    • 解码器
    • 声码器
  • 实验

论文: 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(⋅,⋅)min​L=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的性能增益并不是由于说话人编码器的使用而得到的。

AUTOVC: Zero-Shot Voice Style Transfer with Only Autoencoder Loss笔记相关推荐

  1. AUTOVC: Zero-Shot Voice Style Transfer with Only Autoencoder Loss代码调试过程

    论文: AUTOVC: Zero-Shot Voice Style Transfer with Only Autoencoder Loss 代码实现参考:https://github.com/peis ...

  2. 论文阅读 - AUTOVC: Zero-Shot Voice Style Transfer with Only Autoencoder Loss

    文章目录 1 概述 2 模型架构 3 模块解析 3.1 获取梅尔频谱 3.2 speaker encoder 3.3 AutoVC 3.4 Vocoder 4 关键部分 参考资料 1 概述 voice ...

  3. AUTOVC: Zero-Shot Voice Style Transfer with Only Autoencoder Loss 论文理解

    0. Abstract 非并行的多对多语音转换以及零语音转换仍然是未开发的领域.诸如对抗性网络(GAN)和条件变量自动编码器(CVAE)之类的深度样式转换算法已被用作该领域的新解决方案.但是,GAN训 ...

  4. AUTOVC: Zero-Shot Voice Style Transfer with Only Autoencoder Loss 论文代码复现

    0. 说明 https://github.com/auspicious3000/autovc 但是听Demo中, 涉及到unseen的情况, 合成音色确实像, 但是质量不满足商用 复现Git的代码, ...

  5. 简单快速的Style Transfer(利用VGG19)-笔记

    What is Style Transfer Style Transfer, 风格转移,即把图片A变成图片B的风格,但保持图片A的内容不变,举个栗子,假设下图左是你自己的作品,中图是梵高的星空,右图则 ...

  6. Seen and Unseen emotional style transfer for voice conversion with a new emotional speech dataset

    会议:icassp 2021 作者:Kun Zhou,lihaizhou 文章目录 abstract 1. introduction 2. Analysis of Deep Emotional Fea ...

  7. 吴恩达老师深度学习视频课笔记:神经风格迁移(neural style transfer)

            什么是神经风格迁移(neural style transfer):如下图,Content为原始拍摄的图像,Style为一种风格图像.如果用Style来重新创造Content照片,神经风 ...

  8. 深度摄影风格转换--Deep Photo Style Transfer

    Deep Photo Style Transfer https://arxiv.org/abs/1703.07511 Code: https://github.com/luanfujun/deep-p ...

  9. 谈谈图像的style transfer(二)

    总说 主要从几个方面来进行说明吧  - 加快transfer的速度  - 让transfer的效果看起来更加visual-pleasing  - 其他的一些方面  - 用GAN来做 加快style s ...

最新文章

  1. INSTALL_FAILED_INVALID_APK
  2. 输入框设置只能输入数字
  3. Web框架——Flask系列之json、jsonify模块的使用(十四)
  4. Leetcode每日一题:376.wiggle-subsequence(摆动的序列)
  5. Chevereto网站存放图像至相应二级分类文件夹
  6. 2022年物理学诺奖获主,他们证明爱因斯坦错了
  7. Vue脚手架安装详解
  8. 自己写的一个AI输入滤波函数
  9. 如何将中文转为计算机语言,怎么将中文系统变成英文系统
  10. 机器人中的DIY,成就满满!
  11. arXiv每日推荐-5.9:语音/音频每日论文速递
  12. 真c++ 从二叉树到红黑树(2)之二叉树基类
  13. c语言程序0xc0000005解决方案,应用程序无法正常启动0xc0000005如何解决
  14. C语言入门part5
  15. 乔治亚大学计算机科学,UGA计算机科学排名,明白这个常见最有用
  16. 【运算放大器】反相放大电路仿真应用
  17. android 存储卡 合并,安卓手机合并内存卡到内置存储
  18. 【尚硅谷】Java数据结构与算法详细整理笔记(附代码)更新中…………
  19. HoloView--Customization
  20. Linux 文件管理-文件系统-XFS文件存储系统详解

热门文章

  1. 2.2线性表的数据展示【王道数据结构】
  2. 计算机应用技术挂科率高吗,大学里“挂科率高”的专业,学霸也觉得吃力,填报志愿要慎重...
  3. 中国人工智能学会通讯——智能语音技术与产业应用展望 1.2 智能语音产业应用的现状和挑战...
  4. 能源局再出新招 拟推光伏电站竞价上网
  5. Vue.js 2.0 学习重点记录
  6. C# EF 基础操作
  7. Ubuntu14.04 x64 zabbix 3.0 安装
  8. ActiveMQ_Linux安装(一)
  9. 无法在WEB服务器上启动调试,Web 服务器配置不正确
  10. windowns 8.1 缺少.net3.5解决方案