一种嵌入式语音识别控制模块的设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第16卷 第4期厦门理工学院学报V o.l 16 N o .4
2008年12月Journa l of X ia m en U niversity of T echno logy D ec .2008
[收稿日期]2008-10-04 [修回日期]2008-11-19
[基金项目]福建省教育厅科技项目(J A 08219)[作者简介]徐敏(1963-),男,福建龙岩人,副教授,从事嵌入式技术与智能控制研究.
一种嵌入式语音识别控制模块的设计与实现
徐 敏1,邹 莹2,魏洪兴2
(1.厦门理工学院电子与电气工程系,福建厦门361024;2.北京航空航天大学机器人研究所,北京100191)
[摘 要]在分析语音识别原理的基础上,结合机器人系统人机交互需求,提出了一种基于L i nux 应用
平台、S3C2410X 为处理器的低功耗、高性能的嵌入式语音识别控制模块,并分别从模块的硬件结构、软件
流程进行分析和设计,通过硬件平台的搭建和软件程序的实现,达到了硬件设计简单、控制灵活、人机交
互便捷的目的.
[关键词]机器人;语音识别;嵌入式系统;隐式马尔可夫模式
[中图分类号]TP391 [文献标志码]A [文章编号]1008-3804(2008)04-0043-04
0 引言
随着计算机技术、模式识别等技术的发展,适应不同场合的语音识别系统相继被开发出来,语音识别及处理技术在计算机、信息处理、通信与电子系统、自动控制等领域的应用也越来越广泛.嵌入式语音识别技术已经发展到第二代,即以隐式马尔可夫模式识别方法为主要技术来实现对非特定语音的识别,这种技术的发展降低了识别计算复杂度,并提高了识别准确率
[1].同时在语音识别技术的革新中,也带来了语音识别在机器人交互技术下一代的应用革新.
在智能机器人功能中,语音识别是人机交互的重要组成部分之一,而在语音采样基础上的识别,是机器人传感器融合中的重要环节,它用以接收人声的控制命令和信息交互.在传统的语音识别应用中,多采用PC 或DSP 来实现,前者的目的是利用PC 较强的处理速度来实现模拟定点运算,后者则是直接利用DSP 的定点运算能力完成,但二者的功耗均较大,不适合应用于对功耗敏感的嵌入式计算场合.DSP 处理器发展多年到今天已经品种繁多,如TI 公司和ADI 公司等几大阵营有多款优秀的DSP 处理器芯片,但它们仍然没有能够有效降低功耗到消费电子的水平,使得使用高性能嵌入式处理器来模拟定点运算,成为了这类低功耗需求的主要实现策略.
语音识别除要求高识别率外,还应考虑软硬件设计简单、价格低廉、可移植性好、外围控制灵活、人机交互便捷等特点.为此,本文利用高性能ARM 处理器S3C2410X 来运行语音识别引擎,设计了一种低功耗的嵌入式语音识别控制模块,并已在娱乐机器人、教育机器人中得到成功应用.1 语音识别原理与功能分析
1 1 语音识别原理
语音识别根据实际需要和应用场合的不同,可以分为孤立词识别和连续语音识别、特定人识别和非特定人识别.语音识别方法很多,如动态时间归整法(Dyna m ic T i m e W ar p i n g )、隐式马尔可夫法(H i d den M arkov M odels)、人工神经网络法(A rtific ialN er va lN et w ork)等,隐式马尔可夫法对非特定人连续语音有很高的识别率,目前一般都采用基于隐式马尔可夫法的识别方法作为基本算法,采用模
厦门理工学院学报2008年式匹配的原理来实现语音识别功能
.
语音识别原理如图1所示.预处理模块,对输入的原始语音信号进行处理,滤除掉其中不重要的信息以及背景噪声,并进行语音信号的端点检测、语音分帧以及预加重等处理.特征提取模块,负责计算语音的声学参数,并进行特征的计算,以便提取出反映信号特征的关键特征参数,以降低维数并便于后续处理.在训练阶段,用户输入若干次训练语音,系统经预处理和特征提取后得到特征矢量参数,建立或修改训练语音的参考模型库.在识别阶段,将输入的语音的特征矢量参数和参考模型库中的模型进行相似性度量比较,将相似度最高的模型所属的类别作为识别的中间候选结果输出.后处理模块,对候选识别结果继续处理,通过语言模型、词法、句法、和语义信息的约束,得到最终的识别结果
[2-3].1 2 功能分析
机器人的语音识别功能模块作为一个可替换的独立单元,其功能较为静态、单一,人机交互的约束和逻辑确定,主要完成人与机器人模块之间的音频输入处理,音频数据采样,音频PC M 数据处理,模式识别,进而推理出有限词条库中对应词条文本的过程.其中数据采样可以由专门的音频A /D 来实现,音频PC M 数据处理和模式识别及推理可以由高性能ARM 处理器实现.另外,音频的播放则也可以使用音频D /A 实现声音输出.
为了实现上述处理和运算,这里使用了AR M 处理器.S3C2410X 是Sa m sung 公司推出的一款低价位、低功耗、高性能的32位RISC 嵌入式处理器,外围接口丰富,易于系统平台构建,具有内置4K SRAM,内置Flash 控制器,LCD 控制器,SD 控制器,两个USB HOST,一个USB DE V I CE ,4个P WM 定时器和一个内部定时器,看门狗定时器,117个通用I/O ,56个中断源,24个外部中断,8通道10位ADC 和触摸屏接口,4个带外部请求线的DMA 等等,处理频率可以达到200MH z ,而功耗极低,不需要散热片,适合低功耗的嵌入式语音识别控制[4].
2 模块硬件结构设计
语音识别模块的硬件结构包括3个主要部分:核心系统部分,人机接口部分和调试接口部分如图2所示.
44
第4期徐敏,等:一种嵌入式语音识别控制模块的设计与实现2 1 核心系统部分
这部分主要是实现了基本的系统核心功能,即ARM 处理器所需要的最小系统.AR M 系统的最小系统包括电源部分、处理器部分、复位电路、存储器部分等.
由于S3C2410支持Nand Flash Boo,t 因此在核心系统设计中,模块采用了简洁的设计,使用32M SDRA M 和64M Nand Flash ,利用Nand Flash 既充当启动存储介质又充当系统存储介质,其中SDRAM 提供系统及应用程序运行的内存空间,Nand Flash 主要存放系统内核映像、系统库、文件系统和应用程序等.
核心系统部分除了包含最小系统之外,还包含了音频编解码和放大部分.这里使用了集成芯片WM 8731L 和音频运算放大LMV 358.其中WM 8731L 是W o lfson 半导体公司生产的一款极高性价比的音频DA 芯片,其音频接口使用标准IIS ,并使用标准TTL 的II C 接口进行采样控制,且带有AD 输入采样保持和增益开关等,与各种处理器的接口非常方便.在设计中使用S3C2410的II S 接口和II C 接口直接连接WM 8731L ,保持了整个设计的简洁.另外,还使用了稳压芯片进行外部电源转换,以提供整个模块3 3V 和1 8V 电源的需要.
2 2 人机接口部分
人机接口部分主要是与语音识别和基本交互密切相关的人机接口部分的电路和接插件等,如复位按钮,电源接口,电源开关等,是实现人机交互的必要部分.
2 3 调试接口部分
调试接口部分主要是实现对系统进行调试的基本接口,该接口主要是对ARM 系统的软件运行进行监视和交互,特别是在系统启动阶段,调试接口的使用较多.ARM 系统运行的调试接口主要包含两部分,一部分是下载接口,用来下载系统Bootloader 和内核映像,如J TAG 、网络接口等,另一部分是监控接口,用于系统或应用程序运行加载的观测.调试接口部分只提供调试使用,而不保留在最终模块上.
3 模块实现与软件设计
模块核心系统部分设计应用了Linux 系统.在上述硬件系统上运行Linux 2 6 13系统内核,Linux 2 6 13包含了A lsa (Advanced L i n ux Sound A rchitect u re)驱动工程,提供了音频AD /DA WM 8731L 的驱动程序.在音频数据输入输出采样的基础上编写应用程序,实现语音识别的实例:人与模块之间简单对话应答或命令操作.
实现应答首先需要指定可选的答复词条以提供模式识别.在此基础上,应用包括3个部分:声卡初始化,语音识别引擎操作和识别结果功能处理.如图3所示
.
3 1 声卡初始化
调用vo ice_init ()函数,初始化WM 8731L 并打开声音采集和增益,进行声卡初始化配置,之后打开声卡设备. 45