[语音信号处理] 说话人转换 voice conversion .CycleGANVC .StarGANVC .

语音信号处理的总体结构

[语音信号处理] 说话人转换 voice conversion .CycleGANVC .StarGANVC ._第1张图片从这个总体结构可以看出:无论是语音识别,还是语音编码与合成,输入的语音信号首先要进行预处理。

预处理

对信号进行适当放大和增益控制,并进行反混叠滤波来消除工频信号的干扰。

数字化

将模拟信号转化为数字信号便于用计算机来处理。

提取特征

用反映语音信号特点的若干参数来代表语音。

voice conversion

我的理解:是音色转换问题的一个分支。

最近的论文:

一.CycleGAN-VC:Parallel-Data-Free Voice Conversion Using Cycle-Consistent Adversarial Networks

CycleGAN-VC:使用周期一致的对抗网络进行并行无数据语音转换
介绍CycleGAN-VC的官方网站:http://www.kecl.ntt.co.jp/people/kaneko.takuhiro/projects/cyclegan-vc/

面存在困难的逐帧方法[27,30]相比,CycleGAN-VC [29]([32]中发表)使得学习序列成为可能 - 通过使用具有门控CNN [36]和身份映射损失[37]的CycleGAN [33,34,35]的基于映射函数。这允许在保留语言信息的同时捕获顺序和分层结构。通过这种改进,CycleGAN-VC的表现与并行VC方法相当[7]。

网络结构
[语音信号处理] 说话人转换 voice conversion .CycleGANVC .StarGANVC ._第2张图片生成器和鉴别器的网络架构。在输入或输出层中,h,w和c分别表示通道的高度,宽度和数量。在每个卷积层中,k,c和s分别表示内核大小,通道数和步幅大小。由于发生器是完全卷积的,它可以输入任意长度T.

Instance Norm层:可以理解为对数据做一个归一化的操作。

GLU:在门控CNN中,门控线性单元(GLUs)被用作一个激活函数,GLU是一个数据驱动的激活函数,并且门控机制允许根据先前的层状态选择性地传播信息。(为什么要用激活函数?如果不用激励函数,每一层输出都是上层输入的线性函数,无论神经网络有多少层,输出都是输入的线性组合。如果使用的话,激活函数给神经元引入了非线性因素,使得神经网络可以任意逼近任何非线性函数,这样神经网络就可以应用到众多的非线性模型中。)

门控CNN思想:模拟lstm的是否遗忘门,或者说判断权重的思想。再做一个和CNN卷积一样参数的filter, 取值0-1,判断这个序列的特征哪些应该被关注,哪些应该被忽略。

LOSS:CycleGAN- vc使用了一个对抗损失[31]和循环一致性损失[39]。此外,为了鼓励语言信息的保存,CycleGAN-VC还使用了身份映射损失[37]。
对抗性损失:为了使转换后的特征与目标y难以区分,使用对抗性损失:

1

鉴别器试图通过最大化这种损失来寻找实数和转换特征之间的最佳决策边界,而试图通过最小化这种损失来生成可以欺骗的特征。

循环一致性损失:对抗性损失只限制GX→Y (x)服从目标分布,不保证输入输出特征的语言一致性。为了进一步规范映射,使用循环一致性损失:

[语音信号处理] 说话人转换 voice conversion .CycleGANVC .StarGANVC ._第3张图片
同时学习正反向映射以稳定训练。这种损失促使GX→Y, GY→X通过循环变换找到(X, Y)的最优伪对,如图1(a)所示。

标识映射损失:为了进一步鼓励保存输入,使用标识映射损失:
[语音信号处理] 说话人转换 voice conversion .CycleGANVC .StarGANVC ._第4张图片
[语音信号处理] 说话人转换 voice conversion .CycleGANVC .StarGANVC ._第5张图片[语音信号处理] 说话人转换 voice conversion .CycleGANVC .StarGANVC ._第6张图片λcyc和λid权衡参数。在这个公式中,每个周期使用一次对抗性损失,如图1(a)所示。因此,我们称其为一步对抗性损失。

生成器:1 d CNN

