SPCE061A是凌阳公司设计的一种16位单片机,该款单片机资源丰富,具有极高的性价比,该单片机内置有2路DA转换,8路AD转换及在线仿真,并且有16×16位的乘法运算和内积运算的DSP功能,这为它进行复杂的语音数字信号的压缩编码与解码提供了便利,还可以做数字滤波器。这些特点为我们进行在语音处理尤其是语音识别领域的应用提供了便利。
语音识别技术在各个层面均有广泛的应用前景。电脑软件领域,例如:语音命令、语音输入,对话系统、查询系统、教学软件、游戏软件等;消费性电子产品领域,例如:电子记事本、声控玩具、语音拔号功能的手机等;工业产品领域,例如:车用移动电话、车用导航系统等;电话系统领域,例如:语音识别总机服务、语音拔号、语音订票订位等。
1 语音识别基本原理
语音识别就是让机器听得懂人们所讲的话,基本框架如图1和图2所示。图1是语音训练模型的部分:将已知的语音信号经由端点侦测(End Point Detection)及特征参数求取(Feature Extraction)而产生标准的语音参考样本。
图2是语音识别的部分。将待测的语音信号,经与图1同样的处理步骤求得特征参数后再与前述的标准语音参考样本对比,找出最相似的参考样本作为辨识的结果。
2 语音识别分类
若依使用者的限制而言可分为特定人语音与非特定人语音识别。
2.1 特定人语音识别
使用特定人语音识别系统前,须先把使用者的语音参考样本存入当成比对的资料库,即特定人语音识别系统在使用前就必须先进行图1的训练学习步骤。
2.2 非特定人语音识别
使用本系统前根本不需要先学习,便能直接使用。一套最佳的语音识别系统是不须经过学习便能进行语音识别,但通常辩识率都比较低。
另外以说话方式的连续是否又可分为非连续语音识别和连续语音识别。对于非连续语音来说,识别所说的每一个字必须分开辨认;而连续语音识别可以一般自然流利的说话方式来进行人性化的语音识别,但由于关系到相连音的问题,很难达到好的辨认效果。
3 SPCE061A芯片特性简介
SPCE061A是一款基于μ′nSP内核的16位单片机,其芯片特性如下:(1)工作电压:内核工作电压VDD为3.0~3.6V(CPU),I/O口工作电压VDDH为2.4~5.5V(I/O);(2)CPU时钟:0.32MHz~49.152MHz;(3)内置2K字SRAM和32K闪存ROM;(4)系统处于备用状态下(时钟处于停止状态),耗电小于2μA@3.6V;(5)具备触键唤醒的功能;(6)32位通用可编程输入/输出端口;(7)2个16位可编程定时器/计数器(可自动预置初始计数值);(8)7通道10位电压模-数转换器(ADC)和单通道声音模-数转换器;(9)2个10位DAC(数-模转换)输出通道;(10)14个中断源可来自定时器A/B,时基,2个外部时钟源输入,键唤醒;(11)具备串行设备接口;(12)低电压复位(LVR)功能和低电压监测(LVD)功能;(13)内置在线仿真(ICE,In-Circuit Emulator)接口。
SPCE061A的内部结构框图如图3所示。
4 SPCE061A的语音识别应用
4.1 硬件电路简述
SPCE061A的D/A转换通道的硬件实现大致有两类,一类是直接采用数/模转换器(DAC)方式,另一类是直接采用脉宽调制(PWM)驱动方式,SPCE061A音频输出的结构就是由两个DAC通道或一个PWM驱动通道构成。两类实现方式实质都为数/模转换,都是将数字信号转换成电流模拟信号输出。SPCE061A的音频输出采用双通道数/模转换DAC方式,即数字信号通过10位DAC转换成3mA驱动的电流模拟信号输出。语音提示输出直接采用DAC通道,经信号放大后,由扬声器输出。
语音识别电路比较简单,MIC选用驻极体话筒。驻极体话筒具有结构简单、重量轻、体积小、无方向性、频率响应宽、保真度好等优点,它的偏压由SPCE061A的VMIC管脚提供。
4.2 系统软件
语音识别分为语音样板训练和语音识别两个过程。我们将标准模式的存储空间称之为“词库”,而把标准模式称之为“样板”。所谓语音样板训练,即将待识别的命令进行频谱分析,提取特征参数作为识别的标准模式。语音识别的过程是提取语音命令的特征参数,与词库中的样板比较,取相似度最好的样板命令序号作为识别结果。凌阳科技公司提供语音样板训练工具和语音识别库函数,每次可识别30条语音命令,命令较多可以分多组进行,语音识别流程见图4所示。
其中,BSR-GetResult函数为启动辩识,当无命令识别出来时,返回0;识别器停止、未初始化或识别未激活返回-1;当识别不合格时返回-2;当识别出来时返回命令的序号。部分程序源代码如下。
以上程序代码是SPCE061A在一种基于特定人智能语音识别电动小车上的应用。经大量实验测试表明,将SPCE061A应用于语音识别领域,系统性能稳定、声音质量和识别效果较好。但在环境噪声或干扰信号高于语音信号时,系统将无法进行正确的语音识别,在背景噪声处理及其工程实际上还要进一步改进。