基于ADSP2181的语音识别及其定点DSP实现

发布者:jingyun最新更新时间:2010-07-26 来源: 现代电子技术关键字:定点DSP  语音识别  ADSP2181  算法 手机看文章 扫描二维码
随时随地手机看文章

  语音识别研究的根本目的是研究出一种具有听觉功能的机器,能直接接受人的口呼命令,理解人的意图并做出相应的反映。语音识别系统的研究涉及微机技术、人工智能、数字信号处理、模式识别、声学、语言学和认知科学等许多学科领域,是一个多学科综合性研究领域。近年来,高性能数字信号处理芯片DSP(Digital Signal Process)技术的迅速发展,为语音识别的实时实现提供了可能,其中,AD公司的数字信号处理芯片以其良好的性价比和代码的可移植性被广泛地应用于各个领域。因此,我们采用AD公司的定点DSP处理芯片ADSP2181实现了语音信号的识别。

  1 语音识别的基本过程

  根据实际中的应用不同,语音识别系统可以分为:特定人与非特定人的识别、独立词与连续词的识别、小词汇量与大词汇量以及无限词汇量的识别。但无论那种语音识别系统,其基本原理和处理方法都大体类似。一个典型的语音识别系统的原理图如图1所示。

典型的语音识别系统的原理图

  语音识别过程主要包括语音信号的预处理、特征提取、模式匹配几个部分。预处理包括预滤波、采样和量化、加窗、端点检测、预加重等过程。语音信号识别最重要的一环就是特征参数提取。提取的特征参数必须满足以下的要求:

  (1)提取的特征参数能有效地代表语音特征,具有很好的区分性;

  (2)各阶参数之间有良好的独立性;

  (3)特征参数要计算方便,最好有高效的算法,以保证语音识别的实时实现。

  在训练阶段,将特征参数进行一定的处理后,为每个词条建立一个模型,保存为模板库。在识别阶段,语音信号经过相同的通道得到语音特征参数,生成测试模板,与参考模板进行匹配,将匹配分数最高的参考模板作为识别结果。同时,还可以在很多先验知识的帮助下,提高识别的准确率。

  2 系统的硬件结构

  2.1 ADSP2181的特点

  AD公司的DSP处理芯片ADSP2181是一种16b的定点DSP芯片,他内部存储空间大、运算功能强、接口能力强。有以下的主要特点:

  (1)采用哈佛结构,外接16.67MHz晶振,指令周期为30ns,指令速度为33MI/s,所有指令单周期执行;

  (2)片内集成了80 kB的存储器:16 kB字的(24b)的程序存储器和16kB字(16b)的数据存储器;

  (3)内部有3个独立的计算单元:算术逻辑单元(ALU)、乘累加器(MAC)和桶形移位器(SHIFT),其中乘累加器支持多精度和自动无偏差舍人;

  (4)一个16b的内部DMA端口(1DMA),供片内存储器的高速存取;一个8b自举DMA(BDMA)口,用于从自举程序存储器中装载数据和程序;

  (5)6个外部中断,并且可以设置优先级或屏蔽等。

  由于ADSP2181以上的特点,使得该芯片构成的系统体积小、性能高、成本和功耗低,能较好地实现语音识别算法。

  2.2 系统的硬件结构

  在构成语音识别电路时,我们采用了ADSP2181的主从结构设计方式,通过IDMA口由CPU装载程序。语音识别系统的硬件结构如图2所示。

