基于DSP的语音识别计算器设计
时间:11-28
来源:互联网
点击:
随着电子技术的高速发展,现代普通民用计算器在保留基本的加减乘除等运算外,加入了大量如三角函数、幂函数等比较复杂的运算。但是其基本的操作没有发生变化,依然是运用手指操作,对于需要进行实时数字计算的一些特殊人群(残疾人士)或是在一些特殊场合在无法手动操作计算器的情况下,用加入了语音识别模块的计算器来进行实时数字计算就有相当的必要。
语音识别技术是人机最自然、最简洁的交流方式,它就是让机器能够自动识别并理解说话人要表达的意思,将语音信号转变为正确的文本或者命令的高科技技术。根据实际的应用,语音识别可以分为:特定人与非特定人的识别、孤立词与连续词的识别、中小词汇量与无限词汇量的识别。
考虑到成本及使用范围因素,本文中应用的是基于TMS320VC5509 DSP的非特定人、孤立词、小词汇量的语音识别系统。通过实际测试,使用该DSP的语音识别系统有着较高的实时性、识别率,基于该系统的计算器对实时数字计算有较高准确性,基本能解决特殊群体和特殊地点使用计算器困难的情况。
1 系统硬件设计
1.1 语音识别系统
语音识别的基本原理框图如图l所示。语音识别过程主要包括语音信号前处理、特征提取、模式匹配等部分。语音信号输入之后,预处理和数字化是进行语音识别的前提条件。特征提取是进行语音信号训练和识别必不可少的步骤,本文采用的是提取每帧的Mel系数的倒谱参数作为语音信号的特征值。模板匹配算法目前有DTW 算法、HMM隐马尔科夫模型、ANN人工神经网络等。本文采用HMM隐马尔科夫模型的方法,提取出的特征值存入参考模式库中,用来匹配待识别语音信号的特征值。匹配计算是进行语音识别的核心部分,由待识别人的语音经过特征提取后,与系统训练时产生的模板进行匹配,在说话人辨认中,取与待识别语音相似度最大的模型所对应的语音作为识别结果。
1.2 系统硬件结构
图 2为系统硬件结构框图。此系统的核心器件是TI公司的TMS320VC5509定点DSP。在本系统中,它不仅是语音识别的核心,还负责计算器的运算部分。TMS320VC5509是系统的运算处理单元,具有2个乘法器(MAC),4个累加器(ACC);40位、16位的算术逻辑单元(ALU)各一个,这大大增强了DSP的运算能力;指令字长不只单一的16位,可扩展到最高48位,数据字长16位;可通过USB接口对TMS320VC5509烧写程序而不必借助仿真器。正是基于这些优点,选择该器件可节省开发资金,减小电路板面积。DSP与TLV320AIC23的接口电路如图3所示。
TLV320AIC23是Tl公司的一款低成本、低功耗的音频编解码器(CODEC),在本系统中负责采集语音信号。它与本系统相关的性能参数有:支持8~96 kHz可调采样率;可调1~5dB的完整缓存放大系统等。图4是TLV320AIC23的电路图。
AM29LV800B存储器又称闪存(Flash),它具有在线电擦写、低功耗、大容量等特点,其存储容量为8Mbit。上电后,DSP从外部Flash加载并执行程序代码,使系统能够脱机运行。在本系统中,它主要用来存储程序代码、语音模型、以及压缩后的语音数据。
HY57V641620 同步动态存储器(SDRAM),容量为4 M×16 bit。作为RAM的扩展,它大大增强了DSP的存储与运算能力。在系统初始化的时候,用来装载放在Flash中的声学模型。这样在语音识别的过程中可以通过片外的SDRAM来访问声学模型,比直接访问Flash来获取声学模型数据要快。LCD显示器用来实时显示经过语音识别后的数字、运算符号,并在得到需要显示最终结果的提示后显示答案。
2 系统软件设计
2.1 系统软件流程
图5为系统的软件流程。整个系统开始运行后,初始化DSP及TLV320AIC23,以使各个寄存器的初值符合要求。在系统通过TLV320AIC23采集语音信号后,首先要进行预滤波和预加重;接着将语音信号进行分帧;然后计算每帧信号的短时能量与短时平均过零率,为接下来的门限判决提供依据;利用门限判决进行端点检测后,提取每帧的Mel倒谱参数(MFCC),作为该帧信号的特征值;最后,用处理后的语音信号的特征值与模板进行匹配,这一部分是系统的重点。以相似度最大的模板锁对应的语音信号为识别结果。根据识别的结果在显示器上显示数字和运算符号,由运算规则得出结果并显示。
2.2 前处理
前处理是对语音信号采样、A/D转换、预滤波和预加重、分帧等。以8 kHz和16位的采样频率采集的语音模拟信号。本系统使用带通滤波器来滤波,上截频率为3.4 kHz。下截频率为60 Hz。由于语音信号具有极强的相关性,因此,分帧时要考虑帧重复的问题。本文将语音信号以256个采样点为一帧,两顿之间的重复点数为80,通过一个一阶的滤波器H(z)=1-a/z对采集的信号进行处理。
端点检测就是从说话人的语音命令中,检测出孤立词的语音开始和结束的始点。端点检测是语音识别过程的一个重要环节,只有将孤立词从说话人的背景噪声中分割出来,才能够进一步进行语音识别工作。本文采用短时能量和过零率检测端点。语音信号的短时能量分析给出了反应其幅度变化的一个合适描述方法。
短时过零率,即指每帧内信号通过零值的次数,能够在一定程度上反映信号的频谱特性。一帧语音信号内短时平均过零率定义为:
用短时能量参数检测结束点,信号{x(n)}的短时能量定义为:
式中,{x(n)}为输入信号序列。
在正式端点检测开始后,短时能量与短时过零率作为门限来判决说话人命令字的开始与结束;连续5帧语音信号超过门限值视为说话人命令字的开始,连续8帧语音信号低于门限值视为说话人命令字的结束。
2.3 特征值提取
提取每帧的Mel倒谱参数(MFCC)为该帧信号的特征值。由倒谱特征是用于说话人个性特征和说话人识别的最有效的特征之一,它是基于人耳模型而提出的。其提取过程如下:
1)原始语音信号S(n)经过预加重、加窗等处理,得到每个语音帧的时域信号x(n)。然后经过离散傅里叶变换(DFT)后得到离散频谱X(k)。
式中,N表示傅里叶变换的点数。
2)将离散谱X(k)通过M个Mel频率滤波器组可得到Mel频谱并通过对数能量的处理,得到对数频谱S(n)。计算S(n)通过每一个滤波器的输出,得到M个h(m)参数。
3)对所有滤波器输出进行对数运算,再进一步进行离散余弦变换(DCT),即可得到MFCC参数。
一般在Mel滤波器的选择中。Mel滤波器组都选择三角形的滤波器,但也可以是其他形状,如正弦形的滤波器组等。
2.4 模板匹配(HMM算法)
本文采用隐马尔科夫模型(HMM算法)进行模式匹配。它将特征矢量作为模板,在语音识别模式匹配时,对输人的语音与模板库中的模板进行比较,最后将相似度最高的作为输出结果。HMM算法解决由于说话人语速不同和连续说话的而带来的失真问题,还能大大减少运算时间,提高识别率。
隐马尔可夫模型是一个双重随机过程的统计模型,其基本随机过程是隐藏起来观测不到的,另一个随机过程则产生观测序列。对于语音识别系统,观测序列0就是矢量量化后的结果序列,模型λ就是由训练语音得到的模板。语音的训练过程就是产生模板λ的过程,而语音的识别过程就是求出在模板λ下,待识别语音的结果序列0的条件概率 P[O/λ]。
由α(i)和β(i)的定义可直接得到:P[O/λ]=αt(i)βt(i)。而语音的训练算法则较复杂,目前都采用迭代的方法得到a和b的近似解,其迭代公式如:
在实际应用中,仅对词条的少数次发音进行训练的语音识别系统。不可能对各种复杂语境下的不同发音都有较高的识别率。某些较陈旧的识别算法如动态时间弯曲法,只能把单词的多次训练发音形成多个模板,造成模板数量成倍增加,影响系统的实时性。而HMM能够对一个词的多个训练序列进行有效的融合而形成一个模板。当训练发音的数量增多时,只会造成训练过程的计算量增大。而不会使识别过程的计算量有丝毫增加,这对系统的实时性是相当有利的。
语音识别技术是人机最自然、最简洁的交流方式,它就是让机器能够自动识别并理解说话人要表达的意思,将语音信号转变为正确的文本或者命令的高科技技术。根据实际的应用,语音识别可以分为:特定人与非特定人的识别、孤立词与连续词的识别、中小词汇量与无限词汇量的识别。
考虑到成本及使用范围因素,本文中应用的是基于TMS320VC5509 DSP的非特定人、孤立词、小词汇量的语音识别系统。通过实际测试,使用该DSP的语音识别系统有着较高的实时性、识别率,基于该系统的计算器对实时数字计算有较高准确性,基本能解决特殊群体和特殊地点使用计算器困难的情况。
1 系统硬件设计
1.1 语音识别系统
语音识别的基本原理框图如图l所示。语音识别过程主要包括语音信号前处理、特征提取、模式匹配等部分。语音信号输入之后,预处理和数字化是进行语音识别的前提条件。特征提取是进行语音信号训练和识别必不可少的步骤,本文采用的是提取每帧的Mel系数的倒谱参数作为语音信号的特征值。模板匹配算法目前有DTW 算法、HMM隐马尔科夫模型、ANN人工神经网络等。本文采用HMM隐马尔科夫模型的方法,提取出的特征值存入参考模式库中,用来匹配待识别语音信号的特征值。匹配计算是进行语音识别的核心部分,由待识别人的语音经过特征提取后,与系统训练时产生的模板进行匹配,在说话人辨认中,取与待识别语音相似度最大的模型所对应的语音作为识别结果。
1.2 系统硬件结构
图 2为系统硬件结构框图。此系统的核心器件是TI公司的TMS320VC5509定点DSP。在本系统中,它不仅是语音识别的核心,还负责计算器的运算部分。TMS320VC5509是系统的运算处理单元,具有2个乘法器(MAC),4个累加器(ACC);40位、16位的算术逻辑单元(ALU)各一个,这大大增强了DSP的运算能力;指令字长不只单一的16位,可扩展到最高48位,数据字长16位;可通过USB接口对TMS320VC5509烧写程序而不必借助仿真器。正是基于这些优点,选择该器件可节省开发资金,减小电路板面积。DSP与TLV320AIC23的接口电路如图3所示。
TLV320AIC23是Tl公司的一款低成本、低功耗的音频编解码器(CODEC),在本系统中负责采集语音信号。它与本系统相关的性能参数有:支持8~96 kHz可调采样率;可调1~5dB的完整缓存放大系统等。图4是TLV320AIC23的电路图。
AM29LV800B存储器又称闪存(Flash),它具有在线电擦写、低功耗、大容量等特点,其存储容量为8Mbit。上电后,DSP从外部Flash加载并执行程序代码,使系统能够脱机运行。在本系统中,它主要用来存储程序代码、语音模型、以及压缩后的语音数据。
HY57V641620 同步动态存储器(SDRAM),容量为4 M×16 bit。作为RAM的扩展,它大大增强了DSP的存储与运算能力。在系统初始化的时候,用来装载放在Flash中的声学模型。这样在语音识别的过程中可以通过片外的SDRAM来访问声学模型,比直接访问Flash来获取声学模型数据要快。LCD显示器用来实时显示经过语音识别后的数字、运算符号,并在得到需要显示最终结果的提示后显示答案。
2 系统软件设计
2.1 系统软件流程
图5为系统的软件流程。整个系统开始运行后,初始化DSP及TLV320AIC23,以使各个寄存器的初值符合要求。在系统通过TLV320AIC23采集语音信号后,首先要进行预滤波和预加重;接着将语音信号进行分帧;然后计算每帧信号的短时能量与短时平均过零率,为接下来的门限判决提供依据;利用门限判决进行端点检测后,提取每帧的Mel倒谱参数(MFCC),作为该帧信号的特征值;最后,用处理后的语音信号的特征值与模板进行匹配,这一部分是系统的重点。以相似度最大的模板锁对应的语音信号为识别结果。根据识别的结果在显示器上显示数字和运算符号,由运算规则得出结果并显示。
2.2 前处理
前处理是对语音信号采样、A/D转换、预滤波和预加重、分帧等。以8 kHz和16位的采样频率采集的语音模拟信号。本系统使用带通滤波器来滤波,上截频率为3.4 kHz。下截频率为60 Hz。由于语音信号具有极强的相关性,因此,分帧时要考虑帧重复的问题。本文将语音信号以256个采样点为一帧,两顿之间的重复点数为80,通过一个一阶的滤波器H(z)=1-a/z对采集的信号进行处理。
端点检测就是从说话人的语音命令中,检测出孤立词的语音开始和结束的始点。端点检测是语音识别过程的一个重要环节,只有将孤立词从说话人的背景噪声中分割出来,才能够进一步进行语音识别工作。本文采用短时能量和过零率检测端点。语音信号的短时能量分析给出了反应其幅度变化的一个合适描述方法。
短时过零率,即指每帧内信号通过零值的次数,能够在一定程度上反映信号的频谱特性。一帧语音信号内短时平均过零率定义为:
用短时能量参数检测结束点,信号{x(n)}的短时能量定义为:
式中,{x(n)}为输入信号序列。
在正式端点检测开始后,短时能量与短时过零率作为门限来判决说话人命令字的开始与结束;连续5帧语音信号超过门限值视为说话人命令字的开始,连续8帧语音信号低于门限值视为说话人命令字的结束。
2.3 特征值提取
提取每帧的Mel倒谱参数(MFCC)为该帧信号的特征值。由倒谱特征是用于说话人个性特征和说话人识别的最有效的特征之一,它是基于人耳模型而提出的。其提取过程如下:
1)原始语音信号S(n)经过预加重、加窗等处理,得到每个语音帧的时域信号x(n)。然后经过离散傅里叶变换(DFT)后得到离散频谱X(k)。
式中,N表示傅里叶变换的点数。
2)将离散谱X(k)通过M个Mel频率滤波器组可得到Mel频谱并通过对数能量的处理,得到对数频谱S(n)。计算S(n)通过每一个滤波器的输出,得到M个h(m)参数。
3)对所有滤波器输出进行对数运算,再进一步进行离散余弦变换(DCT),即可得到MFCC参数。
一般在Mel滤波器的选择中。Mel滤波器组都选择三角形的滤波器,但也可以是其他形状,如正弦形的滤波器组等。
2.4 模板匹配(HMM算法)
本文采用隐马尔科夫模型(HMM算法)进行模式匹配。它将特征矢量作为模板,在语音识别模式匹配时,对输人的语音与模板库中的模板进行比较,最后将相似度最高的作为输出结果。HMM算法解决由于说话人语速不同和连续说话的而带来的失真问题,还能大大减少运算时间,提高识别率。
隐马尔可夫模型是一个双重随机过程的统计模型,其基本随机过程是隐藏起来观测不到的,另一个随机过程则产生观测序列。对于语音识别系统,观测序列0就是矢量量化后的结果序列,模型λ就是由训练语音得到的模板。语音的训练过程就是产生模板λ的过程,而语音的识别过程就是求出在模板λ下,待识别语音的结果序列0的条件概率 P[O/λ]。
由α(i)和β(i)的定义可直接得到:P[O/λ]=αt(i)βt(i)。而语音的训练算法则较复杂,目前都采用迭代的方法得到a和b的近似解,其迭代公式如:
在实际应用中,仅对词条的少数次发音进行训练的语音识别系统。不可能对各种复杂语境下的不同发音都有较高的识别率。某些较陈旧的识别算法如动态时间弯曲法,只能把单词的多次训练发音形成多个模板,造成模板数量成倍增加,影响系统的实时性。而HMM能够对一个词的多个训练序列进行有效的融合而形成一个模板。当训练发音的数量增多时,只会造成训练过程的计算量增大。而不会使识别过程的计算量有丝毫增加,这对系统的实时性是相当有利的。
电子 DSP 神经网络 USB 仿真 电路 解码器 电路图 LCD 显示器 滤波器 MIPS 相关文章:
- 利用蓝牙技术和远程信息控制单元实现汽车诊断(11-13)
- 六大特点助CMOS图像传感器席卷医疗电子应用(11-13)
- 汽车网络的分类及发展趋向(11-13)
- 多核嵌入式处理技术推动汽车技术发展(11-18)
- CAN总线的客车轻便换档系统设计与实现(02-13)
- 高性能嵌入式ARM MPU在医疗电子系统中的设计应用(05-12)