说话人识别算法研究傅庚申 殷福亮(大连理工大学 电信学院 信号与信息处理专业 116023)摘要: 说话人识别是根据从说话人所发出的语音中提取出信息判断说话人身份的过程。
HMM能有效的用概率统计的方法描述时变语音信号。
本文用HMM实现了一个说话人识别的系统。
并在详细分析系统各部分关键算法的基础上,比较了MFCC和LPCC两种特征参数的性能。
关键词:说话人识别;Mel频标倒谱参数;矢量量化;隐含马尔可夫模型分类号:TN912.34Study on Speaker Identification AlgorithmFu Gengshen, Yin FuliangSchool of Electronic and Information Engineering, Dalian University of Technology, Dalian,P.R.China, 116023Abstract: Speaker identification can be made according to the information distilled from the voice of the speaker. Using probability method, HMM can effectively describe the real-time audio signal. This paper realizes a HMM-based speaker identification system. Based on the analysis of the key algorithms of the system in detail, the performances of MFCC and LPCC are compared.Key words: Speaker identification, Mel Frequency Cepstrum Coefficient (MFCC), Vector Quantization, Hidden Markov Model (HMM)1 引言说话人识别可以看作是语音识别的一种。
它和语音识别一样,都是通过对所收到的语音信号进行处理,然后据此做出判断,不同之处在于说话人识别希望从语音中提取不同说话人的特征,加以利用;而语音识别则力图减少同一语音对于不同说话人的差别。
说话人识别是通过对说话人语音信号的分析和特征提取,确定说话人是谁。
随着技术的不断发展,说话人识别的应用领域正在不断扩大,主要方面有:说话人核对、声控电子密码锁、司法取证、医学应用等。
说话人识别的方法和技术在近十几年来得到了迅速的发展。
说话人模型从单模板模型到多模板模型,从模板模型到VQ模型、高斯混合模型、隐含马尔科夫模型,到人工神经网络模型,识别环境从无噪声环境下少数说话人的识别到复杂噪声环境下大量说话人的识别,所采用的识别技术从仅涉及动态规划到涉及统计信号处理、最优估计理论、矢量量化与编码、模糊系统理论与方法、灰色系统分析、人工神经网络等多学科和领域的发展。
本文用HMM实现了一个说话人识别的系统。
并在此基础上比较了MFCC和LPCC 两种特征参数的性能。
2 说话人识别系统的基本结构说话人识别系统的基本结构如图1所示:若要实现说话人的识别,需要解决一下几个基本问题[3]:说话人特征的提取;说话人模型的建立和模型参数的训练;测试音与说话人模型的匹配距离计算;其中最关键的两个问题是提取什么样的特征和建立什么样的模型。
对这两个问题的算法解答就组成了一个说话人识别算法,而一个说话人识别系统的效果也是由这两部分决定的。
3 说话人识别算法3.1 预处理在对语音信号进行处理之前,首先要对语音信号进行一定的预处理,其中主要包括语音信号的预加重、分帧和加窗[1]。
(1)预加重预加重是一种重要的前处理技术。
语音信号频谱的高频部分的能量比较小,易受干扰。
为此,在分析语音信号之前,需对其高频部分进行增强。
另外,为了对数字化的语音信号进行平滑处理以及减少在以后的信号处理中受到有限精度的影响,也必须首先对语音信号进行预加重。
方法是使用一阶固定数字传输函数:1()10.95*H Z Z −=− (1)因此,预加重的输出结果n s %是由它的输入值n s 经下列方程式计算得出的:10.95*n n n s s s −=−% (2)(2)分帧取连续的N 个语音信号作为一帧。
对于8KHz 的采样频率,由于为了后续求取语音特征中进行FFT 变换方便,在本系统中采用32ms 为一帧,即N 为256。
为了保证特征矢量系数的平滑,帧与帧之间有部分样本重叠使用,本系统中两帧之间重叠12帧。
所以设M 为两个帧的取样间隔,即2128M N ==。
(3)加窗在语音帧的起始点,线性预测方法以零值预测非零值或以非零值预测零值时,一般都会使预测误差增大。
若对数据先作适当的加窗处理,可以减少预测误差。
一般采用加窗算法包括海明窗(Hamming Window)和汉宁窗(Hanning Window)。
本系统采用的是海明窗,海明窗(Hamming Window)定义为:()0.540.46*cos(2**1)),01w n n N n N π=−−≤≤− (3) 加窗后的样本数据变为:()*()w S x n w n = (4)3.2 特征提取每一说话人的语音信号即表征语音内容又表征说话人身份,在文本无关方式下,我们希望这些特征主要说话人特征而不是语音文本特征。
从语音信号中提取的说话人特征参数应满足以下准则:对局外变量(例如,说话人的健康状况、情绪、系统的传输特性)不敏感。
能长期地保持稳定。
易于对之进行测量和存储。
可经常表现出来。
把语音信号每一段看成是准周期脉冲或随机噪声激励一个线性时不变系统的输出,解卷积的方法将激励信号和系统冲激响应分开,可以得到倒谱系数。
它可以将信息量较小的峰值信息和更为重要的声道形状信息相分离,倒谱系数反映了声道的共振性能,它是目前普遍采用的说话人特征参数。
3.2.1 线性预测倒谱参数LPCC线性预测倒谱参数(Linear Prediction Cepstrum Coefficient ,LPCC) [10]是基于语音信号为自回归信号的假设,利用线性预测分析获得倒谱系数的一种倒谱特征。
计算出LPC 系数i a 以后,将i a 通过下面的递推公式转换到倒谱域即得到所需的LPCC 系数n C :1111(),1(),n n n i i n i n n n i i i C i n a C a n p C i n a C n p −−=−−=⎧=+≤≤⎪⎪⎨⎪=>⎪⎩∑∑ (5) 3.2.2 Mel 频标倒谱系数MFCCMel 频标倒谱系数(Mel Frequency Cepstrum Coefficient,MFCC) [10]。
该特征是在Mel 标度频率域中提取出来的倒谱参数,先将频谱转化为基于Mel 频标的非线性频谱,然后转换到倒谱域上。
MFCC 的提出基于下列两点事实:首先,人类对单个音调的感知强度近似的正比于该音调频率的对数。
Mel 频率表达了这种语音频率与“感知频率”的对应关系。
在Mel 频率域内,人对音调的感知度为线性关系,举例来说,如果两段语音的Mel 频率相差两倍,则人耳听起来两者的音调也相差两倍,Mel 频率与线性频率的转换公式为:102595log (1/700)Mel f f =+ (6)其次,人类并不能有效的分辨所有的频率分量。
只有当两个频率分量相差一定带宽时,人类才能将其区分。
这个带宽被称为临界带宽(Critical Bandwidth ),其计算公式如下:20.692575[1 1.4(/1000)]c c BW f =++ (7)其中c f 为中心频率。
根据上述两点便可以构造临界频带滤波器组(Critical Band Filter Bank )来模仿人耳的感知特性。
这组滤波器的中心频率在Mel 频率域内呈线性分布,其带宽在临界带宽之内。
表1是一组典型的临界频带滤波器参数。
表1 临界频带滤波器组参数表序号 中心频率(Hz ) 带宽(Hz ) 序号 中心频率(Hz ) 带宽(Hz )1 100 100 11 1149 1602 200 100 12 1320 1843 300 100 13 1516 2114 400 100 14 1741 2425 500 100 15 2000 2786 600 100 16 2297 320 7 700 100 17 2639 3678 800 100 18 3031 4229 900 100 19 3482 484 10 1000 100 20 4000 556 MFCC 参数的求取过程就是将原始信号通过一组临界频带滤波器组,然后转换到倒谱域的过程,其流程为:1.对输入语音帧加汉明窗后作快速傅利叶变换[9],将时域信号转化为频域信号。
2.把上步变换得到的频谱系数用序列三角滤波器进行滤波处理,得到一组系数1220,,Y Y Y L 。
滤波器组中每个三角滤波器的跨度在Mel 标度上是想等的。
所有滤波器总体上覆盖从0Hz 到采样频率的二分之一。
三角滤波器的中心频率和带宽由表3-1给出。
计算三角滤波器输出1220,,Y Y Y L 的公式如下:1111111ii i i F F i i i k k k F k F i i i i k F F k Y X X F F F F +−−+==+−+−−=+−−∑∑,1,2,,20i =L (8)其中k X 为频谱上第k 个频谱点的能量, i Y 为第i 个滤波器的输出, i F 为第i 个滤波器的中心频率。
3.用离散余弦变换[9]将滤波器输出变换到倒谱域:2011log()cos[()]224k j j C Y k j π==−∑,1,2,k p =L (9) 其中p 为MFCC 参数的阶数。
1,2,...,{}k k p C =即为所求的MFCC 参数。
MFCC 所用的距离量度也为欧氏距离。
由于充分模拟了人的听觉特性,而且没有任何前提假设,MFCC 参数具有识别性能和抗噪能力强等特点。
3.3 矢量量化矢量量化(Vector Quantization ,VQ )[4] [7]是一种极其重要的信号压缩方法,广泛应用于图像信号压缩、语音信号压缩等领域。
在语音信号数字处理的许多重要研究课题中,特别是低速语音编译码器和语音识别的研究中,VQ 都起着非常重要的作用。
在说话人识别中,VQ 也是一种重要的信号压缩和识别方法。
而VQ 码本设计直接关系到VQ 的量化质量。
目前生成码本最基本也是最常用的算法是LBG 算法,LBG 聚类算法是一个迭代的过程,总的思路是首先求出M 个矢量的中心矢量CEN 及C 个质心,然后按最临近原则将M 个矢量按质心分类,并求出总体失真,在归类的基础上求出新的质心,在进行归类,并求出新的总体失真。