《StarGAN-VC: Non-Parallel Many-To-Many Voice Conversion With Star Generative Adversarial Networks》论文学习
文章目录
摘要
本文提出了一种允许非并行多对多语音转换( VC )的方法,通过使用生成式对抗网络( GAN )的一个变体,称为 StarGAN 。
我们的方法 StarGAN-VC 值得注意的是
(1) 要求没有平行的话语,转录,或时间校准程序的语音发生器训练
(2) 使用单个生成器网络,同时学习跨不同属性域的多对多映射
(3) 能够产生转换语音信号足够快,允许实时实现
(4) 只需要几分钟的训练例子,就可以产生合理逼真的听起来的语音
基于非并行多对多说话人身份转换任务的主观评价实验表明,该方法比基于变分自编码的 GANs 方法获得了更高的音质和说话人相似度。
索引术语 —— 语音转换( VC ) , 非并行 VC , 多到多 VC ,生成对抗网络( GANs ) , CycleGAN-VC , StarGAN-VC
1 介绍
语音转换( VC )是在保留语言信息的同时,对给定话语中包含的非语言信息进行转换的一种技术。
该技术可应用于各种任务,如文本到语音( TTS )系统(《Spectral voice conversion for textto-speech synthesis》)的说话人身份修改、说话辅助(《Improving the intelligibility of dysarthric speech》,《Speaking-aid systems using GMM-based voice conversion for electrolaryngeal speech》)、语音增强(《Data-driven emotion conversion in spoken English》,《Evaluation of expressive speech synthesis with voice conversion and copy resynthesis techniques》,《Statistical voice conversion techniques for body-conducted unvoiced speech enhancement》)和发音转换(《Sequence-to-sequence voice conversion with similarity metric learned using generative adversarial networks》)。
一个成功的 VC 框架涉及到基于高斯混合模型( GMMs )的统计方法(《Continuous probabilistic transform for voice conversion》,《Voice conversion based on maximumlikelihood estimation of spectral parameter trajectory》,《Voice conversion using partial least squares regression》)。
最近,一种基于前馈深度神经网络的神经网络( NN )框架(《Spectral mapping using artificial neural networks for voice conversion》,《Voice conversion using deep neural networks with speaker-independent pre-training》,《Voice conversion using input-to-output highway networks》)、递归神经网络(《Voice conversion using deep bidirectional long short-term memory based recurrent neural networks》)、生成对抗网络( GANs )(《Sequence-to-sequence voice conversion with similarity metric learned using generative adversarial networks》),以及一种基于非负矩阵分解( NMF )的范例框架(《Exemplar-based voice conversion using sparse representation in noisy environments》,《Exemplar-based sparse representation with residual compensation for voice conversion》)也被证明是成功的。
包括上述在内的许多传统 VC 方法都需要对源语音和目标语音数据进行精确对齐。
然而,在许多情况下,并不总是可能收集到平行的话语。
即使我们能够收集到这样的数据,我们通常也需要执行时间对齐程序,当源和目标语音之间存在较大的声间隙时,这变得相对困难。
由于许多框架在使用并行数据时发现的偏差方面是薄弱的,为了使这些框架可靠地工作,可能需要仔细的预筛选和手动校正。
为了绕过这些限制,本文考虑开发一个非并行 VC 方法,它不需要平行的话语,转录,或时间对齐程序。
一般来说,由于训练条件的限制,非并行方法得到的质量和转换效果与使用并行数据的方法相比是有限的。
因此,开发具有与并行方法一样高的音频质量和转换效果的非并行方法是非常具有挑战性的。
最近,有人尝试发展非并行方法(《Voice conversion using deep neural networks with layer-wise generative training》,《Voice conversion based on speaker-dependent restricted Boltzmann machines》,《High-order sequence modeling using speaker-dependent recurrent temporal restricted Boltzmann machines for voice conversion》,《Parallel-data-free, many-to-many voice conversion using an adaptive restricted Boltzmann machine》,《Modeling and transforming speech using variational autoencoders》,《Voice conversion from non-parallel corpora using variational Preference score (%) auto-encoder》,《Voice conversion from unaligned corpora using variational autoencoding Wasserstein generative adversarial networks》,《A KL divergence and DNNbased approach to voice conversion without parallel training sentences》,《Non-parallel voice conversion using i-vector PLDA: Towards unifying speaker verification and transformation》,《Parallel-data-free voice conversion using cycle-consistent adversarial networks》,《Neural discrete representation learning》,《Parallel-data-free many-to-many voice conversion based on dnn integrated with eigenspace using a non-parallel speech corpus》,《Parallel-data-free many-to-many voice conversion based on dnn integrated with eigenspace using a non-parallel speech corpus》)。
例如,在(《A KL divergence and DNNbased approach to voice conversion without parallel training sentences》)中提出了一种使用自动语音识别( ASR )的方法。
其思想是在保留 ASR 系统声学模型的后验状态概率的限制下对输入语音进行转换,使转换后的语音的转录与输入语音的转录保持一致。
由于这种方法的性能在很大程度上取决于 ASR 声学模型的质量,因此,如果 ASR 不能可靠地工作,这种方法可能无法工作。
最近在(《Non-parallel voice conversion using i-vector PLDA: Towards unifying speaker verification and transformation》)中提出了一种使用 i 向量(《Front-end factor analysis for speaker verification》)的方法,被称为说话人验证的特征。
从概念上讲,该思想是将输入语音的声学特征在 i 向量空间中转移到目标语音,以便转换后的语音很可能被说话人识别器识别为目标说话人。
虽然这种方法也不需要并行数据,但一个限制是它只适用于说话者身份转换任务。
最近,(《Voice conversion from non-parallel corpora using variational Preference score (%) auto-encoder》,《Non-parallel voice conversion using variational autoencoders conditioned by phonetic posteriorgrams and d-vectors》)提出了一种基于条件变分自编码器( CVAEs )的框架(《Auto-encoding variational Bayes》,《Semi-supervised learning with deep generative models》)。
顾名思义,变分自编码器( VAEs )是自编码器( AEs )的概率对等物,由编码器和解码器网络组成。
CVAEs (《Semi-supervised learning with deep generative models》)是 VAEs 的扩展版本,编码器和解码器网络可以接受一个辅助变量 c 作为额外的输入。
通过使用声学特征作为训练例,相关的属性标签作为 c ,网络学习如何根据输入到解码器的属性标签将源语音的属性转换为目标属性。
这种基于 CVAEs 的 VC 方法值得注意的是,它完全不需要并行数据,甚至可以与未对齐的语料库一起工作。
然而,关于 VAEs 的一个众所周知的问题是解码器的输出往往过于平滑。
对于 VC 应用程序,这可能是有问题的,因为它通常会导致低质量的嗡嗡声。
GANs (《Generative adversarial nets》)是一个强大的框架,可以潜在地克服 VAEs 的弱点。
GANs 提供了一个通用框架来训练一个生成器网络,以使它能够欺骗一个真/假鉴别器网络。
虽然它们被发现可以有效地用于图像生成,但近年来,它们也被用于各种语音处理任务,取得了显著的成功(《Sequence-to-sequence voice conversion with similarity metric learned using generative adversarial networks》,《Generative adversarial network-based postfilter for statistical parametric speech synthesis》,《Statistical parametric speech synthesis incorporating generative adversarial networks》,《SEGAN: Speech enhancement generative adversarial network》,《Generative adversarial network-based postfilter for STFT spectrograms》,《Generative adversarial network-based approach to signal reconstruction from magnitude spectrograms》)。
我们之前报道了一种非并行 VC 方法,使用一种被称为循环一致 GAN ( CycleGAN )(《Parallel-data-free voice conversion using cycle-consistent adversarial networks》)的 GAN 变体,它最初被提出作为一种使用未配对训练示例翻译图像的方法(《Unpaired image-to-image translation using cycle-consistent adversarial networks》,《Learning to discover cross-domain relations with generative adversarial networks》,《DualGAN: Unsupervised dual learning for image-to-image translation》)。
这种方法,我们称之为 CycleGAN-VC ,旨在学习声学特性从一个属性 X 的映射 G 到另一个属性 Y ,它的逆映射 F ,和一个鉴别器 D ,其作用是区分转换语音的声学特性和那些真正的语句,通过培训损失结合一个对抗的丧失和一个周期的一致性。
尽管这种方法工作得相当好,但一个主要的限制是它只学习一对一的映射。
在很多 VC 应用场景中,获取多对多映射是很理想的。
将 CycleGAN 应用于多对多 VC 任务的一种简单方法是为所有属性域对训练不同的 G 和 F 对。
然而,这可能是无效的,因为所有属性域都是共同的,它们表示语音,因此必须有一些共同的潜在特征可以在不同的域之间共享。
在实践中,参数的数量会随属性域的数量呈二次增长,这使得参数训练具有挑战性,特别是当每个域的训练实例数量有限时。
CVAE-VC 和 CycleGAN-VC 的一个常见限制是,在测试时必须知道输入语音的属性。
对于 CVAE-VC ,必须将源属性标签 c 输入训练后的 CVAE 的编码器中,使用 CycleGAN-VC ,训练和测试时的源属性域必须相同。
为了克服 CVAE-VC (《Voice conversion from non-parallel corpora using variational Preference score (%) auto-encoder》)和 CycleGAN-VC (《Parallel-data-free voice conversion using cycle-consistent adversarial networks》)的缺点和局限性,本文利用新近提出的一种新的 GAN 变体 StarGAN (《StarGAN: Unified generative adversarial networks for multidomain image-to-image translation》)提出了一种非并行多对多 VC 方法,该方法同时具有 CVAE-VC 和 CycleGAN-VC 的优点。
与 CycleGAN-VC 和 CVAE-VC 不同,我们的方法(我们称为 StarGAN-VC )能够使用单个编码器解码器类型生成器网络 G 同时学习多对多映射,其中生成器输出的属性由辅助输入 c 控制。
与 CVAE-VC 和 CycleGAN-VC 不同, StarGAN-VC 使用对位损失进行生成器训练,以鼓励生成器输出与真实语音无法区分,并确保每对属性域之间的映射将保留语言信息。
同样值得注意的是,与 CVAE-VC 和 CycleGAN-VC 不同, StarGAN-VC 在测试时不需要关于输入语音属性的任何信息。
VAE-GAN 框架(《Autoencoding beyond pixels using a learned similarity metric》)可能是克服 VAEs 弱点的另一种自然方式。
在(《Voice conversion from unaligned corpora using variational autoencoding Wasserstein generative adversarial networks》)中提出了一种基于此框架的非并行 VC 方法。
通过这种方法,使用 GAN 鉴别器产生的对抗损失被纳入训练损失中,以鼓励 CVAE 的解码器输出与真实的语音特征无法区分。
虽然这个概念与我们的 StarGAN-VC 方法相似,但我们将在第 4 节中展示我们的方法在音频质量和转换效果方面优于这种方法。
另一个值得注意的相关技术是矢量量化 VAE ( VQ-VAE )方法(《Neural discrete representation learning》)[27],它在非并行 VC 任务中表现令人印象深刻。
该方法特别值得注意的是,它提供了一种克服 VAEs 缺点的新方法,它使用 WaveNet 网络模型(《WaveNet: A generative model for raw audio》)(一个逐样本神经信号发生器)来设计 CVAEs 的离散版本的编码器和解码器。
原始的 WaveNet 模型是一个递归模型,它可以根据生成器产生的样本来预测样本的分布。
虽然最近已经提出了一个更快的版本(《Parallel WaveNet: Fast high-fidelity speech synthesis》),但它通常需要巨大的计算成本来生成样本流,这可能会在实现实时系统时造成困难。
众所周知,该模型需要大量的训练示例才能生成听起来自然的语音。
相比之下,我们的方法值得注意的是,它能够产生足够快的信号,允许实时实现,并且只需要几分钟的训练示例就可以产生听起来相当真实的语音。
本文的其余部分组织如下。
我们在第 2 节简要回顾了 CycleGAN-VC 的公式,在第 3 节提出了 StarGAN-VC 的思想,在第 4 节展示了实验结果。
2 CYCLEGAN 声音转换
由于本方法是我们之前提出的 CycleGAN-VC (《Parallel-data-free voice conversion using cycle-consistent adversarial networks》)的扩展,我们首先简要回顾其公式。
使
x
∈
R
Q
×
N
x\in\mathbb{R}^{Q \times N}
x∈RQ×N 和
y
∈
R
Q
×
M
y\in\mathbb{R}^{Q \times M}
y∈RQ×M 为语音的声学特征序列,分别属于属性域
X
X
X 和
Y
Y
Y ,其中
Q
Q
Q 为特征维数,
N
N
N 和
M
M
M 为序列的长度。
CycleGAN-VC 的目标是学习将
x
x
x 的属性转换为
Y
Y
Y 的映射
G
G
G 和做相反的映射
F
F
F 。
现在,我们引入判别器
D
X
D_X
DX 和
D
Y
D_Y
DY ,它们的作用是预测它们的输入是否是属于
X
X
X 和
Y
Y
Y 的真实语音的声学特征,并定义
分别为
D
Y
D_Y
DY ,
G
G
G ,
D
X
D_X
DX 和
F
F
F 的对抗性损失。
L
a
d
v
D
Y
(
D
Y
)
\mathcal{L} ^{D_Y}_{adv}(D_Y)
LadvDY(DY) 和
L
a
d
v
D
X
(
D
X
)
\mathcal{L} ^{D_X}_{adv}(D_X)
LadvDX(DX) 衡量了
G
(
x
)
G(x)
G(x) 和
F
(
y
)
F(y)
F(y) 与属于
y
y
y 和
x
x
x 的真实语音的声学特征的不可区分程度。
由于
D
X
D_X
DX 和
D
Y
D_Y
DY 的目标是正确地将
G
G
G 和
F
F
F 得到的转换后的特征序列与真实的语音特征序列进行区分,因此
D
X
D_X
DX 和
D
Y
D_Y
DY 试图将这些损失降到最低,以避免被
G
G
G 和
F
F
F 所欺骗。
相反,由于
G
G
G 和
F
F
F 的目标之一是生成与真实语音无法区分的真实语音,
G
G
G 和
F
F
F 试图将这些损失最大化或最小化
L
a
d
v
G
(
G
)
\mathcal{L} ^G_{adv}(G)
LadvG(G) 和
L
a
d
v
F
(
F
)
\mathcal{L} ^F_{adv}(F)
LadvF(F) ,以愚弄
D
X
D_X
DX 和
D
Y
D_Y
DY 。
可以看出,用这种方法训练的
G
G
G 和
F
F
F 的输出分布与经验分布
p
Y
(
y
)
p_Y(y)
pY(y) 和
p
X
(
x
)
p_X(x)
pX(x) 相匹配。
注意,因为
L
a
d
v
G
(
G
)
\mathcal{L} ^G_{adv}(G)
LadvG(G) 和
L
a
d
v
F
(
F
)
\mathcal{L} ^F_{adv}(F)
LadvF(F) )最小化时,
D
Y
(
G
(
x
)
)
≃
1
D_Y(G(x))≃1
DY(G(x))≃1 和
D
X
(
F
(
y
)
)
≃
1
D_X(F(y))≃1
DX(F(y))≃1 ,我们还可以使用
−
E
x
∼
p
X
(
x
)
[
l
o
g
D
Y
(
G
(
X
)
)
]
-\mathbb{E}_{x \sim p_X(x)}[logD_Y(G(X))]
−Ex∼pX(x)[logDY(G(X))] 和
−
E
x
∼
p
X
(
x
)
[
l
o
g
D
Y
(
F
(
X
)
)
]
-\mathbb{E}_{x \sim p_X(x)}[logD_Y(F(X))]
−Ex∼pX(x)[logDY(F(X))] 作为
G
G
G 和
F
F
F 的对抗损失。
正如第 1 节所提到的,训练
G
G
G 和
F
F
F 仅使用对抗性损失并不能保证
G
G
G 或
F
F
F 将保留输入语音的语言信息,因为有无穷多个映射将诱导出相同的输出分布。
为了进一步规范这些映射,我们引入了循环一致性损失
用来激励
F
(
G
(
x
)
)
≃
x
F(G(x))≃x
F(G(x))≃x 和
G
(
F
(
y
)
)
≃
y
G(F(y))≃y
G(F(y))≃y 。
出于同样的动机,我们还考虑了标识映射的丢失
确保
G
G
G 和
F
F
F 的输入在已经属于
Y
Y
Y 和
X
X
X 的输入时保持不变。
因此, CycleGAN-VC 关于
G
G
G ,
F
F
F ,
D
X
D_X
DX 和
D
Y
D_Y
DY 的全部目标是最小化的
其中,
λ
c
y
c
≥
0
\lambda_{cyc} \ge 0
λcyc≥0 和
λ
i
d
≥
0
\lambda_{id} \ge 0
λid≥0 为正则化参数,衡量了周期一致性损失和单位映射损失相对于对手损失的重要性。
3 STARGAN 声音转换
虽然 CycleGAN-VC 允许在有足够数量的训练示例时生成自然发声的语音,但一个限制是它只学习一对一映射。
在这里,我们建议使用 StarGAN (《StarGAN: Unified generative adversarial networks for multidomain image-to-image translation》)来开发一种允许非并行多对多 VC 的方法。我们称目前的方法为 StarGAN-VC 。
3.1 训练目标
设 G 为发生器,以具有任意属性的声特征序列
x
∈
R
Q
×
N
x \in \mathbb{R}^{Q \times N}
x∈RQ×N 和目标属性标签 c 作为输入,生成声特征序列
y
^
=
G
(
x
,
c
)
\hat{y} = G(x, c)
y^=G(x,c) 。
我们假设语音属性包含一个或多个类别,每个类别又包含多个类。
因此,我们将 c 表示为一个热门向量的连接,每个向量在某个类别的类的索引处填充 1 ,在其他任何地方填充 0 。
例如,如果我们将说话人身份视为唯一的属性类别,那么 c 将表示为单个的独热向量,其中每个元素都与不同的说话人相关联。
StarGAN-VC 的目标之一是使
y
=
G
(
x
,
c
)
y = G(x, c)
y=G(x,c) 像真实的语音特征一样真实,并且属于属性 c 。
为了实现这一点,我们引入了一个与 CycleGAN 一样的真/假鉴别器 D 和一个域分类器 C ,其作用是预测输入属于哪个类。
D 被设计为产生概率
D
(
y
,
c
)
D(y, c)
D(y,c) 一个输入 y 是一个真实的语音特征,而 c 被设计为产生
y
y
y 的类概率
p
C
(
c
∣
y
)
p_C (c|y)
pC(c∣y) 。
对抗性损失:
首先,我们定义
分别作为鉴别器 D 和产生器 G 的对抗性损失,其中
y
∼
p
(
y
∣
c
)
y \sim p(y|c)
y∼p(y∣c) 表示具有属性 c 的真实语音声学特征序列的训练例,
x
∼
p
(
x
)
x \sim p(x)
x∼p(x) 表示具有任意属性的真实语音声学特征序列的训练例。
L
a
d
v
D
(
D
)
\mathcal{L} ^D_{adv}(D)
LadvD(D) 在
D
D
D 正确地将
G
(
x
,
c
)
G(x, c)
G(x,c) 和
y
y
y 分类为伪语音特征和真语音特征时取较小的值,而
L
a
d
v
G
(
G
)
\mathcal{L} ^G_{adv}(G)
LadvG(G) 在
G
G
G 成功地欺骗
D
D
D 使
G
(
x
,
c
)
G(x, c)
G(x,c) 被
D
D
D 误分类为真语音特征时取较小的值。
因此,我们希望将相对于
D
D
D 的
L
a
d
v
D
(
D
)
\mathcal{L} ^D_{adv}(D)
LadvD(D) 和相对于
G
G
G 的
L
a
d
v
G
(
G
)
\mathcal{L} ^G_{adv}(G)
LadvG(G) 最小化。
域分类损失:
接下来,我们定义
作为分类器 C 和生成器 G 的域分类损失。
当 C 正确地将
y
∼
p
(
y
∣
c
)
y \sim p(y|c)
y∼p(y∣c)和
G
(
x
,
c
)
G(x,c)
G(x,c) 归为 C 属性时,
L
c
l
s
C
(
C
)
\mathcal{L} ^C_{cls}(C)
LclsC(C) 和
L
c
l
s
G
(
G
)
\mathcal{L} ^G_{cls}(G)
LclsG(G) 取小值。
因此,我们希望最小化
L
c
l
s
C
(
C
)
\mathcal{L} ^C_{cls}(C)
LclsC(C) 相对于 C 和
L
c
l
s
G
(
G
)
\mathcal{L} ^G_{cls}(G)
LclsG(G) 相对于 G 。
周期一致性损失:
仅使用上述损失来训练 G , D 和 C 并不能保证 G 将保留输入语音的语言信息。
为了激励
G
(
x
,
c
)
G(x, c)
G(x,c) 是一个双射,我们引入了一个最小化的循环一致性损失
式中,
x
∼
p
(
x
∣
c
′
)
x \sim p(x|c')
x∼p(x∣c′)表示一个具有属性
c
′
c'
c′ 、
ρ
ρ
ρ 为正常数的真实语音声学特征序列的训练实例。
我们还考虑了标识映射的丢失
确保当输入已经属于目标属性
c
′
c'
c′ 时,对 G 的输入将保持不变。
总之, StarGAN-VC 关于 G 、 D 和 C 的最小化的全部目标如下所示
其中,
λ
c
l
s
≥
0
λ_{cls} \ge 0
λcls≥0 、
λ
c
y
c
≥
0
λ_{cyc} \ge 0
λcyc≥0 和
λ
i
d
≥
0
λ_{id} \ge 0
λid≥0 为正则化参数,衡量了域分类损失、循环一致性损失和单位映射损失相对于对抗损失的重要性。
3.2 转换过程
作为一个声学特征向量,我们使用梅尔倒谱系数计算得到的光谱包络使用 WORLD (《WORLD: a vocoderbased high-quality speech synthesis system for real-time applications》)。
训练 G 后,我们可以将输入话语的声学特征序列 x 转换为
其中 c 表示目标属性标签。
获得时域信号的一种方法是简单地使用 y 用声码器重建信号。
我们也可以使用重构后的特征序列,而不是直接使用 y
在已知输入语音的属性
c
′
c'
c′ 的情况下获得时域信号。
利用
y
y
y 和
y
′
y'
y′ ,我们可以得到一个频谱增益函数序列。
一旦我们获得了频谱增益函数,我们就可以逐帧地将输入语音的频谱包络乘以频谱增益函数,然后使用声码器重新合成信号,从而重建时域信号。
3.3 网络架构
我们的方法(包括(《Sequence-to-sequence voice conversion with similarity metric learned using generative adversarial networks》,《Parallel-data-free voice conversion using cycle-consistent adversarial networks》))的一个关键特征是,我们考虑使用一个声学特征序列(而不是单帧声学特征)作为输入并输出相同长度的声学特征序列的发生器。
这允许我们获得捕获时间依赖性的转换规则。
虽然基于 RNN 的架构是建模时间序列数据的自然选择,但我们使用基于卷积神经网络( CNN )的架构来设计 G ,具体如下。
生成器 G 由编码器网络和解码器网络组成,其中只有解码器网络接受辅助输入 c 。
我们还设计了 D 和 C ,将声学特征序列作为输入,生成概率序列。
生成器:
这里,我们将声学特征序列
x
x
x 视为尺寸为
Q
×
N
Q \times N
Q×N 的
1
1
1 通道图像,使用 2D CNN 构造 G ,因为它们适合并行计算。
具体地说,我们使用了一种门控 CNN (《Language modeling with gated convolutional networks》),它最初被引入来为语言建模建模词序列,并被证明优于在类似的设置中训练的长短期记忆( LSTM )语言模型。
我们之前将门控 CNN 架构应用于语音转换(《Sequence-to-sequence voice conversion with similarity metric learned using generative adversarial networks》,《Parallel-data-free voice conversion using cycle-consistent adversarial networks》)和声源分离(《Deep clustering with gated convolutional networks》),其有效性已经得到证实。
在编码器部分,第 l 隐层的输出被描述为由输出门调制的线性投影
其中
W
l
∈
R
D
l
×
D
l
−
1
×
Q
l
×
N
l
W_l \in \mathbb{R}^{D_l \times D_{l-1}\times Q_l \times N_l}
Wl∈RDl×Dl−1×Ql×Nl ,
b
l
∈
R
D
l
b_l \in \mathbb{R}^{D_l}
bl∈RDl ,
V
l
∈
R
D
l
×
D
l
−
1
×
Q
l
×
N
l
V_l \in \mathbb{R}^{D_l \times D_{l-1}\times Q_l \times N_l}
Vl∈RDl×Dl−1×Ql×Nl 和
d
l
∈
R
D
l
d_l \in \mathbb{R}^{D_l}
dl∈RDl 为要训练的发生器网络参数,
σ
\sigma
σ 为 elementwise sigmoid 函数。
与 LSTMs 类似,输出门将
W
l
∗
h
l
−
1
+
b
l
W_l * h_{l-1}+b_l
Wl∗hl−1+bl 的每个元素相乘,并控制应该通过层的层次结构传播什么信息。
这种门控机制被称为线性门控单元( GLU )。
在解码器部分,第 l 隐层的输出为
在
[
h
l
;
c
l
]
[h_l; c_l]
[hl;cl] 表示沿通道维度
h
l
h_l
hl 和
c
l
c_l
cl 的连接,
c
l
c_l
cl 是一个由特征维度和时间维度
c
c
c 副本的
Q
l
Q_l
Ql-by-
N
l
N_l
Nl 平铺组成的 3D 数组。
第 1 层 G 的输入为
h
0
=
x
h_0 = x
h0=x ,最后一层的输出为规则线性投影
应该注意的是,整个架构是完全卷积的,没有完全连接的层,这允许我们以任意长度的整个序列作为输入,并转换整个序列。
真/假鉴别器:
我们利用 PatchGANs (《Image-to-image translation with conditional adversarial networks》)的思想来设计一个真/假鉴别器 D ,它对输入特征序列的局部片段是真还是假进行分类。
更具体地说,我们设计了 D 使用门选 CNN ,它以一个声学特征序列 y 和一个属性标签 c 作为输入,并产生一个概率序列,测量 y 的每个片段是如何可能成为属性 c 的真实语音特征。
D 的第l层的输出与公式 (21) , (22) 相同,最终的输出
D
(
y
,
c
)
D(y, c)
D(y,c) 由所有这些概率的乘积给出。请参阅第 4 节了解更多细节。
域分类器:
我们还设计了一个使用门选 CNN 的领域分类器 C ,它采用一个声学特征序列 y ,并产生一组类概率分布序列,测量 y 的每个片段属于属性 C 的可能性。
C 的第 l 层输出与公式 (20) 相同,最终输出
p
C
(
c
∣
y
)
p_C (c|y)
pC(c∣y) 由所有这些分布的乘积给出。请参阅第 4 节了解更多细节。
4 主观评价
为了验证该方法的有效性,我们在一个非并行多对多说话人身份转换任务上进行了主观评价实验。
我们使用了 2018 年语音转换挑战( VCC )数据集(《The voice conversion challenge 2018: Promoting development of parallel and nonparallel methods》),该数据集包括 6 名女性和 6 名男性美国英语使用者的录音。
我们使用了一个演讲者子集来进行培训和评估。
具体来说,我们选择了两个母音箱 VCC2SF1 和 VCC2SF2 ,两个公音箱 VCC2SM1 和 VCC2SM2 。
因此, c 被表示为一个四维单向热矢量,总共有 12 种不同的源和目标说话人组合。
将每个说话人的音频文件手工分割成 116 个短句(约 7 分钟),其中 81 个短句和 35 个短句(约 5 分钟和 2 分钟)分别作为训练集和评价集。
所有的语音信号在 22050 Hz 下采样。
利用 WORLD 语音分析仪(《WORLD: a vocoderbased high-quality speech synthesis system for real-time applications》),每 5 ms 提取一个频谱包络、对数基频( log F0 )和非周期性( APs )。
从每个光谱包络中提取 36 个 mel 倒谱系数( MCCs )。 F0 轮廓采用(《High quality voice conversion through phoneme-based linear mapping functions with STRAIGHT for mandarin》)中描述的对数高斯归一化变换进行转换。
非周期性是直接使用,没有修改。
具体组网配置如图 3 所示。
转换后的语音信号采用 3.2 中描述的方法获得。
这里, G , C , D 的输入和输出被解释为图像,其中 h , w 和 C 分别表示高度,宽度和通道数
Conv 、 Batch norm 、 GLU 、 Deconv Sigmoid 、 Softmax 和 Product
分别表示卷积层、 Batch 归一化层、门联线性单元层、转置卷积层、 Sigmoid 层、 Softmax 层和 product pooling 层
k 、 c 、 s 分别表示卷积层的核大小、输出通道数和步幅大小
注意,所有的网络都是完全卷积的,没有完全连接的层,因此允许输入具有任意大小
我们选择基于 vaegan 的方法(《Voice conversion from unaligned corpora using variational autoencoding Wasserstein generative adversarial networks》)作为我们实验的比较。
尽管我们希望完全复制这种方法的实现,但由于缺少网络配置和超参数的细节,我们做出了自己的设计选择。
我们进行了一次 AB 测试比较转换后的语音样本的音质和 ABX 测试比较相似目标转换后的语音样本议长, A 和 B 的位置转换语音样本获得的提议和基线方法和 X 是一个目标说话人的语音样本。
在这些听力测试中,为了消除刺激顺序上的偏差, A 和 B 是随机排列的。
有八位听众参加了我们的听力测试。
在音质 AB 测试中,每个听者被呈现为 {A, B} 20 个话语;在说话人相似度 ABX 测试中,每个听者被呈现为 {A, B, X} 24 个话语。
然后,每位听众被要求为每句话选择 A 、 B 或 fair 。
结果如图 5 所示。
结果表明,所提出的方法在音质和说话人相似度方面都明显优于基线方法。
图 4 显示了源语音、重构语音和转换语音的 MCC 序列的示例。
(c) 基线方法得到的转换语音
(d) 采用本文方法得到的转换语音的声学特征序列
以及 (b) 目标说话者说出相同句子的声学特征序列
5 结论
本文提出了一种允许非并行多对多 VC 的方法。
我们的方法,我们称之为 StarGAN-VC ,值得注意的是:
(1) 不需要平行的话语,转录,或时间对齐程序的语音生成器训练
(2) 使用单个生成器网络,同时学习不同语音属性域的多对多映射;
(3) 能够产生转换语音信号足够快,允许实时实现
(4) 只需要几分钟的训练示例,就可以生成非常逼真的语音
我们的方法,我们称之为 StarGAN-VC ,值得注意的是,基于非并行多对多说话人身份转换任务的主观评价实验表明,该方法比基于 VAE-GAN 方法的基线方法获得了更高的音质和说话人相似度。