• 美文
  • 文章
  • 散文
  • 日记
  • 诗歌
  • 小说
  • 故事
  • 句子
  • 作文
  • 签名
  • 祝福语
  • 情书
  • 范文
  • 读后感
  • 文学百科
  • 当前位置: 柠檬阅读网 > 情书 > 正文

    【基于ARM的语音识别系统设计】语音识别系统设计

    时间:2019-05-02 03:26:06 来源:柠檬阅读网 本文已影响 柠檬阅读网手机站

         摘要: 本文基于当前嵌入式设备广泛应用的环境下,在语音识别技术的基础之上,设计了以ARM处理器为核心,Linux为操作系统的嵌入式语音识别设备。语音识别采用了流行的DHMM模型,并使用系统开销较小的Viterbi算法实现。总体来说,本文所设计的语音识别设备具有价格低、性能强、通用性好以及扩展能力强等优点。
      关键词: 语音识别;DHMM;Viterbi;嵌入式系统;ARM
      中图分类号:TP399 文献标识码:A文章编号:1006-4311(2012)04-0126-020引言
      随着计算机技术的飞速发展,各种各样的应用层出不穷,其中使用语音与计算机程序进行交互成为了最近热门的研究方向。语音作为人类与计算机之间无形的连接方式,可以使人们方便、快捷地控制和使用计算机。语音识别技术是能够让原来非智能的计算设备理解人类思想的高科技技术,融合了信号处理、人工智能以及自动化等多学科、多领域的研究成果,是目前实现人工智慧的主要途径之一。
      根据不同的分类标准,语音识别可分为不同的种类,例如依据识别对象的不同,可分为特定人语音识别及非特定人语音识别;又根据人类的讲话方式可分为孤立词识别、连接词识别以及连续语音识别。不同的识别系统虽然在语音识别过程中步骤相似,但根据不同系统的需求及特点其实现方式及具体细节是不同的[1]。
      嵌入式技术的迅猛进步,使得语音识别技术的应用更加广泛,不再局限于实验室以及大型场合;其已经被嵌入各种移动设备,为人们对移动设备的操作方式提供了一种崭新途径和使用体验。本文就针对移动设备的特点,设计了一种面向非特定人的孤立词语音识别系统。
      1语音识别的工作原理
      原始的自然语音信号中不仅含有人体自身的声音信号,同样也包含了大量的杂音、噪声等混杂在一起的随机干扰信号,尤其作为移动、嵌入式设备被使用者随身携带使用,会有更多的环境噪声信号。针对大量噪声的数据计算以及嵌入式设备有限的计算资源,为保证系统的对自然语言的正确识别率,并且有效减少处理原始语音信号的大量数据密集计算,有必要研究语音信号的预处理技术,以期高效提取语音特征参数,并选取合适的压缩算法进行语音数据压缩,之后再进行语音的模式匹配[2]。
      如图1所示,人本身的语音信号从语音录入设备进入后,将进行预处理、端点检测、特征提取,转换为可以对比的信号参数,然后将特征参数通过选取的特征匹配方法与参考样例库中的模板样例进行语言匹配,选择符合度最大的语言样例进行相应处理,得出识别结果。
      2系统硬件设计
      系统的硬件结构示意图如图2所示。
      系统的处理核心采用了韩国三星公司的一款基于ARM 920T内核的S3C2440微处理器;此款处理器中的CMOS宏单元和存储单元采用了0.18um电子工艺,内部总线采用Advanced Microcontroller Bus Architecture(AMBA)新型总线结构,具备出色的全静态设计,利用了多项低功耗技术,系统架构精简,特别为价格和功耗敏感的应用而精心打造。除此之外,它特别为各种外设准备了丰富的中断处理资源,包括总计共有60个中断源(其中包括5个定时器硬中断,9个串口中断,24个外部中断,1个看门狗定时器,4个DMA,2个ADC,1个LCD,1个电池故障,1个IIC,2个SPI,1个SDI,2个USB,1个NAND FLASH口,2个视频口和1个AC97音频口),这些中断既可以使用电平/边沿触发模式进行外部中断的触发,也可以使用软件编程的方式改变边沿/电平触发极性,能够为紧急中断请求提供快速中断(FIQ)服务[3]。
      系统工作时,人的语音信号经过MIC输入,并通过滤波、去噪等操作后,在S3C2440上执行语音特征提取、语音模式匹配算法,最终输出结果;系统中的USB接口可以方便系统外扩各种标准USB外设,以便使用语音识别结果进行各种设备控制。
      3系统软件设计
      3.1 Linux内核移植移植Linux内核一般分为几个固定的步骤,目前较为流行快速开发方法通常先在内核的处理器架构目录下,选择与目标开发板硬件结构最接近的并且各种配置较为完善的开发板目录作为移植模板。接着针对本开发板与目标开发板的硬件具体差别,进行对应的修改或使用前人发布的移植补丁进行升级。针对本开发板,我们使用了稳定的Linux-2.6.15内核进行移植,考虑到本系统的具体硬件配置,最后选择了SMDK2440开发板模板作为移植的目标开发板模板。在编译和配置内核前,建议使用menuconfig或其它配置工具对内核进行适当的裁剪,还可以进一步编写配置脚本。嵌入式Linux内核的裁减类似于PC上Linux内核的裁减,主要的工作是根据硬件和系统需求增添需要支持的模块,并除去无用的功能模块,以使Linux内核与目标硬件系统紧密相依,但要注意嵌入式Linux内核的特征是小、精、有效。内核的编译则通常是通过修改根目录以及其它子目录下的Makefile,以及在预编译前设置编译参数值时进行选定,或是使用编译工具[4]。
      最后,使用make工具生成U-boot可以识别的uImage引导程序镜像文件。uImage镜像文件通过U-Boot引导程序从FLASH中取出并解压缩,装入内存后,Linux内核便取得系统控制权。
      Linux内核移植的整个过程如图3所示。
      3.2 系统软件设计整个系统软件结构如图4所示。面向终端用户的软件形势分为两种:web插件和普通的软件界面;web插件可以使用在浏览器中,方面用户控制网页浏览。下面是命令解析层Command layer,负责解释两种界面发送的命令,调用相应的程序接口并返回执行后的结果。功能模块Function modules主要封装软件API,负责提供各种常用的功能服务。控制模块Control modules负责管理和控制语音识别引擎,建立语音样例库以及调整语音设备引擎的内部参数,将来还可以加入新的语音模式匹配算法。再下面一层是统一APIs层,主要对核心语音识别引擎进行简单的API封装,同时预留了将来要扩展的功能接口,以便后续的功能升级和代码维护;最下面的就是核心语音识别引擎,主要提供模式匹配算法以及对底层系统级的控制功能。
      3.3 语音识别算法本语音识别系统的识别任务主要为针对设备持有者的小词汇量孤立词的语音识别,功能较为简单,需要使用者进行一定量的训练后,系统对应建立语音样例库,然后针对每次的声音进行模式匹配即可,所以算法的重点在于模式匹配算法。综合计算性能需要、存储资源消耗以及价格成本考虑,目前流行的DHMM语言识别模型对本系统较为合适。DHMM模型是一种随机统计过程,通过大量的模板训练过程提取语音特征,可满足语音实时变化且识别实时性要求较高的应用场合。
      本系统采用了当前性价比较高的Viterbi算法实现DHMM模型。Viterbi算法可以由如下公式描述[5]:
      ?啄t(i)=■p(s1,s2,…,st=si,O1,O2,…,Ot|?姿)
      其中,?啄t(i)为被识别语音序列t时刻的最大概率密度;其中t时刻前经过的语音状态序列为s1,s2,...st,且t时刻状态为si,对应输出观察符序列为O1,O2,...Ot。
      4结束语
      人类与计算机之间的交流的方式经过了按键输入、键盘输入、手写输入以及触摸输入的阶段,但这已经不能满足人们对于便捷、快速输入的更高需求,而语音识别技术的发展和应用,使得人们看到了计算机输入的未来趋势。相信随着电子技术和信号处理技术的进一步提高,语音输入将会广泛应用于各种计算机以及嵌入式设备中。
      参考文献:
      [1]马莉,党幼云.特定人孤立词语音识别系统的仿真与分析[J].西安工程科技学院学报,2007,(03).
      [2]邢铭生,朱浩,王宏斌.语音识别技术综述[J].科协论坛(下半月),2010,(03).
      [3]涂刚,阳富民等.嵌入式操作系统综述[J].计算机应用研究,2000,17(11):4-6.
      [4]龙盈盈,孟利民.构建嵌入式linux交叉编译环境[J].计算机与数字工程,2006,34(6):30-33.
      [5]张文华,李会凯.基于智能语音控制的互动式玩具的设计[J].现代电子技术,2009,(23).

    相关热词搜索: 识别系统 语音 设计 ARM

    • 文学百科
    • 故事大全
    • 优美句子
    • 范文
    • 美文
    • 散文
    • 小说文章