语音识别系统的硬件结构

  在这种结构中,PC机为主CPU,ADSP2181为从CPU,由PC机通过IDMA口将程序装载到ADSP2181的内部存储器中。PC机总线通过CPLD译码,形成IRD,IWR,IAL,IS等控制信号,与ADSP2181的IDMA口相连。这样,在ADSP2181全速运行时,主机可以查询从机的运行状态,可以访问到ADSP2181内部所有的程序存储器和数据存储器。这对程序的编译和调试,以及语音信号的实时处理带来了极大的方便。

  3 语音识别的DSP实现技术

  3.1 浮点运算的定点实现

  在语音识别的算法中,有许多的浮点运算。用定点DSP来实现浮点运算是在编写语音识别程序中需要首先解决的问题。这个问题可以通过数的定标方法来实现。数的定标就是决定小数点在定点数中的位置。Q表示法是一种常用的定标方法。其表示机制是:

  设定点数是J,浮点数是)/,则Q法表示的定点数与浮点数的转换关系为:

  浮点数)/转换为定点数x:x= (int)y×2Q;

  定点数z转换为浮点数y:y =(float)x×2-Q。

  3.2 数据精度的处理

  用16b的定点DSP实现语音识别算法时,虽然程序的运行速度提高了,但是数据精度比较低。这可能由于中间过程的累计误差而引起运算结果的不正确。为了提高数据的运算精度,在程序中采用了以下的处理方法:

  (1)扩展精度

  在精度要求比较高的地方,将计算的中间变量采用32b,甚至48b来表示。这样,在指令条数增加不多的情况下却使运算精度大大提高了。

  (2)采用伪浮点法来表示浮点数

  伪浮点法即用尾数+指数的方法来表示浮点数。这时,数据块的尾数可以采用Q1.15数据格式,数据块的指数相同。这种表示数据的方法有足够大的数据范围,可以完全满足数据精度的要求,但是需要自己编写一套指数和尾数运算库,会额外增加程序的指令数和运算量,不利于实时实现。

  以上两种方法,都可以提高运算精度,但在实际操作时,要根据系统的要求和算法的复杂度,来权衡考虑。

  3.3 变量的维护

  在高级语言中,有全局变量与局部变量存储的区别,但在DSP程序中,所有声明的变量在链接时都会分给数据空间。所以如果按照高级语言那样定义局部变量,就会浪费大量的DSP存储空间,这对数据空间较为紧张的定点DSP来说,显然是不合理的。为了节省存储空间,在编写DSP程序时,最好维护好一张变量表。每进入一个DSP子模块时,不要急于分配新的局部变量,应优先使用已分配但不用的变量。只有在不够时才分配新的局部变量。

  3.4 循环嵌套的处理

  语音识别算法的实现,有许多是在循环中实现的。对于循环的处理,需要注意以下几个问题:

  (1)ADSP2100系列DSP芯片中,循环嵌套最多不能超过4重,否则就会发生堆栈溢出,导致程序不能正确执行。但在语音识别的DSP程序中,包括中断在内的嵌套程序往往超过4重。这时不能使用DSP提供的do…unTIl…指令,只能自己设计出一些循环变量,自己维护这些变量。由于这时没有使用DSP的循环堆栈,所以也不会导致堆栈溢出。另外,如果采用jump指令从循环指令中跳出,则必须维护好PC,LOOP和CNTR三个堆栈的指针。

  (2)尽量减少循环体内的指令数。在多重循环的内部,减少指令数有利于降低程序的执行次数。这样有利于减少程序的执行时间、提高操作的实时性。

  3.5 采用模块化的程序设计方法

  在语音识别算法的实现中,为了便于程序的设计和调试,采用了模块化的程序设计方法。以语音识别的基本过程为依据进行模块划分,每个模块再划分为若干个子模块,然后以模块为单元进行编程和调试。在编写程序之前,首先用高级语言对每个模块进行算法仿真,在此基础上再进行汇编程序的编写。在调试时,可以采用高级语言与汇编语言对比的调试方式,这样可以通过跟踪高级语言与汇编语言的中间状态,来验证汇编语言的正确性,并及时的发现和修改错误,缩短编程周期。另外,在程序的编写过程中,应在关键的部分加上必要的注释与说明,以增强程序的可读性。

  在总调时,需要在各模块中设置好相应的人口参数与出口参数,维护好堆栈指针与中间变量等。

  3.6 利用C语言与汇编语言的混合编程

  现在,大多数的DSP芯片都支持汇编语言与C或C++语言的混合编程,ADSP2181也不例外。用C语言开发DSP程序具有缩短开发周期、降低程序复杂度的优点,但是,程序的执行效率却不高,会增加额外的机器周期,不利于程序的实时实现。为此,在用C语言编写语音识别算法时,我们采用了定点化处理技术。ADSP2181是16位定点处理器,定点化处理应注意以下几个问题:

  (1)ADSP2181支持小数和整数两种运算方式,在计算时应选择小数方式,使计算结果的绝对值都小于1;

  (2)用双字定点运算库代替C语言的浮点库,提高运算精度;

  (3)注意在每次乘加运算之后进行饱和操作,防止结果的上溢和下溢;

  (4)循环处理后的一组数据可能有不同的指数,要进行归一化处理,以便后续定点操作对指数和尾数部分分别处理。

  4 结 语

  用定点DSP芯片构成的语音识别系统有着广泛的应用前景,在编写语音识别算法时,对其进行定点化处理以及一些原则和方法对其他类似的算法也有着现实指导意义。在实际应用中,应注意根据DSP芯片的特点,对算法进行优化,使得DSP芯片的性能得到充分的发挥。

