设计和实现一个嵌入式自动语音识别
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
设计和实现一个嵌入式自动语音识别
系统
sujay Phadke Rhishikesh Limaye亚洲时报Siddharth维尔马
Kavitha Subramanian
孟买印度技术研究所
电机工程学系
个人所得税孟买Powai,孟买,400076,印度。
{sujay,rhishi,亚洲时报Siddharth kavitha}@ ee.iitb.ac.in
摘要
我们提出了一个新的嵌入式语音识别系统的设计。
它结合了硬件和软件设计等方面实现依赖扬声器,孤立词,小词汇量语音识别系统。
是基于规模的修正Mel频率倒谱系数(MFCC)特征提取和模板匹配采用动态时间规整(DTW)的。
一种新的算法已经被用来改善一个字开始检测。
围绕行业标准TMS320LF2407A的DSP硬件。
作为一个通用的DSP24X系列的TI DSP 开发板电路板设计。
据载,除了从DSP,外部SRAM,闪存,ADC接口的I / O接口模块和JTAG 接口。
无论是硬件和软件已设计的同时,最小功率最大精度和便携式设备,以便实现高速识别。
建议的解决方案是一个低成本,高性能,可伸缩的替代现有的其他产品。
1.介绍
语音识别一直是一个活跃的研究领域多年。
随着超大规模集成电路技术,高性的
编译器的进步,它已成为可能纳入这些算法在硬件。
在过去的几年中,各系统已开发,以满足各种应用。
有许多的ASIC解决方案,提供小型,高性能系统。
然而,这些患有低的灵活性和较长的设计周期。
一个完整的基于软件的解决方案是为桌面应用程序的吸引力,但未能提供一个便携式,嵌入式解决方案。
高端的公司如TI,ADI公司的数字信号处理器(DSP)的,提供一个理想的平台,在硬件的开发和测试算法。
C编译器,模拟器和调试器之类的先进的软件工具提供了一种简单的方法,优化算法和减少市场的时间。
然而,为了获得最大的优势,硬件和软件都必须设计在手。
语音识别是任何扬声器独立或依赖[1]。
独立扬声器模式涉及提取讲话是在口语中所固有的那些特点。
这一类的算法一般比较复杂,并利用统计模型和语言模型。
另一方面,扬声器依赖模式涉及讲话中提取用户特定的功能。
必须为每个用户创建一个词提取系数的模板进行匹配,以确定口语。
此外,使用孤立的单词,而不是一个复杂连续的话,有助于提高准确性承认。
我们的工作涉及扬声器依赖性,孤立词语音识别系统的发展。
该系统是能够认识到口语词,从10-15字的模板。
它具有较高的识别精度和适度抑制比。
本文组织如下。
第二节处理软件的一部分。
它解释了背后的梅尔倒频谱系数提取和动态时间规整技术,应用的基础上形成的理论。
第三节介绍了定制硬件开发此应用程序设计有关的各种问题。
C代码的DSP平台的软件优化和移植在第四节进行了讨论。
结果和比较在部分解释五,最后,我们的结论第六节系统的应用潜力。
2。
软件
本节介绍软件方面使用的语音识别引擎。
MFCC的理论是解释其实施。
还提出了由作
者开发的一种新的开始检测和错一个字抑制算法。
它的结论与动态规整(DTW),确认使用的模板匹配算法。
2.1。
特征提取 - 梅尔规模的频率倒谱系数(MFCC)
特征提取涉及确定的共振峰在讲话中,代表扬声器的声道的变化。
使用,即有许多方法。
线性预测编码(LPC)规模的梅尔频率倒谱系数(MFCC),线性预测倒谱系数(LPCC的),反射系数(RCS)。
其中,MFCC特征已被发现是在背景噪音的存在更强大,比其他算法[2]。
此外,它提供了最佳的性能及尺寸要求(内存)之间的权衡。
MFCC的有效性的首要原因是,模型的解析日志上规模的频率人耳的非线性听觉反应[3]。
线性频率Mel频率映射的定义,
要捕捉有益的听觉频率内容,speechsignal最好是通过一个过滤器重叠的三角形过滤器,叫做梅尔过滤银行组成的银行。
这些滤波器的中心频率对梅尔规模,线性间隔和带宽都是平等的。
梅尔规模往往近似线性规模for__千赫和对数。
因此,我们得到银行梅尔过滤器下面的近似
DFT域指数K在哪里,是带宽和C是在大小滤波器的中心频率。
给予输入
信号帧的能量系数:
这些能量系数的大小的对数是考虑强度和响度的对数关系。
这些日志的能量系数
这样获得,然后通过使用反DCT正交(IDCT)[3]。
由此产生的参数被称为规模的梅尔频率倒谱系数(MFCC)。
数学,这是如下:
我们使用16个滤波器(M= 16)和L= 15,这是每帧输入信号的系数最终夺取数量。
2.2。
实施MFCC的
描绘图的特征提取的软件实现。
1。
进一步解释说,在下面的文本中的每个步骤。
2.2.1。
抽样检验。
8 kHz采样频率是足够的人力讲话。
这个频率给出了125 _s
之间连续两个样本的窗口。
因此可以做到实时处理的一个相当大的一部分。
更高的频率会缩小这个窗口,也将要求更大的内存和更高的处理时间。
为0.5秒的时间的话,在8
KHz的样本数为4000。
与每个样本存储为16位值,它相当于约8 KB的存储空间。
2.2.2。
开始检测。
是不平凡的话语背景噪音的存在开始检测。
有两个问题 - (i)
避免背景声音,和(二)准确把握单词的第一个音节引发的错误检测。
这里提出一种新的计划,这是能够有效地解决这两个问题。
该计划不断提取音频采样和保持了过去,在每一个时间点样品的滑动窗口。
窗口的大小,是一家集设计参数。
该计划采用基于滑动窗口的下面两个标准。
1。
能源 - 运行窗口的能量含量平均保持不变。
被视为公认的话语开始,这个平
均必须超过一个阈值,这是设置背景噪音。
是一个可定制的参数,并可以调整套件
个别扬声器的特性。
2。
零交叉 - 实证,它被发现,有极少数的噪音过零比正常讲话。
这实际上是利用加强检测过程。
类似的能源,在滑动窗口的输入信号的零口岸数量应该超过一个阈值,这是由预定的实验。
这一标准有助于准确,即使它的能量含量是不充分履行能源标准检测单词的第一个音节。
上述标准的组合导致一个简单而强大的开始计划,这是实现实时检测。
噪声能量计算,平均频率进行系统启动,并定期
每当系统在空闲模式(即没有话语开始检测时)。
因此阈值噪声环境的变化动态调整。
话语开始检测后,在滑动windowand的样品字缓冲存储在随后的样品。
我们固定的时间为0.5秒,其中最典型的话足够的存储样本。
理想的情况下,应该有一个最终的检测机制以及。
但它是很难有一个准确的,因果的最终检测方案。
在随后的文字中,我们提出我们自己的非因果的最终检测方案。
2.2.3。
预处理。
首先,输入信号的幅度正常化,以消除不同强度的效果。
在更高的频率讲话的光谱特性制服的关系,以较低的频率。
为了加强其在提取参数的重量,我们应用预加重滤波器是一阶高通滤波器描述:
2.2.4。
清音的拒绝。
虽然上述计划是非常有效的丢弃的背景声音,某些随机的声音(例如 - 点击,啁啾,空气吹)有足够的能量,也满足了startdetection标准。
然而,这样的声音可以区分添加一些更多的检查。
字缓冲区上执行这些检查。
结束检测 - 这是一种新型的,非因果关系的确定单词的末尾的技术。
它基本上运行时间startdetection,算法落后,从字缓冲区年底开始。
这种技术精确地修剪字缓冲区结束对沉默的一部分,决定了这个词的确切长度。
如果长度是太小了,然后这个词被视为无效。
这消除了单一的点击。
过度沉默 - 字缓冲区划分成一组帧,每一帧的平均能量含量计算。
如果一个框架的显着部分,具有相对较低的能量,那么它表明,它是由狭隘的孤立峰的声音 - 没
有一个有效的单词的特点。
这消除了多次点击。
过多的能量 - 同样,如果帧的重要部分,具有较高的能量,那么它代表连续未调制的声音(例如 - 麦克或机械振动吹)。
因此,这个词被宣告无效。
同样重要的是限制幅度最大,以避免在后续加工的溢出错误。
麦克的灵敏度进行调整,使正常的讲话没有给这个错误。
上述的定性条件,实施定量参数的值进行调整,使正常讲话而被淘汰不需要的声音传递着。
2.2.5。
取景和窗口。
分为语音输入的重叠帧的数量 - 每一个大小为256 - 汉明窗函数,如下所述,通过对每一帧的最小化和纠察,围栏效果。
2.2.6. FFT的。
在每一帧,我们将256磅的FFT[4]。
该算法运行就地对内存的要求,从而节约。
这转换成其帧帧DFT存储字。
2.2.7.梅尔过滤银行中的应用。
在每一帧,梅尔过滤器银行申请在2.1节讨论。
IDCT 的是使用逆FFT算法[4]。
我们得到的,每个20帧,一套15 MFC的系数。
2.3.模板匹配 - 动态时间规整
口语单词的特征提取后,我们得到了一个明智的框架序列的特征向量。
下一步就是比较它与当前用户存储的模板集。
我们使用一个普遍使用的技术称为动态时间规整(DTW)[5]。
这是一个“扭曲”的时间轴检测给定两个序列之间的最佳匹配的技术。
对于口语,S表示帧的系数。
对比和模板S字开始计算距离矩阵,其中每个条目给出一个大小为本地S,S字开始计算距离矩阵,其中每个条目给出一个大小为本地,
因此,当地的距离是话语的框架和模板字框相应的系数之间的矢量距离。
然后,我们通过当地的距离矩阵中找到最小翘曲路径。
相应的翘曲成本给DTW两个序列之间的距离[6]。
有效地利用动态规划,有下列复发翘曲成本最低可以发现:
其中,是累积的距离,是距离。
因此,DTW距离计算之间的口语和每个模板的话。
采取正确的匹配模板字的最小距离,如果其距离小于预定的阈值。
3。
硬件
软件上实现了TI的TMS320LF2407A的DSP周围建造了定制设计的电路板。
本节介绍了硬件设计重要的设计考虑,这是实现最高的效率。
3.1。
处理器
中央处理器TMS320LF2407A [7]定点DSP TMS320C2000平台的一部分。
它提供了低成本,低功耗,高性能的处理能力增强TMS320x DSP的C2XX核心CPU的建筑设计。
已集成多种先进的外设提供一个真正的单芯片DSP控制器。
TMS320LF2407A的之间的代码兼容的C24x DSP 控制器家族,提供最高的处理
性能(40 MIPS)和外设集成度更高。
JTAG兼容的基于扫描的仿真提供非侵入性的实时编程和调试能力。
高端的DSP像TI 6X家庭的使用是不必要的因为(i)的应用程序并不需要高处理能力,及(ii)系统的总成本保持最低。
高端处理器将需要复杂的硬件和先进的印刷电路板制造技术。
由于所有这些因素,TMS320LF2407A的是为我们的应用程序的理想选择。
3.2。
记忆
TMS320LF2407A的采用哈佛架构与64K16个字中的每个程序,数据,I / O空间。
处理器,内部有32K的闪存程序存储器,544字寄存器银行和2K字RAM。
启用时,这片上存储器片内存空间占用。
该板采用较低,在较低的程序空间和数据空间上的32K字的32K字外部的64K16的SRAM。
SRAM的方案领域可替代内部闪存程序。
这是特别方便,代码开发和测试期间,在一次又一次燃烧内部FLASH是多余的。
数据区的SRAMprovides一般数据存储器。
董事会也有外部的16闪光64K,32k字被配置为在上层的程序空间。
这提供了一个扩展到处理器的内部程序闪存。
外置闪光灯也可以作为通用非易失性存储(例如 - 用户模板存储)。
Atmel的FLASH选择,具有便捷的可编程,小部门的规模和内置擦除 - 写
序列。
片上存储器和外部SRAM的组合,FLASH的程序和数据存储器空间,最大限度地利用。
从而使板适合一般用途的发展。
3.3。
模拟到数字转换器(ADC)
TMS320LF2407A的有一个内置,高性能,10位模拟数字转换器(ADC),与最小转换时间为375 ns的。
我们测试了不同的分辨率传入的原始样品识别精度。
它被发现了9位A / D 提供足够的识别精度,没有任何不利影响的量化误差。
音频信号的信号完整性问题的解决分离的模拟和数字电路板设计网。
3.4。
电源管理电路
TMS320LF2407A的是与3.3 _主电源电压的低功耗芯片。
一个单独的5 _供应isneeded 内部闪存编程。
该板采用来自TI的两个低压降稳压器从外部9获得稳定的3.35。
他们有1 _的电流容量。
板上的双主管监控的电源电压保持电压的保真度。
板resetted每当任何电源电压低于他们的预期值的98%。
内存芯片工作在3.3。
为了方便
接口用于与外部TTL外设,双向电平转换器(3.3-5)。
4。
软件优化
使用TI C编译器的代码开发和测试。
除了编译器优化,以达到最大的性能,多种技术用于在代码设计。
这些解释在本节。
4.1。
硬件API
处理硬件方面如数据采集,中断管理,和其他的外围控制代码被设计成隐藏这些细节,从主要算法,
从而使设计更加模块化。
API包含了一些实用功能和宏。
4.2。
内存管理和变量分配
片上存储器的TMS320LF2407A的允许全速执行,但它是在规模较小。
外部存储器提供更大的规模,但可能会降低性能。
使用内部存储器,也降低了功耗。
因此,变量有适当分配,根据他们的访问频率和规模的要求。
C环境下的访问,这是在每个函数调用栈,是最访问的存储器的一部分。
因此,它被保存在内部RAM。
也可用于分配的堆栈局部变量功能,从而避免堆栈溢出,大型阵列保持全球。
便签变量,例如: - 循环指数,都保存在内部寄存器
银行。
大阵列,例如 - 字的缓冲区,必须保持在外部SRAM。
但对于每帧中提取系数,帧首先被复制到内部RAM和该框架运行在整个提取过程。
也在内部存储功能,为整个单词的最后一组。
由于FFT需要使用三角函数,查找表,维持。
表的大小是温和的,因为我们只需要一些特定的值。
梅尔过滤器银行也存储静态尽管它可以分析计算。
产生的内存开销以及补偿的性能提升。
大田对比功能包括嵌套循环和内存访问非常频繁。
因此,大田之间的口语和模板字开始前,模板字的功能复制到内部RAM。
4.3。
使用整数数据类型
TMS320LF2407A的是最适合于16位的整数运算。
因此,在整个数据流是适应工作的整数。
在所有的地方,避免溢出精度没有影响。
在错误变得不可接受的地方,用于浮点运算库。
原始样本被缩小到8位,以避免溢出
在256点整数的FFT。
三角查找表,滤波器也适当缩减。
4.4。
功能,堆栈,堆
为了减少函数调用的开销,大部分功能被折叠成一个单一的功能。
由于C环境使用的堆栈空间来存储返回值和指针,这种优化削减执行时间。
静态数组的使用消除了需要大量的动态内存分配,从而切断对
堆的大小。
5。
结果与比较
这里的技术提供的孤立词语音识别精度高。
梅尔cepstrumbased技术大大提高了简单的能量为基础的方法。
这是显示在图。
2,显示的字与模板的话,每年的“两会”的距离。
距离在energybased方法,是不容易区分,因此,它是在这种情况下,难以接受阈值。
的情况下ofMel为基础的技术,是一个尖锐的differencebetween“两化”与“两化”的模板,并与他人的距离。
因此很容易在这种情况下,设置的门槛。
我们这个系统的性能测试的用户用不同的词集的大型游泳池。
男性和女性受试者使用的话被选为是在频域分离。
(词,如“轻”“可能”,“视线”,只在第一个音节不同,不太好区分)。
实验结果表明,常用词,如英语的数字 - “一”,“二”,“三化”),或像“光”,“扇区”,“管”等字尽量给予优异的成绩有关识别精度。
6。
结论与应用
本文讨论了一种低成本,强大的嵌入式语音识别系统的实施。
讨论的算法是高效,可扩展的内存,并提供足够的识别精度。
开发定制的DSP板是一种力量,高效,灵活的设计,也可以用来作为一种通用的原型板。
巧妙启动检测技术和优化的语音识别算法可以很容易地移植到各种嵌入式平台。
系统的一些典型应用如下 - 为伤残人士提供一个语音功能的互动装置。
低成本的声音,使住户的开关。
单位安装到汽车,飞机可以作为语音激活接口。
这种设计可以进一步改善,无论在硬件以及软件的水平。
更快的DSP与浮点运算能力,扩展的内存寻址空间和音频编解码器(内置ADC)将增加系统的性能方面的速度和准确性。
在软件方面,一些先进的算法存在,其中有一个更好的识别精度和废品率,同时还支持连续时间识别。
其中最常见的是使用隐马尔可夫模型(HMMs),基于音素的语音模型和语言模型的算法。
然而,这些都非常适合非常大的数据库(50000字以上),并要求精心培训。
他们是在硬件上的要求更高,需要使用高端DSP
平台。
参考文献
[1] LR Rabiner和BH庄,语音基础第1版,SER。
普伦蒂斯霍尔信号处理
系列。
徒弟厅专业技术参考,4月1993年。
[2],戴维斯和P. Mermelstein,“比较的参数为单音节词识别的陈述在不断发言的句子“,硕士论文。
声学,语音信号处理,第一卷。
4,第
357-366,1980。
[3]。
Combrinck和E.博塔,“关于规模的梅尔倒谱”电气与电子工程部门,
比勒陀利亚大学。
[4] WH出版社,BP弗兰纳里,SA Teukolsky,和WTvetterling,在C的数值方法 - 科学的艺术计算,第二版。
剑桥大学出版社,1993年2月。
[5] M.布朗和L. Rabiner,“动态时间规整基于排列图的孤立词识别搜索技术,在国际机场。
CONF。
上音乐器,语音,信号处理,ICASSP'82,第一卷。
1982年5月7日,第1255年至1258年。
[6] EJ基奥和MJ Pazzani,“衍生动态时间扭曲,“部门信息与计算机科学,加州大学欧文分校。
[7] TMS320LF2407A的DSP控制器数据(SPRS145I),德州仪器,2000年7月,修订2003年9月。
[在线]。
可供选择:HTTP:/ / /lit/ds/symlink/tms320lf2407a.pdf。