一种语音控制准确率的调整方法及系统与流程

文档序号:17074722发布日期:2019-03-08 23:37阅读:539来源:国知局
一种语音控制准确率的调整方法及系统与流程

本发明涉及语音控制技术领域,尤其涉及一种语音控制方法和系统。



背景技术:

随着语音识别、人机交互技术的发展与成熟,越来越多的设备采用语音控制。被控设备通过语音采集装备,获取用户语音信号,与贮存的控制命令的语音资料作比对匹配,进行语音识别,解析后将指令发送至控制单元,控制设备进行相关操作。其中,语音识别的精度直接关系到了语音控制的准确率,但目前存在的主要问题是语音识别率不高,无法识别用户命令或错误识别用户命令,存在系统误操作的问题。

现有技术中语音识别系统基本由4部分构成:预处理、特征提取、模型库和模式匹配。系统框图如附图1所示语音信号经过处理得到的语音波形,首先需要进行预处理操作。预处理操作主要包括语音信号的预加重、信号的分帧、语音信号的加窗以及语音信号的端点检测;语音信号经过预处理后,接着要对语音信号的重要参数进行特征提取;特征提取后的信号经过训练与模型库中的数据进行匹配,最终得到语音识别的结果。

人工神经网络的研究一直是个热潮,因其非线性、自适应、鲁棒性及学习特性并且易于硬件实现等特点而受到人们的极大关注。对于语音信号的处理和识别,由于神经网络的结构与人耳耳蜗的层次和连接极其相似,因此神经网络模型的独特优点和超强的分类和映射能力能够充分借鉴和探索人的听觉神经机理,对神经网络和耳蜗模型互相结合的研究将是改进现有语音识别系统性能的重要方向。近些年,随着信号处理和机器学习领域的发展,语音识别研究已经取得了很大的成功,包括高斯混合模型、隐马尔可夫模型和深层神经网络等技术在内的方法已经获得很高的识别准确率。现阶段是语音识别研究的黄金时期,吸引了诸多科技公司和科研机构。国外像谷歌、微软、苹果等公司都相继推出了基于深度学习的语音识别服务,国内一批企业也纷纷跟进。

但目前的基于神经网络算法的语音识别算法也存在一些弊端。例如一个简单的问题通常需要几百倍甚至上千倍的迭代训练,要耗费大量的时间,网络训练时间长;再如局部极小值问题普遍存在于神经网络的优化过程中;在噪声环境下的性能却仍然不尽如人意,且现有算法针对不同噪声的效果差异很大;用户本身说话带有口音或者使用了方言、说话人本身的说话含糊或者不清楚等,也可能造成语音识别效果变差。



技术实现要素:

为解决上述影响语音识别率的问题,对此本发明提供一种语音控制准确率的调整方法和系统。本发明的技术方案:

一种语音控制准确率的调整方法,包括步骤:

s1:根据语音控制的特点,选择特定的神经网络模型,采集用户的语音信息经特征提取后对模型进行训练,使用已经训练好的参数对网络的权值初始化;根据控制系统的功能和控制需求,设置语音控制指令集;

s2:获得所在环境声音信号,将时域信号转化为频域信号,计算信号的能量谱;将信号的能量谱与背景噪声能量谱比较,判断是否存在用户语音控制信号输入;若存在用户语音控制信号输入,执行之后步骤;否则,继续监听环境声音信号;

s3:获取用户语音控制信号,对该信号执行预处理步骤,预处理步骤包括:抗混叠滤波步骤;预加重步骤;加窗分帧步骤和端点检测步骤;

s4:将预处理后的用户语音控制信号作为输入,经过特征提取后,送入训练好的神经网络中,得到分类的识别结果即用户的语音控制命令;

s5:判断该识别结果与系统预存的语音控制指令是否匹配,当用户语音控制命令与预存的控制指令匹配时,系统控制执行部件执行相应的控制操作;当用户语音控制命令与预存的控制命令不匹配时,计算语音控制准确率;

s6:当语音控制准确率低于预定值或用户启动调整过程时,系统进入准确率调整模式,执行步骤s7;否则,跳转到步骤s2;

s7:系统输出标准语段,提示用户跟读,系统采集用户语音输入,对模型进行训练;再次测量语音控制准确率,当准确率高于阈值时,结束调整过程;若准确率低于阈值,重复调整过程。

优选的,步骤s1和s7中对模型训练过程具体为:

设在t时刻,网络的输入向量为x(t),隐含向量是h(t),网络的输出向量是o(t)。用v表示输入层与隐含层之间的连接权值,u表示隐含层与隐含层之间的连接权值,w表示隐含层与输出层之间的连接权值,b和a分别表示隐含层和输出层的偏置;

hl(t)表示第l个样本在t时刻的隐含变量;ol(t)表示第l个样本在t时刻的输出变量;vl(t)表示第l个样本在t时刻输出层输出;ul(t)表示第l个样本在t时刻隐含层输出;δl(vl(t))表示第l个样本在t时刻输出层的误差反向信号变量;δl(ul(t))表示第l个样本在t时刻隐含层的误差反向信号向量,分别表示对权值w、v和u的偏导;分别表示对偏置a和b的偏导。首先随机初始化所有的权值和偏置,初始化

时间t从1到t正向传播,对第l个样本在t时刻的隐含变量和输出变量进行定义;在t=0时刻,定义隐含变量都为0,随着时间的展开,更新样本在t时刻的隐含变化量和输出变量;

hl(t)=f(ul(t))=f(vxl(t)+uhl(t-1)+b),(1≤t≤t);

ol(t)=g(ul(t))=f(whl(t)+a),随着时间t从t到1反向传播,计算第l个样本在t时刻输出层的误差反向信号变量和隐含层的误差反向信号变量,对权值w、v、u和偏置a、b的偏导进行更新;

δl(vl(t))=ol(t)-vl(t)·g'(vl(t))

δl(ul(t))=[(w)tδl(vl(t))]·f'(vl(t))

每次更新网络中的所有权值和偏置。

优选的,步骤s3对信号执行预处理步骤具体为:

抗混叠滤波步骤:设低通滤波器的截止频率为fc,它与采用频率fs的关系为:

预加重步骤:将语音信号通过一个预加重滤波器,其中预加重滤波器的传递函数公式如下:h(z)=1-az-1式中,a为预加重系数,是预加重前的语音信号,t(n)是经过预加重滤波器后得到的信号,其关系可用一阶差分方程表示如下:系数a取0.95;

加窗分帧步骤:将采集到的语音信号分为短时的语音片段进行分析,片段长度为10ms~30ms,为抑制分帧产生的gibbs效应,利用汉宁窗在语音信号上进行滑动将语音信号分成若干帧;

端点检测步骤:计算每帧信号的短时过零率和短时平均能量;设语音信号的前m帧为静音段,计算噪声的平均能量和平均过零率;分别为短时平均能量设置高低两个门限,给短时过零率设置一个阈值;用之前设置的高低门限确定语音信号的起始点和终止点,然后再用短时过零率进行修正。

优选的,步骤s4中特征提取步骤具体为:

对预处理后的语音信号进行fft变换得到频谱;对得到的频谱进行平方运算,再将得到的能量谱通过若干mel带通滤波器进行滤波;将信号通过mel滤波器后再对其取对数,获得相应的对数功率谱;最后再对得到的功率谱进行dct反离散余弦变换,即可得到mfcc特征提取系数,若对其做一阶和二阶差分,可以得到动态mfcc特征参数。

优选的,步骤s4中:

使用softmax分类器对语音输入信号进行概率判断,选取输出值最大的神经元所对应的类别作为分类的识别结果。

本发明还提供了一种语音控制准确率的调整系统,包括监听模块,预处理模块,语音识别模块,指令集存储模块,匹配模块,准确率调整模块,执行模块,其特征在于:

监听模块,用于获得所在环境声音信号,将时域信号转化为频域信号,计算信号的能量谱;将信号的能量谱与背景噪声能量谱比较,判断是否存在用户语音控制信号输入;若存在用户语音控制信号输入,执行之后步骤;否则,继续监听环境声音信号;

预处理模块,用于获取监听模块输入的用户语音控制信号,对该信号执行预处理操作,预处理模块包括:抗混叠滤波单元;预加重单元;加窗分帧单元和端点检测单元;

指令集存储模块,用于根据控制系统的功能和控制需求,设置语音控制指令集;

语音识别模块,用于在初始化阶段,根据语音控制的特点,选择特定的神经网络模型,采集用户的语音信息经特征提取后对模型进行训练,使用已经训练好的参数对网络的权值初始化;在识别阶段,将预处理后的用户语音控制信号作为输入,经过特征提取后,送入训练好的神经网络中,得到分类的识别结果即用户的语音控制命令;

匹配模块,用于判断上述识别结果与指令集存储模块预存的语音控制指令是否匹配,当用户语音控制命令与预存的控制指令匹配时,系统控制执行部件执行相应的控制操作;当用户语音控制命令与预存的控制命令不匹配时,计算语音控制准确率;

准确率调整模块,当语音控制准确率低于预定值或用户启动调整过程时,系统进入准确率调整模式,系统输出标准语段,提示用户跟读,系统采集用户语音输入,对模型进行训练;再次测量语音控制准确率,当准确率高于阈值时,结束调整过程;若准确率低于阈值,重复调整过程;

执行模块,用于控制执行部件执行相应的控制操作。

本发明还提供了一种语音控制系统,包括存储器、处理器和至少一个被存储在所述存储器中并被配置为由所述处理器执行的应用程序,其特征在于,所述应用程序被配置为用于执行权利要求1至5任一项所述的语音控制准确率的调整方法。

本发明还提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有语音控制程序,所述语音控制程序被处理器执行时,实现如权利要求1至5中任一项所述的语音控制准确率的调整方法。

本发明的有益效果:

1、本发明方法可以根据需要实时对模型进行训练,调整语音控制准确率,提高对受控设备控制的可靠性;本发明中语音识别算法收敛速度快,鲁棒性好,易于在数字处理器中实现。

2、本发明方法能够检测低信噪比下的语音信号,检测准确率高;即使用户口音含糊不清或没有说出标准的语音控制命令,系统也能准确的理解用户的真实意图,进而提高了语音控制的准确率和效率,提升了用户体验。

3、利用本发明中的改进神经网络模型,同时实现特征提取和分类功能,简化了处理流程,避免了需要根据不同语音特征设计聚类算法的缺点,并具有相位偏移不敏感性和良好的抗噪声性能。

附图说明

图1为现有技术中语音识别系统示意图;

图2为本发明的语音控制准确率的调整系统结构图;

图3为本发明的语音控制准确率的调整方法流程图;

图4为本发明的mfcc提取过程流程图;

具体实施方式

下面结合附图1-4对本发明作进一步的说明。

本发明中一种语音控制准确率的调整系统包括:监听模块1,预处理模块2,语音识别模块3,指令集存储模块4,匹配模块5,准确率调整模块6,执行模块7。

监听模块1,用于获得所在环境声音信号,将时域信号转化为频域信号,计算信号的能量谱;将信号的能量谱与背景噪声能量谱比较,判断是否存在用户语音控制信号输入;若存在用户语音控制信号输入,执行之后步骤;否则,继续监听环境声音信号;

预处理模块2,用于获取监听模块输入的用户语音控制信号,对该信号执行预处理步骤,预处理步骤包括:抗混叠滤波步骤;预加重步骤;加窗分帧步骤和端点检测步骤;

指令集存储模块3,用于根据控制系统的功能和控制需求,设置语音控制指令集;

语音识别模块4,初始化阶段,根据语音控制的特点,选择特定的神经网络模型,采集用户的语音信息经特征提取后对模型进行训练,使用已经训练好的参数对网络的权值初始化;识别阶段,将预处理后的用户语音控制信号作为输入,经过特征提取后,送入训练好的神经网络中,得到分类的识别结果即用户的语音控制命令;

匹配模块5,用于判断上述识别结果与指令集存储模块预存的语音控制指令是否匹配,当用户语音控制命令与预存的控制指令匹配时,系统控制执行部件执行相应的控制操作;当用户语音控制命令与预存的控制命令不匹配时,计算语音控制准确率;

准确率调整模块6,当语音控制准确率低于预定值或用户启动调整过程时,系统进入准确率调整模式,系统输出标准语段,提示用户跟读,系统采集用户语音输入,对模型进行训练;再次测量语音控制准确率,当准确率高于阈值时,结束调整过程;若准确率低于阈值,重复调整过程;

执行模块7,用于控制执行部件执行相应的控制操作。

本发明中一种语音控制准确率的调整方法,包括步骤:

s1:根据语音控制的特点,选择特定的神经网络模型,采集用户的语音信息经特征提取后对模型进行训练,使用已经训练好的参数对网络的权值初始化;根据控制系统的功能和控制需求,设置语音控制指令集;

s2:获得所在环境声音信号,将时域信号转化为频域信号,计算信号的能量谱;将信号的能量谱与背景噪声能量谱比较,判断是否存在用户语音控制信号输入;若存在用户语音控制信号输入,执行之后步骤;否则,继续监听环境声音信号;

s3:获取用户语音控制信号,对该信号执行预处理步骤,预处理步骤包括:抗混叠滤波步骤;预加重步骤;加窗分帧步骤和端点检测步骤;

s4:将预处理后的用户语音控制信号作为输入,经过特征提取后,送入训练好的神经网络中,得到分类的识别结果即用户的语音控制命令;

s5:判断该识别结果与系统预存的语音控制指令是否匹配,当用户语音控制命令与预存的控制指令匹配时,系统控制执行部件执行相应的控制操作;当用户语音控制命令与预存的控制命令不匹配时,计算语音控制准确率;

s6:当语音控制准确率低于预定值或用户启动调整过程时,系统进入准确率调整模式,执行步骤s7;否则,跳转到步骤s2;

s7:系统输出标准语段,提示用户跟读,系统采集用户语音输入,对模型进行训练;再次测量语音控制准确率,当准确率高于阈值时,结束调整过程;若准确率低于阈值,重复调整过程。

其中,抗混叠滤波步骤:在进行a/d信号转换过程中,当采样频率fs大于等于原始信号最高频率的2倍时,那么釆样之后所得到的数字信号能够完整地保留原始模拟信号的信息。如果不满足采样定理,那么高于采样频率一半的那些频率将被重建成低于采样频率一半的信号,在采样信号中有频谱重叠,出现频率混叠现象,这些采样信号将不能被完整恢复成原始信号。

在对模拟信号采样之前,先用一个低通滤波器滤除掉大于1/2fs的频率成份,这样可以有效地解决混叠现象。实际中采用的通频带为0~1/2fs的低通滤波器不可能既完全滤掉高于的1/2fs的分量又不衰减接近于1/2fs的有用分量,这是因为信号谱不是很规则的矩形截止的,并且由于时域的限制,高频分量的存在不可避免。实际仪器设计中,设低通滤波器的截止频率为fc,它与采用频率fs的关系为:在选择滤波器时,要求该滤波器的振幅较平坦、相位变化较缓慢、阻带的衰减性能足够强,同时为了能获得较大的频域分析范围,又不出现频谱混叠的现象,则希望过渡带要陡峭一些。

其中,语音信号的预加重步骤:将语音信号进行数字化处理之后,接下来就要进行预加重处理,因为高频部分是语音信号的有用部分,对语音信号进行预加重的目的就是过滤掉信号的低频部分以提升信号的高频部分,以得到平坦的频谱,便于后续对声道参数或频谱进行分析。进行预加重处理就是将信号通过一个预加重滤波器,其中预加重滤波器的传递函数公式如下:

h(z)=1-az-1

式中,a为预加重系数,是预加重前的语音信号,t(n)是经过预加重滤波器后得到的信号,其关系可用一阶差分方程表示如下:

通常系数a在0.9至1之间选取,如可取0.95。

其中,加窗分桢步骤:语音信号是典型的时变的非平稳信号,一般将语音信号分为一些短时的语音片段进行分析,通常情况下取10ms到30ms之间,在此时间段内将信号看作是平稳的,每个语音片段我们称其为一帧。为了保持连续性,避免各帧之间的变化过大,两帧之间需要有一部分重叠,称为帧移,实际应用时一般将帧移取为帧长的一半。一般要对语音信号进行加窗处理,其目的是为了抑制分帧产生gibbs效应。加窗处理时要用到窗函数,将其在语音信号上进行滑动将语音信号分成若干帧。加窗时,选择不同的窗函数将会出现不同的分析结果。选择窗函数时要考虑窗函数的形状和长度。矩形窗、汉宁窗和汉明窗等是目前用的最多的窗函数。

本发明中根据所采集的语音信号的特点,选择汉宁窗,

n为帧长,选择窗函数时要考虑窗函数的形状和长度,语音信号短时分析与窗函数的选择密切相关,在时域上,窗函数的形状和长度很重要,主瓣的宽窄与旁瓣的高低分别决定着频率分辨率和幅度分辨率的高低。窗函数在水平方向上越长,得到的信号就越平滑,但不易观察出信号的变化细节;长度越短,便得不到平滑的短时信号。所以要选择合适的窗函数长度。

其中,端点检测步骤:端点检测就是从带噪语音信号中找出语音的起点和终点,端点检测准确与否直接关系到语音系统识别性能的好坏。浊音有较高的短时能量,而清音信号有较高的短时过零率,所以本文将短时能量和短时过零率两种方法结合起来进行端点检测。具体实现步骤如下:1)分别计算每帧信号的短时过零率和短时平均能量;2)设语音信号的前m帧为静音段,计算噪声的平均能量和平均过零率;3)分别为短时平均能量设置高低两个门限,给短时过零率设置一个阈值;4)用在上面步骤中设置的高低门限确定语音信号的起始点和终止点,然后再用短时过零率进行修正。

其中,特征提取步骤:mel频率倒谱系数(mfcc,mel-frequencycepstrumcoefficient)是由davies和mermelstein提出的,是将人耳听觉感知特性与语音的产生相结合的一种特征参数,它比线性预测倒谱系数(lpcc)参数更适合对语音识别特征进行提取,目前mfcc参数已经得到广泛的应用。

人耳的感知能力随语音频率的不同而不同,在1khz以上时感知能力与频率大致呈对数关系,而在1000hz以下时近似成线性关系。mfcc系数在计算时是以“bark"为频率基准的,mel频标的表示式如下式:fmel=2595lg(1+f/700),式中f为线性频率,单位是hz,fmel为mel频标。

倒谱归一化是语音识别系统经常采用的一种特征级语音信号去噪方法。它的原理是在特征参数提取阶段,首先计算mfcc特性参数的均值,然后将每一帧mfcc特征参数都减去这一均值,即可去除因噪声干扰引起的特征偏差。

本发明中,mfcc的提取过程是:1)首先对预处理后的语音信号进行fft变换得到频谱。2)对得到的频谱进行平方运算,再将得到的能量谱通过若干mel带通滤波器进行滤波。3)将信号通过mel滤波器后再对其取对数,获得相应的对数功率谱。4)最后再对得到的功率谱进行dct反离散余弦变换,即可得到mfcc特征提取系数,若对其做一阶和二阶差分,可以得到动态mfcc特征参数。

循环神经网络(recurrentneuralnetworks,rnn),也称递归神经网络,其最主要的特征就是共享权值w,循环神经网络模型的基本结构为:

输出层:

ot=g(vst+v's't)

隐藏层:

st=f(uxt+wst-1)

式中,x为输入单元,标记为{x0,x1,…,xt…},其中xt代表t时刻的输入;s为隐含单元,标记为{s0,s1,…,st,…}。rnn最主要的特征就是体现在隐藏层这边,也可以把隐藏层看作整个网络的一个记忆单元。因此,整个网络模型的应用主要是充分利用了这一特点。在经过一系列的实验之后,循环神经网络在自然语言处理上取得了很好的结果,尤其像词向量表达、语句合法性检查、词性标注等方面,表现更加突出。

循环神经网络(rnn)的算法为bptt,包括前向传播和反向传播。整个模型的训练主要是对参数的训练,因为每一层的参数u、v、w都是共享的,因此本发明中假设整个模型每一层的任务都是相同的。这样可以提高整个模型的效率。而整个模型的关键就是隐藏层,对于隐藏层的训练在这里是尤为重要的。

前向传播主要就是一个参数前向传递的过程,在这个过程中,既有时间上的前后传递,同时还有一个共享的权重,主要由以下两个公式体现:

akt=i∑wikxit+k'∑wk'kbk'

bkt=f(bkt)

循环神经网络能够根据具有相关性语义的输入进行预测输出结果,本发明中充分利用了循环神经网络的这一特点,实现基于此网络设计实验来实现对发明中语音识别。由于循环神经网络的预测结果和人的判断具有一定的相关性,因此,本发明中就借助此网络实现语言文本的智能预测。为了确保精度,本发明中增加网络层数,但是在预测的准确度有所提升同时,在训练的时候,耗时也比较大,那么这时候就需要一个新的方法来平衡精度和效率。这时,双向循环神经网络就应运而生了。所谓“双向”就是在原来网络模型的基础上,本发明中又加了一个共享权值w。很显然,两个共享权值肯定会比一个共享权值的效果好。两个权值一个参与正向计算,一个参与反向计算。更进一步地提高了性能。因此本申请中循环神经网络又有了一个新的阶段性的进步。随着人们对性能的要求越来越高,新的模型又不断出现,比如长短时记忆神经网络(lstm)。

在实验的过程中,为了提高语音识别的性能,首先尝试了加深循环神经网络的层数,效果确实有了一定的提高,接着,又尝试使用双向循环神经网络,以及改进的循环神经网络如(lstm)。最终为了达到比较好的智能文本预测效果,选择和(lstm)网络相结合,以达到相对较好的效果。

具体的,本发明中训练过程为,设在t时刻,网络的输入向量为x(t),隐含向量是h(t),网络的输出向量是o(t)。用v表示输入层与隐含层之间的连接权值,u表示隐含层与隐含层之间的连接权值,w表示隐含层与输出层之间的连接权值,b和a分别表示隐含层和输出层的偏置。

hl(t)表示第l个样本在t时刻的隐含变量;ol(t)表示第l个样本在t时刻的输出变量;vl(t)表示第l个样本在t时刻输出层输出;ul(t)表示第l个样本在t时刻隐含层输出;δl(vl(t))表示第l个样本在t时刻输出层的误差反向信号变量;δl(ul(t))表示第l个样本在t时刻隐含层的误差反向信号向量,分别表示对权值w、v和u的偏导;分别表示对偏置a和b的偏导。首先随机初始化所有的权值和偏置,初始化

时间t从1到t正向传播,对第l个样本在t时刻的隐含变量和输出变量进行定义。在t=0时刻,定义隐含变量都为0,随着时间的展开,更新样本在t时刻的隐含变化量和输出变量。

hl(t)=f(ul(t))=f(vxl(t)+uhl(t-1)+b),(1≤t≤t);

ol(t)=g(ul(t))=f(whl(t)+a),随着时间t从t到1反向传播,计算第l个样本在t时刻输出层的误差反向信号变量和隐含层的误差反向信号变量,对权值w、v、u和偏置a、b的偏导进行更新。

每次更新网络中的所有权值和偏置。

在网络最后,使用softmax分类器对样本种类进行概率判断,选取输出值最大的神经元所对应的类别作为分类结果。

以上所述实施方式仅表达了本发明的一种实施方式,但并不能因此而理解为对本发明范围的限制。应当指出,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1