白燕燕 ,胡晓霞,郑三婷
(西安工业大学 北方信息工程学院,陕西 西安 710032)
声纹识别技术(说话人识别技术)是一种生物认证技术,也是一项根据说话人波形反映其生理和行为特征的语音参数来自动识别测试的说话人身份的技术[1]。
在未来的生活中,说话人识别将会以它自身独特的便捷性,实惠性和精准性受人瞩目,并且逐渐普及在生物认证技术领域[1]。
说话人识别首要录制声音样本和提取语音特征参数,再把它们保存在数据库中,最后把准备验证的声音和数据库中的语音特征相匹配,利用匹配结果相似度来获得说话人的身份。
目前,世界各国都很重视建设语音数据库。最具代表的是美国建立的 LDC (Linguistic Data Consortium) 和 OGI(Oregon Graduate Institute),以及欧洲国家建立的 ELRA(European Language Resouces Association)组织。这些组织都是长期研究语音信号处理技术的。他们开发出规模巨大的语音研究资源[2]。
第一个高质、大容量、高可信度的声音数据库是YOHO数据库。表1是YOHO说话人数据库。它是经过数字化的数据库,其输入特征参照了第三代安全终端单位(STU-III)的安全语音电话。设计了与文本有关的说话人确认系统,此系统是会提示用户说什么话,在YOHO中使用的是:“合成块”短语的语法[2]。
这个数据库的环境是“办公环境”。另一方面,它还满足在噪声的环境和远距离麦克风的条件下对语音做测试。而这些均满足了消费者的消费需要。
国内,浙江大学CCNT实验室提出和建立了面向移动通信环境的说话人识别语音库SRMC(speaker recognition in mobile communication)[2]。
生活中,如果要采集语音的话,就会常常使用计算机,麦克风,还有录音功能电话机,此外还要有相应的调制解调器。这些录音设备都很普通且常见。
我们该怎样去评价和使用一个标准的语音数据库?我们需要对评价下个定义。如评价的细节、训练和测试数据集的分割。在特定条件(如训练和测试采用不同的麦克风)下进行系统性能评价,需要有足够的录音数据。
表1 YOHO语音数据库Tab.1 YOHO speech database
由于实验条件的限制,本课题的语音库是自己创建的,实验用来训练和测试的说话人录音,大部分是班级同学和同一实验室的同学。在这个实验中我们使用的是普通话,我们中每一个人说话速度和音量都处于正常情况。实验语音是在两天时间内采集得到的。采集环境是实验室,一共有十个同学进行录音。男女比例是一比一。在本实验中,我们尽量保持实验室环境安静,假设我们采集的声音都是纯音,没有噪音。实验中用到的录音软件是cool edit 2000,用的录音设备是普通的立体声麦克风和COMPAQ笔记本电脑,我们把采样频率定为8000Hz,每一帧的帧长定为256个点,帧之间的距离定为80点,用16比特量化方式进行量化。采样之后,得到了标准化的数字语音,这个实验中,用到的语料是阿拉伯数字。包含之间的数字,每个人的语音是1个阿拉伯数字,每个人每一天要有9次朗读机会。我们把获得的所有的数据样本存储在计算机的硬盘中,拿出第一天的语音来进行训练使用,把第二天的语音用来做测试。每一个数字录音看做一个单位来进行测试。本文的实验中利用阿拉伯数字1~9的语音单元构成的隐马尔可夫模型,建立了与文本有关的身份确认系统。如图1所示。
图1 基于HMM的与文本有关的说话人身份确认系统Fig.1 Speaker identification system based on HMM with text-related
首先录制语音,采集语音,建立语音模板库,在实验室环境下,采集参加训练和识别的说话人语音。分别建立两个数据库。第一天录音存储为Xi,第二天录音存储为Ri。分别存储在计算机的硬盘中的录音DIY资料文件夹下。语音库是用来存储说话人的语音。当需要识别时可以用来识别说话人身份。随后将语音送至预处理功能模块。
其次对数字化语音进行预处理,此模块的任务语音信号的数字化处理,把处理过的语音拿来端点检测。预处理过程包含去除语音信号的噪声、对信号进行预加重、加窗、分帧等。经过加窗这一步骤之后,得到了一帧帧的语音序列,然后进行预加重处理。把信号做预加重处理是为了把信号中的高频部分提取出来,这样做整个频谱就会变得平坦起来,然后在全部的频带中一直保持这种平坦,这个时候我们可以用相同的信噪比求得频谱。这样都完成之后就可以频谱分析了。预加重滤波器的形式如:
式(1)中,μ的值在本实验中选取0.937 5。引进了预加重参数μ,可以看出,有利于提高说话人的识别率。表2中可以看到不同预加重参数下的识别率。
表2 不同预加重参数下的识别率Tab.2 Recognition rate based on different parameters of pre-emphasis
由表2可知,μ值改变,识别率也在改变。μ=0.95时,识别率最高。本实验选取的预加重参数值在0.93~0.95之间。
接下来是对语音信号分帧加窗。因为语音信号不是平稳的信号,假定语音信号在10~30 ms之间是平稳的。为了得到短时的语音信号,对语音信号进行加窗计算。本课题主要选用的是汉明窗。汉明窗显示了一个好的窗口的优点。其在时域中波形细节不容易丢失,且能防止泄露。汉明窗函数式:
经过前面的一些处理之后,采集的语音信号就被分割成一帧帧的短时的加窗信号,把这些信号假设成随机平稳的信号,然后提取语音特征参数。
提取出来的语音参数,对其端点检测。此时,先设置门限,依据短时能量和过零率的公式,求出来短时能量值和过零率值。然后用手工方法在MATLAB上去除语音信号中的静音段和噪音语段来进行端点检测。
对系统的输入信号进行判断,准确地找到语音信号的起始点和终止点的位置。除去语音中的杂乱语音段,只有这样才能采集到真正的语音数据,减少数据冗余和运算量,并减少处理时间。如表3所示。在这里本课题用的是双门限法[3]。将短时平均能量和短时平均过零率结合起来,进行端点检测,可以很好的检测语音是否开始和结束。
表3 起始点不同处理下的识别率Tab.3 Recognition rate under different treatments starting point
在本文的实验系统中,语音特征参数依次使用了12阶LPCC以及12阶MFCC。最后选定12阶MFCC参数。本课题建立的是与文本有关的声纹身份确认系统,用于测试模型是连续CHMM模型。
实验中我们用的是30 ms的汉明窗,依次计算它的特征参数,分别使用了12阶LPCC和12阶MFCC(24个Mel滤波器,语音信号的帧长度为256,信号的采样频率为8 000 Hz)和由此推导出的一阶MFCC差分参数。LPCC特征和MFCC特征识别率比较如表4所示。
表4 LPCC和MFCC特征识别率比较Tab.4 The comparison of the feature recognition rates between LPCC and MFCC
表4显示了在测试人数为10人时,在相同的帧长下,MFCC特征的识别性能高于LPCC特征。这个结论又一次证明了倒谱特征的可区分性测度优于LPCC特征。
实验中,我们把第一个说话人的语音“9”,作为实验研究样本。图2是数字“9”的语音波形图,图3是数字“9”的语谱图。
图2 语音“9”的波形图Fig.2 Waveform speech"9"
MFCC参数是按帧计算的,在这里语音帧长度是256,信号采样频率是8 kHz,采用24个滤波器,MFCC特征阶数是12。MFCC的优点是在噪声的环境下,可以表现出对环境更强的鲁棒性。接下来一步要做的是对语音特征矢量序列进行矢量量化,矢量量化的数据压缩效果相当好,因此进行语音处理经常要用到。在本文的实验中,采用LBG法聚类生成码书。矢量量化之后这些语音特征参数就转变成语音模型。紧接着可以开始进行下一步的操作[4]。
图3 数字“9”的语谱图Fig.3 The number"9"spectrogram
在训练阶段,对数字1~9建立HMM模型,就要对10个人进行每个数字10遍训练。第一天训练,第二天检测。每天一遍,一共两遍,首先把语音信号做端点检测,然后根据特征量计算出MFCC系数序列后,这里要用Baum-Welch算法建立各个说话人的HMM模型库[5]。测试阶段,先保持和训练阶段一样,提取说话人测试语音中的特征矢量,然后根据维特比算法,并以各个说话人的HMM模板为参照,计算出来该输入序列的生成概率,根据最大的输出概率进行判决结果。对于本课题研究的身份确认系统,把概率值与判决门限相比较,其值大于或等于判决门限的声音作为受测者本人的声音被接受,小于门限的被拒绝[6]。
本文的实验是与文本有关的说话人身份确认系统。在实验中,分别按照不同人数进行训练,但是测试语音数保持不变[7]。任意抽3个人朗读数字,在随后的实验中我们依次确定实验人数为5,7和10时,这时可以看出识别率会有一些大的差异。其结果如表5所示。
表5 训练人数不同时的识别比较Tab.5 The comparison of identification in different training number
实验中的语音特征是MFCC,所用模型是连续CHMM,每一数字模型有4个状态。在这个身份确认系统中,在二值判定的前提下,确认受测者是否是之前所认定的某人。从表5可以看到识别的时间比较短,当有10个人训练时,识别率最大。为了训练出可靠的参数模型,必须加大训练集的数据。本实验由于条件限制,实验语音模板库比较小,训练数据不太充足,影响系统的一定性能。当训练数据足够大时,得修改补充一下程序的流程。本实验中系统的识别率达到了90%以上。
本文的实验达到了预期的实验效果,基本完成了身份确认的目标。但是针对语音的特征提取和模式匹配,在实验中难免会出现一些误差,出现误认识和拒认识的偏差。对于说话人确认系统,虽然说从理论上来说,识别率和登录的说话者量无关,但是实际上对于二值判定的说话人确认系统也会随着登录人数的增减而有所改变,怎么样才能确保有足够多的登录者,登录到说话人确认系统中,而它的识别率问题仍然是一个很大的课题。
[1]赵力.语音信号处理 [M].北京:机械工业出版社,2003.
[2]吴朝辉,杨莹春.说话人识别模型与方法[M].北京:清华大学出版社,2009.
[3]何强,何英.MATLAB扩展编程[M].北京:清华大学出版社,2002.
[4]张雪英.数字语音处理及MATLAB仿真 [M].北京:电子工业出版社,2010.
[5]韩纪庆,张磊,郑铁然.语音信号处理 [M].北京:清华大学出版社,2004.
[6]朱少雄.声纹识别系统与模式匹配算法研究 [D].大连:大连理工大学,2005.
[7]王建勋,刘会金.基于AR谱估计和频谱分析的间谐波检测方法[J].陕西电力,2014(7):23-30.WANG Jian-xun,LIU Hui-jin.An interharmonic detection algorithm based on AR spectral estimation and spectrum analysis[J].Shaanxi Electric Power,2014(7):23-30.