基于STM32的非特定语音识别模块的设计.docx

基于STM32的非特定语音识别模块的设计.docx

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

?

?

基于STM32的非特定语音识别模块的设计

?

?

于伟

摘要:文中介绍了一种非特定语音识别模块的设计与实现。核心处理器采用ST公司的ARM32位的Cortex-M3CPU,其型号为STM32F103ZET6。该设计采用芯片LD3320对非特定人的语音进行识别,主控制器采用中断方式工作,通过配置主控制器的相关库函数并编写中断函数来识别语音信息。实验证明,该语音识别模块具有高实时性和高识别率。

关键词:STM32;非特定语音识别;LD3320;中断;库函数

0引言

语言是人类交流信息最自然、最有效的手段。长期以来,让机器“听懂”人类语言来实现语音控制一直是人机交互领域和智能控制领域研究的重点和难点。语音交互凭借其高效、自然、灵活的优点越来越受到科研人员的关注。语音识别技术是机器的“听觉系统”,机器通过识别和理解过程将人类语音信号转换为相应的文本或命令信息。

1模块的整体架构

现有的语音识别技术按照识别对象可以分为特定人识别和非特定人识别。特定人识别是指识别对象为专门的人,非特定人识别是指识别对象不针对特定音色音调的人,不需要进行录音和语音训练,只要说出同一个拼音的词语,就可以识别。

本设计的语音识别对象為非特定人识别,以嵌入式微处理器为核心,外围加语音识别芯片LD3320及相关电路构成。

2硬件电路设计

2.1主控制器

主控制器选用ST公司的STM32F103ZET6芯片,该芯片为ARMCortex-M3CPU,工作频率为72MHz,多达112个快速I/O端口,具有高性能、低功耗、低电压等优点。

2.2语音识别电路

语音识别电路采用ICroute公司的LD3320芯片,该芯片集成了语音识别处理器和一些外部电路[1],可实现语音识别/声控/人机对话功能。而且识别的的关键词语列表是可以动态编辑的。

2.3微处理器与语音识别电路的连接

LD3320的8位数据线与STM32的PA0~PA7进行并行通信;控制端口,分别连接PC0、PC3、PC2;A0连接PC1,进行数据或地址的选择;中断请求INTB连接到STM32的一个中断线PF9上。进行语音识别时,当LD3320检测到有效语音时,产生中断供主控制器进一步处理。

3软件设计

3.1主控制器中断的设置

由于系统采用中断方式工作,因此需配置相关的库函数来对主控制器的外部中断进行相应的设置:

1)初始化输入I/O口:

GPIO_Struct.GPIO_Pin=GPIO_Pin_9;

2)开启I/O的复用时钟:

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);

3)设置I/O口与中断线的关系:

GPIO_EXTILineConfig(GPIO_PortSourceGPIOF,GPIO_PinSource9);

4)初始化线上中断:

通过函数EXTI_Init(EXTI_Struct)来实现。

5)配置中断分组,NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1),设置NVIC的中断优先级,并使能中断。

6)编写中断服务函数。

通过以上几个步骤的设置就可以正常使用外部中断了。

3.2语音识别程序设计

语音识别程序的设计参考了LD3320开发手册[2],其工作流程图如图3:

1)语音识别初始化

初始化包括通用初始化和语音识别用初始化,通过初始化程序来进行软件复位、模式设定、时钟频率设定、FIFO设定等。

2)添加识别语句到LD3320芯片中

LD3320每次最多可以设置50项候选识别语句,每个识别句长度不超过10个汉字或者79个字节的拼音串,对应一个特定的Index数值。如本设计中的识别词语列表如表1:

3)语音采集

麦克风采集到声音,无论是否识别出正常结果,都会产生一个中断信号。主控制器读取寄存器的值分析结果。

4)启动ASR识别

设置相关的寄存器,即可启动语音识别,其中寄存器BA的值如果是1-4表明有识别结果。识别结果是语句在识别词语列表中Index值。

4性能测试

为了验证本设计的语音识别率,将主控制器通过串口和PC机相连,非特定人在距离麦克风30cm的位置发出一系列指令,PC机上采用串口调试助手显示识别结果。测试数据表明该设计对非特定人的语音识别率高达90%以上。

结论

本文以嵌入式微控制器为核心,采用主流高性能语音识别处理芯片,设计了一种语音识别模块,对模块中各个组成部分进行了详细的介绍。实验证明,该模块稳定性好,语音识别率高。另外由于其体积小、功耗低、可靠性高,可以应用于智能语音玩具、嵌入式控制设备,智能家居及机器人等领域,因此具有广泛的应用前景。

参考文献

[1].ICRoute.LD332X数据手册[EB/OL].[2010-03-10

文档评论(0)

137****7707 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档