深度学习与人类语言处理学习笔记(二)—— 变声(理论篇)

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

没有细讲:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值