论文部分内容阅读
说话人识别是通过对说话人所发出的语音进行分析和个性特征参数的提取,自动地判断该说话人是否在所登记的模板库里,以及对该说话人的身份进行验证。目前,说话人识别凭借其与众不同的优势具有较大的市场应用价值和广泛的市场应用前景。FPGA器件可重复编程这一特性有利于日后系统的不断维护和升级,此外,FPGA具有高性能的并行数据处理的功能,能满足市场对系统实时性的要求,所以本文采用FPGA技术来实现说话人识别系统的硬件设计。本文首先对说话人识别的算法进行研究,主要有对采集的语音信号进行预处理、MFCC特征参数提取、VQ模式识别。在传统的算法研究的基础上,本文在端点检测算法中用短时平均幅度代替短时能量,从而更准确地截取了有效音段,同时在对MFCC个性特征参数提取时采用了基于随机共振理论的方法,有效地提高了系统的识别率。说话人识别算法的仿真在Matlab平台上实现,并把Matlab的仿真结果保存在SD卡中,方便与Modelsim仿真结果的对比。建立一个说话人识别系统分为训练阶段和识别阶段,其中识别阶段在DE2开发板上实现,本文采用的芯片是Altera公司的Cyclone II系列芯片EP2C35F672。通过对FPGA芯片结构特点和编程逻辑的了解,针对说话人识别算法,采用自顶向下的模块设计原则,把说话人识别系统分为预加重模块、分帧加窗模块、端点检测模块、MFCC特征参数提取模块、VQ模块和判决模块,其中MFCC特征参数提取模块分为快速傅里叶变换FFT模块、功率谱模块、Mel滤波器组模块、对数运算模块Ln、离散余弦变换模块DCT。设计并实现了各个处理模块,对各个设计模块采用Modelsim仿真工具进行仿真并且对其进行功能验证。设计了程序控制模块NIOS II,结合SOPC的特点,把系统实现的算法和各个接口模块都整合到SOPC系统上,在SOPC Bulider中设置好总线连接关系,配置好内存空间和启动地址,上电后程序导入SDRAM中运行。本文采集了20个人的语音,分别建立了模板训练语音库和说话人测试语音库,从20个模板库里选取5个作为硬件识别系统的参考模板,然后通过Modelsim对该20人的测试语音进行识别仿真,并把仿真结果与Matlab仿真结果进行对比,发现二者虽然有误差但是基本上可以忽略不计,从而验证了该说话人识别系统的功能,实现了说话人识别系统的可行性。对于一个说话人识别系统来说,识别率是非常重要的。本文虽然实现了一套实时可用的基于FPGA技术的说话人识别系统,但是系统的识别率并不是很高,有些问题还需要进一步的研究和探索。比如系统已经提取了比较有效的MFCC特征参数,但在噪音环境下对识别率的影响是很大的,还有就是我们选择特征矢量的时候,选择的方法很多,是否可以通过选择不同的特征参数相结合来提高系统的识别率还有待进一步研究。