SPCE061A在语音遥控器中的应用
凌阳科技公司的最新产品SPCE061A,不但具有微控制器的功能,还具有DSP运算功能,可以用来进行数字语音(音乐)信号处理。根据此特点,我们设计了一款语音遥控器,她可以语音识别常用电台及控制命令,如“开机”、“关机”、“频道增加”、javascript:window.open(this.src);" style="cursor:pointer;"/>“频道减少”等遥控功能命令及“中央一台”、“北京二台”等电台命令功能,对于这些电台,用户可以“直呼其名”切换到相应电台,不用每次搜索而烦恼;也方便用户在晚上光线较暗的情况下的使用;更是视力较差、盲人的福音。
我们还加入了温度采集、语音报温的功能,通过按键控制,她采集当前温度,并用优美的声音播报“当前温度是xx摄氏度”。
在不增加成本的情况下,给语音遥控器加入了万年历计算、语音报时功能,通过按键,她会播报“xxxx年xx月xx日”或“上午(下午、晚上)x点x分”。
1 系统组成
目前所设计的空调语音遥控器,主要由键盘输入、MIC输入、温度采集、语音输出、红外发射电路组成。按键用来完成按键遥控功能------保留按键功能、语音报温、报时; SPCE061A有一路专用于语音信号采集的A/D转换电路(MIC输入),可以用来进行语音识别、录音等的语音信号输入,本遥控器用来采集语音信号,进行语音识别;SPCE061A有7路A/D,选其中1路进行温度采集,由按键控制温度播报;SPCE061A有丰富的时基信号,采用2Hz进行计数,并进行万年历计算,由按键控制播报时间。系统组成如图1所示。javascript:window.open(this.src);" style="cursor:pointer;"/>
2 硬件组成
硬件电路如图2所示:
共设计了13个按键,采用4×4的行列式键盘输入,IOA0---IOA3设置成输入口,IOA8---IOA11设置成输出口,预留3个按键作为备用。
语音识别的硬件电路比较简单,MIC选用驻极体话筒,驻极体话筒具有结构简单、重量轻、体积小、无方向性、频率响应宽、保真度好等优点。驻极体话筒的偏压由SPCE500A的VMIC脚提供。
SPCE061A提供双通道10位D/A输出AUD1、AUD2,其中每个DAC通道的输出能力为3mA,用于输出语音信号,考虑功耗问题,采用单通道AUD1输出。
利用SPCE061A的IOB8输出的PWM信号(IOB8、IOB9口的特殊功能)可以作为红外载波信号,载波频率由可编程定时器TimerA(或TimerB)的溢出频率决定。本遥控器用IOB8产生红外载波信号。
温度传感器采用普通负温度系数热敏电阻,热敏电阻灵敏度高、价格便宜。('nSP(tm)内核是一个通用的核结构。除此之外的其它功能模块均为可选结构,亦即这种结构可大可小或可有可无。借助这种通用结构附加可选结构的积木式的构成,便可形成各种不同系列派生产品,以适合不同的应用场合。这样做无疑会使每一种派生产品具有更强的功能和更低的成本。
3 软件设计
软件采用模块化程序结构,程序模块包括初始化、键盘扫描、温度采集、温度播报、万年历时间计算、万年历播报、红外发射、语音识别、语音播放模块等,程序流程见图3所示:
图3 流程图
系统初始化包括系统时钟、IO口、万年历初始值、中断(打开按键唤醒和2Hz中断),然后扫描按键,有按键进行相应处理,无按键进入睡眠,万年历计算在2Hz中断服务程序中进行。
语音播放采用凌阳科技公司提供的音频编码算法,先在PC机上录好提示语音文件(WAV文件),并经凌阳公司提供的压缩工具压缩处理成二进制文件加载到用户程序,编译链接后存储到单片机FLASH中,播放时再解压缩送D/A还原出语音。用于u'nSPTM内核的SPCE系列芯片,凌阳科技公司提供三种不同压缩率的算法,下表是各种压缩算法名称及编码率类型。
压缩算法名称 | 语音压缩编码率类型 |
SACM_A2000 | 16KBits/s、20KBits/s、24KBits/s |
SACM_S480 | 4.8KBits/s、7.2KBits/s |
SACM_S240 | 2.4KBits/s |
这三种压缩算法的区别在于压缩率不同、音质也不同。SACM_A2000压缩率相对较小,音质较好,相应的资源占用较多。SACM_S240的压缩率最大,javascript:window.open(this.src);" style="cursor:pointer;"/>音质相对较差。SACM_S480介于这两者之间。每种算法都有完整的库函数供程序调用,软件编写非常方便。本语音遥控器采用SACM_S480算法。
语音识别分为特定发音人识别(Speaker Dependent)和非特定发音人识别(Speaker Independent)两种方式。
特定发音人识别是指语音样板由单个人训练,对训练人的语音命令识别准确率较高,而其他人的语音命令识别准确率较低或不识别。非特定发音人识别是指语音样板由不同年龄、不同性别、不同口音的人进行训练,可以识别一群人的命令。语音样板的提取非常重要。语音遥控器就是采用非特定发音人识别方式。
语音识别分为语音样板训练和语音识别两个过程。我们将标准模式的存储空间称之为“词库”,而把标准模式称之为“样板”。所谓语音样板训练,就是将待识别的命令进行频谱分析,提取特征参数作为识别的标准模式。语音识别的过程就是提取语音命令的特征参数,与词库中的样板比较,取相似度最好的样板命令序号作为识别结果。凌阳科技公司提供语音样板训练工具和语音识别库函数,每次可以识别30条语音命令,命令较多的话可以分多组进行,语音识别流程见图4所示:
上面介绍了采用SPCE061A来完成红外遥控、语音识别、语音报温、报时等综合功能的语音遥控器,系统只用了单颗芯片来完成语音处理和控制功能,与专用的语音处理芯片相比,具有结构简单、成本低、易实现的特点,并且凌阳科技公司提供了丰富的C函数库和语音处理函数库,供用户调用,缩短了开发周期。本品稍作改动,就可用来控制空调机、录像机等电器;利用SPCE061A的语音处理优势可组成语音应答系统、语音合成系统、互动式玩具等,具有广阔的市场前景。