非特定人车载音响语音控制系统的设计与实现

2011-06-23 15:48:09 来源:网络

摘要:  目前我国的车身电子语音控制主要集中在汽车导航系统的应用上,没有充分发挥语音识别技术在车身电子中的应用价值。本文首次提出了一种的以专用语音处理芯片UniSpeech-SDA80D51为核心组成非特定人车载音响语音控制系统的设计方案,并实现了系统样机的研制。该系统在江淮同悦SL1102C1型车载音响上进行了语音控制实验,实验数据表明系统语音识别率可达到95%,为下一步项目产品化开发奠定了基础。

关键字:  现代电子技术,  车载电器,  安全系数,  导航系统

随着现代电子技术的发展,越来越多的车载电器被加入到车身电子行列中,其在使得汽车性能改善的同时,增加了汽车驾驶操作的复杂度,也给行车过程带来了不安全的隐患。随着语音识别算法的改进和新一代专用语音处理芯片的问世,出现了使用语音控制代替手动控制的车载电器,从而减轻驾驶员手动操作负担,大大提高行车安全系数

目前我国的车身电子语音控制主要集中在汽车导航系统的应用上,没有充分发挥语音识别技术在车身电子中的应用价值。本文首次提出了一种的以专用语音处理芯片UniSpeech-SDA80D51为核心组成非特定人车载音响语音控制系统的设计方案,并实现了系统样机的研制。该系统在江淮同悦SL1102C1型车载音响上进行了语音控制实验,实验数据表明系统语音识别率可达到95%,为下一步项目产品化开发奠定了基础。

1 车载音响语音控制系统

非特定人车载音响语音控制系统结构框图如图1 所示。

系统的主要功能是:语音采集模块(由定向拾音器组成)用于采集驾驶员发出的语音命令信号,由语音识别模块实现信号的A/D转换,并对转换的数字信号进行语音识别处理,最终输出与语音命令相对应的词条编码信息。控制模块对接收的词条编码信号进行逻辑分析与处理并产生对应的控制信号,通过系统I/O接口驱动车载音响动作,完成驾驶员的语音命令。

1.1 语音识别模块

语音识别模块主要由UniSpeech-SDA80D51芯片及外围电路组成。

SDA80D51是德国Infineon公司专为语音识别和语音处理应用领域新推出的专用芯片,采用高集成度的SoC系统结构,以0.18 μm半导体工艺制造,SDA80D51的基本结构如图2所示。

SDA80D51片内集成了直接双访问快速SRAM、2路ADC和2路DAC、多种通信接口和通用GPIO等部件。SDA80D51工作方式以M8051为主控制芯片,主要完成系统配置和SPI、PWM、I2C、GPIO等接口的控制以及语音数据的传输工作;DSP核心OAK为协处理器,完成语音识别算法、语音编解码算法等语音处理工作。

非特定人语音信号由定向拾音器输入,经过SDA80D51内部的数据采集模块进行A/D转换,再经过识别程序的预处理、端点检测、特征参数提取、模板匹配等处理,选择识别词表中最接近的词条序号作为识别结果,识别结果通过GPIO口输出。

1.2 控制模块

控制模块由MCU和模拟开关电路构成,本模块主要完成对语音识别模块输出的词条编码信号进行逻辑分析和处理,通过模拟开关电路产生对应功能的控制信号控制音响的动作。其中MCU选用美国ATMEL公司产品AT89S51,综合AT89S51输出I/O信号电压特性和SL1102C1音响控制面板电阻式分流键盘电路的特点,确定使用继电器模拟SL1102C1控制面板按键的闭合和断开动作。AT89S51和继电器模拟开关电路原理图如图3所示。

1.3 音响模块

本设计是基于SL1102C1型汽车音响。SL1102C1是专门为中档轿车设计的汽车音响,具有MP3播放、收音机和显示时间等功能,目前大量使用在江淮同悦轿车上。SL1102C1前板共有开关机/静音、音效、播放/暂停等15个按键和一个用来调节音量的编码开关。

SL1102C1前板上的按键为电压采样识别方式,按键包含短按和长按两种动作,AT89S51输出电压为TTL电平,直接采用I/O信号驱动音响按键动作容易引起误识别,造成系统误操作,因此本文采用图3所示的模拟开关电路,很好地解决了上述问题。当AT89S51接收到语音编码信号后,立即进行逻辑分析并输出对应的控制信号驱动相应继电器吸合模拟按键动作,按键的短按和长按功能是通过软件实现的。

模拟开关电路还适用于SL1102C1前板上的编码开关,编码开关具有音量调节功能,其工作原理如图4所示。

由图4可知,编码开关上有A、B、C三个端子,开关旋钮左、右旋转时,A、B端子输出对应的脉冲信号。当MCU收到操作编码开关的语音命令信号后,驱动继电器动作,控制端子A、B输出信号,模拟开关旋钮功能。

2 系统软件设计

系统的软件包括非特定人语音识别模块和逻辑控制模块。

2.1 非特定人语音识别模块

