用DSP实现基于VQ的说话人识别系统
扫描二维码
随时随地手机看文章
摘 要: 在TI的DSK5402平台上构建了一个主要采用VQ方法的6个说话人识别系统。该系统采用了10阶的线性预测参数、10阶的线性预测倒谱参数及基音参数,提出了一种改进的LBG算法,以避免在迭代过程中产生空胞腔,使之能适应多种距离测量。实验证明,本系统在指定文本的说话人闭集测试中取得了满意的效果。
关键词: 数字信号处理器;说话人识别;矢量量化;LBG算法
自动说话人识别是一种自动识别说话人的过程,它着眼于提取语音信号中的个人特征,从而达到识别说话人的目的。说话人识别按是否规定说话人所说的内容可以分为文本有关型和文本无关型,前者要求待识别人说指定内容的一段话来进行识别,而后者对识别人说的内容无任何限制[1]。就整个说话人识别的发展来说,近几年说话人身份识别在理论和实验室条件下已经达到比较高的识别精度,并开始走向实际应用阶段。AT&T、欧洲电信联盟、ITT、Keyware、T-NETIX、Motorola和Visa等公司相继开展了相关实用化研究,国内有关这方面的研究主要在中科院声学所、中科院自动化所、清华大学等研究所和大学中进行。本文采用VQ方法在TI的DSK5402平台上构建了一个文本有关的说话人身份识别系统,并采用线性预测语音合成方法来实现语音的人机交互。该系统具有使用方便、识别速度快和成本低等特点,具有广阔的应用前景。
1 算法的设计
本系统算法的流程如图1所示。首先将输入的经过数字化处理的语音信号进行预处理,然后提取其中与说话人有关的特征参数,接着对参数进行训练,为每个说话人生成一个模板。有了这组模板,在识别的时候,系统将提取新接收的语音的参数,并分别与这些模板进行比对,判断是否与某个模板匹配,最后给出判决结果。
1.1 语音的预处理
本系统首先对采集到的语音信号进行预处理。这里认为待处理的语音是纯净的采样数字语音。预处理主要包括预加重、分帧和加窗、端点检测等操作。系统中采用一个6 dB/倍频的一阶滤波器来进行预加重。为进行分帧和加窗,系统取帧长10 ms(80个样点),窗长30 ms(240个样点、覆盖帧前120个样点、帧后40个样点),由半个汉明窗和1/4个余弦窗组合而成。为减小计算量和提高计算精度,窗函数采用制表法,用浮点数算出数值,再定点化为一张表以供调用。由于幅度门限法相对简单,计算量较小,因此系统采用它来进行语音的端点检测。通过预处理后,便可以应用短时分析技术逐帧提取出相应的特征参数。
1.2 语音特征参数的提取
本系统采用基音参数、LPC参数和LPCC参数作为语音的特征参数。基音周期的估计采用自相关法,其具体过程是先求出一帧语音的自相关参数,然后系统在[20,39]、[40,79]、[80,143]3个区间内各选一个自相关峰值点作为候选基音,接着对规格化的3个自相关峰值进行比较,选择最大的那个作为最终的基音。由于信号受声带共振峰特性的影响,求出的基音值会有所偏离,解决的办法是采用中心削波法,即将信号小于门限的点赋值为0,大于门限的保持不变,然后将处理过的信号按以上方法求自相关。LPC参数就是在线性预测(LP)分析中求得的全极点滤波器的系数集{ai}pi=1,即在预测误差最小均方误差准则下,由公式
1.5 线性预测语音合成
本系统中需要进行人机交流,如语音提示输入识别语句、识别结果提示等。为了节省系统资源,保存完整的语音提示信息是不现实的。由于线性预测语音合成具有占用资源少、数据率低和实现简单等特点[3],而且系统交互所需要的语音对音质没有特别的要求,因此考虑用它来实现语音的人机界面。具体的实现过程是:首先利用PARCOR分析在PC上提取输入语音提示的PARCOR参数km,以普通文本形式保存,然后在DSP平台上利用km由PARCOR分析的逆过程来实现语音提示的语音合成。语音分析的过程可以在PC上实现,不占用系统资源,而语音分析得到的参数保存为文本后大小仅有几KB,与原始语音信号几百KB相比,占用系统数据区的资源少了很多,而语音合成的程序本身占用资源非常少,因此利用固定的参数文本和语音合成的办法实现有限的语音提示很适合本系统。
2 算法的DSP实现