欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

嵌入式设计方案:ARM非特定人语音识别系统

程序员文章站 2022-09-17 16:38:00
4 系统软件功能设计4.1 语音识别软件设计系统主控上电后首先进行各项初始化,包括LD3320 需要的8M 时钟信号,由STM32 初始化后输出8M 频率供给LD3320使用,初始化STM32内部时钟...

4 系统软件功能设计

4.1 语音识别软件设计

系统主控上电后首先进行各项初始化,包括LD3320 需要的8M 时钟信号,由STM32 初始化后输出8M 频率供给LD3320使用,初始化STM32内部时钟、SD卡文件系统、SPI相关寄存器、SDIO数据初始化、中断设置等等。经过初始化后SD 卡文件系统会在SD 卡中寻找system.ini配置文件,将里面的字段进行拆分后提取,送给LD3320相关寄存器,随后把关键字句列表和长度信息传送给LD3320并启动识别过程,当识别成功后串口会发出响应的返回值参数,并且按照用户需求可以指定需要解码的音频文件,经过LD3320进行MP3文件解码输出,程序流程图如图5所示。

嵌入式设计方案:ARM非特定人语音识别系统

主控程序初始化代码如下:

嵌入式设计方案:ARM非特定人语音识别系统

嵌入式设计方案:ARM非特定人语音识别系统

4.2 SD卡文件系统软件设计

在实际应用中,修改主控制单片机程序较为复杂,本系统将识别关键语句写在一个命名为system.ini文件中,将此文件拷贝到SD卡中,SD卡需要实现格式化,只能出现一个。ini 文件,其他的文件均为XXX.mp3 文件,SD 的片选信号CS、数据输入信号DI、数据输出信号DO、时钟信号SCLK 在硬件上已经与STM32的SPI接口相连接,系统上电后会初始化SD卡文件系统,发送至少74个时钟以上确保SD卡片选正常后将SD卡复位等待8个时钟周期进入SPI读写模式,通过STM32内部编写好的文件系统程序找寻“配置文件”即system.ini文件,读取关键词识别列表内容,在系统软件编程中,采用3个字段进行功能约定,字段功能约定配置如下:

嵌入式设计方案:ARM非特定人语音识别系统

5 性能测试与分析

为保证系统对非特定人的语音识别效果、环境底噪影响、语音识别过程响应时间、非特定人声音样本识别成功率等参数达标,本文针对各项参数指定了测试方案,实验环境分为安静环境(如家居环境)和相对嘈杂的环境(如课堂环境)进行了实测,指定3名发音人作为3个不同的声音识别样本,选定了短句识别语句、中长句识别语句,长句识别语句各2条进行样本测试(约定3字以下为短句,3~5字为中长句,5字以上为长句),每种测试语句结合不同发音人重复20次结果进行统计,在安静环境下测试短句识别准确率为93.37%、中长句识别准确率为91.67%、长句识别准确率为90.23%.在嘈杂环境下测试短句识别准确率为87.25%、中长句识别准确率为84.36%、长句识别准确率为81.12%.从实验数据上分析,制约识别准确率的原因是多方面的,与发音人本身声音质量、环境底噪、识别语句近似度、识别语句长度均有关系,单从数据上不难得到总体识别率应该是在81%以上,可以满足应用需求,系统实物图如图6所示,硬件结构小巧,功耗低、性价比高,因此具备市场应用前景和市场需求。

嵌入式设计方案:ARM非特定人语音识别系统

6 结语

普及语音识别技术是当前研究和发展的新趋势,特别是对于非特定人的语音识别是语音信号领域处理的热点和难点,本方案利用了STM32F103C8T6与LD3320结合,配合各种外围电路完成了非特定人语音识别的嵌入式平台,在平台中通过硬软件构建,在不更改主控制芯片程序的前提下,用户可以通过更改SD 卡内配置文件的方法随意设定识别关键语句,经过不同发音人和环境的实测,该系统在嘈杂环境中的识别准确率可达81%,在安静环境中的识别准确率可达90%以上,本系统可以方便的嵌入用户系统或者板卡中,积木式搭建灵活实用,因而具有广泛的市场需求和应用前景。