资源描述:
《基于STM32的嵌入式语音识别模块设计.pdf》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、数字技术设计开发与应用基于STM32的嵌入式语音识别模块设计贾晶(江西农业大学江西南昌330038)摘要:本文介绍了以ARM为核心的嵌入式语音识别模块的设计和实现,模块选用ST公司32位处理器STM32F103C8T6为核心处理单元,通过以LD3320芯片为核心的硬件电路实现语音识别,使用嵌入式操作系统μC/OS-Ⅱ实现任务调度和外围设备管理。关键词:语音识别ARMLD3320中图分类号:TN912.34文献标识码:A文章编号:1007-9416(2012)06-0152-021、引言识别结果。根据识别对象,语音识别分为特定人识别和非
2、特定人识语音识别是将人类语音信号进行预处理、特征提取,然后和测别。特定人识别的识别对象是特定用户,非特定人识别的识别对象试、训练后存储在计算机中的标准模型进行比较,得出判定和识别是普通用户,需要采集多人语音进行训练,才能达到较高的识别率。结果。当前主流的语音识别技术多基于统计模式,模型训练过程中现有的嵌入式语音识别系统主要有两种方式,一种是在嵌入式算法复杂、运算量大,需要PC或工控机实现,在一定程度上制约了处理器中直接调用语音开发包,另一种则采取“嵌入式处理器+语语音识别技术的发展。音芯片”的模式。第一种方式计算相对复杂、开发周期长,
3、第二种方和基于PC的语音识别系统相比,嵌入式语音识别系统运算速法结构简单,微处理器计算量低,可靠性高、开发周期短。本文介绍度、内存容量有限,但体积小、功耗低、可靠性高、安装灵活,在智能的语音识别模块以嵌入式微处理器为核心,外围是非特定人语音识家电、消费电子等领域具有优势,逐渐成为了研究的热点。别芯片及相关电路,模块选用ICRoute公司的LD3320芯片作为语音识别芯片。2、模块整体方案3、硬件电路设计语音识别包括训练、识别两个阶段,在这两个阶段中,都必须对输入的语音信号进行预处理和特征提取。语音识别的基本原理如图模块硬件电路结构如图
4、2所示,包括主控制器和语音识别电路。1所示。模块正常工作时,语音识别电路通过并口将处理后的数据传输给主在训练阶段,用户多次输入训练语音,模块预处理后进行特征控制器,主控制器根据语音识别的结果,向USART发送相应的命提取,得到特征矢量参数,通过特征建模建立训练语音的参考模型令,USART可用来扩展语音合成模块等外围串行设备。库。在识别阶段,模块按照一定算法,将语音的特征矢量参数和模型3.1主控制器芯片库中的参考模型进行比较,相似度最高的输入特征矢量将被判定为本文介绍的语音识别模块主控制器选用ST公司的STM32F103C8T6芯片,该
5、芯片基于ARMCortex-M332位RISC内核,工作频率可达72MHz,内置高速存储器,拥有丰富的增强型I/O端口,具有高性能、低功耗、低电压等优点,易于集成和开发。3.2语音识别电路语音识别电路参考了ICRoute发布的LD3320数据手册,其原理图1语音识别的基本原理图如图3所示。LD3320内部集成了语音识别优化算法,无需外接Flash和RAM,不用事先训练就能实现对非特定人的语音识别,而且识别准确率较高。LD3320和STM32F103C8T6通过并行方式相接,其控制信号RBD、WRB、CSB和复位信号RSTB、中断返回信
6、号INTB和STM32F103C8T6直接连接,使用10k上拉电阻提高系统稳定性。在图2硬件电路结构图图3中,MBS(12引脚)是麦克风的偏置,并接了RC电路,确保向麦克风提供稳定的电压。4、系统软件设计模块软件包括主控单元嵌入式操作系统μC/OS-Ⅱ移植、LD3320语音识别程序、对话管理程序等三部分。表1主控系统任务优先级划分任务名任务优先级堆栈字节实现功能App_TaskStart564系统初始化App_TaskSR6128语音识别App_TaskCmd8128命令解析和执行App_TaskCom964串口命令发送App_Tas
7、kUpdate10128更新对话集App_TaskPB1164按键检测和处理App_TaskLed1364LED显示OSTaskStat3064统计任务图3LD3320语音识别单元原理图OSTaskIdle31128空闲任务152数字技术设计开发与应用4.1嵌入式操作系统移植对话管理单元用来存储等待识别的语音、等待执行的命令,在μC/OS-Ⅱ是一个开源的实时多任务操作系统,大部分代码主控制器中通过二维数组完成。每进行一次识别,LD3320可设置50采用C语言编写,执行效率高、占用空间小、可扩展性强,最小内核个候选识别语句,它们是10个
8、以内的汉字或79个字节拼音串。本文仅有2KB。μC/OS-Ⅱ是可剥夺型内核,任务优先级划分非常重介绍模块的对话管理数组如表2所示。要。从分层化、模块化的设计理念出发,主控系统任务优先级划分如表2对话管理数组设计表1所示。