基于ARM处理器的非特定人语音识别系统设计

发布者:老实巴交的大叔最新更新时间:2015-08-03 来源: eefocus关键字:ARM处理器  非特定人  语音识别系统 手机看文章 扫描二维码
随时随地手机看文章
  随着高新技术在军事领域的广泛运用,武器装备逐步向高、精、尖方向发展。传统的军事训练由于训练时间长、训练费用高、训练空间窄,常常不能达到预期的训练效果,已不能满足现代军事训练的需要。为解决上述问题,模拟训练应运而生。

  为进一步提高训练效果,本文利用智能语音交互芯片设计了某模拟训练器的示教与回放系统。示教系统为操作人员生动的演示标准操作流程及相应的操作现象,极大地缩短了对操作人员的培训时间,提高了培训效果。回放系统通过记录操作训练过程中各操作人员的口令、声音强度、动作、时间、操作现象等,待操作训练结束后通过重演训练过程,以便操作者及时纠正自己的问题。示教系统也可理解为对标准操作训练过程的回放。该系统不需要虚拟现实技术的支持,在小型的嵌入式系统上就可以实现。

  1 系统原理

  该模拟训练器由一台测控计算机和多台从设备组成。如图1所示。在此仅对一台从设备进行介绍,其硬件系统主要由测控计算机、Arduino mega2560 控制器、语音识别单元、声强检测单元、语音合成单元、面板控制单元、仪器面板等组成。面板控制单元较为复杂,包含多种控制电路,在模拟训练中负责该从设备在Arduino mega2560 控制器的控制下完成整个训练过程,在示教与回放系统中完成对刚才操作训练操作现象的重演,其具体电路设计在此不做介绍。

基于ARM处理器的非特定人语音识别系统设计

  语音识别单元负责识别操作人员的操作口令;声强检测单元负责检测声强大小并以此作为判断是哪台从设备操作人员口令的依据;Arduino mega2560控制器负责监视仪器面板各元件的状态来识别操作人员的动作,从而完成对操作训练过程的记录。各仪器的操作现象根据操作动作事先编制无需记录。在操作回放过程中,测控计算机根据所记录的数据,通过控制相应从设备的Arduino mega2560控制器重现所记录的操作过程。

  2 单元系统设计

  2.1 语音识别单元设计

  目前,语音识别技术的发展十分迅速,按照识别对象的类型可以分为特定人和非特定人语音识别。特定人是指识别对象为专门的人,非特定人是指识别对象是针对大多数用户,一般需要采集多个人的语音进行录音和训练,经过学习,从而达到较高的识别率。

  本文采用的LD3320语音识别芯片是一颗基于非特定人语音识别(Speaker Independent Automatic SpeechRecognition,SI ASR)技术的芯片。该芯片上集成了高精度的A/D 和D/A 接口,不再需要外接辅助的FLASH 和RAM,即可以实现语音识别、声控、人机对话功能,提供了真正的单芯片语音识别解决方案。并且,识别的关键词语列表是可以动态编辑的。其语音识别过程如图2所示。

基于ARM处理器的非特定人语音识别系统设计

  语音识别单元采用ATmega168 作为MCU,负责控制LD3320完成所有和语音识别相关的工作,并将识别结果通过串口上传至Arduino mega2560 控制器。对LD3320芯片的各种操作,都必须通过寄存器的操作来完成,寄存器读写操作有2种方式(标准并行方式和串行SPI方式)。在此采用并行方式,将LD3320的数据端口与MCU的I/O口相连。其硬件连接图如图3所示。

基于ARM处理器的非特定人语音识别系统设计

  语音识别流程采用中断方式工作,其工作流程分为初始化、写入关键词、开始识别和响应中断等。MCU的程序采用ARDUINO IDE编写[5],调试完成后通过串口进行烧录,控制LD3320完成语音识别,并将识别结果上传至Arduino mega2560控制器。其软件流程如图4所示。[page]