关键字:定点DSP  语音识别  ADSP2181  算法 引用地址:基于ADSP2181的语音识别及其定点DSP实现

上一篇:基于DSP与数字温度传感器的温度控制系统
下一篇:浅谈DSP系统中的电磁兼容问题

推荐阅读最新更新时间:2024-05-02 21:06

3.15没说谎 指纹、面部、语音识别技术,破解真的很简单!
  面部识别被今年央视315晚会狠狠地打脸,这一技术并没有成熟到能令人们放心使用的地步,但已经被普遍采用到各种智能终端上,智能手机便是其中之一。下面就随网络通信小编一起来了解一下相关内容吧。   无论是手机中的照片、电子邮件、短信、Facebook、WhatsApp,以及更重要的控制用户财务状况的各个银行应用,所有的一切都受到 生物识别 技术的保护。   但事实上, 生物识别 技术不仅无法令用户更加安全,而且使用这些技术要比用户使用老式密码更容易受到攻击。   在日前巴塞罗那举行的世界通讯大会中,老牌代码安全审计机构NCC Group就向外界展示了它如何轻易破解最新款Android手机的这些安全功能。    通过手指、面部或语音
[网络通信]
密码算法在智能卡中的应用发展
  在过去的十年中,智能卡上的计算能力发展迅速,基于 公钥的智能卡广泛应用于各个领域。2001年Borst总结了智 能卡上应用的各种密码算法以及关于这些算法的攻击。从那以后,关于密码算法的各种攻击也越来越多,其中比较著名 的有对于MD5和SHA一1的攻击以及其他对哈希函数的攻 击。另外不太为人注意的还有,对于像A5/l(应用于GSM 中) 和EO(应用于蓝牙中)这样的流密码分析技术也取得了不小 的进步。在分组密码方面,AES的采用一定程度上保证了安 全性。公钥密码方面,RSA的安全填充技术也成为一个研究 热点。    1 消息认证码   消息认证码实际上是对消息本身产生的一个冗余的信 息,消息认证码是利用密钥对要认证的消息产生
