语音识别技术是让机器通过识别和理解过程把语音信号转变为相应的文本或命令,其识别过程与人对语音识别处理过程基本上是一致的,包括语音特征提取、声学模型与模式匹配(识别算法)、语言模型与语言处理三个部分。
语音识别系统根据口音辨识主要有以下2种:
(1) 特定发音人识别SD (Speaker Dependent)
(2) 非特定发音人识别SI( Speaker Independent)
蓝牙技术(Bluetooth Technology)是一种短距 离无线通信技术,它工作在免费的ISM频段(2.4GHz),采用跳频/时分复用技术,能实现点对多点的通信。通过蓝牙无线传输的方式可以将一定范围内的数据设备或语音设备连接起来组成微微网,使嵌有蓝牙模块的电子设备之间能实现方便快捷的通信。它的传输距离为10cm~10m,如果增加功率或是加上某些外设便可达到100m的传输距离,并且可穿透不同物质以及在物质间扩散。蓝牙采用无线接口来代替有线电缆连接,具有很强的移植性,适用于多种场合,它功耗低、成本低、对人体危害小,而且应用简单、容易实现,所以易于推广,成为构建数字化家庭的理想技术。
图1(略)
设计方案
本系统中主控端采用SPCE061A单片机芯片完成语音识别和控制功能。BlueCore2 External芯片完成命令的发送,系统框图如图2所示。
图2 基于语音识别技术和蓝牙技术的数字化家庭(略)
总体上来说,本系统主控端分为两个主要的方面,一个是语音识别模块,另一个是蓝牙无线通信模块。
语音识别模块部分采用了凌阳科技公司的SPCE061A单片机芯片来完成,该芯片是一款16位结构的微控制器,工作电压 VDD为2.4~3.6V(CPU), VDDH为2.4~5.5V(I/O),CPU时钟 最高可达49.152MHz;内置2K字SRAM、32K FLASH;可编程音频处理;系统处于备用状态下(时钟 处于停止状态),耗电仅为2μA@3.6V;32位通用可编程输入/输出端口;14个中断源可来自定时 器A / B时基,2个外部时钟源输入,键唤醒;具备触键唤醒的功能;使用凌阳音频编码SACM-S480方式(压缩比为80:3);3 2768Hz实时时钟;单通道声音模?数转换器;声音模?数转换器输入通道内置麦克风放大器 和自动增益控制(AGC )功能;具有低电压复位(LVR)功能和低电压监测(LVD)功能;内置在线仿真电路ICE(In- Circuit Emulator)接口;具有保密能力;具有WatchDog功能。
蓝 牙部分采用了CSR公司提供的单芯片解决方案。主控芯片为BlueCore2 External,有如下特点:1.8V低电压供电,0.18μm CMOS工艺,VFBGA封装,芯片面积仅6*6mm;支持蓝牙V1.2规范;芯片内部集成 了完善的DSP蓝牙基带控制器,集成了通用的2.4GHz蓝牙射频终端以及蓝牙信号自检电路,无须外部PA,仅需非常简单的外围电路;内嵌32kB RAM和16位精简指令集微处理器,最多可外接8Mbit的FLASH用于存储蓝牙协议栈及蓝牙应用程序。
语音识别部分与蓝牙部分连接的电路图如图3所示。
图3(略)
系统工作过程
由于本系统采用了特定发音人识别SD语音识别系统,所以首先要对语音命令进行训练。语音训练的过程其实就是语音特征模型的建立过程,首先录入一条语音样本,然后对样本进行采样、量化、滤除噪音,对语音信号进行线性预测分析,最终把语音信号用一个模型来表示,模型参数描述语音信号的波形和频谱信息。然后再录入一遍语音样本,建模,对两次的语音样本的参数进行匹配检验,如果满足匹配条件,语音样本录入成功。
语音样本录入成功以后,当开始识别时,其实也就是对发出的语音命令进行建模,然后和语音样本的模型参数进行匹配检验。找到相匹配的语音样本,返回识别结果。
SPCE061A单片机芯片完成语音命令的识别后,利用BSR_GetResult( )函数获取识别结果。由于SPCE06 1A单片机芯片内置2K字SRAM和32K FLASH,所以可共存储3组命令,每组5条语音样本,每次将一组语音样本调入内存,将输入语音命令与该语音样本比较产生识别结果,所以识别结果会返回是哪一组命令的第几条语音样本,然后根据识别结果来触发相应的命令。当长时间没有语音命令,该芯片将进入休眠状态以减少功耗。
SPCE061A单片机将识别结果通过I/O口传递给蓝牙模块,这里单片机SPCE061A有32个可编程I/O,但是蓝牙模块只有10个I/O口可以使用,因此将单片机的10个I/O口与蓝牙的相应I/O口连接,由于单片机和蓝牙模块的I/O口均可编程,则理论上可以产生1024种命令。
蓝牙部分的开发基于蓝牙串口应用框架(Serial Port Profile ,SPP),采用了完全嵌入式模式,选择BlueCore Virtual Machine Stack,应用软件在集成开发环境BlueLab中开发完成。
Bluelab开发工具包中,蓝牙控制器应用程序直接对连接管理(CM)进行操作,在BlueCore Virtual Machine Stack的基础上,实现串口应用框架(SPP),完成对远端蓝牙设备的查询、鉴权、连接和控制信息发送过程。应用程序实现大体流程如表1。
Bluelab提供的虚拟机调度程序分配给控制器应用程序和连接管理器(CM)不同的任务号,任务间采用消息队列机制异步的发送消息进行通信。应用程序与连接管理器(CM)之间消息处理流程如图4。
表1 (略)
图4 控制器应用程序与连接管理器之间消息流程图(略)
应用程序通知连接管理器(CM)完成查询、配对、连接等功能。PIO扫描程序完成控制信息的识别,通过与远端设备建立的ACL链路将控制信息发送出去。受控设备收到蓝牙控制器的命令信息,从而完成蓝牙控制器对受控设备的无线控制。
主控端框架大致如上所示,本系统主控端的工作流程如图5。
图5(略)
受控设备部分通过蓝牙将命令接收过来,发送给设备的控制部分,设备执行完命令后通过蓝牙部分发送给主控设备一个完成信息,主控设备接收到完成信息后播放相应的提示语音。
语音提示音储存在SPCE061A单片机的片内FLASH里,由于存储空间所限,又要保证语音质量,采用的语音提示音为SACM_S480格式,此格式的音频文件压缩后的编码率为4.8Kbit/s、SACM_S480语音压缩比为80:3,可以用凌阳科技公司提供的专业软件对录制的提示音进行压缩。
测试结果:
在语音识别部分录入15条命令,分三组,每组五条,具体如下:
第一组:开始、电视、微波炉、灯、热水器;
第二组:中央一套、中央二套、中央三套、中央四套、中央五套;
第三组:高功率、中高功率、中功率(焙烤、煨烧、文火)、中低功率(解冻)、低功率(保温)。
由于电器的相关功能没有跟进,所以并不能将这些完全实现,只能在接收部分安置相应的发光二极管表示命令发送状态。
同时设想当电器功能完成以后,会给控制部分发送一个回馈信号,比如微波炉食品加热完毕,将会给控制器发送一个信号,控制部分将播放语音信息提示微波炉功能完成。因此,模拟电器部分在接到控制器控制信号一段时间后人为回馈一个完成信号。
将 BlueCore2-External 芯片的蓝牙发射功率级别设为Class2。控制部分与受控端蓝牙模块均使用蓝牙模块微带天线,控制距离可达10米,控制器与受控端蓝牙模块均使用1.6dB的天线,控制距离可达30m。
将 BlueCore2-External 芯片的蓝牙发 射功率级别设为Class1。控制部分与受控端蓝牙模块均使用蓝牙模块微带天线,控制距离可达60m,控制器与受控端蓝牙模块均使 用1.6dB的天线,控制距离可达150m。
总结:
测试结果表明,语音模块语音识别正确率可达95%以上,配有语音提示,使得操作没有出现错误。蓝牙模块在命令的无线传输上也可以满足实际距离等方面的需求。
本系统可以改进的地方:
1 .本系统采用凌阳科技公司的SPCE061A单片机芯片,该芯片只有2K字内置SRAM和32K内置FLASH,凌阳科技公司最近刚推出SPCE061A的改进版,这款芯片的内置SRAM已扩充到4K,使得每组的命令数可增加。
2 .本系统的蓝牙部分暂时使用一对七模式,该模式主控端只能控制7个受控端,但是可以采用另外的蓝牙系统提供微微网技术。微微网是由一组具有同一跳频序列、在时序上同步的蓝牙设备组成,包括两种节点:主节点和从节点。一个微微网中只能有1个主节点,最多可以有7个活动的和255个休眠的从节点。这些休眠的从节点在信道上不活动,但是保持与主节点的同步,不用连接建立过程就可以变成活动状态,这就使得这个系统最多可以接入262个设备。
根据以上讨论,可以发现本设计足以满足低成本数字化家庭的语音控制需求。
|