基于ARM处理器的非特定人语音识别系统设计

  2.2 声强检测单元设计

  在进行语音识别时需要判断是某一台从设备操作人员的口令,为此设计声强检测单元电路,该电路仅需能够判断出相对声强的大小,无需检测声级,对检测精度要求较低。

  电容式MIC声音传感器将外部声音信号转换成电信号,经NE5532放大电路进行放大,将输入的微弱音频信号转换为具有一定幅值的电压信号,该电压信号经AC/DC有效值转换电路进行装换后进行再次放大,最终由Arduino mega2560控制器的A/D进行采样。图5给出了声强检测单元的电路原理图,其中D1 端接Arduinomega2560控制器的A/D,INT1端接Arduino mega2560控制器的外部中断1.当外界声音信号大于预设的阈值时,三极管导通INT1端由高电平变为低电平产生外部中断,控制器响应中断并进行 A/D 采样,采样数据经均值滤波后保存,待测控计算机查询时上传该声强数据。

基于ARM处理器的非特定人语音识别系统设计

  2.3 语音合成单元设计

  TTS(Text To Speech)文本转语音技术是人机智能对话发展的趋势。基于TTS技术的语音系统无需事先录音就能够随时根据查询条件查出并合成语音进行播报,从而大大减少了系统维护的工作量。利用此技术,通过MCU或者PC机就能控制语音芯片发音[4]。

  本文采用SYN6658中文语音合成芯片进行语音合成。SYN6658 通过UART 接口或SPI接口通信方式,接收待合成的文本数据,实现文本到语音(或TTS语音)的转换[6]。控制器和SYN6658 语音合成芯片之间通过UART接口连接,控制器通过串口通信向SYN6658语音合成芯片发送控制命令和文本,SYN6658语音合成芯片把接收到的文本合成为语音信号输出,输出的信号经LM386 功率放大器进行放大后连接到喇叭进行播放。如图6所示。

基于ARM处理器的非特定人语音识别系统设计

  SYN6658语音合成电路采用芯片硬件数据手册提供的典型应用电路进行设计[5],在此不做介绍,功率放大电路采用美国国家半导体生产的音频功率放大器LM386进行放大。

  在进行语音合成时首先进行初始化,包括发音人选择、数字处理策略、语速调节、语调调节、音量调节等。

  由于该系统要模拟多人发音,所以不同的从设备设置不同的发音人及语调与语速以便于区分。初始化后等待测控计算机的语音合成命令,待收到命令后芯片会向上位机发送1字节的状态回传,上位机可根据这个回传来判断芯片目前的工作状态。语音合成流程图如图7所示。

基于ARM处理器的非特定人语音识别系统设计

  3 系统软件设计

  示教与回放系统的软件设计包括测控计算机的软件设计和各从设备Arduino mega260控制器的软件设计。

  测控计算机是整个系统的控制核心,其软件采用C#进行编写,在示教与回放系统中主要是对操作数据的记录以便根据所记录的数据对操作过程进行精确回放,需要记录的数据包括:各从设备操作人员的操作口令,操作动作,口令及动作时间,各操作对应的操作现象。为简化记录数据,事先编制好各事件代码,记录过程只记录代码,大大提高程序效率。建立结构体如下:

基于ARM处理器的非特定人语音识别系统设计

  在操作训练过程中测控计算机每隔50 ms 对下位机进行控制及轮询,并记录反馈数据,在数据记录时以50 ms 为一个单位。采用定时器对时间进行控制。在回放过程中首先比对当前时间和所记录的时间,当所记录的时间与当前时间吻合时测控计算机控制下位机执行该事件,完成事件回放。

  Arduino mega2560控制器负责接收测控计算机的控制指令并执行指令,读取语音识别结果,对声强数据采集和处理,控制语音合成单元进行语音合成等。Arduinomega2560 控制器采用串口中断的方式进行命令接收。

  只有正确接收到命令才会执行并回传结果,若测控计算机在限定时间内未收到回传结果则表明发生错误,测控计算机需重新发送。数据接收流程图如图8所示。

基于ARM处理器的非特定人语音识别系统设计

  4 总结

  本文利用智能语音芯片设计了某模拟训练器的示教与回放系统,该系统不需要现在流行的虚拟现实技术的支持,仅在MCU的控制下就可以运行。该系统也可以在小型的便携式设备上实现,具有良好的应用前景。

关键字:ARM处理器  非特定人  语音识别系统 引用地址:基于ARM处理器的非特定人语音识别系统设计

上一篇:采用ARM Cortex-M3单片机和DSP的逆变电源设计
下一篇:基于ARM和μC/OS-II的车载定位终端的设计