[安防电子]
基于人工免疫算法的变压器故障诊断方法
引言 电力变压器是电力系统的枢纽设备,其运行可靠性直接关系到电力系统的安全与稳定。随着电力行业的飞速发展,电力变压器正向高电压、大容量方向发展,然而电压等级越高,容量越大,电力变压器故障率越高;故障影响范围大,检修时间和难度大大提高。因此,若能在电力变压器运行过程中通过某些检测和试验,及时有效地判断其状态,预先发现早期潜伏性故障,从而减少事故发生,这对电力系统的安全运行具有重要意义。一般特征气体法是根据各种故障所产生的特征气体来判断变压器故障性质,而IEC三比值法是利用油中溶解气体分析(Dissolved Gas Analvsis,简称DGA)结果对充油电力设备故障诊断的最基本方法。此外,各种智能技术如人工神经网络、遗传算法、小
[电源管理]
基于人工免疫<font color='red'>算法</font>的变压器故障诊断方法
“V – Hackathon”伟世通杯自动驾驶算法竞赛圆满落幕
由全球汽车座舱电子技术领导者伟世通和中国顶尖高校--同济大学汽车学院共同举办的“V – Hackathon”伟世通杯自动驾驶算法竞赛颁奖典礼在沪圆满举办。此次算法大赛历时3个多月,面向同济大学所有专业和年级的学生,以伟世通自动驾驶平台的算法开发环境DriveCore™ Studio为平台,在高速公路自动驾驶环境下对车辆检测算法开发,受到在校学生的广泛关注及积极参与。 完善评估机制 赛制公平公正 本次颁奖典礼在同济大学汽车学院举办,伟世通自动驾驶团队的专家及同济大学汽车学院领导均亲临现场为所有报名参赛学生进行编程培训,提供产品技术讲解及实际操作现场指导,并为获奖学生颁奖。获奖学生不仅可获最高3万元奖励,还能获得优先进
[物联网]
“V – Hackathon”伟世通杯自动驾驶<font color='red'>算法</font>竞赛圆满落幕
基于FPGA视频图像的Canny算法加速器的设计
    摘要:由于Canny算法自身的复杂性,使得其做边缘检测的处理时间较长。针对这个问题,提出和实现了一种Canny算法的硬件加速功能。加速功能的设计是以FPGA为硬件基础,并采用了流水线技术来对系统的结构改进和优化。最后通过对有加速器和无加速器的系统分别做图像处理,并对统计时间对比分析。结果表明经过加速改进的系统相对节约了处理时间,并能实时高效地处理复杂图像的边缘。 关键词:Canny算子;边缘检测;加速器;现场可编程门阵列 0 引言     边缘检测是图像分析过程中非常基础和重要的研究领域,边缘提取的好坏将直接影响到后续处理的准确性和难易程度。用于边缘检测的方法有Roberts,Sobel,Laplace,Canny,Pre
[嵌入式]
基于盲源分离的语音识别前端语音净化处理研究
摘要:研究了利用盲源分离理论解决语音识别之前的语音净化问题。基于MSICA算法良好的性能、低复杂度和实时性,设计了以TI公司的TMS320C6416数字信号处理器为内核的语音净化系统。该系统可以使语音识别系统获得纯净语音,从而有效提高语音识别系统的识别率和鲁棒性。 关键词:盲源分离 DSP 语音识别 语音净化 目前针对语音识别提出了很多算法,但是这些研究基本上都是基于较为纯净的语音环境,一旦待识别的环境中有噪声和干扰,语音识别就会受到严重影响。因为大多数语音识别的语音模板基本上是在无噪声和无混响的“纯净”环境中采集、转换而成。而实现环境中不可避免地存在干扰和噪声,包括其他人的声音和回声等,这些噪声有时很强,使语音识别系统的性
[嵌入式]
Shor算法实现或使密码成摆设
   文章来源:新智元微信公众号   互联网时代绝大多数的加密,都由RSA算法完成。过去我们认为RSA不可破解,但随着量子计算的发展,RSA的安全性正受到挑战。今天刊发在《科学》杂志的最新论文,量子计算机有史以来第一次以可扩展的方式,用Shor算法完成对数字15的质因数分解。IBM 物理科学高级主管Mark Ritter表示,将Shor算法实现出来这件事,能够与经典计算中的‘Hello,World’ 相提并论。   互联网时代,密码和网络安全是通信的基础,无论是微信聊天,还是淘宝交易,都需要密码技术保障个人隐私和财产安全。   而现在的大部分加密,都由RSA算法完成,它基于一个非常简单的数论事实:   将两个大
[安防电子]
关于独立按键扫描程序的思考(整合两种算法
最近刚开始学51单片机编程。学到按键扫描,在网上看到Etual 2008年总结的《新型按键扫描》的博文,很有感触。关于按键扫描的介绍和应用可以参照原文,本文只是我对程序的一些心得和体会。原文的链接找不到了,给个转载的: http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4308630&bbs_page_no=1&search_mode=4&search_text=atommann&bbs_id=9999 http://blog.21ic.com/user1/379/archives/2010/68144.html http://blog.ednchina.com/zp200
[单片机]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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