小词表实时语音识别系统的定点DSP实现
摘 要:主要介绍一种基于定点数字信号处理器DSP芯片(TMS320VC5402)的小词表实时语音识别系统。该系统体积小,成本低,可扩展性好,方便应用于许多特定场合,如:门禁控制系统等,对于100词以内的特定人语音,识别的准确率超过95%。
关键词:语音识别;(DSP)定点运算;线性预测编码(LPC);ADPCM算法;动态时间归整(DTW)
1 引言
语音识别技术的研究与应用已有相当长的时间了,语音识别技术关系到多学科的研究领域,不同领域上的研究成果都对语音识别的发展做出了贡献。由于不同的说话人、不同的说话速度、不同的说话内容以及不同的环境条件等都使机器识别语音产生某种程度不同的困难。这是由语音信号本身的特点所造成的。这些特点包括多变性、,动态性、瞬时性和连续性等。一个完整的语音识别系统可大致分为4个部分:
(1)语音特征提取 其目的是从语音波形中提取出随时间变化的语音特征序列。
(2)建立声学模型 通常将获取的语音特征通过学习算法产生。
(3)模板匹配(识别算法) 在识别时将输入的语音特征同声学模型进行比较,得到最佳的识别结果。
(4)语言模型与语言处理 由识别语音命令构成的语法网络,可以进行语法、语义分析。对小词表语音识别系统,往往不需要语言处理部分。
通常在以计算机为语音识别处理平台的系统中,一般采用隐含马可夫(Markov)模型(HMM)进行语音识别,该算法由于允许模板匹配中时间不定长,所以系统的适应性强,且识别阶段计算量也不大,但是需要进行大量的前期训练工作,需要系统具有较高的运算速度和庞大的系统存储资源。这对于那些需要识别的语音命令不多的特定应用场合,无疑是很不经济的,使用起来也不方便。利用廉价的定点数字信号处理器(DSP)芯片构成的小词表实时语音识别模块便能很好地解决这一矛盾。下面分别介绍该系统的硬件和软件结构。
2 系统的硬件构成
系统核心硬件构成框图如图1所示。
2.1 DSP芯片的选择
合理选择DSP芯片对于本应用系统的设计是非常重要的。只有选定了DSP芯片才能进一步设计外围电路和系统的其他电路。DSP芯片的选择应根据实际的应用系统需要而确定。
TMS320VC5402是TI公司生产的从属于TMS320C54x系列的一个工作灵活、高速、具有较高性价比、低功耗的16b定点通用DSP芯片。其主要特点包括:采用改进的哈佛结构,1条程序总线(PB),3条数据总线(CB,DB,EB)和4条地址总线(PAB,CAB,DAB,EAB),带有专用硬件逻辑CPU(40b算术逻辑单元(ALU),包括一个40b桶形移位器和2个40b累加器;一个17×17乘法器和一个40b专用加法器,允许16b带或不带符号的乘法),片内存储器(8个辅助寄存器及一个软件栈),片内外专用的指令集,允许使用业界最先进的定点DSPC语言编译器。TMS320VC5402含4 kB的片内ROM和16kB的双存取 RAM,1个HPI(HostPortInterface)接口,2个多通道缓冲单口MCBSP(Multi-Channel Buffered Serial Port),单周期指令执行时间10ns,带有符合IEEE1149.1标准的JTAG边界扫描仿真逻辑。
TMS320VC5402采用双电源(1.8V和3.3V)供电,其中I/O采用3.3V电源供电,芯片的核采用1.8V电源供电。由于实际系统使用5 V电源,所以必须采用电源转换芯片。选用TPS7301和TPS7333两块电源转换芯片(他们都是TI公司为配合DSP而设计的电源转换芯片),分别接上少量的外围电路,即可调整两块芯片的输出电压分别为3.3V和1.8V。
2.2 语音输入输出模拟前端的选择
TLC320AD50C是TI公司生产的一款集成ADC和DAC于一体的模拟接口电路,并且与DSP接口简单,高性能,低功耗,已成为当前语音处理的主流产品。16b数据结构、音频范围(采样频率为2~22.05kHz)、内含抗混叠滤波器和重构滤波器的模拟接口芯片,他有一个能与许多DSP芯片相连的同步串行通信接口。TLC320AD50C片内还包括一个定时器(调整采样率和帧同步延时)和控制器(调整编程放大增益、锁相环PLL、主从模式)。TLC320AD50C有28脚的塑料SOP封装(带DW后缀)和48脚的塑料扁平封装(带PT后缀),体积较小,适应于便携设备。
TLC320AD50C的工作温度范围是0~70℃,单一5V电源供电或5V和3.3 V联合供电,工作时的最大功耗为120mW。
TLC320AD50C与TMS320VC5402的硬件连接如图2所示。
2.3 其他功能模块的选择
(1)外挂程序存储单元 采用一片27C512作为程序存储器,系统复位后,程序自动由EPROM中加载进入DSP的片内程序存储区运行。
(2)语音模板存储单元 采用一片AT29C020作为模板和语音存储器,通过BDMA接口与TMS320VC5402相连。
(3)系统复位与电源适配 电源复位、适配和监视电路由MAX705,TPS7301和TPS7333实现。
另外,采用74HC574做输出识别接口,这就构成了基本的语音识别模块。加上键盘、LCD显示接口和相应的译码电路,即可构成完整的控制器。
3 系统的软件设计
3.1 TLC320AD50C与TMS320VC5402的接口设计
(1)TMS320VC5402串口的初始化 首先将DSP串口1复位,再对串口1的16个寄存器进行编程,使DSP串口工作在以下状态:以SPI模式运行,每帧一段,每段一个字,每字16b,采样率发生器由DSP内部产生,帧同步信号和移位时钟信号由外部产生。DSP给AD50C编程用查询方式,接收A/D转换的D信号和发送D/A转换的D信号用DMA方式。
(2)TLC320AD50C的初始化 首先由TMS320VC5402的同步串口发送两串16b数字信息到TLC320AD50C。第一串为0000 0000 0000 0001B,最低有效位(bits0=1)说明下一个要传输的数据字属于二次通信。第二个数据值用来对TLC320AD50C的4个数据寄存器的某一个进行配置。Bits15~11位为0,Bits10~8位为所选寄存器地址值,Bits7~0位为所选中寄存器的编程值。并且使TLC320AD50C工作在以下状态:选择INP/INM为工作模拟输入,15+1位ADC和15+1位DAC模式,采样频率为8 kHz,模拟信号输入和输出放大增益均为0dB。
3.2 语音信号的端点检测
语音信号的端点检测就是从含噪声的环境中检测出说话人的语音命令。由于每个人说话的语音特征是相对不变的,就可以利用语音信号的在特定时段内的能量和进行端点检测。语音信号的采样频率为8kHz(仅适合于简单语句的识别),样本区间为10ms,共80个采样点。每隔10ms计算一次短时能量和及过零点数。短时能量和:
其中:n为一个样本区间语音的采样点数(80),A(k)为一维语音信号的离散函数,W(k)为窗函数。当采样得到的短时能量和大于一定阈值时,就认定此时语音已经开始。只要短时能量和低于平均能量的1/20就可以认定此时已经是语音信号的终点了。
3.3 语音特征参数的提取和计算
输入的模拟语音信号首先通过TLC320AD50C内的抗混迭滤波器,然后由TLC320AD50C内的ADC采样和量化,接下来很重要的一环就是特征参数的提取。
对特征参数的要求:能有效地代表语音特征,且具有很好的区分性;各阶参数之间有良好的独立性;以及特征参数要计算方便等,以保证语音识别的实时实现。本系统选择线性预测倒谱系数(LPCC)作为语音识别的参数。线性预测编码(LPC)是目前众多特征提取方法中的一种, 主要特点是运算简单,易于实现代码的优化,运算速度快。
定义线性预测模型为:
为输入信号的Z变换)则其中a1~am即为系统所求的特征矢量。该系统为每样本区间信号计算出12阶LPCC系数,加上短时能量和作为以后的识别参数。以上算法是用TMS320VC5402的汇编语言实现的定点算法,可以在560μs内完成,满足系统实时性的需求。
3.4 语音的压缩编码与解码
本系统对语音信号采用8 kHz采样频率,精度为16b,数据传输率为128 kb/s的方式处理。因而采用ADPCM算法实现对语音的编码和解码非常方便,IMA-ADPCM(ADPCM,Adaptive DifferentialPulse Code Modulation),是一种针对16b声音波形数据的一种有损压缩算法,他将声音流中每次采样的16b数据以4b存储,所以压缩比为1∶4。而压缩/解压缩算法非常的简单,所以是一种低空间消耗,高质量声音获得的好途径。将采集到的语音样本压缩到32 kb/s,可以保持清晰的音质,同时大大降低存储需求。
3.5 参数模板的管理
经上述处理后的语音参数和ADPCM编码保存在芯片AT29C020当中,芯片AT29C020为ATM公司生产的一款2-megabit 256k×8b的Flash Memory,是非易失存储器。这样做的目的是为了使系统能脱离PC机独立工作。为了合理利用这有限的存储资源,同时实现快速的模板搜索,采用以扇区为单位的管理系统,每扇区的格式固定,采用了顺序表的方法进行管理。
3.6 模式识别动态时间归整(DTW)
本系统采用动态时间归整(DTW)算法完成模板的匹配。动态时间归整(DTW)算法和隐含马可夫模型(HMM)是目前应用的比较广泛的两种模式识别算法。DTW算法是一种模板匹配的算法,在孤立词语音识别中,他是最为简单有效的算法。考虑了个人说话时间上的差别,即对于同一个词,不同人在不同时刻说的时间长度上的不同做了考虑,解决了发音长短不一的匹配问题,是语音识别中出现较早,较为经典的一种算法。
设参考模板特征矢量序列为A={a1,a2,…,aj},输入语音特征矢量序列为B={b1,b2,…,bk},j≠k。DTW算法就是要寻找一个最佳的时间规整函数,使得语音输入B的时间轴k映射到参考模板A的时间轴j上总的累计失真最小。本系统的DTW算法也是用定点汇编程序实现,所以运算速度较快。
3.7 语音模板的训练
能否获得精确可靠的模板是运用DTW算法进行正确语音识别的关键。模板的好坏,直接影响系统的识别能力。系统为每个语音命令设置3个模板的预留空间,每个命令可以有3个模板参与识别。识别结果取其中的最接近者或平均值,这样可以尽量适应说话人语气语调的变化,大大提高了一次识别率。
4 结语
以本系统为基础,成功地开发了一种智能声控门禁实验系统。经过大量试验表明,该系统稳定可靠,正确识别率超过95%,系统平均响应时间小于0.5s。系统成本低,是一种实用的语音识别装置。
|