推荐阅读最新更新时间:2024-03-16 14:27

嵌入式开发之ARM处理器的选择问题
很多嵌入式初学者都希望有一套自己能用的系统,但他们往往会产生一种错误认识,就是认为处理器版本越高越好,性能越高越好,就象很多人认为ARM9比ARM7好, 我想对于初学者在此方面以此入门还应该理智,开发系统的选择最终要看自己往嵌入式系统的哪个方向上走,是做驱动开发还是应用,还是做嵌入式系统硬件层设计与板级测试。如果想从操作系统层面或应用层面上走,不管是驱动还是应用,当然处理器性能越高越好了,但这个东西自学,有十分大的困难,不是几个月或半年或是一年二年能搞定的事。 在某种意义上讲,ARM7与ARM9的差别就是在某些功能指令集上丰富了些,主频提高一些而已,就比如286 和386。对于用户来讲可能觉察不到什么,只能是感觉速度有些快而已
[单片机]
ARM处理器7种工作模式
一、ARM处理器7种工作模式(特权模式 特权模式异常模式) 用户模式(USR):正常程序执行模式,不能直接切换到其他模式 系统模式(SYS):运行操作系统的特权任务,与用户模式类似,但具有可以直接切换到其他模式等特权 快中断模式(FIQ):支持高速数据传输及通道处理,FIQ异常响应时进入此模式 中断模式(IRQ):用于通用中断处理,IRQ异常响应时进入此模式 管理模式(SVC):操作系统保护模式,系统复位和软件中断响应时进入此模式(由系统调用执行软中断SWI命令触发) 中止模式(ABT):用于支持虚拟内存和/或存储器保护,在ARM7TDMI没有大用处 未定义模式(UND):支持硬件协处理器的软件仿真,未定义指令异常响
[单片机]
ARM处理器的SWI异常中断响应过程
通过SWI异常中断指令,在用户模式下应用程序可以调用系统模式下的代码,在操作系统中表现为系统调用, 那这个过程又是如何实现的呢?带着疑问让我们来学习吧! 在SWI指令中包括一个24位的立即数(中断调用号),该立即数指示了用户要请求的特定的调用功能,所以在SWI的异常中断中要读取这个中断调用号,然后根据中断号,来调用相应的处理程序。这个过程可以分两个步骤: 1.SWI异常中断处理程序 由于是在底层操作所以这个异常中断处理程序得用汇编语言编写,描述如下: area top_swi code readonly export swi_headler swi_headler stmfd sp!, {r0-r12, lr}
[单片机]
实时语音识别系统在家庭监护机器人电路设计
  文中所研究和设计的功能,都是应用在移动机器人上的。因而系统的研究设计需要考虑到体积小、省电、便于移动的特性,并需具有便于家庭用户操作的友好显示界面。对于语音识别部分,需要用到用于语音识别算法处理的处理器、语音采集电路和语音输出电路。其中语音识别算法运算的处理器主要负责算法的运算处理,相当于机器人的大脑;语音采集电路负责采集外部的声音信号,相当于机器人的耳朵;语音输出电路负责输出话语声音,相当于机器人的嘴巴。   本文的设计是用在移动机器人上的,因而需要语音的输入、识别处理及语音输出的功能。对于语音的输入采集,本文使用声音传感器麦克风及外围电路来实现。对于语音输出部分,使用功率放大器结合喇叭来使用。设计语音部分原理图如图3所示。
