前言:一篇好文章的诞生,需要你不断地搜集资料、整理思路,本站小编为你收集了丰富的语音识别系统主题范文,仅供参考,欢迎阅读并收藏。
关键词: 语音识别;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.
关键词:语音识别;LD3320;STM32F407;W25Q128
随着科技的发展,人们的操作模式从最初的按键操作到触屏操作,再到现在的语音操作,其越来越便捷,越来越人性化。语音操作的基础就是语音识别技术(Automatic Speech Recognition),简称ASR,其目标就将人类语言转换为计算机可读的输入。语音识别作为一门交叉学科,从产生到现在已取得了显著的进步,现在已逐步走向市场,并且人们预计,语音识别技术在未来10年将会应用于人们生活的各个领域。
根据发音人的不同,语音识别技术可分为特定人语音识别和非特定人语音识别两类,前者只能识别一个或几个人的语音,而后者则能被任何人使用。本文设计的多鼍坝镆羰侗鹣低尘褪粲诜翘囟ㄈ擞镆羰侗鹫庖焕啵其以嵌入式微处理器STM32F407为核心,采用ICRoute公司的LD3320语音识别芯片,并配以存储空间为16M字节的W25Q128芯片,能够实现2000个场景共计识别句100000条的语音识别操作。
1 系统整体结构
如图1所示,整个系统主要是由STM32F407处理器、LD3320语音识别芯片以及W25Q128Flash芯片构成。其中STM32F407处理器用于切换场景和场景关键词更改;LD3320语音识别芯片用于语音识别,W25Q128Flash芯片用于存识别句,两种都是通过SPI总线与处理器相连。整套系统与外部其他系统则是通过串口进行通信。
2 系统硬件介绍及存储空间设计
2.1 系统硬件介绍
2.1.1 STM32F407ZGT6处理器
STM32F407ZGT6采用Cortex_M4内核,集成FPU和DSP指令,具有192KB SRAM、1024KB FLASH、3个SPI、6个串口等。基于其强大的配置,所以本系统的处理器选用该芯片。
2.1.2 LD3320语音识别模块
LD3320语音识别模块是ICRoute公司的一款产品,其特有的快速而稳定的优化算法,能够完成非特定人语音识别,识别准确率高达95%。该模块每次最多可以设置50条候选识别词或识别句,只要单个词或句长度不超过10个汉字和79字节的拼音串,同时我们可以对识别内容动态编辑。模块的通讯方式有并行和串行两种,根据需求的不同可以选择不同的通讯方式。除了语音识别这一功能之外,模块还支持MP3播放功能,只要MCU将MP3数据依次送入芯片,就能够从芯片的PIN引脚输出声音。
2.1.3 W25Q128Flash芯片
W25Q128是华邦公司推出的大容量SPIFLASH产品,容量为128Mbit,即16M。该芯片将16M空间分为256块,每块64KB,每块又分为16个扇区,每个扇区4KB。由于W25Q128的最小擦除单位为一扇区,也就是说每次擦除4KB。
2.2 存储空间设计
由于W25Q128芯片每次擦除的单位为4KB,而每句识别语句至少有80字节,一个场景有50句识别语句,所以一个扇区用于一个场景是不够的,因此我们将两个扇区划为一个场景;图2是单个场景数据存储关系图,图中每个场景占8192字节,每条识别语句占100个字节,其中第一个字节为识别语句编号,范围为1-50;单个场景的第一个扇区可以存储40条识别语句,第二个扇区可以存储10条识别语句,其中第4000B-4096B和5096B-8190B保留,不存储数据,整个场景的最后两个字节用于存储场景编号,范围为1-2000。W25Q128共有4096个扇区,理论上可以划分2048个场景,但是我们只划分2000个场景,也就是4000个扇区;还剩下96个扇区,剩下的第1-50扇区用于存放每个场景的相关信息,计算可以得到每个场景有1KB的存储空间,然后我们将最后一个扇区的最后两个字节存储现在所在场景编号,剩下的空间保留。
3 系统软件设计
3.1 通讯协议格式设置
整个系统主要具有场景切换和场景识别语句存取功能,表1是部分对应协议格式。
3.2 初始化函数及操作函数介绍
STM32处理器与其他各个模块建立通信连接,除了连接好对应IO口后,还需要对各个IO进行初始化,这样才能进行数据的收发,以下是主函数中相关初始化函数:
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//首先设置系统中断优先级分组
delay_init(168); //初始化延时函数
LED_Init();//指示灯初始化
KEY_Init();//按键初始化
IWDOG_Init();//看门狗初始化
USART1_Init(9600);//初始化串口1
W25QXX_Init();//W25Q128初始化
LD3320_Init();//LD3320初始化
while(W25QXX_ReadID()!=W25Q128) //检测是否存在W25Q128
{
LED0=!LED0; //如果检测不到W25Q128指示灯1会不停闪烁
}
关键词:连续语音识别;动态范围调整;归一化;算法
中图分类号:TN912.34
当噪音引起连续语音信号失真时,提取的连续语音特征曲线也会在时域和频域内失真[1]。如果用带噪特征去匹配纯净语音的特征模型,会造成带噪特征与模型之间的不匹配,这就导致了识别率的下降。
在连续语音识别中为了减少上述不匹配的问题,有三种主要解决技术。一是多条件或者多类型的训练方法,也就是使用带噪数据来进行训练[2]。虽然这个方法能够在特定的噪音环境下可以得到较好的识别精度,但是如果噪音环境发生变化识别精度还会急剧的降低。换言之,如果待识别数据与模型数据的条件(环境)不同,如:信噪比或者噪声类型,在待识别数据和模型之间仍会存在不匹配的现象。二是采用自适应模型方法[3],通过自适应模型来减少不匹配的问题。这种训练模型方法同时使用纯净和噪音数据来进行训练,这又会导致模型的区分度不高,同样会是识别精度下降。三是采用特征归一化方法,这种方法虽然不能从根本上改变待识别特征与模型之间的不匹配,但是在一定程度上会保留模型的区分度并减少由于环境变化导致带噪语音失真的影响。本文主要研究第三种方法。
语音增强和特征补偿方法以恢复语音特征为目的,但是特征归一化方法只是对语音特征的某些统计信息进行改变,并期望由此减少噪声引起的失真。不论是语音补偿还是特征补偿,都需要改变语音的特征向量,而传统的归一化方法只是对语音特征统计信息的范围进行处理,提出的算法在保证原有语音统计信息的前提下,适当改变部分语音特征向量。从而减少由噪音引起的语音特征曲线的失真。
动态范围调整方法属于归一化方法的一种,能够对干净和带噪语音的特征统计信息处理到相对较小的一个范围内。归一化方法能够根据一些模板值减少噪音特征在统计信息上的影响。相比使用归一化方法之前,在干净语音特征和带噪语音特征之间的不匹配部分会显著减少。语音增强一般应用在时域和频域中恢复语音特征的质量。特征补偿方法通常应用在加强连续语音系数在对数滤波阶数和频谱域使用。
减少待识别语音特征和模型的不匹配的方法虽然不是提高语音识别鲁棒性的唯一方法,但却是一种很有效的方法。通过这种方法可以减少待识别特征和模型之间的不匹配使得识别性能得以提高。
1 噪音对孤立词语音数据的影响
加法性噪音和乘法性噪音是影响语音信号最普通的两种噪音类型。例如:加法性噪音包含背景噪音,交通噪音,等等。乘法性噪音主要是传输过程中产生的信道失真。例如麦克风自身的噪音,房间的反射噪音等等。干净的语音信号首先被信道失真所干扰,进一步被加法性噪音干扰。
包含噪音的频谱可以用如下公式描述:
噪音干扰在增益部分和直流分量部分的影响是不同的,如图1所示:在孤立词识别中,很多实验表明使用DRA方法对加法性噪音和乘法性噪音都具有很好的性能。
图2展示了噪音影响在孤立词中的性能。在图2中,有两条不同的特征曲线,曲线表示了干净语音和10db信噪比的噪音特征在第二项MFCC中。者两条曲线来源于同一个语音数据。
然而,由于噪音严重的影响,噪音下的MFCC特征曲线的动态范围要小于干净语音的MFCC特征曲线的动态范围。如果使用干净语音特征建立HMM训练模型,能够获得理想的模型并在同等条件下获得更高的识别率。但是对噪音下的语音识别,由于上述的原因,自动语音识别系统无法在任何噪音下获得正确的识别结果。虽然DRA归一化方法能够在孤立词识别中获得较好的识别结果,但直接用于连续语音识别并不是特别的理想。
图2展示了在孤立词中不匹配的峰值。DRA归一化方法算法使用最大值的方法将频谱系数范围标准化到一个统一的范围。在每个维度,DRA方法将干净或者带噪语音频谱系数的动态范围调整到同一个标准范围中。但在孤立词识别中,特征曲线中的峰值是有限的。归一化方法非常适用于孤立词识别。而连续语音识别特征曲线的峰值要远多于孤立词识别,归一化方法并不直接适用。
2 噪音对连续语音数据的影响
对连续语音特征曲线来说,不匹配的峰值随着语音特征曲线的增长而增加,语音特征曲线的动态范围随着噪音的增加而减少。因此简单的归一化算法不能有效适用连续语音识别。
我们的目标是缩小待识别噪音特征曲线与干净的语音特征曲线之间的差异。经过噪音鲁棒性方法和DRA方法,语音信号中的直流分量的不同得以减少,特征曲线中不匹配的峰值也得以减少。
基于前面提到的孤立词识别的归一化方法,我们可以假设噪音没有改变原有的特征曲线的统计顺序,也就是在语音特征曲线上会存在很多峰值,如第一高峰值,第二高峰值,等等。在连续语音特征中,全局的统计信息的匹配就在整个训练数据集中显得比较重要。一般来说,这些特征曲线上的峰值信息代表了元音的语音特征。随着训练量的增加,这些峰值信息一般会集中到相对稳定的区域。但实际上,噪音通常会改变特征曲线的统计顺序。如果能恢复部分特征曲线上统计信息的顺序,就能增加这些峰值的匹配几率。
虽然通过上述的图示可以看出通过归一化方法可以增加干净语音特征曲线和带噪语音特征曲线的拟合程度,连续语音特征曲线中存在较多的峰值,带噪语音特征曲线会改变一些峰值的统计信息,因此把归一化方法简单的使用到连续语音识别中无法达到如图的拟合程度。提出的算法可以尽最大可能恢复带噪语音的峰值统计信息。
使用DRA归一化能提高特征曲线的峰值匹配概率。孤立词特征曲线通常不含静音部分,但在连续语音中,语音之间存在由于思考或者换气产生的静音,在此部分仍然使用归一化方法在过渡位置会放大只有噪音的信号特征。这就导致了连续语音特征在此部分无法匹配。
根据上面的讨论,可以通过下面两步对特征曲线进行处理。
第一步:从连续语音数据中提取所有的短句子。
估计无音部分。连续语音包含许多无音部分和只有噪音的部分,因为这些部分不适合使用DRA。在下一步中消除连续语音特征曲线中各个动态范围的不平衡性。
第二步:把选取出来的短句子分成更小的片段,在每个片段中使用归一化方法。
如果片段的长度接近短句长度,导致识别结果与传统DRA方法接近,如果片段的长度特别小,则导致识别精度急剧下降。根据实验得到经验数据当片段长度为80帧时,识别精度最高。不同片段长度得到的识别结果如下图:
3 小结
在训练过程中使用大量的数据可以使各个音素的模型逐渐集中在某一个范围。对于测试数据来说,音素的范围很有可能与模型不在同一个范围内,待识别音素是有限的,不可知的。
使用噪音鲁棒性方法和DRA在建立区分度较高模型方法,这些鲁棒性方法在发音较短的孤立词识别中展现了良好的识别性能,并说明了这些方法无法直接在连续语音识别中的原因。
虽然在带噪语音特征曲线和干净语音特征曲线仍然有不匹配的峰值,需要指出的是,对比使用传统的DRA算法,减少了不匹配的峰值。由此可以看出,使用提出的算法调整带噪语音特征曲线可以增加峰值部分的匹配几率。使用该算法在干净和噪音环境下可以提高整体的识别性能。特别指出的是,提出的算法大幅提高了在噪音环境下的连续语音识别性能,根本原因就是相对于传统的DRA,选择了更合适的调整值,适当的放大了峰值。该算法在语音频谱系数的对数系数特征里也适用。
参考文献:
[1]张雄伟等编著.现代语音处理技术及应用[M].机械工业出版社,2003.
关键词:语音识别;智能家居;HR7P194单片机
前言
随着科技的发展,语音交互逐步走了进人们的生活中。例如苹果手机中Siri和Win10系统中小娜都已被人们所熟悉,小米语音识别遥控器也给智能家居带来新体验。考虑到智能语音识别技术在未来科技和生活中的普及是必然,我国在上世纪末期已开展对其的研究。因此,将非特定性语音识别技术运用到智能家居中,并以语音控制方式进行控制家具电器设备,为人们的生活带来了很大的便捷[1]。
1 语音识别系统简介
语音识别技术其任务是将人类的声音转换成计算机可识别的信息。语音识别技术过程为:语音信号采集、预处理、特征信号提取、根据库模板测度估计、语音识别、语音输出[1]。
语音识别技术有两方面的应用[2]:一是连续语音大词汇语音识别系统,应用于听写机及语言信息查询服务系统;二是体积小、方便携带的语音设备,如智能手机、玩具、家电遥控器等。
语音识别技术就是让机器通过识别和理解过程把语音信号转变为相应的文本或命令的高级技术[3]。语音识别技术过程为:语音信号采集、预处理、特征信号提取、根据库模板测度估计、语音识别、语音输出。
2 系统主要硬件组成
2.1 语音识别系统的硬件总体设计
本系统包括语音信号采集模块、语音信号调理模块、单片机控制模块、语音识别模块、液晶显示模块、控制执行模块等[1]。
语音信号调理模块包括自动调整增益电路和带通滤波电路。语音信号强度会随传播距离的增加成指数下降,为了防止近距离出现饱和限幅现象,因此采用自动调整增益电路[1]。人类的语音信号主要分布在300Hz-3.4KHz,带通滤波电路可以有效地防止造成干扰,提高识别效率[1]。
2.2 单片机控制模块电路设计
市面上可用于语音识别的单片机多种多样,文章所用的是HR7P194单片机。HR7P194单片机具有单时钟周期短、运行速度快、性能稳定的特性,采用哈弗型RISC,66条精简指令集,工作频率最高16MHz,支持硬件除法器,支持17个中断处理,具有8KB Flash程序储存器、496字节的SRAM、1路8位定时器T8N、3路8位PWM时基定时器T8P1/T8P2/T8P3、1路16位门控定时器T16G、10位模拟数字转换器ADC、液晶显示控制器LCDC、41根I/O口线以及1个全双工异步串行口和1路IIC总线主控器IICM等。
HR7P194单片机控制模块最小工作系统电路如图1所示。
2.3 语音识别模块
以LD3320为核心的语音识别技术有语音识别和声音控制方面的优势,其优点是在不需要存储器及模数转换器的情况下,由HR7P194进行独立控制;此外LD3320是一款自定义关键词进行识别的芯片,用户语音操作便捷。
2.4 液晶显示系统
相较于其他显示方式液晶显示具有显示便捷、功耗小、使用寿命长的优势[4],基于液晶显示的优点文章采用LCD128*64液晶显示屏。LCD128*64这种通用模块其优点主要在能够显示文字、数字、字母及图形。利用该模块主要显示语音识别出的命令、处理器发出的控制指令及系统状态,同时利用其可以显示图形的特点,可以模拟显示人的声音动态波形,科技感更强。
3 系统软件设计
主程序开始先对包括单片机在内的所有元件进行初始化[4],包括单片机控制模块初始化、语音识别模块初始化、液晶显示模块初始化、控制执行模块初始化。初始化之后进行语音识别,通过对LD3320读写芯片的控制,获取语音命令,根据识别情况判断是否调用相应的子程序并进行数据处理,最后控制继电器和液晶显示。
4 系统测试
系统硬件实验平台设计、组装调试好后,通过东软载波单片机开发工具HR10M将程序下载到HR7P194单片机中。然后分别在一个没有噪音室内环境中和具有一定噪音的室外环境中进行语音训练。通过训练后分别在两种环境中进行测试:通过5人分别说出“开灯”“关灯”等命令来进行验证。实验结果为:语音识别系统对5种不同的声音均可良好的识别并做出相应的动作,在外界环境良好的状况下(无噪音的情况下),识别效率在92%以上;在具有一定噪音的室外环境中,识别效率有所降低,在85%以上。
经过长期、多次测试结果表明:本系统能够识别语音信息,识别效率高、性能稳定,适合智能家居环境的语音交互系统。
5 结束语
文章所构建基于HR7P194单片机和LD3320芯片的智能家居语音识别系统,能够有效地识别人的声音,实现语音控制电灯开关、风扇转速、电视及热水器等家用电器,同时东软载波单片机具有非常良好的稳定性,在后期产品稳定性测试中发挥重要作用。
参考文献
[1]陈涛,高必梵,艾菊梅.语音识别技术在智能家居控制系统中的应用研究[J].电子质量,2015(3):1-3.
[2]语音识别技术新热点――语音识别专用芯片[J].世界电子元器件,2002(2):26-27.
【关键词】手指静脉识别 门禁系y 设计
1 前言
手指静脉识别技术是一种新的生物特征识别技术,依据人类手指中流动的血液可吸收特定波长光线的原理,得到手指静脉的清晰图像。利用这一固有的科学特征,将实现对获取的影像进行分析、处理,从而得到手指静脉的生物特征,再将得到的手指静脉特征信息与注册样本的手指静脉特征进行提取比对,从而确认身份的真实性。由于必须是具有一定血压的活体才能采集到血管结构特征,真正的活体生物特征;静脉血管人人具有,适应范围广,据研究结果表明,只有0.01%的人识别率偏低,几乎人人可用。
两者的有机结合,势必会有效提高银行金融系统的安全方法等级,给人员安全管理带来很大的便利性。
2 系统概述
联网型门禁系统是最典型、功能强大的门禁管理系统,系统由专用以太网门禁控制器、指静脉仪、电锁、门磁、红外、烟感、出门按纽、网络转换器、联动报警系统、管理软件、计算机及配套设备组成,还可实现声音提示、监控联动等功能。
智能门禁管理系统将指静脉识别与电控锁有机地结合起来,进而由指静脉替代钥匙,配合上位机管理软件,联动监控系统,实行智能化管理,有效地解决了传统门锁的多种不足,其拓展功能――人力资源的管理更是给人们带来意想不到的方便。
3 系统工作流程
通道AB门双门互锁门禁点位于现金营业厅工作场所进出通道,两扇门的中间是一个通道,要求双门互锁联动。A门外(受保护区域外)安装一台HJ-300A指静脉终端,A门内安装出门按钮,B门内安装一台HJ-300A指静脉终端,B门外安装出门按钮。打开A门进入通道,必须把A门关好,才能打开B门通行,如果此时A门没关闭好,便无法打开B门,防止犯罪分子尾随等,为区域内安全提供了更高一级的保障。门禁控制器可通过TCP/IP局域网或RS485网络与管理工作站联网。
在各分行设置加钞间门禁点,中心网点可对各分行加钞间门禁点进行监控、远程开门、禁止开门等操作,以及开门权限的设置等。可实现本地“N+1确认(按指静脉、刷卡或密码随意组合)开门”、本地确认中心软件远程开门、本地红外等探测器联动报警、DVR联动控制、语音提示、遭遇胁迫时开门同时报警等等功能。
系统提供专门为银行门禁设计的CHD802D1CP银行加钞间门禁控制器,该控制器可实现多人权限开门功能,即需要多个按指静脉及密码且均为合法才能开门,该开门方式更适于银行高安全区域的管理方式,开门时必须有多名员工或多名员工以及一名高级管理人员同时在场,防止了银行内部个别人员利用职务之便进行犯罪行为。
门外安装指静脉识别仪(读卡器)、门上安装电控锁、门内安装出门按钮,门内门外均在门的上方合适位置安装扬声器,控制器与语音驱动板、电源等设备则放置于一专用铁盒内安装于门内墙上或隐蔽处。
4 系统手指静脉识别终端参数表
作为银行门禁系统中的重要组成部分,我们设计的手指静脉识别终端的参数如表1所示。
5 结论
本设计方案很好的融合了最新的生物特征识别技术与金融安防系统,有效的提高了安全防范级别,为诸如金库、监狱等重要机构提供了参考依据。
参考文献
[1]KONO M,UEKI H,UMEMURA S I.A flew method for the identification of individuals by using of vein pattern matching of a finger[C]Fifteenth Symposium on Pattern Measurement,2014:9-12.
[2]管风旭.王科俊.基于自动调光功能的手指静脉图像采集系统[J].电子技术应用,2013,36(10):120-123
关键词 机器人 语音识别 声学模型 语音特征参数
中图分类号:TP242 文献标识码:A
1语音识别技术的研究意义
人们使用的声音语言是一种人在特定高度思维和意识活动下的产品。语言是人类最直接以及最理想的交流方式,也是人机通信是最方便的方式。在机器人发展的高级发展阶段中,机器人的智能语音识别与人类的活动是密切相关的,有声语言的人机交互信息成为重要的手段。例如,语音识别获取外界信息很自然,没有特殊的训练方法,随着机器人技术的发展和广泛应用,有越来越多的机会来接触人类和机器人,所以人们希望通过语音识别和机器人去处理,不管谁能能准确安全,方便地操纵机器人。机器人和人类之间的信息交互,表现在两个方面,一是对更高层次的机器人操作,方便软件的设计开发,这种多为教学机器人,另一种是在实际操作的要求下完成信息交互任务的机器人。智能机器人作为机器人技术发展的高级阶段,其发展趋势是:不仅要求机器人具有高度的自治能力,还要使机器人和人类之间的协调也具有一定的智能性。这就要求机器人具有不同的高性能主动做事能力,而不是被动地接受任务,为了实现这一目标,自然语言作为人机信息交换将发挥越来越重要的作用。目前,智能机器人已成为机器人研究领域的一个热点。工业机器人是智能机器人的一个重要研究领域。当今,工业机器人的发展方兴未艾,巨大的市场潜力,使真正的工业机器人的已经在市场上崭露头角,以满足人们日益增长的需求,我们不能没有一个高性能的语音识别系统。由于工业机器人是面向生产实际的需要,最好的工作方式是让机器人能顾听懂最常见的人类语言,完成指定的工作,并能与人交流。机器人语音识别是机器人研究领域中的语音识别应用,最终的目标是让机器人了解人们的口头语言,然后按照人们的命令来行动或反应,从而形成一个良好的人机对话系统。为了能够进一步推动智能机器人的开发应用,因此,在语音识别机器人的研究领域中,机器人语音识别系统是工业机器人的实际推广应用,具有重要的意义。
语音识别技术在智能机器人中的应用已经有很多年的历史,作为智能机器人的一个分支,工业机器人得到了迅速发展,工业机器人通过语音识别从工业噪声中提取有效的语音命令。为了实现机器人在一些特殊工业环境中工作的目的,机器人要能够识别命令意图。语音识别技术,可以实现人机对话,从而让机器能模仿人类完成所有工作的分配,使其在各行各业中能够得以应用。目前所面临的实际问题是:噪声和干扰环境下对大型工业机器人的语音识别有严重的影响。在机器人识别领域,工业环境中的实时性是一个非常重要的任务。机器人在工业环境下应用的听觉识别是使智能机器人发展速率低的瓶颈。
2语音识别系统的发展
2.1语音识别系统的发展方向
语音识别系统是基于一套应用软件系统的硬件平台和操作系统的一些。语音识别一般分为两个步骤。第一步是学习或培训。这一阶段的任务是建立基本单元的声学模型来进行识别和模型的语音语法分析等。第二步是识别或测试。根据识别系统的类型可以满足一个识别方法的要求,使用语音分析的方法来分析语音特征参数,并建立了比较和测量系统模型,根据一定的标准,鉴定结果。
语音识别系统的应用可分为两个发展方向,其中一个是大词汇连续语音识别系统,主要应用于计算机的听写机,以及结合电话网或互联网的语音信息服务系统,这些系统是在计算机平台上的一个重要发展方向。其次是应用的小型化,便携式音频产品,如无线移动电话的拨号,语音控制车载设备,智能玩具,家用电器和其他方面的应用的远程控制,这些应用系统大多采用特殊的硬件系统来实现,特别是语音信号处理芯片和语音识别芯片,最近几年快速发展,为其广泛应用创造了极为有利的条件。
2.2语音识别系统的模型与模式
语音识别系统的核心是声学模型和模式分类。首先通过学习算法,训练语音声学模型的特点是通过学习过程来生成声学模型,这是识别潜在的模型的前提,是最关键的语音识别系统的一部分。声学模型的目的是提供一种有效的方法来计算特征向量的声音序列和每个发音模板之间的距离。人的发音在每一刻发音之前和之后都会受到影响。
为了模仿自然连续的协同发音和识别不同的发音,通常需要使用复杂的声学模型。声学模型和语言的发音特点的设计是密切相关的。声学模型单元大小与单词发音,音节模式和音位语音训练数据大小有关,故要求其系统识别具有很大的灵活性。大词汇量语音识别系统,通常采用较小的单元和少量的计算,该模型只有较小的存储容量,减少训练数据的数量,但相应的声音定位和分割问题就显得更加困难,规则识别模型变得越来越复杂。通常大型模型中识别单元包括协同发音,这有利于提高系统的识别率,但训练数据也相对增加。必须根据不同语言的特点来识别词汇,词汇量大小决定单位大小。
参考文献
关键词:孤立词识别 免疫粒子群优化 LBG算法 DHMM
中图分类号:TN912.34 文献标识码:A 文章编号:1007-9416(2013)01-0111-03
语音识别是一项极具魅力且大有作为的新兴技术,其涉及语音语言学、生理心理学、信号处理及计算机科学等众多学科。该技术的目标主要是利用人机接口来实现人与机器的直接对话,并能够使机器根据人的语音执行各种相应的命令。作为语音识别的一个分支,孤立词语音识别已广泛应用于移动通信中的查询和语音拨号、汽车导航中的语音控制、语音检索等[1][2],具有重要的理论研究意义和实际应用价值。
然而,很多应用产品的效果仍不够理想,如识别率低、语音库词汇量少、识别速度慢等都严重制约着语音识别技术在生产生活中的推广应用。目前,语音识别中运用较多的是隐马尔科夫模型(HMM)、矢量量化(VQ)、动态时间规整(DTW)、人工神经网络(ANN)以及支持向量机(SVM)等方法[3]。其中,HMM和VQ在孤立词语音识别中应用较为成功。
在HMM的孤立词识别系统中,首先是提取用于训练的语音特征矢量,然后对其进行矢量量化。矢量量化中,用LBG算法训练得出矢量量化器,再用矢量量化器量化训练参数。最后,训练参数进入HMM语音识别系统中进行训练识别。但是,经典的LBG算法对初始码书的选取较为敏感,易陷入局部最优[4]。因此,本文运用免疫粒子群优化(IPSO)算法改进LBG初始码书设计,并通过HMM语音识别系统进行实验测试。实验结果证明,该方法极大的提高了系统的识别率,具有一定的可行性。
1 DHMM孤立词语音识别方法
隐马尔可夫模型作为一种语音信号处理中广泛运用的统计模型,可实现双重随机过程[5],既可以描述直接观测到的信号瞬态特征,又可以描述隐含在观测序列中的动态特征。HMM分为离散HMM(DHMM)、半连续HMM(SCHMM)和连续HMM(CHMM)三种[6]。本文中侧重孤立词语音识别研究,鉴于DHMM输出离散分布概率,实现时所需的计算量以及存储量都较小,因此选用DHMM模型(图1)。
DHMM语音识别的系统框图如图1所示。假设为一个观察序列,为HMM参数组,DHMM语音识别过程需要进行如下三步:(1)给定模型的条件下,计算得出观测序列的概率;(2)选择一个最优的状态序列来表达观测序列;(3)通过调整模型参数,以使最大。
在DHMM孤立词语音识别中,要计算观测序列对模型的概率,可以使用Baum-Welch算法和Viterbi算法[7]。Baum-Welch算法用于计算所有可能状态序列所对应概率,Viterbi算法用于计算最大似然状态序列对应的概率。它们均是动态匹配过程,计算观测序列与模型之间的最佳匹配,两种算法具有几乎相同的计算量。但是Viterbi算法能将浮点乘法转为定点加法,还能将概率对数化,从而能够提高识别的速度。本文的DHMM的语音识别系统采用Viterbi算法来进行识别。
2 免疫粒子群优化(IPSO)算法
Kennedy和Eberhart通过研究鸟群捕食行为,在1995开发了一种仿生进化算法——粒子群优化(PSO)算法[8]。PSO算法和其他优化算法相似,运用群体进化的方式,假设单个粒子无体积无重量,以一定速度在搜索空间中飞行。根据自身及群体的飞行经验,空间中的粒子不断调整自身的飞行速度,通过调节并改变飞行方向和距离,在空间中根据最优粒子的位置进行搜索,经过不断迭代获得最优解。
在PSO算法中,假设一个D维搜索空间,群体由N个粒子组成。在聚类过程中,先对这群粒子随机初始化。在迭代过程中,通过跟踪个体最优值和全局最优值的变化,每个粒子不断更新自己的位置及速度。设第个粒子的速度为,第个粒子的位置为,则粒子优化计算如下式:
(1)
(2)
式中,、是对应的学习因子,取值通常为2,和取[0,1]间的随机数,代表惯性权重,其取值将影响算法的收敛性,取值太大会导致算法不收敛,因此权重大小的选择很重要。
设第个粒子为最优位置,在求解最小化问题时,目标函数值越小,则适应度就越好,则个体最优值:
(3)
设目标函数为,为所有粒子搜索到的位置最优值,则有全局最优值:
(4)
式中,、、和分别表示第次迭代过程中,粒子在第维的速度、位置、个体最优位置和整个种群的全局最优位置。在进化的过程中,为了避免粒子飞出搜索空间外,通常取值为,取值为,则将有,。
PSO虽然算法简单,实现容易,但仍存在一定缺陷。PSO算法的各种参数值往往是通过经验来确定,其很难保证种群的多样性,算法容易陷入早熟。因此,本文设计了免疫粒子群算法(IPSO)。通过将免疫记忆、免疫调节及接种疫苗等处理机制[9]运用到PSO算法中,每个粒子都作为一个抗体,使算法有了全局收敛能力,避免陷入早熟,提高了粒子群的多样性和收敛速度。
在本文中,将每次迭代生成的最优粒子作为记忆细胞保存起来,当部分粒子适应度较低,不合要求时用记忆细胞来代替,从而加快搜索速度。在粒子群更新的过程中,本文利用免疫系统的调节作用,当抗体(即粒子)的浓度增高时,系统对其进行抑制的作用就增大,选择的概率就减小;反之,选择的概率增大。这样就可保证粒子具有多样性。
通过下式可计算第个粒子的浓度为:
(5)
通过式(5)可计算第个粒子浓度的选择概率为:
(6)
其中,表示第个粒子的适应度函数值。从公式(6)可以看出,与粒子相似的粒子数量越多,粒子被选择的概率就越小;反之,粒子被选择的概率就越大。
3 基于IPSO算法的码书设计
3.1 参数设计
LBG算法是经典的码书设计方法[10],但LBG中初始码书的好坏对码书收敛的速度和最终码书的性能都会产生很大的影响。因此,本文充分利用IPSO算法的全局搜索性能,将每个粒子看作一个码书,经过聚类、迭代得出最优解,然后将最优解作为初始码书,再用LBG算法优化得到最优码书。
本文所用免疫粒子群改进LBG算法中参数的设计为:粒子群规模;新增粒子数;粒子维数;最大迭代计算次数;学习因子;惯性权重及适应度函数分别通过公式(7)及公式(8)进行计算。
(7)
式中,为惯性因子最大值,取值为1.0,为惯性因子最小值,取值为0.4,为迭代次数,为最大迭代代数。
(8)
其中,表示第个聚类中心,为属于第个聚类中心的数据集合,为聚类类别数。适应度越小,说明聚类越紧凑,码书性能越好。
3.2 码书设计
基于IPSO的码书设计算法的具体步骤为:
步骤1:种群初始化。随机地从语音库训练矢量集中选取D个矢量作为一个粒子(即码书),矢量的维数为,反复进行N次得到N个粒子,初始化粒子的速度,位置。
步骤2:计算各个粒子的适应度值,对个体最优值和全局最优值进行更新,将作为免疫记忆粒子保存。
步骤3:根据公式(1),(2)对粒子当前速度和所在位置进行进化计算。
步骤4:随机产生个粒子,形成新的粒子群。
步骤5:对N+M个粒子的浓度选择概率通过公式(6)进行计算,将概率大的个粒子选出,进入下一代。
步骤6:选取为疫苗,随机确定一段基因,将步骤5中选出的粒子与疫苗对应的基因进行替换。
步骤7:计算被替换粒子的适应度值,与父代进行比较,若不如父代,则取消接种,反之保留该粒子,形成新的粒子群。
步骤8:对每一个粒子(即码书)按照最近邻法则,重新确定聚类划分,计算出新的聚类中心,形成新码书。
步骤9:当计算达到最大迭代次数就结束,否则,跳转至步骤2后重复进行。
4 实验仿真分析
4.1 实验建立
孤立词语音识别仿真实验需要语音特征提取、矢量量化、模型训练及识别测试4步:
首先,分帧提取待训练和识别的语音信号特征参数,每帧为一个矢量,构成矢量序列。本文采用过零峰值幅度(ZCPA)语音特征,形成1024维特征矢量。
其次,对高数据率矢量序列进行矢量量化。本文通过IPSO改进LBG算法来形成矢量量化器,将训练数据库中10人在不同噪声、不同词汇量下的语音特征矢量量化形成相应码书。
第三,将上步得到的码书输入到DHMM模型的孤立词语音识别系统中,采用5状态单词模型,27个样本训练一个单词,将每个单词运用Baum-Welch算法训练成一个模板。
第四,运用矢量量化器对待测试的8个人在不同噪声、不同词汇量下形成的数据进行矢量量化,形成测试码书。然后用Viterbi算法得到测试语音数据与上步形成的模板所匹配的概率,最大概率值极为识别结果。
4.2 仿真分析
本文通过C++语言编程,在PC机上建立基于过零峰值幅度语音特征的IPSO-LBG改进DHMM的孤立词识别系统。实验中选用在不同高斯白噪声条件下(包含15dB、20dB、25dB、30dB和无噪音),18个人都分别采集10词、20词、30词、40词、50词,每人每个词发音三次,形成实验语音数据,其中10人的语音数据作为训练数据库,另外8个人的语音数据作为识别数据库。这样,通过PC机编程仿真,得到了不同噪声和词汇量下的基于免疫粒子群优化LBG算法的DHMM语音识别结果。
表1所示为在不同词汇量和不同SNR下,分别基于LBG算法和IPSO-LBG算法的DHMM在语音识别实验中的识别结果。从表中可以看出,基于IPSO-LBG算法的识别率在不同词汇量和不同信噪比下都比基于LBG的高,正确识别的词汇量也增多,这说明IPSO-LBG算法跳出了局部最优值,提高了系统的识别性能,尤其在大词汇量的语音识别中表现出更加明显的优势。
(图2)和(图3)分别是基于LBG、IPSO-LBG两种算法的DHMM语音识别系统在不同词汇量下的平均识别率柱状图和在不同信噪比下平均识别率的柱状图。从两图中可以看出,在不同词汇量下识别率都有所提高,且随着词汇量的增多,识别率的提高也加快。在不同的信噪比条件下,识别率的提高速度差不多,在无噪声的情况下识别率最好,系统的抗噪性能还有待提高。总体上验证了基于IPSO-LBG算法的语音识别系统的有效性。
5 结语
本文将免疫粒子群算法运用到码书设计中,设计了IPSO-LBG算法,并将IPSO-LBG算法用于DHMM孤立词语音识别系统中,并给出了实验的结果及分析。通过与基于传统LBG算法的DHMM孤立词语音识别系统相比,证明了IPSO优化的识别系统有较好的识别率,对今后孤立词语音识别研究具有重要的借鉴作用。
参考文献
[1]袁里驰.基于改进的隐马尔科夫模型的语音识别方法[J].中南大学学报(自然科学版),2008,06:1303-1308.
[2]M. Benzeghiba, R. De Mori, O. Deroo, S. Dupont. Automatic speech recognition and speech variability: A review[J].Speech Communication,2007,49(10):763–786.
[3]任杰.语音识别技术概述[J].大众科技,2010,08:21.
[4]王社国,魏艳娜.基于遗传算法的VQ码本设计及语音识别[J].计算机工程与应用,2007,17:71-73.
[5]A-V.I. Rosti, M.J.F. Gales. Factor analyzed hidden Markov models for speech recognition[J].Computer Speech and Language,2004,18(2):181-200.
[6]高清伦,谭月辉,王嘉祯.基于离散隐马尔科夫模型的语音识别技术[J].河北省科学院学报,2007,02:8-11.
[7]于倩,李春利.自适应矢量量化在语音识别中的应用[J].现代电子技术,2007,06:128-130.
[8]陈立伟,宋宪晨,章东升,杨洪利.一种基于优化小波神经网络的语音识别[J].应用科技,2008,02:17-20.
关键词:嵌入式系统;语音识别;隐马尔可夫;智能家居
中图分类号:TP316.9
文献标识码:A
DOI:10.3969/j.issn.1003-6970.2015.07.021
0 引言
随着计算机的发展,智能家居在近几年也得到了大家的重视,智能家居利用各种通信、网络技术实现家居设备集成,为用户提供了更加舒适高效的环境。近几年人们对智能家居的便利程度提出了更高的要求,同时语音识别技术也进一步的发展,但是语音在智能家居中的应用还是相对较少,一般还要依靠遥控、手机等中控设备。语言是信息交流的重要手段,语音识别可以用声音来控制设备完成一些特定的命令,减少用户如手机,遥控等中控设备的依赖,使生活更加方便。
本文通过对语音识别技术与嵌入式控制技术的研究,用语音命令实现直接管控从而可以取代以往利用手机或者遥控方式来控制的方法,方便操作而又能提高效率。本系统基于NL6621板与语音芯片VS1003实现语音采集,并采用当今语音识别领域的主流技术一一隐马尔科夫模型(Hidden Markov Model,HMM)算法实现对人语音命令的识别主要是进行模型训练和匹配。实验证明在多个语音样本对系统的训练识别下,系统在非特定人、孤立词语识别上具有良好的效果。
1 语音识别与智能家居
1.1 语音识别技术
语音识别技术本质上是一种模式匹配识别的过程,是机器通过识别和理解过程把语音信号转变成相应的文本文件或命令的技术。根据模式匹配过程语音识别系统可以如下图表示。语音识别系统可以分为:特定人和非特定人的识别、独立词和连续词的识别等,无论哪种识别系统识别过程都主要包括了语音信号预处理、特征提取、训练等。分别通过对信号的预处理分析和计算建立模板,当对语音进行识别时,需要将输入的语音与系统中存放的语音进行比较从而得到识别结果。
1.2 语音识别算法
人的言语过程是一个双重随机过程。因为语音信号本身是一个可观察的序列,而它又是由大脑里的不可观察的、根据言语需要和语法知识状态选择所发出的音素(词、句)的参数流,大量实验表明,隐马尔可夫模型(HMM)的确可以非常精确地描述语音信号的产生过程。隐马尔可夫模型是对语音信号的时间序列结构建立统计模型,将之看作一个数学上的双重随机过程,采用HMM进行语音识别,实质上是一种概率运算,根据训练集数据计算得出模型参数后,测试集数据只需分别计算各模型的条件概率(Viterbi算法),取此概率最大者即为识别结果。一阶离散马尔可夫模型可表示为:有N个状态,Sl,S2... SN,存在一个离散的时间序列t=0,t=1…在每个时刻t,系统只能处于唯一一个状态qt,下一个时刻所处的状态是随机出现的,当前状态qt只与前面相邻的一个状态qt-l有关, 与其他状态无关,用表达式
HMM语音识别的一般过程:
1.前向后向算法计算
已知观测序列 和模型 ,如何有效的计算在给定模型条件下产生观测序列O的概率
2.Baum-Welch算法求出最优解 :
(1)初始化
(2)迭代计算
(3)最后计算
3.Viterbi算法解出最佳状态转移序列:
已知观测序列 和模型 ,如何选择在某种意义上最佳的状态序列。
(1)初始化
(2)迭代计算:
4.根据最佳状态序列对应的九给出候选音节或声韵母
5.通过语言模型形成词和句子
2 基于NL6621嵌入式硬件设计
语音识别的硬件平台主要包括中央处理器NL6621,可读写存储器,声卡芯片vs1003以及一些设备,硬件体系结构如图2所示。
主系统使用新岸线公司的NL6621。MCU采用的最高主频为160MHz,支持802.llb/g/n/i/e/p和Wi-Fidirect,BSS STA,软AP,WiFi保护设置以及WMM-PS和WPA/WPA2安全协议。codec芯片是vs1003,它与核心控制器NL6621的数据通信是通过SPI总线方式进行的。它集成了麦克风输入接口,音频输出接口,对话筒输入或者线路输入进行IMA ADPCM编码,能有效的接受和播放音频信息。
硬件电路实现:VS1003通过xCS、xDCS引脚的置高或低来确认是哪一个接口处于传送状态。通过串行命令接口(SCI)和串行数据接口(SDI)来接收NL6621的控制命令和数据,通过SCI HDAT1来获取语音流;VS1003的功能控制,如初始化、软复位、暂停、音量控制、播放时间的读取等,均是通过SCI口写入特定寄存器实现的。两条SCI指令之间要通过DREQ引脚信号判断上一次处理是否完成。
3 基于NL6621嵌入式软件设计
软件设计主要包括两部分实现软件控制嵌入式系统和基于HMM技术的语音识别算法编写,基本的软件架构如图3所示。
针对嵌入式系统控制部分,包括硬件初始化以及采集音频信号。主要是使用NL6621提供的软件开发包,利用SDK编写应用程序,包括硬件管脚初始化,波特率匹配,录音文件配置,WiFi配置,录音,音频文件格式转化、程序编写完成后需要用烧写工具进行烧写。系统启动后,先初始化硬件模块。然后系统开始工作,通过语音输入设备MIC采集语音,并通过声卡VS1003输入语音。当系统监听到语音输入,开始语音识别,判断识别是否正确,若正确,将命令发送给执行设备,入耳不正确,给出相应
的错误提示,不执行语音命令。判断识别是否结束,如果结束则退出,否则继续下一轮的识别。基于HMM技术的语音识别算法编写,还包括了语音预处理,特征值提取和匹配识别的部分。主要的原理如图4所示,输入语音经过预处理后,语音信号的特征被提取出来,首先在此基础上建立所需的模板,这个建立模板的过程称为训练过程。根据语音识别整体模型,将输入的语音信号特征与存在的语音模板(参考模式)进行比较,找出一系列最优的与输入的语音相匹配的模板。然后,根据此模板号的定义,通过查表就可以给出计算机的识别结果。采用HMM进行语音识别,实质上是一种概率运算。根据训练集数据计算得出模型参数后,测试集数据只需分别计算各模型的条件概率(Viterbi算法),取此概率最大者即为识别结果。除训练时需运算量较大外,识别时的运算量仅有模式匹配法的几分之一。
[关键词]语音识别;频谱归一化;三音素;状态绑定;
[中图分类号]G71 [文献标识码]A [文章编号]1672-5158(2013)06-0325-02
目前,现已发行的HTK稳定版是3.4。本系统即是在其基础上来搭建。可以方便有效的建立及操作HMM。HMM已经被广泛地应用在了诸多的科研领域,比如AI(Artificial Intelligence,人工智能)和生物工程,HTK也主要针对智能语音技术的应用及研究而设计。
本系统是针对所有的中文词汇能够做识别,这种识别过程是基于三音素(Triphone)的自动拼接过程,因此,我们设计了一个词库,包含403个中文词汇,覆盖了所有的声韵拼接,并且我们借助HTK的辅助录音工具来采集足够的语音数据用于模型训练。此外,为能够使得识别系统能够针对不同的采样率做识别,又特别加入了一种采用率下采样(Downsampling)自动转换机制,以使得系统能够针对待识别语音做采用率自动转换识别的功能。
1 声韵母基元
1.1 模型基元定义
模型识别基元的选择对于语音识别率以及训练数据量的大小都有较大的影响。音素(Phoneme)、声韵母(Initial/Final)、音节(Syllable)、整词(Word)都是中文语音识别中常用到的建模单元,汉语中有409个无调音节和1300多个有调音节。
采用声韵母建立声学模型是相对比较合适的,特别说明本文中使用的问题集是基于语音学知识的。基于音素(Phoneme)的语音识别已经被广泛地应用在英文识别中并且取得了很好的识别性能。本文所采用的基元集是由37个韵母,24个声母和1个静音模型共同组成,参见(表1):
2 基于Triphones模型的自动拼词识别机制实现
2.1 原理介绍
首先解码原始音频数据进行识别,得到初步的单音素以及前后阶音素的关系,然后依据得到的这种上下文依赖关系,查找其对应的映射文件,进而确定相应的三音素模型。再根据这种声韵拼接信息,通过查找Triphone模型的上下文相关模型映射文件生成了最终的全词匹配结果。
2.2 实现过程
该模块旨在实现待识别词汇表的自动更新识别功能。整个识别过程是不需要重新训练的。之前已经完成了汉字转拼音的转换程序,在此基础之上又进—步实现了系统自动拼词的机制。其目的在于允许用户传送词汇表(并不在训练集当中),自动做拼接识别。
处理结束后,还要调用自动映射处理模块将用户传过来的新词汇表映射到已存在的词表当中,并相应的标出汉语,以便于在反馈用户结果的时候将拼音对应的汉语一并反馈给用户(图1)。
3 HTK上实现Downsampling自动转换机制
3.1 原理介绍
通过修改功能模块,我们将SSRC自动采样率的转换功能嵌套在HTK当中,实现了下采样的自动转换功能,前端采样自动检测准确与否,直接影响到语音识别系统的识别性能。
3.2 实现方法
该模块提供一种采样速率自动转换机制,用于提高最终的语音识别率。首先,我们需要引入一个新的开源工具包SSRC,其功能是实现采样率的自动转换。通过做SSRC使测试语音与训练时语音采样速率保持一致,也是优化识别系统整体识别性能的一种方法,进一步减少因为采样率不一致而导致的误识率(图2)。
整体的采样率自动转换功能模块参照下面步骤运行:
对从客户端采集到的声音文件进行初步的判断,采样率是否满足系统的要求,如果上图第一次判断走了“NO”分支,要接着进行SSRC的采样率自动转换,统一将从客户端采集到的声音文件的采样率标准化;然后,抽取相应的Mel频谱参数(MFCC),再将特征参数传人识别系统的核心模块Recognizer,得到识别结果。
4 实验结果
本实验采用的训练数据是由12个人借助HTK录音工具共同录制的包含4200个词条的语音库。测试数据集是由三个人采用平板电脑录制的30个连续发音词条(每人10条)。然后又通过CoolEdit工具[9]将其手工切分为彼此分离开来的词条,即每一个单独的词汇保存与一个独立的WAV文件中,然后对所有这些WAV片段做识别(表2)。
由上面结果容易看出,CMN可以大大提升识别系统的识别性能。倒谱均值归一化算法(CMN)对于语音识别系统抗噪声性能的提高十分有效。接下来,我们将测试语音经过SSRC做采样率自动转换,都同一转换为16KHz,然后将录音测试词(2/3)加入训练集。剩余1/3做集外测试,并重估参数,得出的实验结果如(表3):
①在未将测试词加入训练集,并作CMN,SSRC:识别结果18/28=68%
②将测试词加入训练集,并作CMN,SSRC处理:识别结果20/28=71%
③将测试词加入训练集,并作CMN处理,采样率按照初始(44100HZ),未作SSRc处理:识别结果很低,基本不能识别。另外,以上是针对原始音频格式wAV所做的识别结果。而对于3GPP音频文件的识别结果准确度却比较低(图4):
由以上实验结果可以看出,本识别系统对于3gpp格式的媒体文件尚不能够有很好的识别率,因此,综上所述本系统目前对3GPP格式的识别相对较低(39%),而对WAV格式的音频支持相对较好(71%)。