您的位置 首页 IC

怎么使用AVR单片机规划出语音识别系统

如何利用AVR单片机设计出语音识别系统-本系统采用的主控MCU为Atmel公司的ATMEGA128,语音识别功能则采用ICRoute公司的单芯片LD3320。LD3320内部集成优化过的语音识别算法,无需外部FLASH,RAM资源,可以很好地完成非特定人的语音识别任务。

0 导言

传统的人机交互依托杂乱的键盘或按钮来完结,跟着科技的开展,一些新式的人机交互方法也随之诞生,带给人们全新的体会。依据语音辨认的人机交互方法是现在抢手的技能之一。可是语音辨认功用算法杂乱、核算量大,一般在核算机上完结,即使是嵌入式方面,大都计划也需求运算能力强的ARMDSP,并且外扩RAM、FLASH等资源,增加了硬件本钱,这些特色无疑约束了语音辨认技能的运用,尤其是嵌入式范畴。

本体系选用的主控MCUAtmel公司的ATMEGA128,语音辨认功用则选用ICRoute公司的单芯片LD3320。LD3320内部集成优化过的语音辨认算法,无需外部FLASH,RAM资源,能够很好地完结非特定人的语音辨认使命。

1 全体计划规划

1.1 语音辨认原理

在核算机体系中,语音信号自身的不确定性、动态性和接连性是语音辨认的难点。干流的语音辨认技能是依据计算模式辨认的基本理论,原理如图1所示。

怎么运用AVR单片机规划出语音辨认体系

2.1 操控器电路

操控器选用Atmel公司出产的ATMEGA128芯片,选用先进的RISC结构,内置128 KB FLASH,4 KB SRAM,4 KB E2PROM等丰厚资源。该芯片

是业界高性能、低功耗的8位微处理器,并在8位单片机商场有着广泛运用。

2.2 LD3320语音辨认电路

LD3320芯片是一款“语音辨认”专用芯片。该芯片集成了语音辨认处理器和一些外部电路,包含A/D、D/A转换器、麦克风接口、声响输出接口等,并且能够播映MP3。不需求外接任何的辅佐芯片如FLASH,RAM等,直接集成到产品中即能够完结语音辨认、声控、人机对话功用。

图3为LD3320电路原理图,与MCU通讯选用SPI总线方法,时钟不能超过1.5MHz。

怎么运用AVR单片机规划出语音辨认体系

麦克风作业电路如图4所示,音频输出只需将扬声器连接到SPOP和SPON即可。运用SPI总线方法时,LD3320的MD要设为高电平,SPIS设为低电平。SPI总线的引脚有SDI,SDO,SDCK以及SCS。INTB为中止端口,当有辨认成果或MP3数据缺乏时,会触发中止,告诉MCU处理。RSTB引脚是LD3320复位端,低电平有用。LED1,LED2作为上电指示灯。

怎么运用AVR单片机规划出语音辨认体系

3 软件体系规划

软件规划主要有两部分,分别为移植LD3320官方代码和编写语音辨认运用程序。

3.1 移植LD3320源代码

LD3320源代码是依据51单片机完结的,SPI部分选用的是软件模仿方法,但在播映MP3数据时会有中止现象,原因是51单片机主频较低,导致SPI速率很慢,不能及时更新MP3数据。移植到ATMEGA128需求修正底层寄存器读写函数、中止函数等。底层驱动在Reg_RW.c文件中,首先在Reg_RW.h运用HARD_PARA_PORT宏界说,以支撑硬件SPI。然后在Reg_RW.c文件中找到HARD_PARA_PORT对应条件宏的代码段,保存AVR的SPI接口代码。

3.2 运用程序完结

在代码中预先设定几个单词:“你好”,“播映音乐”,“翻开”。当用户说“播映音乐”时,MCU操控LD3320播映一段音乐,如果是其他词语,则在串口中打印辨认成果,然后再次转换到语音辨认状况。

3.2.1 MP3播映代码

LD3320支撑MP3数据播映,播映声响的操作次序为:

通用初始化→MP3播映用初始化→调理播映音量→开端播映。

将MP3数据次序放入数据寄存器,芯片播映完必定数量的数据时会宣布中止请求,在中止函数中接连送入声响数据,直到声响数据完毕。MP3播映函数完结代码如下:

怎么运用AVR单片机规划出语音辨认体系

因为MCU容量约束,选取测验的MP3文件不能太大。首先在核算机大将MP3文件的二进制数据转为规范C数组格式文件,然后将该文件参加工程中。源代码中MP3文件存储在外扩的SPI FLASH中,工程中需求注释和移除悉数相关代码。MP3数据读取函数是LD_ReloadMp3Data(),只需将读取的SPI FLASH数据部分改成以数组数据读取的方法即可。

3.2.2 语音辨认程序

LD3320语音辨认芯片完结的操作次序为:通用初始化→ASR初始化→增加要害词→敞开语音辨认。在源代码中的RunASR()函数现已完结了上面的进程,直接调用即可敞开语音辨认功用。

RunASR()函数代码如下:

怎么运用AVR单片机规划出语音辨认体系

用户说完话后,LD3320经过打分的方法,将要害词列表中特征最类似的一个作为输出。然后LD3320会发生一个中止信号,此刻MCU跳入中止函数读取C5寄存器的值,该值即为辨认成果,得到成果后,用户能够依据数值来完结一些功用,比方读取到1,阐明是“播映音乐”,那么能够调用前面的PlaySound()函数来播映音乐。

怎么运用AVR单片机规划出语音辨认体系

语音辨认操控的要害点在于语音辨认的准确率。表1给出了测验成果,当然也能够在辨认列表中参加更多的要害词来做测验。经过测验成果能够看出,LD3320的辨认率在95%上,能够满意用户需求。

4 结语

本文评论了依据AVR单片机的语音辨认体系规划的可行性,并给出了规划计划。经过屡次测验成果表明,本体系具有电路运转安稳,语音辨认率高,本钱低一级长处。一起借助于LD3320的MP3播映功用,该体系具有必定的交互性和娱乐性。移植性方面,体系经过简略的修正,能够很方便地将LD3320驱动程序移植到各种嵌入式体系中。跟着人们对人工智能功用的需求,语音辨认技能将越来越遭到人们的重视,信任不久的将来,语音辨认将会具有更宽广的运用。
责任编辑;zl

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/343121.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部