深度学习与人类语言处理学习笔记(二)—— 变声(理论篇)
文章目录
- 1. Voice Conversion
- 1.1 Feature Disentangle
- 1.1.1 Pre-training Encoders
- 1.1.2 Adversarial Training
- 1.1.3 Network Design
- 1.1.4 2nd Stage Training
- 1.2 Direct Transformation
- 1.2.1 Cycle GAN
- 1.2.2 StarGAN
- 1.2.3 Blow
1. Voice Conversion
通过网络学习将一种声音转换成另一种声音,也就是变声器。
这种转换可以包含:说话人的转换,说话风格的转换(情感的转换、正常声音转成lombard的声音、悄悄话转成正常的声音、歌唱技巧的转换),增加一段声音的可理解性、口音的转换,数据增强(男声转女声,干净的声音转换成有噪声的声音或反之增加训练数据)。
通常是输入特征,输出对应的转换后的特征,然后将特征输入到vocoder中将特征转换成对应的语音信号,如图:
语音转换包含两种,一种是有成对的一一对应的训练资料,语音的内容是相同的,而在实际情况中很难采集对应的训练对,因此另一种是基于内容不同的训练对,如图:
1.1 Feature Disentangle
无法一一对应的训练对往往更适用于实际场景,采用这种数据的方法包含两种处理方式,一种是将语音进行分离,提取出背景音和人声(或者其他要转换的内容),然后将人声替换掉,如图:
Feature Disentangle是采用不同的网络训练出说话人和内容的编码器,从而提取原始背景和基于想要转化的人声特征,通过训练解码网络实现最终的人声转换:
1.1.1 Pre-training Encoders
在这种方式中,要让网络自主学习到内容向量,必须要有一个编码器的内容是确定的,一种方式是采用编码将每个说话人转换成one-hot向量,或者用网络将speaker转换成对应的嵌入,采用pretrained encoder来实现:
1.1.2 Adversarial Training
也可以采用Adversarial Training,来实现人声和内容特征的区分:
1.1.3 Network Design
也可以设计网络架构,实现内容和人声特征的分开提取,如在图像风格迁移中用到的方式,在content encoder里面加入一个instance normalization,对emcoder的hidden layer进行normalization:
在解码的时候加入自适应的instance normalization作用于说话人相关的特征,如图:
自适应的normalization是作用于说话人的特征:
但是上述训练过程中存在问题,在测试时结果可能会得不到理想的结果:
1.1.4 2nd Stage Training
因此可以进行2nd Stage Training,采用不对应的speaker和content进行训练,但是这样就没有对应的ground-truth,因此要引入GAN的概念,训练一个discriminator来判断当前合成的语音信号是否是真正的人声,也可以再添加一个clasiifier来判断当前合成语音是否是想要的目标说话人的结果:
但是为了防止训练时的结果不稳定,因此要加入补丁的概念:
1.2 Direct Transformation
1.2.1 Cycle GAN
采用Cycle GAN来实现直接的语音转换,将原始声音转换成目标声音特征,然后再通过网络将声音还原,使得还原后的声音和原始声音特征相似性最大化,这样就可以避免生成结果忽视原始说话内容的问题,如图:
Cycle GAN还可以是双向的,原理类似:
1.2.2 StarGAN
如果存在多个说话人,则Cycle GAN就不太适用,需要两两之间进行互相转换,计算复杂度会过高,因此可以采用StarGAN,在Generator中每个说话人被表示成对应的向量,并需要告诉Generator当前目标说话人对应的具体向量,从而实现从当前说话人到目标说话人的转换,在Discriminator中,也需要确定目标说话人对应的向量,和Cycle GAN对比如下:
1.2.3 Blow
没有细讲:
深度学习与人类语言处理学习笔记(二)—— 变声(理论篇)相关推荐
- 深度学习与人类语言处理学习笔记(一)—— 语音识别(理论篇)
文章目录 1. 语音识别概述 1.1 Token的表示 1.2 Acoustic Feature 2. 语音识别深度学习模型 2.1 Listen,Attend,and Spell(LAS) 2.2 ...
- 深度学习与人类语言处理-语音识别(part1)
深度学习与人类语言处理课程笔记,上节回顾深度学习与人类语言处理-introduction.这节课将会简单介绍语音识别的最新研究方法,请看正文 语音识别该何去何从? 1969年,J.R. PIERCE: ...
- 课程向:深度学习与人类语言处理 ——李宏毅,2020 (P28-2)
Audio BERT 李宏毅老师2020新课深度学习与人类语言处理课程主页: http://speech.ee.ntu.edu.tw/~tlkagk/courses_DLHLP20.html 视频链接 ...
- 课程向:深度学习与人类语言处理 ——李宏毅,2020 (P22)
Conditional Generation by RNN & Attention 李宏毅老师2020新课深度学习与人类语言处理课程主页: http://speech.ee.ntu.edu.t ...
- 课程向:深度学习与人类语言处理 ——李宏毅,2020 (P32)
GPT-3 李宏毅老师2020新课深度学习与人类语言处理课程主页: http://speech.ee.ntu.edu.tw/~tlkagk/courses_DLHLP20.html 视频链接地址: h ...
- 课程向:深度学习与人类语言处理 ——李宏毅,2020 (P9)
Language Modeling For Speech Recognition 李宏毅老师2020新课深度学习与人类语言处理课程主页: http://speech.ee.ntu.edu.tw/~tl ...
- 课程向:深度学习与人类语言处理 ——李宏毅,2020 (P11)
Voice Conversion 李宏毅老师2020新课深度学习与人类语言处理课程主页: http://speech.ee.ntu.edu.tw/~tlkagk/courses_DLHLP20.htm ...
- 课程向:深度学习与人类语言处理 ——李宏毅,2020 (P10)
Voice Conversion 李宏毅老师2020新课深度学习与人类语言处理课程主页: http://speech.ee.ntu.edu.tw/~tlkagk/courses_DLHLP20.htm ...
- 课程向:深度学习与人类语言处理 ——李宏毅,2020 (P12)
Speech Separation 李宏毅老师2020新课深度学习与人类语言处理课程主页: http://speech.ee.ntu.edu.tw/~tlkagk/courses_DLHLP20.ht ...
最新文章
- aidl使用_借助 AIDL 理解 Android Binder 机制——Binder 来龙去脉
- 《Algorithm算法》笔记:元素排序(2)——希尔排序
- 免费图标下载:100个手绘的PSD图标
- csp初赛复习(往年真题+解析)
- 百度地图之添加覆盖物
- Turbo C 2.0、Borland C++库函数及用例
- TreeView 控件帮助文件
- 数据科学 IPython 笔记本 9.6 聚合:最小、最大和之间的任何东西
- springboot中使用servlet通过配置类
- pycocotools/_mask.c:no such file or directory
- 【方向盘】使用IDEA的60+个快捷键分享给你,权为了提效(运行/调试篇)
- ElementUI 标签组件
- 计算机格式化后,电脑格式化后需要重装系统吗_格式化电脑重装系统的方法步骤...
- 【计算机网络 1】计算机网络概述,nginx原理jiangmo
- 盗贼之海显示无法连接服务器,盗贼之海网络连接不上怎么解决
- 彻底理解Linux的各种终端类型以及概念
- order by 按照指定顺序排序或自定义顺序排序
- paypal IPN and PDT 2
- SQLyog通过excel导入数据
- UCI 心脏病数据集Heart Disease Data Set