APP下载

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

2019-10-21于伟

中国电气工程学报 2019年6期
关键词:中断

于伟

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

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

0 引言

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

1 模块的整体架构

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

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

2 硬件电路设计

2.1 主控制器

主控制器选用ST公司的STM32F103ZET6芯片,该芯片为ARM Cortex-M3 CPU,工作频率为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]. http://www.icroute.com/web cn/DownLoad.html.

[2]. ICRoute.LD332X开发手册[EB/OL].[2010-03-10].http://www.icroute.com/web cn/DownLoad.html

[3]. 苏鹏,周风余,陈磊. 基于STM32的嵌入式语音识别模块设计[J]. 单片机与嵌入式系统.2011(2):42-45.

[4]. 任哲.嵌入式实时操作系统μC/OS-II原理及应用[M].2版.北京:北京航空航天大学出版社,2009

猜你喜欢

中断
TMS320F28335外部中断分析与研究
雪后林鸟
跟踪导练(二)(5)
实现状态量变化检测的中断技术研究
新闻浮世绘