随着现代电子技术在汽车系统中的不断应用,越来越多的车载电器加入到车身电子行列中,使得汽车的各种性能都得到了极大的改善,但汽车驾驶室的开关也越来越多, 这就为驾驶员行车中对车载电器的操作提出了更高的要求,同时也给行车过程带来了不安全的隐患。随着语音识别算法的改进和新一代Soc专用语音处理芯片的问世,使用语音命令控制汽车电器的操作能够部分用口代替手的功能,从而减轻驾驶员操作负担,提高行车安全系数。
目前我国的车身电子语音控制主要集中在汽车导航系统的应用上,没有充分发挥语音识别技术在车身电子中的应用价值。本文提出了一种的以专用语音处理芯片UniSpeech-SDA80D51为核心控制车载音响操作的设计方案,并在SL1102C1型车载音响上实现了对非特定人的语音识别与控制。
语音控制器硬件
车载语音控制器系统由定向拾音器、语音识别模块、控制模块和音响模块组成。系统的功能是:由拾音器采集驾驶员发出的语音命令,利用语音识别模块将拾音器输出的语音物理声音信号转变成语音数字信号,并识别出语音命令对应的汉字或词语,之后由控制模块产生与之对应的词条编码指令,通过系统I/O口线将控制命令传达给音响,车载音响接收到控制指令产生动作,响应驾驶员的语音命令,比如快进、快退或音量调节等。系统结构及原理框图如图1 所示:
语音识别模块主要由UniSpeech-SDA80D51芯片及外围电路组成。本模块主要实现对输入的非特定人语音信号的识别和处理功能,输出与语音命令对应的词条编码。
SDA80D51是Infineon公司专为语音识别和语音处理应用领域新推出的专用芯片,采用高集成度的Soc系统结构以0.18μm半导体工艺制造,拥有8位高速增强型M8051核心(25MIPS)和16位定点DSP核心OAK(100MIPS)的双核架构,片内集成了直接双访问快速SRAM、2路ADC和2路DAC(有效精度为12Bit)、多种通信接口和通用GPIO等设备,外部只需扩展Flash存储器等少量外围电路即可构成完整应用系统。
控制模块由MCU和模拟开关电路构成,本模块主要完成对语音识别模块输出的识别结果--词条编码信号进行逻辑分析和处理,通过模拟开关电路产生对应功能的控制信号输出到音响,控制音响的操作。其中MCU选用美国ATMEL公司产品AT89S51,由于车载音响SL1102C1上的按键控制面板为电阻式分流键盘电路,采用电压采样识别模式,对不同键值进行识别,综合SDA80D51芯片输出的I/O电压特性,确定使用继电器模拟SL1102C1控制面板按键的闭合和断开动作。
本设计是基于安徽森力公司的SL1102C1汽车音响。SL1102C1是专门为中档轿车设计的汽车音响,具有MP3播放、收音机和显示时间等功能,目前大量使用在江淮同悦轿车上。SL1102C1前板共有15个按键和一个用来调节音量的编码开关。分别为开关机/静音、音效设置、6个台位、播放/暂停、随机播放、重复播放、浏览播放、选择下曲(快进)、选择上曲(快退)、向下搜台/上一曲、向上锁台/下一曲、模式转换、电台浏览/自动存储台、波段切换、显示时间/时间设置和复位等功能。
音响前板上的按键为电压采样识别方式,按键包含短按(延时小于0.2s)和长按(延时大于1s)两种动作,控制模块MCU(AT89S51)的输出电压为TTL电平,直接采用MCU信号驱动音响按键动作容易引起误识别,造成系统误操作,因此本文采用模拟开关电路,很好地解决了上述问题。当AT89S51接收到语音模块输出的一个语音命令识别结果编码信号后,立即进行逻辑分析并输出对应的控制信号驱动相应继电器吸合模拟按键动作,按键的短按和长按功能是通过软件实现的。
系统软件设计
系统的软件包括:非特定人语音识别模块和逻辑控制模块。
非特定人语音识别模块基于HMM 模型算法。该算法通过对大量语音数据进行数据统计,建立识别词条的统计模型语音库,然后从待识别语音中提取特征,与模型库进行匹配,由比较匹配分数得到识别结果,并通过SDA80D51的GPIO口输出识别结果对应的词条编码信号。语音识别模块主要由信号预处理、特征参数提取、模型匹配和Viterbi算法部分组成。
信号预处理部分主要完成输入语音信号的采样、 模/数转换功能。A/D变换由SDA80D51内嵌12位A/D变换器实现,采样频率固定为8 kHz.
特征参数提取基于语音帧,采用分帧提取特片。先对语音信号进行重叠分帧,前一帧和后一帧重叠一半(帧信号重叠是体现相邻两帧数据之间的相关性),帧长为25ms,对每帧提取一次语音特片。
MFCC参数属于感知频域倒谱参数,反映了语音信号短时幅度谱的特征。p维MFCC参数的提取过程如图1所示。
其中:m是帧号,N是单位帧内的采样点数。
HMM是描述语音信号的一种概率统计模型,使用 MarKov链来模拟语音信号统计特性的变化,HMM模型是在Markov链的基础上发展起来的。
Viterbi算法是一种帧同步动态规整算法,在给定观察值序列和模型时,Viterbi算法给出了一个概率密度P(Q,O | λ)最大的状态序列。
控制模块的主要功能是:在单片机查询到语音模块输出的语音词条信号后,查表获得词条编码,根据编码判断对应按键是长按或短按,分别进入相应的子程序处理,长按子程序延时1s,短按子程序延时0.2s.在子程序中,输出语音命令所对应的I/O控制信号驱动继电器吸合模拟按键或编码开关动作,并及时复位I/O口。为了避免语音控制和手动控制之间冲突,语音控制模块可以完全兼容于手动控制,在语音控制操作时,同时可以进行手动控制。
实验结果及结论
本系统的样机实验主要是测试非特定人的语音识别率和模拟开关动作的准确率。由于汽车音响的语音词条为2~4个字,语音识别率实验内容为车载音响常用2字词条指令18条、3字词条指令12条、4字词条指令10条,实验对象为6人4男、2女(普通话和方言),实验环境为噪声干扰环境和相对安静环境,样机测试结果如表1所示。
由表1可知,系统的识别率与语音指令词条字数、麦克接收距离、说话人方言及环境有关。4字词识别率高于2字词,相对安静环境下识别率可以达到90%以上,男声和女声的识别率接近。有噪声干扰环境中识别率下降。为了提高系统的识别率,系统样机采用奥林巴斯 ME52定向麦克(在表中没有反映),提高了麦克接收范围,使系统总体的识别率上升到95%.
在系统样机控制电路实验中,模拟开关动作达到了较高的准确率,测试结果为98%以上,只要控制程序运行正常,各路继电器就能按照程序安排执行闭合和断开模拟手动开关操作。
实现汽车电器的语音控制是未来车载电器的发展趋势,越来越多的解决方案在不断的被提出和验证。本文提出的设计是在SL1102C1型车载音响上使用SDA80D51芯片,实现了车载音响非特定人的语音识别与控制。由于该芯片集成度高,需要外围模块少,设计的硬件电路简单,便于调试检测。该设计得到的样机,有较高的识别率、工作稳定、可扩展性强,达到预期的设计目标,整个设计方案和实现方法是可行的。由于语音识别率随着环境,说话人不同而变化,虽然HMM在噪声很少的环境下可以获得很高的识别率,但当测试语音或者环境中含有不同程度的噪声污染时,语音识别系统的性能会很快地下降。提高系统的抗噪性和鲁棒性是语音识别系统走向实用化的关键之一。