基于FPGA的说话人识别系统,包含原理图、源代码
项目实施背景及可行性分析:
随着网络信息化技术的迅猛发展,身份验证的数字化、隐性化、便捷化显得越来越重要。语言作为人类的自然属性之一,说话人语言具有各自的生物特征,这使得通过语音分析进行说话人识别(Speaker Recognition, RS)成为可能。人的语音可以非常自然的产生,训练和识别时并不需要特别的输入设备,诸如个人电脑普遍配置的麦克风和到处都有的电话都可以作为输入设备,因此采用说话人语音进行说话人识别和其他传统的生物识别技术相比,具有更为简便、准确、经济及可扩展性良好等众多优势。
说话人识别的研究始于20世纪60年代,如今在特征提取、模型匹配、环境适应性等方面的研究已臻于成熟,各种算法也趋于稳定,说话人识别技术也正逐步进入到实用化阶段。因此,我们根据已有的特征提取算法基于FPGA工具搭建说话人识别系统是可行的。
项目目前进度:
系统具体方案及模型已搭建成功,并采用最小距离算法对系统进行说话人确认和说话人辨认的matlab仿真。 仿真结果显示,识别成功。
项目实施方案:
1 项目基本框图:
图1 说话人识别基本框图
图1是一个典型的说话人识别框图,包括训练和识别两个部分,训练又分为训练语音预处理、特征提取、训练建模、获取模型参数库四个过程,识别部分分为测试语音预处理、特征提取、模式匹配、判决输出四个过程。识别部分的模式匹配模块是将测试语音的特征矢量同模型库里的特征矢量进行距离匹配。
2 具体步骤
2.1 预处理
无论是训练语音信号还是测试语音信号在进行特征提取之前都要进行预处理。预处理包括预加重、分帧加窗、端点检测等。
(1)预加重:正常人的语音频率范围一般为40Hz~4000Hz,在求语音信号频谱时,频率越高相应的频谱成分越小,高频部分的频谱比低频部分的难求,预加重的目的是对语音信号的高频部分(大约800Hz以上)加以提升,是信号的频谱变得平坦,以便于频谱分析。预加重在语音信号数字化之后进行,用一阶数字滤波器来实现,公式为:
(1)
其中,为预加重系数,它的值接近1,本项目取0.9375。
(2)分帧加窗:语音信号在很短的一个时间内可以认为是平稳的,所以我们在对其处理时,先对语音信号分帧,对每帧信号处理就相当于对固定特性的持续语音进行处理。一帧语音信号时长约10~30ms,本系统采样频率为22050Hz,所以,帧长N取256,帧移为128。.分帧后,对每帧信号采取加窗处理,为避免吉布斯效应,本系统采用长度为256的汉明窗,其表达式为:
(2)
其中表示该窗的中心坐标。
(3)端点检测:端点检测的目的是从包含语音的一段信号中消除无声段的噪音和减少处理语音段的时间,确定出语音的起点以及终点。本系统通过短时能量的大小来区分清音段和浊音段。设第n帧语音信号的短时能量为,其计算公式如下:
(3)
清音的能量较小,浊音的能量较大。
在进行说话人语音端点检测时,首先根据背景噪声确定一个短时能量的门限阈值,由于我们获取说话人语音信息时是在安静环境下进行的的,所以仅根据此门限来确定语音的起点和终点也是可行的。但为了避免突发性的瞬时噪声(其短时能量有时比较大)的干扰,我们在此基础上,进行了进一步的限定,即,一旦检测到某帧的短时能量超过了门限,我们再继续检测接下来的32(经验值)帧,如果在这32帧里有3/4(经验值)的帧其短时能量都超过了门限,我们才确定最初检测的帧为语音起点,否则继续下一帧的检测。实验仿真证明,这种方法相比于单纯通过门限值判断能更好地确定语音的起始点和终点。
2.2 特征提取、训练、识别
2.2.1 特征提取
语音信号的特征提取是说话人识别的关键问题。对一帧语音信号进行某种变换以后产生的相应矢量,如线性预测系数、LPC倒谱系数、线谱对参数、共振峰率、短时谱等。综合考虑性能和硬件实现复杂度,在本系统中我们选择语音信号的短时谱作为其特征参数。首先我们对分帧加窗后的语音信号进行短时傅里叶变换,得到每帧语音信号频谱的幅值分布,再根据这些频谱幅值分布提取每一帧的特征矢量。
设加窗后的第n帧语音信号记为,其短时傅里叶变换表示为:
(4)
在本系统,我们用DFT来等价短时傅里叶变换。对所求得的帧信号的频谱幅值分布进行分析:每4个样本点求一次最大幅值,记录下对应最大幅值的那个样本点标号,这样长256的一帧信号可以得到64个这样的样本点。取这64个样本点组成的矢量向量为该帧的特征矢量。对输入语音的所有帧特征矢量求平均,得该输入语音的帧平均特征矢量,即该语音的特征矢量,记为。
2.2.2 训练建模
在训练建模部分,我们建立识别模型,所谓识
语音识别系统 matlab FPGA 最小距离算法 相关文章:
- 一种ARM处理器非特定人语音识别系统的设计方案(10-22)
- 基于ARM的实时语音识别系统在家庭监护机器人的实现(05-29)
- 基于AVR单片机的语音识别系统设计(08-08)
- 基于SPCE061A的语音识别系统的设计(01-07)
- 基于DSP和MATLAB的语音数据采集和处理系统(05-13)
- 简化“算法到C代码”是软件业的一项挑战(07-04)