非特定人语音识别模块基于HMM模型算法。该算法通过对大量语音数据进行数据统计,建立识别词条的统计模型语音库,然后从待识别语音中提取特征,与模型库进行匹配,由比较匹配分数得到识别结果,并通过SDA80D51的GPIO口输出识别结果对应的词条编码信号。语音识别模块主要由信号预处理、特征参数提取、模型匹配和Viterbi算法部分组成,非特定人语音识别模块框图如图5所示。

2.1.1 信号预处理

信号预处理部分主要完成输入语音信号的采样、 模/数转换功能。A/D变换由SDA80D51内嵌12位A/D变换器实现,采样频率固定为8 kHz。

2.1.2 特征参数提取

特征参数提取基于语音帧,采用分帧提取特片。先对语音信号进行重叠分帧,前一帧和后一帧重叠一半(帧信号重叠是体现相邻两帧数据之间的相关性),帧长为25 ms,对每帧提取一次语音特片。

语音信号是声道响应和声门激励信号的卷积。分别求声道传输函数和声门激励信号的对数频率响应,由于声门激励信号的频率响应和声道传输函数在频谱的变化快慢不同,如将频率轴视为时间轴,则声门激励信号的频率响应对应于“高频”区;而声道传输函数对应于“低频”区,处在不同区域就易于分辨。

MFCC参数属于感知频域倒谱参数,反映了语音信号短时幅度谱的特征。p维MFCC参数的具体计算提取过程如下:

(1)用DFFT对每帧s(n:m)计算线性频谱,计算频谱模的平方为功率谱;

(2)功率谱经过Mel滤波器组获得D个参数X(i),D是Mel滤波器组中三角形滤波器的数量;

(3)对X(i)做对数运算和离散余弦变换,余弦变换计算公式如下:

式中的Y(i)是第i个Mel滤波器的对数能量输出,i=1,2,…,D。

2.1.3 HMM语音识别算法

隐马尔可夫采用概率统计模型描述语音信号,HMM模型建立在Markov链基础上,使用Markov链来模拟语音信号统计特性的变化。HMM模型为双重随机过程,其一是Markov链,由(π,A)描述状态的转移,输出为状态序列;另一个是随机过程,由B描述,在统计意义上B反映了状态和观察值之间的对应关系,输出为观察值矢量序列。Markov链中状态和时间参数都是离散的Markov过程。

Viterbi算法是一种帧同步动态规整算法,在给定观察值序列和模型时,Viterbi算法给出了一个概率密度P(Q,O|λ)最大的状态序列。Viterbi算法包括初始化、递推、终止、路径回溯和确定最佳状态序列。

对于语音处理而言,因Q的变化,P(Q,O|λ)取值范围很大,而P(Q,O|λ)的最大值占了全部P(Q,O|λ)的很大的成分,所以可以用Viterbi算法来计算P(O|λ)。

2.2 控制模块

控制模块的主要功能是:在AT89S51查询到语音词条信号后,查表获得词条编码,根据编码判断对应按键是长按或短按,分别进入相应的子程序处理。在子程序中,输出语音命令所对应的I/O控制信号驱动继电器吸合模拟按键或编码开关动作,并及时复位I/O口。控制模块还具有完全兼容手动控制的功能,在语音控制操作的同时也可以进行手动操作,手动的优先级高于语音命令,这样可以避免语音控制和手动控制之间发生冲突。

控制模块部分程序代码如下:

3 系统实测结果

本系统在江淮同悦SL1102C1型车载音响上进行了非特定人语音识别率和模拟开关动作准确率测试。由于汽车音响的语音词条为2到4个字,语音识别率实验内容为车载音响常用2字词条指令18条、3字词条指令12条、4字词条指令10条,实验对象为6人(4男、2女,普通话和方言),实验环境为实验室环境。为了提高系统的识别率,系统采用奥林巴斯ME52定向麦克,提高了麦克接收范围,系统测试结果如表1所示。

由表1可知,系统的识别率与语音指令词条字数、麦克接收距离、说话人方言有关。男声和女声的识别率接近。

在系统控制电路实验中,模拟开关动作达到了较高的准确率,测试结果为98%以上,只要控制程序运行正常,各路继电器就能按照程序安排执行闭合和断开模拟手动开关操作。

实现汽车电器的语音控制是未来车载电器的发展趋势,越来越多的解决方案被提出和验证。本文设计在SL1102C1型车载音响上使用SDA80D51芯片,实现了车载音响非特定人的语音识别与控制。由于该芯片集成度高,需要外围模块少,所以设计的硬件电路简单,便于调试检测。该设计得到的样机,有较高的识别率,工作稳定、可扩展性强,达到预期的设计目标,整个设计方案和实现方法是可行的。由于语音识别率随着环境、说话人不同而变化,虽然HMM算法在噪声很小的环境下可以获得很高的识别率,但当测试语音或者环境中含有不同程度的噪声污染时,语音识别系统的性能会有所下降。提高系统的抗噪性和鲁棒性是语音识别系统走向实用化的关键之一。

本文为哔哥哔特资讯原创文章,未经允许和授权,不得转载,否则将严格追究法律责任;
Big-Bit 商务网

请使用微信扫码登陆

x
凌鸥学园天地 广告