2019.10–On Investigation Of Unsupervised Speech Factorization Based On Normalization Flow
Haoran Sun, Yunqi Cai, Lantian Li, Dong Wang
CSLT, Tsinghua University, China
ABSTRACT
语音信号是语音内容、说话人特征、信道效应等多种信息的复杂组合体,将这种复杂的混合体分解为独立的因子,即语音因子分解,是现代语音处理任务中许多重要算法的核心和基础。本文对基于归一化流模型的无监督语音分解进行了初步研究。该模型构造了一个复杂的可逆变换,通过该变换,我们可以将语音分段到一个简单的对角高斯分布的最新编码空间。我们对TIMIT数据库的初步研究表明,该码空间具有良好的密集性和伪线性等特性,语音内容和说话人特征等感知上的重要因素可以在码空间内表现为特定的方向
- INTRODUCTION
语音信号是一种复杂的复合信号,包含了大量的信息,如语音内容、说话人特征、情感、信道和环境噪声等。这些不同类型的信息以未知的方式混合在一起,这导致了所有语音处理任务的根本困难。例如,说话人变异是语音识别研究人员几十年来一直困扰的最具挑战性的问题之一,情绪状态和说话风格的变化给说话人识别带来了臭名昭著的麻烦[1]。处理信息融合问题的一个自然思路是将语音信号分解成独立的信息因子。在说话人识别中,一些著名的基于因式分解的模型(如JFA[2]和i-向量模型[3])部分地证明了这一思想,其中语音信号被假定分解为语音内容、说话人特征和信道效应。这些方法的一个明显的不足是它们假设信息因子是由一个线性高斯模型构成的,可能过于简单,无法描述语音信号的复杂生成过程。
最近,我们提出了一种深度级联分解(DCF)的方法来对语音信号进行帧级分解[4]。DCF方法遵循Fujisaki[5]提出的分层生成过程,通过使用使用任务特定数据训练的面向任务的深神经网络(DNN),将语音信号逐个分解为信息因子,每个新因子取决于已经推断出的因子。DCF是第一个成功的基于深度学习的语音分解模型,但它有两个缺点:(1)它基于监督学习,对所有感兴趣的信息因子都需要标记数据;(2)它是基于帧的,不考虑语音信号的时间依赖性。本文提出了一种基于深度生成模型的无监督语音分解方法。基本假设是,如果我们能找到一种生成数据的方法,那么我们可能就能更好地理解潜在的信息因素。i矢量模型就是这样一种生成模型,但线性高斯假设太强,不适合语音的生成过程。在本研究中,我们利用DNN强大的生成能力来解决这个问题。更具体地说,我们建立了一个潜在码空间,其中的分布简单如对角高斯分布,并训练一个复杂的DNN从这些潜在码生成语音信号。我们发现感知上重要的语音因素可以在编码空间中表示为特定的方向。
有三种流行的深度生成模型:生成对抗网络(GAN)[6]、变分自动编码器(VAE)[7]和规范化流[8、9、10、11]。在这些模型中,GAN具有生成能力,但缺乏推理能力。VAE具有生成和推理的能力,但由于该模型是用真似然的变分界训练的,因而不精确。归一化流被训练以最大化真实似然,并且生成和推断是简单的。该模型已成功地应用于图像生成[12]和语音合成[13,14,15]。在这项工作中,我们广泛使用规范化流模型来研究语音生成过程,并研究潜在码空间的特性。
-
RELATED WORK
在语音处理的许多重要算法中,发现和处理语音因素的思想起着核心作用。最重要的例子是著名的信源滤波器模型和相关的线性预测编码(LPC)算法,它将语音信号分解为声带激励和声道调制[16,17]。这种分解奠定了现代语音处理理论的基础,然而,它主要是心理上的启发,其派生的因素(激励和调制)与语音处理任务不直接相关。例如,激励和调制都不能直接代表说话人的特征。相比之下,Fujisaki模型[5]将语音生成视为不同层次信息因素的卷积过程,每个因素都与特定的语音处理任务相关。然而,用藤崎模型进行推理是困难的。DCF算法[4]提供了推理方法,但是模型训练需要大量的标记数据。本文提出了一种无监督的方法,该方法可以训练一个含有无标记数据的因子分解模型,并能方便地推断出信息因子。这项工作与基于流的语音合成相关[14,15],但我们的目标是分析而不是生成语音信号。无监督因子分解的思想也出现在最近关于多说话人和多风格语音合成的工作中[18,19]。最后,这项工作的灵感主要来自于基于流的图像生成[12]。 -
NORMALIZATION FLOW FOR SPEECH FACTORIZATION
3.1. Review on normalization flow
标准化流的基本思想是设计一系列可逆变换,将简单分布映射到复杂分布[8],如图1所示。在这个图中,每个单步变换都是可逆的,所以整个变换是可逆的。通过这种可逆变换,遵循简单分布的变量z可以映射到分布非常复杂的变量x。相反,分布复杂的变量x可以映射回分布简单的变量z。这个转换链称为规范化流。在我们的研究中,我们将x视为语音信号,我们的目标是将该信号转换为编码x的潜在因子的码z。根据分布变换的原理[20],观测值x与相应的码z的概率具有以下关系:
注意,规范化流是一个通用的框架,其中转换函数和潜在分布都可以自由选择。对于变换函数,常用的选择有线性变换[10]、逆自回归变换[11]和1×1卷积变换[12]。所有这些变换都是可逆的,并且相关的雅可比矩阵具有简单的形式。对于潜在分布,最常用的选择是对角高斯分布。
3.2. Speech factorization by flow
利用归一化流模型,可以将语音信号x转换为一个潜在的码z,其分布像对角高斯分布一样简单。由于z的分布比x的分布简单得多,因此在代码空间中分析语音信号变得更加容易,为在代码空间中发现重要的信息因素铺平了道路。语音分解的一个关键问题是随时间的依赖性。尽管基于框架的分解在我们之前的工作中有效[4],但我们认为考虑时间依赖性会有帮助。因此,我们在本研究中选择的数据样本x是一个语音片段,而不是一个固定长度的语音帧。我们首先计算语音片段的这些谱图,然后将这些谱图作为流模型中的观测值。考虑到谱图是二维图像,我们选择辉光模型[12]来实现归一化流程,因为它在图像生成任务中工作得很好。作为初步研究,我们选择分析英语元音。分析的目的是研究不同元音和说话人在码空间中的分布特性,并研究发现对人耳有显著感知作用的重要因素的可能性。
-
EXPERIMENTS
4.1. Data preparation
我们使用TIMIT数据库进行实验,并选择五个英语元音(aa,ae,iy,ow,uh)进行调查。首先,根据语音的元信息,从TIMIT数据库中提取五个目标元音的语音片段。其次,通过将窗口长度、窗口跳变和FFT长度分别设置为25ms、1ms和257,将这些语音片段转换为频谱图。第三,舍弃288帧以上的谱图,其余谱图全部加零延长至288帧。这就产生了288×288像素的光谱图,用作辉光模型的观测。第一个288表示时域中的帧数,第二个288表示频域中的频带数,FFT长度的维数加上31个零。我们使用Glow模型的可用版本中的代码进行训练和推理1。以下实验中报告的所有音频示例都可以从http://project.cslt.org下载。
4.2. Distribution of observations and codes
图2显示了观测值和代码的分布,其中我们随机地为每一段数据选择两个维度。可见,与观测值的分布相比,编码的分布更加高斯。这验证了流动模型经过了很好的训练,它确实规范了分布。
4.3. Sampling
在这个实验中,我们通过在代码空间中采样一些语音片段来测试流。这可以通过对沿对角线高斯分布的代码z进行采样来实现,
通过流动x(z)来转换形成观察x(谱图)。图3示出了采样示例的一些光谱图。可见,所采集的频谱图具有与真实语音相似的共振峰结构。通过使用真实语音的相位将它们转换成波形,我们发现这些样本是有意义的语音。这并不奇怪,因为有意义的语音片段在码空间中的分布是高斯的,所以在高斯分布之后获得的样本将具有很高的有意义概率。我们得到的大多数样品都是无声的。这可能是由于在训练数据中存在大量的静默,这是由静默填充造成的。
4.4. Interpolation插值
在这个实验中,我们研究了码空间的(伪)线性性质。考虑到两个有意义的语音片段,它们都应该像在代码空间一样位于密集区域。这是因为它们是有意义的,所以模型应该赋予它们很高的概率。根据对角高斯函数的性质,在码空间中,两段的任意插值位置的概率介于这两段的密集位置之间。这意味着任何插值都将产生有意义的语音段。理想情况下,通过插值,语音特性会从一段逐渐变化到另一段。为了验证这一假设,我们选择了一段a a和一段由同一个人说的ae,并将它们插入到代码空间中。结果如图4所示。有趣的是,通过这种插值,a a的一个片段逐渐转变为a e的一个片段,而对其他属性(如说话人特征)没有太大的改变。从频谱图(使用aa相位)重建的音频片段可以在线下载;它们听起来相当合理。我们还测试了性别和说话人之间的插值,两者都很有效。这个结果是非常有趣的,因为它表明代码空间可能是伪线性的因素,是突出的人耳。换句话说,在代码空间中,找到一个只在一个感知上重要的因素改变的方向,是可能的。此属性的一个含义是,语音因子可以由代码空间中的特定方向表示。这就提出了一种可能的语音分解策略,该策略从一个中性语音开始,通过在代码空间中按照与所需属性相对应的方向顺序移动来改变其属性。
4.5. Denoising
码空间的伪线性特性可以用来去除噪声。首先在训练数据中随机加入白噪声,然后计算这些噪声污染段的编码。分别计算干净语音和有噪语音的平均码,并使用它们之间的位移(用ζc→n表示)来恢复噪声干扰段的干净码,用zc=zn-βζc→n表示,其中β是去噪尺度。基于因子分解的去噪效果如图5所示。可以看出,当向ζc→n的相反方向移动时,噪声逐渐消除。
4.6. Discrimination
最后一个实验检查观察到的辨别信息是否保存在代码空间中。为了达到这一目的,我们训练LDA选择两个最具辨别力的方向(对于特定的分类任务),并在观测空间和编码空间中绘制样本。调查了三个分类任务:(1)元音字母;(2)男性与女性;(3)两个不同的演讲者。结果如图6所示。可以看出,当转换到代码空间时,类信息会大量丢失。然而,对于大多数语音处理任务来说,这种不需要的特性似乎并不奇怪,因为流模型试图将所有代码压缩成一个紧凑而密集的高斯球,而不考虑任何类信息。 -
CONCLUSIONS
我们提出了一个由语音片段的规范化流模型导出的潜在空间的性质的初步研究。实验结果表明,该码空间具有良好的伪线性特性,这意味着语音内容和说话人特征等感知上的重要因素可以通过在码空间中沿特定方向移动而逐渐改变。这提供了一种有趣的无监督语音因子分解方法,其中每个显著因子对应于代码空间中的特定方向。这种分解的潜在应用包括语音转换和噪声消除。今后的工作将对大型数据库和连续语音进行更深入的研究。另一项工作将研究考虑类信息的判别流模型