[电源管理]
实时<font color='red'>语音</font><font color='red'>识别系统</font>在家庭监护机器人电路设计
移植嵌入式Linux到ARM处理器S3C2410:设备驱动
设备驱动程序是操作系统内核和机器硬件之间的接口,它为应用程序屏蔽硬件的细节,一般来说,Linux的设备驱动程序需要完成如下功能:   ·设备初始化、释放;   ·提供各类设备服务;   ·负责内核和设备之间的数据交换;   ·检测和处理设备工作过程中出现的错误。   Linux下的设备驱动程序被组织为一组完成不同任务的函数的集合,通过这些函数使得Windows的设备操作犹如文件一般。在应用程序看来,硬件设备只是一个设备文件,应用程序可以象操作普通文件一样对硬件设备进行操作,如open ()、close ()、read ()、write () 等。   Linux主要将设备分为二类:字符设备和块设备。字符设备是指设备发送和接收数据以
[单片机]
移植嵌入式Linux到<font color='red'>ARM处理器</font>S3C2410:设备驱动
ARM处理器学习之--GPIO操作篇
在上一篇文章中我们详细讲解了ARM开发环境的搭建,我们选择了X86-linux平台交叉编译ARM程序,交叉编译链选用arm-linux-系列。另外,我们还说明了一些开发需要的基础知识。关于以上这些内容,请参见 ARM芯片学习内容规划及ARM开发环境的搭建 。 我们学习高层应用程序开发的时候,一般第一个程序是经典的”hello world”程序。我们学习嵌入式的开发,主要是根据应用需求,选用合理的电子器件设计硬件电路,然后使用主控芯片控制外设。所以,我们GPIO操作篇的内容选为让电路板上的一个LED灯闪烁。 在讲解实验之前,我还是说明一下。这些基础实验,都是在特定硬件平台上运行的,且现象也是在特定电路板上才能产生的。所以实验中的程序
[单片机]
基于ARM处理器LPC2142的高速数据采集卡设计
0 引言 在瞬态信号测量和图像处理等一些高速、高精度的测量中,往往都需要进行高速数据采集。现在通用的高速数据采集卡(一般多是PCI卡或ISA卡)存在有安装麻烦、价格昂贵、受计算机插槽数量/地址/中断资源的限制、可扩展性差,而且在一些电磁干扰性强的测试现场无法专门对其进行电磁屏蔽,因而会导致采集的数据失真等缺点。为此,本文给出了采用PHILIPS公司的一款LPC2142芯片(基于ARM7内核,内置了宽范围的USB2.0 Device全速串行通信接口)设计的数据采集卡的设计方案,从而有效解决了传统高速数据采集卡的上述缺陷。 1 基于ARM的数据采集卡系统结构 该系统主要由双通道模/数转换器AD9238、ARM微控制器LPC214
[工业控制]
嵌入式Linux下ARM处理器与DSP的数据通信
摘要:本文通过一个开发实例详细说明如何通过DSP的HPI接口与运行Linux操作系统的ARM架构处理器进行数据通信。给出接口部分的实际电路和ARM-Linux下驱动程序的开发过程。 关键词:设备驱动程序 嵌入式Linux HPI ARM DSP 1 引言 基于ARM核心处理器的嵌入式系统以其自身资源丰富、功耗低、价格低廉、支持厂商众多的缘故,越来越多地应用在各种需要复杂控制和通信功能的嵌入式系统中。 内核源码开放的Linux与ARM体系处理器相结合,可以发挥Linux系统支持各种协议及存在多进程调度机制的优点,从而使开发周期缩短,扩展性增强。作为数字处理专用电路,DSP的数字信号处理能力十分强大,但对诸如任务管理、通信、
[工业控制]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • Linux内核移植
    实验步骤:(1)准备工作(2)修改顶层Makefile(3)修改falsh 分区(4)配置编译内核下面以Linux2 6 30 4内核移植到gec2440为例:一、准备 ...
  • S5PV210 PWM定时器
    第一节 S5PV210的PWM定时器S5PV210共有5个32bit的PWM定时器,其中定时器0、1、2、3有PWM功能,定时器4没有输出引脚。PWM定时器使用PCLK_PS ...
  • S5PV210 NAND Flash
    NAND Flash关于NAND FlashS5PV210的NAND Flash控制器有如下特点:1) 支持512byte,2k,4k,8k的页大小2) 通过各种软件模式来进行NAND Fl ...
  • S5PV210串口
    串口设置之输入输出字符S5PV210 UART相关说明 通用异步收发器简称UART,即UNIVERSAL ASYNCHRONOUS RECEIVER AND TRANSMITTER,它用来 ...
  • S5PV210按键控制LED
    原理图如图所示:查询用户手册得到:程序例子:(完整代码见“代码下载链接”)1、轮询的方式查询按键事件 *main c* 核心代码如下:while(1 ...
  • S5PV210控制蜂鸣器
  • S5PV210的启动过程
  • S5PV210点亮LED
  • S5PV210启动过程详解
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved