前言:一篇好文章的诞生,需要你不断地搜集资料、整理思路,本站小编为你收集了丰富的语音识别主题范文,仅供参考,欢迎阅读并收藏。
【关键词】语言识别;隐含马尔可夫模型
一、语言的实质
人们平时在说话时,脑子是一个信息源;人们的喉咙(声带),空气,就是如电线和光缆般的信道;听众耳朵的就是接收端(信宿),而听到的声音就是传送过来的信号;语言在这一过程中充当信息载体的角色,即消息。这就是人类通过语言交流的实质。
二、语音识别
语音识别是指从语音到文本的转换,即让计算机能够把人发出的有意义的话音变成书面子语言。通俗地说就是让机器能够听懂人说的话。所谓听懂,有两层意思,一是指把用户所说的话逐词逐句转换成文本;二是指正确理解语音中所包含的要求,作出正确的应答。
三、HMM原理
隐马尔可夫模型(HMM)可以用五个元素来描述,包括2个状态集合和3个概率矩阵:
1.隐含状态S
是马尔可夫模型中实际所隐含的状态,这些状态之间满足马尔可夫性质。这些状态通常无法通过直接观测而得到。
2.可观测状态O
在模型中与隐含状态相关联,可通过直接观测而得到,可观测状态的数目不一定要和隐含状态的数目一致。
3.初始状态概率矩阵π
表示隐含状态在初始时刻t=1的概率矩阵,(例如t=1时,P(S1)=p1、P(S2)=P2、P(S3)=p3,则初始状态概率矩阵 π=[p1 p2 p3].
4.隐含状态转移概率矩阵A。
描述了HMM模型中各个状态之间的转移概率。其中Aij = P( Sj | Si ),1≤i,,j≤N.
表示在 t 时刻、状态为 Si 的条件下,在 t+1 时刻状态是 Sj 的概率。
5.观测状态转移概率矩阵 B
令N代表隐含状态数目,M代表可观测状态数目,则:
Bij=P(Oi | Sj), 1≤i≤M,1≤j≤N.
表示在 t 时刻、隐含状态是 Sj 条件下,观察状态为Oi的概率。
总结:一般的,可以用λ=(A,B,π)三元组来简洁的表示一个隐马尔可夫模型。隐马尔可夫模型实际上是标准马尔可夫模型的扩展,添加了可观测状态集合和这些状态与隐含状态之间的概率关系。
当人们观测到语音信号o1,o2,o3时,要根据这组信号推测出发送的句子s1,s2,s3。显然,人们应该在所有可能的句子中找最有可能性的一个。用数学语言来描述,就是在已知o1,o2,o3,...的情况下,求使得条件概率:
P(s1,s2,s3,...|o1,o2,o3....)达到最大值的那个句子s1,s2,s3,...。例如,当人们听见(ni shi shui a),按经验、语言环境就能判断出对方所说的是“你是谁啊”的概率最大,而不是其他的句子。
四、HMM基本步骤
对HMM来说,有如下三个重要假设,尽管这些假设是不现实的。
假设1:马尔可夫假设(状态构成一阶马尔可夫链)
P(Xi | Xi-1…X1)=P(Xi | Xi-1)
假设2:不动性假设(状态与具体时间无关)
P(Xi+1 | Xi)=P(Xj+1 | Xj),?坌i,j
假设3:输出独立性假设(输出仅与当前状态有关)
P(O1,…,OT | X1,…,XT)=?装P(Ot | Xt)
隐藏的状态和可观察到的状态之间有一种概率上的关系,也就是说某种隐藏状态H被认为是某个可以观察的状态O1是有概率的,假设为 P(O1 | H)。如果可以观察的状态有3种,那么很显然 P(O1 | H)+P(O2 | H)+ P(O3 | H)=1。
这样,我们也可以得到一个另一个矩阵,称为混淆矩阵 (confusion matrix)。这个矩阵的内容是某个隐藏的状态被分别观察成几种不同的可以观察的状态的概率。
下图明确的表示出模型的演化,其中绿色的圆圈表示隐藏状态,紫色圆圈表示可观察到状态,箭头表示状态之间的依存概率,一个HMM可用一个5元组{N,M,π,A,B}表示,其中N表示隐藏状态的数量,我们要么知道确切的值,要么猜测该值,M表示可观测状态的数量,可以通过训练集获得,π={πi}为初始状态概率,A={aij}为隐藏状态的转移矩阵Pr(xt(i) | xt-1(j)),B={bik}表示某个时刻因隐藏状态而可观察的状态的概率,即混淆矩阵,Pr(ot(i) | xt(j))。在钐转移矩阵和混淆矩阵中的每个概率都是时间无关的,即当系统演化时,这些矩阵并不随时间改变。对于一个N和M固定的HMM来说,用λ={π,A,B}表示HMM参数。
在正常的马尔可夫模型中,状态对于观察者来说是直接可见的。这样状态的转换概率便是全部的参数。而在隐马尔可夫模型中,状态并不是直接可见的,但受状态影响的某些变量则是可见的。每一个状态在可能输出的符号上都有一概率分布。因此输出符号的序列能够透露出状态序列的一些信息。
五、向前向后算法
下面介绍前向后向算法的参数学习过程,在学习的过程中,不断更新HMM的参数,从而使得P(O | λ)最大。我们假设初始的 HMM 参数为λ={π,A,B},首先计算前向变量?琢和后向变量 ?茁,再根据刚刚介绍的公式计算期望?孜和ζ,最后,根据下面的3个重估计公式更新HMM参数。
参考文献:
关键词:语音识别;语音截止频率;最大似然线性回归;模型自适应
1 引言
在实际应用场合,语音识别系统往往会受到说话人的改变、信道失真、环境噪声等各种语音变异性的干扰,从而导致预先训练的声学模型与实际环境下提取的声学特征之间存在较大的差异。因而需要对声学模型或声学特征进行补偿,减小环境失配的影响,提高语音识别系统在实际环境下的识别性能。
模型自适应是一种减小环境失配的有效方法,它通过测试环境下的自适应数据调整预先训练的声学模型的参数,使之与当前环境相匹配。一般来说,声学模型包含较多的参数,如果每个参数都独立更新,则需要大量的自适应数据,这在实际应用中很难做到。因此,通常假设声学模型的若干个高斯单元共享同一个环境变换关系,将这些高斯单元的自适应数据合并,估计同一组变换参数。最大似然线性变换[1](MLLR: Maximum Likelihood Linear Regression)是一种常用的模型自适应算法,它假设测试环境声学模型与训练环境声学模型之间符合仿射变换关系,只需要通过仿射变换将训练环境声学模型每个高斯单元的均值和方差变换到测试环境,即可得到测试环境声学模型。
在谐波噪声模型中,语音可以分解为一系列正弦谐波与噪声的叠加。在大部分语音帧中,谐波仅仅分布在频谱的低频段,因此可以将语音的频谱划分为两个不同的部分:低频谐波部分和高频非周期部分,这两个部分的分界频率就称为语音截止频率。确定语音截止频率的主要方法有分析综合法、谱域方法和时域方法[2]。在大多数应用场合下,背景噪声是宽带的,它会同时影响语音的低频段和高频段。但在低频谐波部分,语音的能量一般远大于该频段的噪声能量,噪声的影响较小;而在高频非周期部分,语音的能量很小,更易受噪声影响,通常会被噪声覆盖。因而可以认为含噪语音的低频段是有用的语音谐波,而高频段主要是噪声信息。这样,在语音识别中,根据环境噪声的类型和信噪比,估计当前环境下的语音截止频率,仅用语音的低频谐波部分构建声学特征,可以得到更好的识别效果。
文章提出了一种基于语音截止频率的最大似然线性回归算法。在该算法中,首先从测试环境下的少量自适应数据中提取当前测试环境的语音截止频率,并用其作为频率上限,提取语音的特征参数;然后,将声学模型每个高斯单元的均值向量和协方差矩阵从倒谱域变换到对数谱域,根据语音截止频率,忽略高频分量,再变换回倒谱域;最后,根据测试环境下的少量自适应数据,利用MLLR算法对声学模型的参数进行调整,使其与当前环境相匹配。
2 基于语音截止频率的最大似然线性回归算法
2.1 训练过程
在训练阶段,首先用Mel滤波器组将语音的有效频谱划分为N个Mel频带,设第i个Mel频带的上限频率为fi,这N个上限频率即为语音截止频率的取值范围。然后,为每个语音单元的发音样本提取倒谱特征参数,训练生成该语音单元的声学模型。在语音识别中,声学模型一般为隐马尔可夫模型(HMM: Hidden Markov Model),其每个状态的概率密度函数用一个高斯混和模型(GMM: Gaussian Mixture Model)来描述。这些预先训练得到的声学模型可能与实际应用环境并不匹配,因此在测试阶段需要对其参数进行调整后,才能用于语音识别。
2.2 测试过程
2.2.1 确定语音截止频率
用谱域方法从测试环境下的少量自适应数据中提取测试语音频谱的截止频率,并将其映射到Mel频带的上限频率fi上,用与其最接近的Mel频带上限频率作为当前测试环境的语音截止频率。
2.2.2 特征提取
用当前测试环境的语音截止频率作为频率上限,提取测试语音的倒谱特征参数,即只保留截止频率以下的Mel频带,忽略其以上的Mel频带。特征提取的步骤包括:声学预处理、快速傅里叶变换、Mel滤波、取对数、离散余弦变换和时域差分。
2.2.3 高斯降维
因为在特征提取中根据语音截止频率对语音的特征参数进行了降维,为了与特征参数一致,声学模型每个高斯单元的均值向量与协方差矩阵也必须降维。将每个语音单元声学模型的均值向量和协方差矩阵从倒谱域变换到对数谱域,根据语音截止频率,忽略均值和方差的高频Mel分量,再变换回倒谱域,即可得到与测试环境特征参数的频率范围一致的声学模型。
2.2.4 模型变换
由于背景噪声、信道失真、说话人的改变等各种因素的影响,高斯降维后的声学模型可能与实际测试环境并不匹配,甚至相差很远。为了减小环境失配的影响,需要对声学模型的参数进一步调整。首先通过聚类算法将声学模型的高斯单元划分为若干类,假设每一类的全部高斯单元符合同一个仿射变换关系。然后,将每一类全部高斯单元的自适应数据合并,根据最大似然准则估计该类仿射变换的参数。得到变换参数后,对声学模型各类高斯单元的均值向量和协方差矩阵进行变换,即可得到测试环境声学模型。测试环境声学模型的状态初始概率分布、状态转移概率矩阵和高斯混和系数与训练环境声学模型一致。
2.2.5 语音识别
得到测试环境声学模型后,即可对当前测试环境下提取的特征参数进行声学解码,得到识别结果。
3 结束语
语音识别系统在实际应用中不可避免地要受到背景噪声的干扰,而噪声主要影响语音的高频非周期部分,因此在噪声环境下仅用语音频谱的低频谐波部分进行语音识别可以取得更好的识别效果。文章将语音截止频率用于声学模型的参数自适应,提出了一种基于语音截止频率的最大似然线性回归算法,从测试环境下的少量自适应数据中提取当前测试环境的语音截止频率,提取测试语音的特征参数,并将声学模型每个高斯单元的均值和方差从倒谱域变换到对数谱域,根据语音截止频率忽略其高频分量,再变换回倒谱域,然后利用MLLR算法对声学模型的参数进一步调整,得到测试环境声学模型。基于语音截止频率的最大似然线性回归算法优于传统的MLLR算法,在噪声补偿中具有更好的鲁棒性。
参考文献
关键词: 语音识别;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.
关键词:嵌入式系统;语音识别;隐马尔可夫;智能家居
中图分类号: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算法),取此概率最大者即为识别结果。除训练时需运算量较大外,识别时的运算量仅有模式匹配法的几分之一。
【关键词】语音识别;简单模板匹配;预处理;特征提取
1 语音识别技术原理
语音识别是为了让机器“懂”我们的语言,准确无误地识别出我们发出语音内容,并且做出符合语音内容的一系列动作,执行我们的意图。分析人类语言交流通信的过程,可以启发我们的研究思路。对人类语音通信流程[1-2]分析如图1。
由人类语音通信流程框图可以看出,人类发出语音过程如图左半部分,语音理解过程如图右半部分。语音识别包括两种含义,一是:将人类说的话转换成文字,二是:在充分理解口述语音的基础上,不仅仅是将语音转换为文字信息,而且对语音内容也要作出正确响应[3]。在此,本文认为语音识别和语音理解意义等同,所以可用图1右侧部分流程可将语音识别过程。
目前语音识别技术应用中大部分都是小词汇量,词语间相互独立基于简单模板匹配工作原理的识别模式。针对这种典型的语音识别模式,原理流程路线图[4]如图2所示:
1.1 基于发音模型的语音信号产生模型
语音信号的产生是语音识别技术的基石,在语音信号处理的大部分过程中对语音信号产生模型有很强的依赖性。本文研究过程中,首先对人类发音过程进行了解:人类发音流程是首先肺部收缩,迫使气流通过声门和声道引起音频震荡产生[3]。根据人的声道三种不同激励方式,分别对应产生了三种被大家熟知的发音类型,分别是浊音,摩擦音或清音,爆破音。
语音信号可看做由线性系统受到激励信号的激励输出产生。如图3是基于发音模型的语音信号产生模型流程图:
如图3建立的语音信号产生模型中认为浊音是周期为N0的冲激信号,且N0=fs/F0(其中F0是基音频率,fs是采样频率)。清音认为是一个均值为0,幅值是正态分布的波形信号。参数Av,Au分别用来调节浊音和清音的幅值。
从已有语音识别技术研究结果可知,窗函数类型众多,使用不同形式的窗函数对短时分析处理语音信号结果有很大的影响。已知目前应用最广泛的窗函数是汉明窗,结合仿真实验分析可以看出:高斯窗函数的横向主瓣宽度最小,但其纵向旁瓣高度最高;汉明窗函数的横向主瓣宽度最宽,纵向旁瓣高度是三种窗函数中最低的。
2.3 端点检测
语音信号的起始点是语音信号处理的关键分界点,端点检测的目的就是找到连续语音信号中的信号起始点。常用的端点检测方法有两种,分别是短时平均能量和短时过零率[6]。当下流行的端点检测方法是短时平均能量和短时过零率两者的结合,称这种方法为双门限端点检测算法[7]。
在实际问题中通常采用两者结合解决问题。本文同样是采用两者结合的方法,利用短时过零率方法检测语音信号波形穿越零电平的次数,既代表的是清音;用短时平均能量方法计算第y帧语音信号的短时平均能量E(y),既代表的是浊音,进而实现可靠的端点检测。
3 特征提取
目前特征是语音信号预处理中的重要步骤。在实际特征提取中,较常采用的参数是线性预测倒谱系数(LPCC)和Mel倒谱系数(MFCC)。二者采用的均是时域转换到倒谱域上,但是出发思路两者不同。线性预测倒谱系数(LPCC)以人类发声模型为基础,采用线性预测编码(LPC)技术求倒谱系数;Mel倒谱系数(MFCC)以人类听觉模型为基础,通过离散傅利叶变换(DFT)进行变换分析。
其中k表示第k个滤波器,Hm(k)表示第k个mel滤波器组,f(m)为中心频率,m=1,2,…K,K表示滤波器个数。
经过仿真实验分析比较,可以分析得出Mel倒谱系数(MFCC)参数较线性预测倒谱系数(LPCC)参数的优点,优点如下:
(1)语音低频信号是语音信息的聚集区,高频信号相对低频语音信号更容易受到周围环境等的干扰。Mel倒谱系数(MFCC)将线性频标转化为Mel频标,强调语音的低频信息,从而突出了有利于识别的信息,屏蔽了噪声的干扰[8]。LPCC参数是基于线性频标的,所以没有这一特点;
(2)MFCC参数无任何假设前提,在各种语音信号预处理情况下均可使用,但是LPCC参数首先假定所处理的语音信号是AR信号,对于动态特性较强的辅音,这个假设并不严格成立[8];
(3)MFCC参数提取过程中需要经过FFT变换,我们可以顺便获得语音信号频域上的全部信息,不需要多花费时间处理,有利于端点检测、语音分段等算法实现[8]。
4 训练与识别
训练和识别是语音识别的中心内容,有很多专家学者研究了一系列成果。语音识别实质是模式匹配的过程,而对分类器和分类决策的设计[9]又是模式匹配的核心。在现有的分类器设计[10-11]中,经常使用的有:动态时间规整(Dynamic Time Warping,DTW)分类器、基于人工神经网络(Artificial Neural Networks,ANN)分类器、基于高斯混合模型(GMM)分类器、基于Bayes规则的分类器、基于HMM分类器[12]等。
本文重点讨论语音信号预处理中技术及实现,对训练和识别技术不再做研究描述。
【参考文献】
[1]尹岩岩.基于语音识别与合成的低速率语音编码研究[D].上海师范大学,2013.
[2]伟伟.通信系统中语音质量评价的研究[D].北京邮电大学,2014.
[3]朱淑琴.语音识别系统关键技术研究[D].西安电子科技大学,2004.
[4]王伟臻.基于神经网络的语音识别研究[D].浙江大学,2008.
[5]钟林鹏.说话人识别系统中的语音信号处理技术研究[D].电子科技大学,2013.
[6]周刚,周萍,杨青.一种简单的噪声鲁棒性语音端点检测方法[J].测控技术,2015,(02):31-34.
[7]薛胜尧.基于改进型双门限语音端点检测算法的研究[J].电子设计工程,2015,(04):78-81.
[8]惠博.语音识别特征提取算法的研究及实现[D].西北大学,2008.
[9]张宁.基于决策树分类器的迁移学习研究[D].西安电子科技大学,2014.
[10]汪云云.结合先验知识的分类器设计研究[D].南京航空航天大学,2012.
关键词:SAPI;C#;.NET;语音识别
1 引言
语音识别是信息处理领域的一个重要方向,语音识别通常又可以分为两种工作方式:一种是连续语音听写,这种方式需要语音识别引擎对语音听写过程中上下文以及相同相似发音的词语进行分析、做出判断,实现难度较大。另一种是命令与控制方式(command and control),在此种方式下,语音识别引擎可以通过对简短的命令语音进行识别,以便执行相应操作。
语音识别技术基础是非常复杂的。正是如此,它获得了世界上著名的公司与研究机构的青睐,语音识别技术正经历着日新月异的改变,其中一些产品已经取得较好的效果,用户可以在上述产品基础之上进行二次开发。
2开发图片语音识别系统的条件
语音识别技术的发展涉及人机交互,自然语言处理,人工智能。这使开发人员难以从底层进行应用开发,欣慰的是一些公司与研究机构已经推出他们的研究成果,并且提供了供开发人员使用的开发平台与接口。其中影响比较大的有微软的SAPI、剑桥大学的HTK,IBM的via voice开发平台。本文采用微软的Speech SDK5.1开发包,它不仅是一个免费的开发包,同时提供对中文的支持。
2.1微软SAPI简介
微软的 Speech SDK是基于 C O M 的视窗操作系统开发工具包。这个 SDK中含有语音应用程序接口( SAPI )、微软连续语音识别引擎(MCSR)以及串联语音合成(又称文本到语音)引擎(TTS)等等。SAPI 中还包括对于低层控制和高度适应性的直接语音管理、训练向导、事件、 语法、 编译、资源、语音识别管理以及文本到语音管理,其结构如图 l 所示。
图1 SAPI结构
SAPI API在应用程序和语音引擎之间提供一个高级别的接口。SAPI实现了所有必需的对各种语音引擎的实时的控制和管理等低级别的细节。
SAPI引擎的两个基本类型是文本语音转换系统(TTS)和语音识别系统。TTS系统使用合成语音合成文本字符串和文件到声音音频流。语音识别技术转换人类的声音语音流到可读的文本字符串或者文件。
2.2 在.net应用程序中使用SAPI的准备
安装SAPI 5.1语音开发包。
由于SAPI基于Windows平台,通过COM接口供.net平台调用,所以具体调用方法为:新建工程,在此工程的解决方案中单击右键,在添加/引用中选择 Microsoft Speech Object Library,并在程序中添加对SAPI命名空间的引用:using SpeechLib。
3 系统模型设计及实现
3.1 创立系统界面
图2 系统界面一览
3.2 使用SAPI语音识别核心类
ISpRecognizer类是支持语音识别的核心类,主要用于访问MCSR实现语音识别。在进行语音识别时,微软Speech SDK 5.1 支持两种模式的语音识别引擎:共享(Share)和独享(InProc)。在本系统中,我们使用共享型语音识别引擎,CLSID_SpSharedRecognizer。
SpSharedRecoContext类是语音识别上下文接口,它可以发送与接收消息通知,通过CreateGrammar方法创建语法规则。通过对它的两个事件:_ISpeechRecoContextEvents_RecognitionEventHandler(ssrc_Recognition) ,_ISpeechRecoContextEvents_HypothesisEventHandler(Hypo_Event)的重写,我们可以很轻松的得到当前语音识别结果。第一个事件对应的就是识别结果显示:1、第二个事件对应的就是识别结果显示;2、ISpeechRecoGrammar类是语法规则接口,定义语音识别引擎需要是别的语音类容。起语法规则可以分为听写型与命令控制型。听写型可以识别大词汇量语音,但是别效率与识别准确率较低。命令控制型有针对性的对特定语音进行识别,在效率与准确率上都非常高。
当然一个ISpRecognizer不管是共享还是独享,都可以有多个RecoContext与其关联,而一个RecoContext也可以与多个ISpeechReco Grammar关联,每个ISpeechRecoGramma r识别各自规定的内容。
图3 语音识别类对应关系
3.3 编写系统核心代码
通过读入外部Grammar配置语音识别引擎,外部Grammar文件以xml文件格式存储。具体形式如下:
ManegePic.xml
玫瑰
大象
狮子
老虎
仙人掌
珠穆朗玛峰
布达拉宫
貂蝉
十字军
世界杯
阿里巴巴
乒乓球
五星红旗
……
采用命令控制型Grammar是为了使语音识别结果准确有效,定义外部Grammar是为了保持以后系统的可扩展性。对于新输入的图片,只要将图片名字加入到 图片名字
中即可。
开始语音输入事件:
private void btnStart_Click(object sender, EventArgs e)
{
ssrc = new SpSharedRecoContext();
srg = ssrc.CreateGrammar(1);
srg.CmdLoadFromFile(""ManegePic.xml"", SpeechLoadOption.SLODynamic);
//读入规则
ssrc.Recognition += new _Ispeec hRecoC ontextEvents_RecognitionventHandler(ssrc_Recognition);
//添加识别最终事件
ssrc.Hypothesis += new _IspeechRecoCon textEvents_HypothesisEventHandler(Hypo_Event);
//添加识别怀疑事件
srg.CmdSetRuleState(srg.Rules.Item(0).Name, SpeechRuleState.SGDSActive);
//激活规则
}
其中识别最终事件是系统在完整处理输入音频之后得到的最后识别结果,怀疑事件则是因为系统在处理过程中的最相似识别结果。这两个事件在一些环境之下得到的识别结果不同。
识别怀疑事件:
private void Hypo_Event(int StreamNumber, object StreamPosition, ISpeechRecoResult Result)
{
textBox2.Text = Result.PhraseInfo.GetText(0, -1, true);
}
将系统在处理过程中的最相似结果显示在textBox控件之中。
识别最终事件:
void ssrc_Recognition(int StreamNumber, object StreamPosition, SpeechRecognitionT ype RecognitionType, ISpeechRecoResult Result)
{
textBox1.Text = Result.PhraseInfo.GetT ext(0, -1, true);
// 将系统最终结果显示在textBox控件之中。
try
{
Picturebox1.image = Result.PhraseInf o.GetText(0, -1, true).tostring()+”.jpg”;
//显示识别结果的图片
}
Catch (Exception e)
{}
}
由于篇幅有限,这里仅仅给出了构建语音识别引擎与图片显示部分的代码。完 整的系统可以在Windows XP + vs2008环境中调试通过,实现基于.net和SAPI的图片语音识别系统。
4 结语
通过制作图片语音识别系统,对利用SAPI进行语音识别有了初步的研究和实践,该系统具有一定的扩展性,也可以作为子系统嵌入到其他系统之中。该系统的功能可以扩展到语音控制文件操作,比如打开/关闭文件,添加文件,可以制作一个不需要键盘鼠标只利用语音就可进行操作的软件系统。
参考文献:
[1] Microsoft Speech 5.1 SDK Help .Microsoft Corporation
关键词:语音识别;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会不停闪烁
}
【关键词】语音识别;TMS320VC5402DSP;Mel频率倒谱参数MFCC:DTW算法
1.引言
近年来,家居空调的语音智能控制已经成为一个非常活跃的研究领域,语音识别技术作为一种重要的人机交互手段,辅助甚至取代传统的遥控器,在智能控制领域有着广阔的发展前景。
语音识别是机器通过识别和理解过程把语音信号转变为相应的文件或命令的技术。随着DSP技术的快速发展及性能不断完善,基于DSP的语音识别算法得到了实现,并且在费用、功耗、速度、精确度和体积等方面有着PC机所不具备的优势,具有广阔的应用前景。
2.语音识别的基本原理
语音识别的过程是一个模式匹配的过程。首先根据语音特点建立语音模型,模型通常由声学模型和语言模型两部分组成,分别对应于语音到半音节概率的计算和半音节到字概率的计算。对输入的语音信号进行预处理后提取所需的语音特征,在此基础上建立语音识别所需的模板。在识别过程中,根据语音识别的整体模型,将输入的语音特征与已有的语音模板进行比较,找出最佳匹配对象作为识别结果。一般的语音处理流程如图1所示。
图1 语音识别系统的处理流程图
3.系统的硬件设计
通过对系统功能分析,最终确定系统由语音采集与输出模块、语音处理模块、程序数据存储器FLASH模块、数据存储器SRAM模块、系统时序逻辑控制CPLD模块、JTAG接口模块等组成,设计的框图如图2所示。
图2 语音识别系统的硬件结构框图
(1)语音采集与输出模块。该模块由高性能的立体声音频Codec芯片TLV320AIC23B来完成。模数、数模转换集成在一块芯片内,内置耳机输出放大器,支持MIC和LINE IN两种输入方式,输入和输出增益可编程设置。编程设置内部的11个16位寄存器可得所需的采样频率、输入输出增益和传输数据格式等。
(2)语音处理模块。采用TMS320VC5402 16位微处理器,处理速度快,最快运行速度可达100MIPS,功耗低,是一款理想的DSP处理器。作为系统的整个核心,其主要功能是接收来自A/D的数据,完成语音训练和语音识别。具有丰富的片内外设,主要包括通用I/O引脚、硬件定时器、软件可编程等待状态产生器、可编程块开关模块、增强型并行主机接口、两个多通道缓冲串口、时钟发生器、DMA控制器、JTAG接口,具有管理中断、循环运算和功能调用的控制结构。
(3)FLASH模块。由于TMS320VC5402片上没有FLASH且片内RAM只有16K,因此需要外扩外部存储器使其成为独立系统,这里选用了存储容量为256K的低功耗FLASH芯片SST39VF400B,RAM选用了64K SRAM CY7C1021。
(4)CPLD模块。用来对存储器的扩展实现逻辑译码,CPLD的供电电压和DSP相同为3.3V,并且可在线编程,方便修改译码逻辑。DSP的一些控制信号经过CPLD后输出了RAM和FLASH的片选及读写信号,从而实现DSP对FLASH与SRAM的读写操作。
(5)电源模块。电源设计的好坏直接影响到系统的稳定。这里选用了TI公司的TPS767D318电源方案,该芯片输入电压为+5V,输出3.3V和1.8V两路电压,能够很好的满足DSP系统的要求。
(6)空调控制器模块。该模块同传统的空调控制器,接收TMS320VC5402模块发来的功能控制命令,实现空调功能调整。
(7)电路模块。复位电路、时钟电路、串口电路和音频电路等。
4.系统的软件设计
信号采集为避免信号失真选用优质电容MIC作为输入音源。声音通过麦克风输入到语音信号处理板,通过TLV320AIC23B的A/D转换变成数字信号,经过DSP处理后通过D/A转换输出声音,然后对声音进行监测,并对采集的波形进行反复对比分析,以提取最佳的波形样本。程序设计流程图如图3所示。
图3 系统软件流程图
4.1 端点检测
语音的前端处理主要包括对语音采样、A/D变换、预加重、分帧、加窗和端点检测。端点检测是指从噪声中检测出说话人的语音命令,获得语音开始和结束的时间点。本系统采用短时平均幅度和短时过零率相结合的办法。在判断语音的起始点时,只要短时过零率或短时平均幅度有一个超出判决门限时,便开始保存信号,然后确定随后的几帧数据是否仍满足判决门限,这时才可以确定刚采集进来的数据是有效的,否则认为是噪声引起的,将重新进行起点的判定。语音信号的结束点采取过零率和幅度相结合的办法,如果语音信号的连续几帧的平均能量低于能量门限,那么就认为语音信号结束。
用于空调的常用命令控制词汇有:“开启”、“制冷”、“温度”、“睡眠”、数字“0~9”等,待识别的词汇范围相对较窄,较易识别,采用上述方法对空调命令的起止点判定达到了很好的效果,经多次反复试验,其准确率达98%。
4.2 特征参数提取
语音信号中含有非常丰富的信息,特征提取则可以去除冗余信息,以便用于后端模型的建立和匹配。语音识别中对特征参数的要求是:
(1)具有很好的区分性,能够有效地代表语音特征;
(2)各阶参数之间有良好的独立性;
(3)特征参数要计算方便,保证识别的实时实现。
现在较常用的特征参数有线性预测参数(LPCC)、Mel频率倒谱参数(MFCC)、线谱对(LSP)参数等。本文选择MFCC作为特征参数。它的核心思想是利用人耳的感知特性,在语音的频谱范围内设置若干个带通滤波器,每个滤波器具备三角或正弦滤波特性,计算相应滤波器组的信号能量,再通过DCT计算对应的倒谱系数,符合语音识别中对特征参数的要求。
MFCC求取主要步骤是:
(1)给每一帧语音加窗做FFT,取出幅度;
(2)将幅度和滤波器组中每一个三角滤波器进行Binning运算;
(3)求log,换算成对数率;
(4)从对数率的滤波器组幅度,使用DCT变换求出MFCC系数。
4.3 模板训练和语音识别
在识别系统后端,从已知模式中获取用以表征该模式本质特征的模型参数即形成模式库,再将输入的语音提取特征矢量参数后与已建立的声学模型进行相似度比较,同时根据一定的语法规则和判别规则决策出最终的识别结果。
目前语音识别中使用模板匹配技术比较常见的有隐马尔可夫模型(HMM)、人工神经元网络(ANN)和动态时间规整算法(DTW)。综合考虑到算法的复杂性和计算量的大小、算法在DSP系统实现的难易程度以及所需要的DSP资源,系统采用算法相对简单和计算量相对较小的DTW算法,并针对其存在的运算量大、识别性能严重依赖端点检测的精度、语音信号的时序动态信息没有被充分利用等问题加以改进。
DTW算法是把时间规整和距离测度计算结合起来的一种非线性规整技术,该算法基于动态规划的思想,解决了发音长短不一的模板匹配问题。算法原理是假设待测语音共有N帧矢量,参考模板共有M帧矢量,且N≠M,则动态时间规整就是寻找一个时间规整函数j=w(i),它将测试矢量的时间轴i非线性地映射到模板的时间轴j上,并使该函数w满足第N帧测试矢量和第M帧模板矢量之间的距离测度最小。通常规整函数w(i)被限制在一个平行四边形内,它的一条边的斜率为2,另一条边的斜率为1/2,规整函数的起始点为(1,1),终止点为(N,M)。
为了提高识别效率,本文对DTW算法的搜索宽度限制条件进行了改进。以局部约束路径为例,待测模板每前进一帧,对于点(I,j)只需用到其前一列(i-1,j),(i-1,j-1),(i-1,j-2)三点的累积距离,也就是j-1和j-2两行的累积距离。以此类推,整个过程中每一行的格点可以利用前两行格点的累积距离计算出该点的累积距离。在本系统应用中,DTW算法加入了一些搜索限制条件,实际的搜索范围基本上局限于对角线附近的带状区域。在识别的过程中,系统分配的存储空间是搜索宽度的3倍。
5.系统测试结果及误差分析
空调的语音识别系统在不同的环境中使用具有差异性,为了测试系统在复杂环境下的稳定性及识别率,进行两种测试:一是安静环境下的测试;二是复杂环境下的测试。
在实验室安静的环境下对男女声识别进行了测试。发音内容为常用的空调控制命令,录音时间大约长为1~1.5s,词语发音的时间大约为500~800ms,采样率为24KHz,帧长20ms,帧移10ms,其端点检测基本上能排除前面录音的无声段的噪音,识别率达到了96%以上,原DTW算法的识别时间是6~7s,而采用本文改进算法的识别时间减少到2~5s。因此,本文方法可以实现快速准确的简单语音识别。
当周围环境噪声较大,信噪比SNR<5dB时,识别率会有所下降。但是随着信噪比的不断增加,词汇错误率逐渐降低,并趋于稳定状态,系统的识别率保持在94%以上。实验证明,采用本系统,语音识别率高,且抗噪性能好,对复杂环境的适应性强。
录音过程中,本身含有较大的噪声,DSP程序中没有对语音信号作降噪处理,这是影响识别率的原因;另外,不同的人发同一个音的长度和强弱方面均有差异,这也是影响识别率的原因。
6.结论
该空调语音识别系统以TMS320VC5402DSP为核心处理器,采用Mel频率倒谱参数为语音特征,基于改进的DTW算法进行模式匹配,算法本身计算量小、速度快、识别率高,能够进行实时语音识别。此系统平台具有良好的实用性和稳定性,经实验测试表明,系统的特征数据传送稳定,压缩编码无明显失真,识别率达到94%以上,对特定人其识别率可达97%,达到了识别的要求。为取得更好的识别效果,今后应进一步优化系统算法。由于比传统键盘输入操作具有更多的优势,语音识别技术在未来的家居生活和商业应用会有更广阔的应用前景。
参考文献
[1]于志华.基于FPGA的实时固定语音识别系统研究与实现[D].信息工程大学,2013.
[2]斯芸芸.嵌入式语音识别系统的设计与实现[D].重庆大学,2012.
1、点击桌面实用工具文件夹选择语音助手,可以启动语音助手 。
2、设置语音助手的快捷方式,打开语音助手,点击右上角三个点的按钮设置勾选从主屏幕键上滑启动,设置成功之后,向上滑动菜单键可以快速启动语音助手。
(来源:文章屋网 )