本文是读书笔记。个人比较浅显的理解,其中有一些专业词汇也是个人自己的翻译,如果有不对的希望大家指正。
来自论文《An overview of text-independent speaker recognition: From features to supervectors》的第三章节的特征提取部分。
===================================分割线=========================================
由于关节活动,语音信号是不断变化的。因此信号需要分割成为20-30ms的帧。在一帧的时间内,我们可以假定信号是不变的,并从每一帧中提取特征矢量。
一 short-term spectral features 短时谱特征
首先需要进行的步骤是预加重(pre-emphasized)和加窗。
预加重是为了提升高频部分的表现。(因为语音从嘴唇发出后,会有高频损失,为弥补这些高频损失,需要做预加重处理)
加窗是为了平滑信号,减少信号在两端处的误差,避免频谱出现“破碎”的情况。通常使用的窗函数有:矩形窗、汉明窗、汉宁窗。
由于信号在时域(Time domain)上的变化通常很难看出信号的特性,所以通常将它转换成频域(Frequency domain)上的能量分布来观察,不同的能量分布,就能代表不同语音的特性。所以在乘上汉明窗后,每个音框还必需再经过 FFT 以得到在频谱上的能量分布。
乘上汉明窗的主要目的,是要加强音框左端和右端的连续性,这是因为在进行 FFT 时,都是假设一个音框内的信号是代表一个周期性信号。如果这个周期性不存在,FFT 会为了要符合左右端不连续的变化,而产生一些不存在原信号的能量分布,造成分析上的误差。当然,如果我们在取音框时,能够使音框中的信号就已经包含基本周期的整数倍,这时候的音框左右端就会是连续的,那就可以不需要乘上汉明窗了。但是在实作上,由于基本周期的计算会需要额外的时间,而且也容易算错,因此我们都用汉明窗来达到类似的效果。
FFT(fast Fourier transform)快速傅里叶变换是 DFT(discrete Fourier transform)离散傅里叶变换的快速算法,可以将信号从时域变换到频域。实际情况中,由于DFT的简单和高效,DFT仍然被使用。DFT频谱幅度(spectral magnitude)的全局形状(global shape)被称为(spectral envelope)频谱包络,它包含了声道(vocal tract)的共振属性(resonance properties)的信息,而这是说话人识别中最有用的信息。一个简单的频谱包络模型使用一系列带通滤波器(bandpass filter)在相邻频率带上做能量和(energy integration)。下图展示了频谱包络。
MFCC 梅尔倒谱系数(mel-frequency cepstral coefficients)
尽管子带能量可以直接用做特征,但我们经常会使用其他变换进行降维处理,梅尔倒谱系数是其中一种。由于能量频谱中还存在大量的无用讯息,尤其人耳无法分辨高频的频率变化,因此让频谱通过梅尔滤波器。 梅尔滤波器,也就是一组20个非线性分布的三角带通滤波器(Triangular Bandpass Filters),能求得每一个滤波器输出的对数能量。必须注意的是:这 20 个三角带通滤波器在“梅尔刻度”的频率上是平均分布的。 梅尔频率代表一般人耳对于频率的感受度,由此也可以看出人耳对于频率 f 的感受是呈对数变化的。
然后计算对数滤波器的能量的离散傅立叶反变换。值得注意的是,虽然通常的会有24-26个系数,但我们只保留前12-15个系数。这是因为丢弃高倒频域值的DCT系数,代表一个类似低通滤波器的概念,可以使信号平滑化,能增进语音处理的性能。
其中Y(m)是M个滤波器的输出,n代表倒谱系数个数,一般为12-15个。
LP (Linear Prediction)线性预测
线性预测的基本原理是:假定语音样点间存在相关性,当前的声音取样值可以用位于其前面的p个取样值的线性组合来预测得出,这也就是说可以用过去的样点值达到预测未来的样点值的目的。它既可以在时域,也可以在频域上进行。
在时域的预测公式如下。s[n]是观测信号,ak是预测系数。令预测信号~s[n]和观测信号s[n]之间误差为e[n]。预测系数ak的计算方法为:使用levinson-durbin算法使误差e[n]最小。
而预测系数ak其实并不直接用作特征参数,而是会转换成鲁棒性更好的特征参数来使用:线性预测系数 (LPCCs linear plinear predictive cepstral coefficients )、线性谱频率( line spectral frequencies (LSFs))和感知线性预测系数(perceptual linear prediction (PLP) coefficients )。
二、声源特征(Voice source features)
声源特征一般描述声门激励信号的特征,例如声门脉冲形状(glottal pluse shape)和基频(fundamental frequency)。其中基频是声带震动的频率;与声门脉冲形状相关的参数则有:声带打开程度、闭合相(closing phase)的持续时间。
由于声道滤波效应,声门特征不能直接测量得到。假设声门源和声道是独立的,可以先测得声道参数。方法为:将原始波形反向滤波后,使用线性预测模型预测源信号。下图展示了信号和它的LP误差,以及使用反向滤波方法预测的声门气流(glottal flow)。
三、谱-时间特征(spectro-temporal features)
信号的谱-时间详情例如:格式转换或者能量调制,包含说话人的特殊信息。将时间信息纳入到特征中的常用方法是使用一阶和二阶时间衍生估计。它们被称为delta系数和double-detla系数。即计算相邻矢量特征系数的时间差异。
差量倒谱参数是基于MFCC特征参数得到的。 虽然已经求出 13 个MFCC特征参数,然而在实际应用于语音辨识时,我们通常会再加上差量倒频谱参数,以显示倒频谱参数对时间的变化。它的意义为倒频谱参数相对于时间的斜率,也就是代表倒频谱参数在时间上的动态变化。
调制频率也用在说话人识别中。它代表子带幅度包络的频率成分,并且含有语速等其他特征。调制频率特征矢量的维数和FFT变换点数以及帧数相关。
时间离散余弦变换(temporal discrete cosine transform TDCT)对倒谱的连续帧进行离散余弦变换。能够更好的描述长时间内容的说话人的倒谱时间信息。
四、韵律特征(Prosodic features)
韵律特征是对整个语音片段的表述(non-segmental)。例如:音节重音,语调模式,说话速率和节奏。跟谱时间特征不同的是,韵律特征的跨度更长。例如:音节,单词,语句和说话风格、语言背景,句子类型和情感的差异。 韵律参数的最重要的参数为基频(fundamental frequency)F0。当然其他的参数:时长、语速、能量分布也可以使用。
基频检测是一个很难的工作,推荐YIN方法来求基频。对于说话人识别,F0包含生理(physiological)和后天学习(learned)的特征。例如基频的平均值与喉头尺寸相关,但是音高等高线的变化(temporal variations of pitch)则与说话方式有关。一个增加准确度的方法是同时使用局部和全局的基频变化。
五、高维特征(High-level features)
说话人不仅在语音音色、音调上有不同,而在他们的词汇使用方面也有不同:例如他们倾向使用哪些单词。这被称为高维特征。模拟高维特征是将语句转换为符号,(tokens)这些符号含有单词、语音(phones)、周期特性(prosodic gestyres)。
符号特征的基线分类器(baseline classifier)是N-gram模型。最大似然估计(maximum likelihood ML)和最大后验概率(maximum a posteriori MAP)可以估计N-gram。