CycleGAN-VC使用一维(1D) CNN作为生成器,在保留时间结构的同时,捕捉整个关系和特征方向。这可以看作是逐帧模型的直接时间扩展,该模型只捕获每帧的这些特性的关系。为了在保持输入结构的同时有效地捕获大范围的时间结构,该生成器由下采样层、残差层和上采样层组成,如图2(a)所示。另一个值得注意的地方是CycleGAN-VC使用一个门控CNN来捕捉声学特征的顺序和层次结构。

CNN中处理的是什么?
[27] T. Kaneko, H. Kameoka, N. Hojo, Y. Ijima, K. Hiramatsu, and K. Kashino, “Generative adversarial network-based postfilter for statistical parametric speech synthesis,” in Proc. ICASSP, 2017, pp. 4910–4914.
根据这篇论文来看,是光谱纹理(spectral texture)。

光谱纹理(spectral texture)–> Mel-cepstral系数(MCEP)

鉴频器:FullGAN

CycleGAN-VC使用2D CNN作为鉴别器来聚焦于2D结构(即, 2D光谱纹理)。更精确地说,如图3(a)所示,考虑到输入的整体结构,在最后一层使用全连通层来确定真实感。这样的模型称为FullGA。

二.CycleGAN-VC2: Improved CycleGAN-based Non-parallel Voice Conversion

CycleGAN-VC2:改进的基于cyclegan的非并行语音转换

论文网址:http://tongtianta.site/paper/28409

介绍CycleGAN-VC2的官方网站:http://www.kecl.ntt.co.jp/people/kaneko.takuhiro/projects/cyclegan-vc2/index.html

[语音信号处理] 说话人转换 voice conversion .CycleGANVC .StarGANVC ._第7张图片CycleGAN-VC2,它是CycleGAN-VC的改进版本,包含三种新技术:改进的目标(两步对抗性损失),改进的发生器(2-1-2D CNN))和改进的判别器(Patch GAN)。

网络结构相比CycleGAN-VC的改进:
改进目标:两步对抗性损失
统计模型的一个众所周知的问题是统计平均导致的过度平滑。式4中使用的对抗性损失有助于缓解这种退化,但是以L1表示的循环一致性损失仍然会导致过度平滑。为了减轻这种负面影响,我们引入了一个额外的鉴别器D‘X,并对循环转换的特征施加一个不利的损失,如

此处应该有式子5的图

同样,我们引入D‘Y,并对正反映射施加一个对抗损失Ladv2(GY→X, GX→Y, D’Y)。我们把这两个不利的损失加到公式4中。在这个改进的目标中,我们对每个周期使用两次对抗性损失,如图1(b)所示。因此,我们称其为两步对抗性损失。

[语音信号处理] 说话人转换 voice conversion .CycleGANVC .StarGANVC ._第8张图片

转换过程:采用该方法对包括第0个系数的MCEPs进行了转换。2本实验的目的是分析转化MCEPs的质量;因此,对于其他部分,我们使用了与VCC 2018[38]基线相似的典型方法。具体来说,在性别间转换中,采用了基于vocoder的VC方法。采用对数高斯归一化变换[47]进行转换,直接使用APs,无需修改,使用WORLD vocoder[46]进行语音合成。在性别内转换中,我们使用无vocode的VC方法[48]。更准确地说,我们计算微分mcep之间的差异的来源和转换mcep。出于类似的原因,我们没有使用任何后滤波器[41、42、49]或强大的声码器,如WaveNet声码器[50,51]。合并它们是未来工作的一个可能方向。

三.StarGAN-VC: Non-parallel many-to-many voice conversion with star generative adversarial network

StarGAN-VC:采用星形生成对抗网络的非并行多对多语音转换

论文网址:http://tongtianta.site/paper/2827

介绍StarGAN-VC:的官方网站:http://www.kecl.ntt.co.jp/people/kameoka.hirokazu/Demos/stargan-vc/

StarGAN-VC实现(github):
https://github.com/hujinsen/StarGAN-Voice-Conversion

与CVAE-VC和CycleGAN-VC不同,StarGAN-VC使用对抗性损失进行生成器训练,以鼓励生成器输出与真实语音无法区分,并确保每对属性域之间的映射将保留语言信息。值得注意的是,与CVAE-VC和CycleGAN-VC不同,StarGAN-VC在测试时不需要任何关于输入语音属性的信息。

–IMUDGES WLY

你可能感兴趣的:(神经网络)