采用定点DSP处理芯片ADSP2181的语音信号的识别

发布者:数字狂舞最新更新时间:2012-07-03 来源: 21ic关键字: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。[page]

 

     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 引用地址:采用定点DSP处理芯片ADSP2181的语音信号的识别

上一篇:嵌入式系统在可配置系统中实现模拟I/O
下一篇:赛灵思推出符合PCI- E 3.0标准的集成模块

推荐阅读最新更新时间:2024-05-02 22:09

基于DSP和FPGA的嵌入式同步控制器实现
摘 要:针对印染设备多单元同步控制中动态性和稳定性的问题,提出一种基于DSP和FPGA的嵌入式同步控制器设计方案。DSP作为运算控制的核心,负责控制算法的实现;FPGA作为数据采集模块的核心,负责数据采集的实现。该系统具有结构灵活,通用性强的特点,且大大减少了系统的外围接口器件,降低了成本。采用Bang-Bang控制和数字PID控制相结合的双模控制算法,满足了系统响应快速性和稳定性的要求,提高了可靠性,具有很高的实用价值。 关键词:嵌入式;同步控制;DSP;FPGA 在印染机械设备生产加工过程中,各个传动单元分别由独立的电机驱动。为了保证整机各单元同步协调工作,提高产品质量,需要设计相应的同步控制器。多单元同步传动是印
[嵌入式]
基于<font color='red'>DSP</font>和FPGA的嵌入式同步控制器实现
基于DSP的正弦信号发生器设计
引言 正弦信号发生器是信号中最常见的一种,它能输出一个幅度可调、频率可调的正弦信号,在这些信号发生器中,又以低频正弦信号发生器最为常用,在科学研究及生产实践中均有着广泛应用。 目前,常用的信号发生器绝大部分是由模拟电路构成的,当这种模拟信号发生器用于低频信号输出往往需要的RC值很大,这样不但参数准确度难以保证,而且体积大和功耗都很大,而由数字电路构成的低频信号发生器,虽然其低频性能好但体积较大,价格较贵,而本文借助DSP运算速度高,系统集成度强的优势设计的这种信号发生器,比以前的数字式信号发生器具有速度更快,且实现更加简便。 系统原理 一般的采样型SPWM法分自然采样法和规则采样法,自然采样法是将基准正弦波与一个载波三角波
[模拟电子]
基于A/D和DSP的高速数据采集技术
中频信号分为和差两路,高速A/D与DSP组成的数据采集系统要分别对这两路信号进行采集。对于两路数据采集电路,A/D与DSP的接口连接是一样的。两个A/D同时将和路与差路信号采样,并分别送入两个FIFO;DSP分时从两个FIFO中读出采集的数据,完成数据的采集。 1 数据采集系统组成及原理 数据采集系统由A/D、FIFO、CPLD以及数字信号处理板组成,图1为采集系统的组成框图。 系统中,和路和差路中频信号都是模拟中频信号,经过A/D 芯片将模拟信号变成数字信号,再经过FIFO芯片,将采集到的数据送人数字信号处理板。数字信号处理板中的处理器是DSP。DSP的数据线和2片FIFO的数据线连接,同时也和CP
[测试测量]
基于A/D和<font color='red'>DSP</font>的高速数据采集技术
TMS320F2812型DSP在车辆四轮转向控制系统中的应用
1  引言     数字信号处理器(Digital Signal Processor,简称DSP), 是一种适合于数字信号处理运算的微处理器,能够实现实时快速的数字信号处理算法。通常,由一个以DSP为基础的内核,配以测量控制所需的外围功能电路,集成在单一芯片内,使芯片价格大大降低,体积缩小,结构紧凑,使用便捷,可靠性提高。因此,集成DSP芯片的多功能板是电机应用、励磁脉冲控制系统、电力保护系统的理想选择。本文采用了超拓工控的CS4U9813可编程智能多功能板作为伺服电机的控制器来实现汽车后轮转向功能,该板集成有TI公司的高性能 DSP芯片TMS320F2812。 2  TMS320F2812的结构特点     TMS
[嵌入式]
Dialog获TENSILICA HiFi Audio/Voice DSP IP授权
【中国,2013年9月26日】—— 高度集成的电源管理、音频、模数转换及短距离无线技术供应商Dialog半导体公司 (法兰克福证券交易所代码: DLG)今天宣布,它已从电子设计创新领先企业Cadence设计系统公司(纳斯达克证券交易所代码: CDNS)获得Tensilica® HiFi Audio/Voice DSP IP的授权。Dialog将开始使用该IP,为其连接产品开发下一代音频解决方案。 Cadence® Tensilica HiFi Audio/Voice DSP是业界使用最广泛的可授权音频/语音DSP产品系列,支持超过100套成熟的音频/语音软件包。为了提升用户的音频体验,这些软件包都做了特别的优化。 “
[嵌入式]
基于DSP的信道译码算法优化
  虽然Texas Instrument推出的C6000系列DSP使对信号处理的能力显著提高,但对信息处理能力要求的不断提升使提对DSP程序的优化越来越成为DSP开发工作中非常重要的环节。本文讨论2Mbps视频数据流的Viterbi算法的移植与优化策略、技巧。   1 Viterbi算法原理简介   Viterbi译码算法是由Viterbi于1967年提出的一种最大似然译码方法,译码器根据接收序列R按最大似然准则力图找出正确的原始码序列。随着大规模集成电路技术的发展,采用Viterbi算法的卷积编码技术已成为广泛应用的纠错方案。Viterbi译码过程可用状态图表示,图1表示2个状态的状态转移图。Sj,t和Sj+N/2,t表示t
[嵌入式]
基于DSP及车辆噪声信号的车辆碰撞声检测装置
0 引言 本文采用小波分析和模式识别方法分析车辆噪声信号,设计了一种基于 DSP 的车辆碰撞声 检测装置 ,该装置能有效检测车辆碰撞事件,实现交通事故的自动识别。相对于已有交通事故检测装置具有识别率高、实时性强的优点,而且价格较低。 1 硬件设计 我们设计的碰撞检测装置的原理框图如图1所示,首先采用声音传感器采集各种声音信号,传感器输出的电信号经放大电路放大后,传入声音采集芯片的模拟信号输入端。声音采集芯片将模拟信号进行A/D转换后,送到DSP模块做进一步处理。DSP模块实时地处理所采集到的声音信息,判断是否有车辆碰撞事故发生。存储器模块和DSP模块相连,用于储存需要处理的数据和固化的代码数据,并为DSP模块
[嵌入式]
8051、ARM和DSP指令周期的测试与分析
在实时控制系统中,选择微控制器的指标时最重要的是计算速度的问题。指令周期是反映计算速度的一个重要指标,为此本文对三种最具代表性的微控制器(AT89S51单片机、ARM7TDMI核的LPC2114型单片机和TMS320F2812)的指令周期进行了分析和测试。为了能观察到指令周期,将三种控制器的GPIO口设置为数字输出口,并采用循环不断地置位和清零,通过观察GPIO口的波形变化得到整个循环的周期。为了将整个循环的周期与具体的每一条指令的指令周期对应起来,通过C语言源程序得到汇编语言指令来计算每一条汇编语言的指令周期。 1 AT89S51工作机制及指令周期的测试 AT89S51单片机的时钟采用内部方式,时钟发生器对振荡脉冲进行2分频。
[应用]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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