王 昕,蒋志翔,张 杨,寇金桥,常新旭,徐冬冬
(中国航天科工集团第二研究院 北京计算机技术及应用研究所,北京 100854)
语音分离一词最初源于“鸡尾酒会问题”,它是指从混合的两个或多个说话人的混合声音中得到想要的目标说话人(一人或多人)的语音信号。在复杂的声音环境下,除了目标说话人的声音以外,通常还伴有其它人的说话声音,干扰人的语音信号与普通的环境噪声或是音乐噪声的声学特征上不同,它在听觉上会严重阻碍听者对感兴趣的语音信息的获取,而对于机器来说就更加困难,这会严重影响对目标说话人语音的获取、识别与理解,这时候便需要语音分离技术来将混合语音中的多个说话人语音分离为各个说话人的语音,这样听者便可以轻松地得到自己想要的声音信息,从而进行下一步的语音识别等任务[1]。
目前解决上述问题的方法主要为基于置换不变训练(permutation invariant training, PIT)[2]的方法、基于深度吸引子网络(deep attractor network, DANet)[3]的方法和基于深度聚类(deep clustering, DPCL)[4]的方法。本文参考深度聚类的方法,从优化模型角度出发,通过时间卷积网络(temporal convolutional network, TCN)[5]来对输入语音特征进行高维可分离空间的映射以充分结合输入语音的时序信息并提高效率,再通过K均值(K-means)聚类算法聚类得出理想二值掩蔽,并在100个不同性别的说话人语音数据集上验证了这一模型方法的有效性。
单通道语音分离技术最初是基于计算听觉场景分析(computational auditory scene analysis, CASA)的方法,CASA的主要思想是模拟人类听觉系统对声音的处理过程来将混合语音分离。在计算听觉场景分析的过程中需要指定一个计算目标,其中最常用的计算目标是估计一个理想二值掩蔽(ideal binary mask, IBM),IBM通过人类听觉系统在收听声音时的听觉掩蔽效应,计算出每个时频单元上的主导声音源,然后以此完成语音分离。计算听觉场景分析处理语音数据时对干扰语音完全不做假设,与其它语音分离方法相比,具有更好的泛化性能。然而,计算听觉场景分析方法也存在一定缺陷,它严重依赖于检测语音的基音部分,尤其受到干扰语音的影响时,语音的基音检测将变得十分困难。除此之外,缺乏谐波结构也会使计算听觉场景分析方法在处理语音中的清音成分时变得很难[6]。
随后,基于非负矩阵分解方法[7](non-negative matrix factorization, NMF)的语音分离得到广泛研究,NMF的目标是通过网络学习到一个非负矩阵的基底矩阵和与之相对应的系数矩阵,其中基底矩阵表示说话人的特征类别,而系数矩阵则代表对应特征的参数,从而得到对说话人语音的分离。
后来有人提出基于模型的语音分离方法,其中主要包括高斯混合模型(GMM)和隐马尔科夫模型(HMM)。文献中,在基于训练的语音分离中应用了HMMs,GMMs等模型,但是这些都属于浅层模型,在处理线性结构问题上具有不错的效果,然而语音信号是一个时间序列,具有明显的时空结构和非线性关系,联系上下文信息和时间关系可以更好地找出语音信号的内在联系,而浅层结构在挖掘这些非线性结构信息和前后时间信息的能力上非常有限[6]。
目前随着深度学习领域的迅速发展,以深度神经网络(deep neural network,DNN)为代表的深度模型[8]也逐渐被用来解决语音分离问题。分离目标主要分为语音信号的直接映射和估计一个理想二值掩蔽值(IBM),语音信号的直接映射就是有监督地训练一个混合语音到干净语音的学习网络,混合语音作为网络的输入便可以得到分离后的语音,估计掩蔽值的方法是将理想二值掩蔽(IBM)作为分离目标,通过人耳听觉掩蔽的基理来训练得到,从而进一步与混合语音计算得到分离的语音信号。这类方法会出现说话人标签序列排序的问题,导致训练时数据与标签不匹配进而无法从对应的输出端输出对应的目标。
为找到一种去除标签序列排序问题的语音分离算法,Jonathan Le Roux等提出了一种以二值掩蔽作为分离目标通过深度聚类的方法[4]来解决说话人无关语音分离问题,这种方法可以对语音特征做一个高维可分离空间的映射,然后通过聚类算法得出时频掩蔽目标,然后与混合语音计算后得出不同的分离语音信号,从而也实现了端到端的深度网络训练模型与无监督的聚类模型相结合,解决了标签序列排序问题,在说话人无关语音分离问题上取得了一定突破。
时间卷积网络(TCN)[5]由Bai等提出,目前用于很多包含时序结构的任务中例如语音识别、机器翻译等,它结合了循环神经网络(recurrent neural network,RNN)[8,9]可以记忆前后文信息的优势和卷积神经网络(convolutional neural networks, CNN)[10,11]计算效率高、可堆叠网络层数深的优势,由因果卷积、膨胀卷积和核残差块组成,既可以将当前的时间信息和之前的时间信息联系结合起来,又保留了CNN可以并行运算的效率优势,使得在对序列信息的处理上既可以提高速度又能保证高质量的训练效果。
考虑到语音分离任务中的混合语音信号是一个时间序列信号,相对于双向长短时记忆网络[4](Bi-directional LSTM, BLSTM),TCN网络可以获取更大的感受野,保留过去的时间信息从而对序列问题有一个更好的建模过程,而且具有并行运算的效率优势,更稳定的梯度,更小的训练占用内存。因此本文使用TCN网络代替原来的BLSTM网络深度聚类方法的嵌入过程进行建模,并通过实验度量分离后语音的质量与可懂度,从而客观评价该方法的语音分离性能。
在机器学习任务中,输入特征作为用来区分训练的关键是不可或缺的,采用不同的输入特征会对结果产生不同的影响。由于语音是一个一维的时域信号,对于两个说话人的混合语音来说不足以区分,在本文中采用了短时傅里叶对数功率谱(STFT)特征,它可以将混合语音信号进行短时傅里叶变换转化为二维的时频信号,从而将混合信号中的高频成分更好地体现出来。
本文的TCN网络模型如图1所示,从图中可见本文使用了8层TCN网络,其中包含一层输入层、6层隐藏层和一层输出层,隐藏层每层包含512个节点,输入输出层均为129个节点,每层之间通过一维全卷积网络和ReLU激活函数相连接,卷积核大小为2,每一层膨胀卷积的膨胀系数从第一层起每层分别为1,2,4,8,16,32,64,隔层之间通过残差块相连,为了保证维度相等,下层先做一个1×1的卷积后再与高层相连。因为每层均为膨胀卷积,该网络最后的输出节点可以包含所有之前输入节点的时频特征信息,每一层相较于卷积神经网络(CNN)具有更大的感受野,这对于处理语音信号这类时序信息具有很大优势,通过结合过去的时频信息来找到特征的相同与不同从而使得映射到高维空间后,近似的时频特征距离更近,反之则距离更远,最后每层的卷积网络的结构保证了该网络结构模型可以并行计算,大大提高了训练速度。
图1 本文TCN网络结构模型
其中每一层的膨胀卷积运算公式为
式中:k——卷积核的大小,d——每层的膨胀系数,s-d·i——对于之前时频信息的索引。
本文使用的基于时间卷积网络的深度聚类方法基于传统深度聚类语音分离方法[9],模型结构如图2所示。
图2 深度聚类模型框架
如图2所示,深度聚类(deep-clustering,DC)模型[7]就是一个深度网络模型和一个聚类模型前后相接形成的,模型训练阶段首先对混合语音经过预处理得到音频特征输入给深度学习模型,传统的深度聚类方法用到的是两层的双向长短时记忆网络(BLSTM),本文中使用如图1所示结构的时间卷积网络(TCN)。由于输入的WAV文件通过一系列变换取对数,得到音频的对数功率谱,它是一个关于语音信号的时频序列信息特征,将这一特征通过TCN网络将每个时频特征的时频单元(TF-bin)结合当前帧以及之前帧的所有时序相关信息映射到一个新的特征子空间上,生成一个新的频谱嵌入向量(spectrogram embeddings),通过TCN网络学习输入特征映射到嵌入向量的过程,在这个新的高维子空间中属于同一说话人的时频单元距离更小,而TCN网络每个输出包含了所有输入信息,属于同一说话人的特征信息包含了该说话人之前的特征信息,所以它们的特征更相近,这便保证了这一目标,因此这些新的嵌入向量携带自己的特征信息,为下一步的聚类过程提供更好的结果,聚类后的结果被用作掩蔽值来分离混合语音信号。
输入信号的对数幅度谱特征向量表示如下
Xi=Xt,f,i∈{1,2,…,N}
式中:t——输入信号帧的时间索引,f——信号帧的频率索引,随后将信号的二维时频特征映射到一个高维嵌入空间中来得到高维特征表示
Xt,f→vt,f∈RD+1
Xt*→vt*∈RDF+1
V=fθ(X)
从而可以通过最小化估计的亲和矩阵和理想亲和矩阵之间的距离来得到训练时的损失函数,其表示如下
在测试阶段,根据训练好的TCN模型,通过X得出嵌入空间向量V=fθ(X), 通过K均值算法将vi聚类,初始聚类中心为混合音频中说话人的个数,最终的聚类结果被当作掩蔽值用来预测源信号。
在语音分离任务中,找到一个合适的分离目标是至关重要的。人类听觉系统在同一频带内感知声音时会出现听觉掩蔽现象,相对弱的声音能量会被更强的声音能量所掩蔽。在想要提高语音分离质量,减少语音畸变的情况下,主要的分离目标有:时频掩蔽、语音幅度谱估计以及隐式时频掩蔽。
本文采用的分离目标为理想二值掩蔽(IBM),它属于时频掩蔽,是语音分离任务的主要计算目标。它源于人耳听觉中的听觉掩蔽,在二维时频单元上表示。IBM已经被证明可以极大地提高分离后的语音可懂度[8],而且可以有效地抑制分离后语音中噪音的干扰和目标语音的畸变。IBM是基于目标语音和干扰语音的计算得出的,它是一个关于时频掩蔽的二值矩阵,如果在某一时频单元上局部信噪比SNR(t,f) 大于初始设定的阈值LC(local criterion),则掩蔽矩阵中对应的元素标记为1,反之则标记为0。用公式表示如下
式中:SNR(t,f) 表示时间帧为t,频率等于f的时候的时频单元噪比,LC会影响语音可懂度,通常情况下,将LC设为比输入的混合语音的信噪比小5 dB,这样可以将尽可能多的语音信息保留下来。
在本文中,说话人为两个分别是spk1和spk2,故将掩蔽值的计算定义为下式
式中:spec(spk1) 和spec(spk2) 分别为两个说话人的对数功率谱特征,用对功率谱的幅度值来得到听觉掩蔽值,得到掩蔽值矩阵。
假设有2个说话人的语音场景,两个说话人的语音信号分别为X1、X2,那么混合语音为
Y(t)=X1(t)+X2(t)
那么相应的信号的短时傅里叶变换为
Y(t,f)=X1(t,f)+X2(t,f)
当给定输入Y之后,可以通过以上模型得出预测掩蔽值Mp(spk1) 和Mp(spk2), 就可以得到预测的分离语音时频特征
Xp1(t,f)=Y(t,f)∘Mp(spk1)
Xp2(t,f)=Y(t,f)∘Mp(spk2)
进而通过ISTFT变换得到预测的分离语音时域信号。
实验数据采用中文普通话语音数据集,全称为Free ST Chinese Mandarin Corpus[12],训练集为100个说话人,其中包含50个男性说话人和50个女性说话人,每人10条语句,测试集分别为同性说话人混合语音20条和异性说话人混合语音20条。
为了实验在干扰不同情况下的语音分离任务,在构造训练集、验证集和测试集时随机将不同说话人的语音分别以信噪比SNR=-6 dB、0 dB、6 dB随机混合来形成训练集、验证集以及测试集,目的是用来模拟说话人语音之间不同的影响程度的语音环境。将两个不同说话人的语音混合后的音频信号当作混合音频,以采样频率为8000 Hz对混合音频采样,每32 ms分为一帧,帧移为8 ms,加汉宁窗,通过短时傅里叶变换(STFT)来得到混合语音的对数功率谱特征,该特征包含129维。
在训练阶段,作为对比的BLSTM网络为4层,每层300个隐藏节点数,层与层之间连接dropout层,比率为0.2,学习率设置为0.001,该方法称为dpcl。为比较TCN网络层数对分离效果的影响,将6层TCN网络也作为对比参考,其输入输出层节点为129,隐藏层节点数为512,卷积核大小为2,膨胀系数一次为1,2,4,8,16,该方法称为TCNdpcl-6。随后如图1所示,采用8层TCN网络,输入层和输出层为129个节点,其余隐藏层为512个节点,卷积核大小为2,膨胀系数依次为1,2,4,8,16,32,64,层与层之间的激活函数为ReLU,每次输入连续100帧的混合语音对数功率谱特征,该方法称为TCNdpcl-8。
本文对于语音分离效果的评价指标为感知语音质量(perceptual evaluation of speech quality,PESQ)和短时客观可懂度(short time objective intelligibility,STOI)。其中PESQ指标介于-0.5至4.5之间,对应相应主观评测得分MOS(mean opinion score),得分越高代表语音质量越好;STOI指标介于0至1之间,得分越高代表语音的可懂度越好。
实验结果见表1、表2。
表1 不同方法的PESQ平均值
表2 不同方法的STOI平均值
表1和表2分别列出了dpcl语音分离方法和本文所用的TCNdpcl方法在同性说话人混合语音、异性说话人混合语音还有综合性别说话人混合语音这3种情况下得到的分离语音平均PESQ值和平均STOI值。在以上3种情况下TCNdpcl-8方法得出的分离语音平均PESQ值和平均STOI值都要明显好于dpcl方法和TCNdpcl-6方法,这表明8层TCN网络在对语音序列进行高维映射的时候要优于BLSTM网络,并且对于TCN网络更多的层数会得到更好的分离效果。
对比6层TCN网络和8层TCN网络的语音分离效果,TCNdpcl-8方法在同性说话人、异性说话人和综合情况下分离出的语音平均PESQ值和平均STOI值都明显高于 TCNdpcl-6 方法,由于输入为100帧的语音时频特征,而6层 TCN网络的设置只能使输出节点包含其之前31个输入帧的时频特征信息,而8层TCN网络的每个输出点可以包含当前语音帧以及全部之前语音帧的信息,这说明包含更多的当前输出单元之前的输入语音帧的时频信息从而获得更大的感受野可以得到更好的分离结果,在高维嵌入空间中,包含更多的信息可以让特征相近的点更近,反之则更远,因此TCN网络层数的增加是有必要的。
对比训练时间、参数和稳定性,TCN网络具有更少的参数和更快的训练运行速度,且占用更小的训练内存,不会发生梯度爆炸或者梯度消失问题。因此本文提出的基于时间卷积网络的深度聚类语音分离方法在提高分离后的语音质量和客观可懂度的同时还具有训练时间少、运算速度快和训练梯度稳定的优势。
对比同性说话人和异性说话人的语音分离效果可以看出,由于同性说话人的语调和音色都更相近,因此他们的语音时频特征也会更相近,即使在高维特征空间上还是比异性说话人更相近,所以在聚类时得到的两个簇都不是完全包含属于一个说话人的信息,因此在每个方法下,同性说话人的语音分离效果要比异性说话人的语音分离效果差很多,平均PESQ值和STOI值都不理想,由此可见分离两个同性说话人的混合语音还存在很大提升空间,还需要进一步找出更合适的模型来完成此任务。
本文参考基于深度聚类的说话人语音分离方法,采用TCN网络对输入混合语音的STFT特征进行高维映射,然后通过Kmeans聚类算法将高维向量聚类得到掩蔽值,通过掩蔽值与输入信号来估计源信号。实验结果表明本文提出的基于TCN网络的深度聚类语音分离方法分离出的语音在语音质量和客观可懂度两个指标上都要好于基于BLSTM的深度聚类方法,并且还具有参数少、运算快、训练梯度稳定的优势。本文还通过实验发现了输出包含全部输入节点信息的8层TCN网络的分离效果要好于输出不包含全部输入信息的6层TCN网络的分离效果,这表明对于处理语音这类的时间序列特征,包含更多过去时间点信息对于语音的建模更有成效,进一步提高了语音分离效果。在接下来的研究中,将更关注同性说话人的语音分离问题,根据声学机理和人类的听觉机理,结合深度学习方法设计出更好的语音分离模型来更好地解决这一难题。