本发明涉及信息处理技术领域,尤其涉及一种语音端点检测VAD动态参数调整方法和装置。
背景技术:
能量双门限法是语音端点检测VAD的常用算法。语音信号一般可分为无声段、清音段和浊音段。无声段是背景噪声段,平均能量最低;浊音段为声带振动发出对应的语音信号段,平均能量最高;清音段是空气在口腔中的摩擦、冲击或爆破而发出的语音信号段,平均能量居于前两者之间。清音段和无声段的波形特点有明显的不同,无声段信号变化较为缓慢,而清音段信号在幅度上变化剧烈,穿越零电平次数也多。经验表明,通常清音段过零率最大。语音端点检测就是首先判断有声还是无声,如果有声,则还要判断是清音还是浊音。为正确地实现端点检测,一般综合利用短时能量和过零率两个特征,采用双门限检测法。
目前有优化VAD效果的技术,但均是从能量VAD方面去尝试优化,并未考虑到特殊场景的问题,也未能应用到语音中的语速,情感等信息,语音端点检测准确性较低。
技术实现要素:
鉴于上述问题,提出了本发明以便提供一种解决上述问题的VAD动态参数调整方法和装置,以提高特殊场景下语音端点检测的准确性。
依据本发明的一个方面,提供一种VAD动态参数调整方法,包括:
提取训练语料中每句语音信号的情感特征向量;
将各句语音信号的情感特征向量作为神经网络的输入特征、将预先确定的各句语音信号的最优VAD参数序列作为神经网络的期望输出,采用设定的神经网络训练算法,对搭建的神经网络进行训练;
在语音处理时,利用已训练的所述神经网络以当前语句的前一语句的情感特征向量为输入特征而输出的VAD参数,对当前语句进行语音端点检测。
依据本发明的另一个方面,提供一种VAD动态参数调整装置,包括:
信息提取模块,用于提取训练语料中每句语音信号的情感特征向量;
训练模块,用于将各句语音信号的情感特征向量作为神经网络的输入特征、将预先确定的各句语音信号的最优VAD参数序列作为神经网络的期望输出,采用设定的神经网络训练算法,对搭建的神经网络进行训练;
检测模块,用于在语音处理时,利用已训练的所述神经网络以当前语句的前一语句的情感特征向量为输入特征而输出的VAD参数,对当前语句进行语音端点检测。
本发明有益效果如下:
本发明利用深度神经网络学习语音中的情感信息,找到语音中的情感信息和VAD模型相关参数间存在的规律,得到相应的VAD效果最优参数模型,当需要语音端点检测时,利用最优参数模型对VAD参数进行动态预估,从而达到优化特殊场景下的VAD的效果,利用优化后的VAD进行语音端点检测,可以提高检测准确性,很好的解决了现有技术中仅从能量方面优化VAD,不能满足特殊场景的需求,导致检测准确性低的问题。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明第一实施例提供的一种VAD动态参数调整方法的流程图;
图2为本发明第二实施例中搭建的神经网络结构示意图;
图3为本发明第三实施例提供的一种VAD动态参数调整装置的结构框图一;
图4为本发明第三实施例提供的一种VAD动态参数调整装置的结构框图二。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供一种VAD动态参数调整方法和装置,所述方法和装置利用深度神经网络学习语音中的情感信息,找到语音中的情感信息和VAD模型相关参数间存在的规律,得到相应的VAD效果最优参数模型,当需要语音端点检测时,利用最优参数模型对VAD参数进行动态预估,从而达到优化特殊场景下的VAD的效果。
下面通过几个具体实施例对本发明的实施过程进行详细阐述。
在本发明的第一实施例中,提供一种VAD动态参数调整方法,如图1所示,所述方法包括:
步骤S101,提取训练语料中每句语音信号的情感特征向量;
本发明实施例中,由于要利用语音的情感信息进行神经网络学习,所以,在选取训练语料时,要选取足够数量且情感覆盖足够广泛的语料,例如要选取包括语速快,语速慢,语气急躁,语气舒缓,感情倾向强烈等具有各种情感的语料数据。
进一步地,本发明实施例中,所述情感特征向量包括但不限于为:语速特征向量、语调特征向量和瞬时特征向量;其中,瞬时特征向量包括:语音信号的音高特征向量和/或能量特征向量。本领域技术人员可以根据需要在该基础上增加或减少相应的特征向量。
本实施例中,语速特征向量的提取方式包括:
求取语音信号的语速与预先设定的标准语速的比值;
根据设定的语速阈值区间,判断语音信号的语速是否为异常语速;
当为异常语速时,按照设定的调整系数对所述比值进行调整,并将调整后的比值作为提取的语速特征向量;否则,直接以所述比值作为提取的语速特征向量。
进一步地,本实施例中,语调特征向量的提取方式包括:
按设定的帧长和帧移,将语音信号切分为若干帧,并确定各帧的平均音高;
根据当前帧与前一帧的平均音高的差值,确定当前帧的语调类型;
确定各类型的语调占总语调的比例,并将各类型的语调占总语调的比例作为提取的语调特征向量。
步骤S102,将各句语音信号的情感特征向量作为神经网络的输入特征、将预先确定的各句语音信号的最优VAD参数序列作为神经网络的期望输出,采用设定的神经网络训练算法,对搭建的神经网络进行训练;
在本发明的一个具体实施例中,确定的各句语音信号的最优VAD参数序列的方式包括:
利用多套VAD参数,对所述训练语料中的每句语音信号进行语音端点检测,并通过语音端点检测的VAD帧正确率,确定每句语音信号的最优VAD参数序列。
在本发明的又一具体实施例中,设定的神经网络训练算法为:反向传播Back-Propagation算法。
当采用Back-Propagation算法时,对搭建的神经网络进行训练,具体包括:
将第i句语音信号的情感特征向量作为神经网络的输入特征输入神经网络后,通过前向传播算法处理,得到VAD参数序列;
将得到的VAD参数序列与第i句语音信号对应的最优VAD参数序列进行比较,得到以相邻两层节点间连线权重为变量的误差函数;
基于所述误差函数,求取神经网络中相邻两层节点间连线权重的调整量,并根据求取的调整量对神经网络中相邻两层节点间连线权重进行更新;
令i=i+1,重复上述过程,直到所述训练语料内的语音信号全部训练完毕;其中i=1,….,N,N为所述训练语料内语音信号的总句数。
具体的,本实施例中,通过对误差函数进行求导的方式,求取神经网络中相邻两层节点间连线权重的调整量。
在本发明的一个较佳实施例中,在所述训练语料内的语句全部训练完毕后,所述方法还包括:
判断是否已达到设定的训练迭代次数阈值;
当已达到时,判定所述神经网络已训练完成;
当未达到时,继续将所述训练语料内的各句语音信号的情感特征向量作为神经网络的输入特征、将预先确定的各句语音信号的最优VAD参数序列作为神经网络的期望输出,采用设定的神经网络训练算法,对搭建的神经网络进行训练,直至达到设定的训练迭代次数阈值。
在本发明的又一较佳实施例中,当未达到设定的训练迭代次数阈值时,还包括:判断当前迭代次数是否满足设定的参数调整条件,当满足时,按设定方式,对所述神经网络训练算法中指定的训练参数进行调整。
在本发明的一个具体实施例中,满足设定的参数调整条件是指:当前迭代次数达到设定的m次数;所述m小于所述训练迭代次数阈值。例如,设定迭代次数为10,m可以设为4。
在本发明的又一具体实施例中,所述指定的训练参数可以但不限于为:神经网络学习率。
此时,按设定方式,对所述神经网络训练算法中指定的训练参数进行调整,具体为:将本次迭代训练时的神经网络学习率调整为前次迭代训练时神经网络学习率的一半。
步骤S103,在语音处理时,利用已训练的所述神经网络以当前语句的前一语句的情感特征向量为输入特征而输出的VAD参数,对当前语句进行语音端点检测。
也就是说,用于当前语句的语音端点检测所需的VAD参数是将历史语句的情感向量输入到神经网络中而得到的,所以,对当前语句进行语音端点检测是个动态调整的参数,相比较于采用固定的VAD参数,本发明具有更好的检测准确性。
综上可知,本发明实施例所述方法利用深度神经网络学习语音中的情感信息,找到语音中的情感信息和VAD模型相关参数间存在的规律,得到相应的VAD效果最优参数模型,当需要语音端点检测时,利用最优参数模型对VAD参数进行动态预估,并利用预估的动态VAD进行语音端点检测,达到了优化特殊场景下的VAD的效果。
在本发明第二实施例中,提供一种VAD动态参数调整方法,本实施例通过披露更多的技术细节,对本实施例所述方法的实施过程进行更充分的说明。需要指出的是,本实施例披露的大量技术细节用于解释本发明,但不用于唯一限定本发明。
具体的,本实施例中,将调整过程分为四个阶段,分别为:情感特征提取阶段、VAD最优参数选取阶段、神经网络训练阶段和语音处理阶段,其中:
情感特征提取阶段:分别计算语音中的语速、语调,感情倾向等主观因素,分析其中的规律,并用数学语言将其表达出来,然后对其进行拼接,得到语音中的情感信息向量。
VAD最优参数选取阶段:选取神经网络训练阶段所需的期望输出,即各语音信号的最优VAD参数。
神经网络训练阶段:将情感信息向量和最优VAD参数分别作为神经网络的输入特征和期望输出,利用Back-Propagation算法,进行深度神经网络的训练,得到训练好的深度神经网络,本发明将其称之为VAD情感信息辅助网络(以下简称情感网络)。
语音处理阶段:利用训练好的情感网络,对输入的语音信号的情感特征进行分析,得到对应的VAD参数,在语音信号连续输入的过程中,实现了VAD参数的动态调整,利用动态调整的VAD参数进行语音端点检测可以提高检测的准确性。
下面分别对各个阶段的具体实施过程进行阐述:
一,情感特征提取阶段:
情感特征指语音中包含的说话人的情绪状态、感情倾向等比较主观的特征;在本发明实施例中,以句为单位,尝试从多个维度来描述这些特征,并将之转化为可用的数学语言。具体的:
语速特征:对足够量正常语速的语音进行分析,分析出正常语速的区间[speedlow,speedhigh],对上述语音的字数和有效时长进行统计,得到平均语速speedavg,定义训练语句语速与标准语速的语速比另外若speedtrain>speedhigh,若speedtrain<speedlow,这样处理的目的是对于语速异常语音的语速参数进行放大或缩小;表示训练语句的语速特征。
语调特征:本发明实施例把语音按照25ms帧长,10ms帧移切分为若干帧,FK表示第k帧的平均音高。再将语调分类为升调(rise),降调(fall),平声(flat),定义如下:
Flat=|FK-Fk-1|≤Fk*δ
Fall=Fk-Fk-1>Fk*δ
Rise=Fk-1-Fk>Fk*δ
K表示当前帧,δ为人工设定的比例系数,表示语调平缓程度;根据上式,可以计算出语音中升调,降调,平声所占的比例,分别为:
βrise=frame_numrise/frame_numall
βfall=frame_numfall/frame_numall
βflat=frame_numflat/frame_numall
记做向量D(βrise,βfall,βflat),为语音的语调特征向量。
瞬时特征:针对语音的瞬时特征进行分析,从语音信号的音高和能量中提取特征,定义6维向量mt:
Ft表示t帧的瞬时音高,Et表示瞬时能量,然后对全局做平均,得到6维的向量M,为语音的情感特征向量。
特征拼接:将语速特征语调特征向量D(βrise,βfall,βflat),情感特征向量M,拼接为10维的特征向量。
至此,已经可以将语音的情感因素,用N维(N=10)的向量表示出来,称之为情感特征向量Xn(x1,x2,x3……xn,)。在得到情感特征向量后,还需要对这个向量进行规整,方便在神经网络的训练中对其进行运算,规整方案在神经网络训练部分会进行详述。
二,VAD最优参数选取阶段:用多套VAD参数对训练语料中的每句语音进行语音端点检测,针对每句语音,统计采用不同的VAD参数进行检测后,VAD帧的正确率,取最好的帧正确率对应的VAD参数序列为该句语音的最优VAD参数。至此,已经确定每句语音的最优VAD参数序列Tm(t1,t2,t3……tm,)。
三,神经网络训练阶段:
本发明实施例中,神经网络的训练主要分为两步:搭建网络结构并初始化和训练神经网络,其中:
(1)搭建网络结构并初始化,包括:
如图2所示,本发明实施例中,搭建的网络结构为5层的MLP网络,分别为:输出层(1层,N维),隐层(3层,均为16维),输出层(1层,M维)。
本实施例中:
输入层节点记为:h00,h01,h02……h0n
隐层节点记为:h10,h12…h1 16;h21,h22…h2 16,h31;h32…h3 16
输出层节点记为:O1,O2,O3……On
各个节点间的权重记为wij,例如
初始化方式为随机初始化,即用MATLAB随机生成(N-16-16-16-M)的网络;
输入为情感特征向量Xn,输出为VAD参数序列On。
(2)训练神经网络,包括:
神经网络训练使用BP算法,由输入信息的正向传播(前向),误差计算,误差的反向传播(后向)三个过程组成,具体的:
2.1,前向流程为:
情感向量—sigmoid规整—(下一层节点输入—sigmoid规整)循环3次—输出层输出,主要的计算过程如下:
节点输入:
输入层节点的输入信息为规整后的情感向量;
隐层和输出层的输入信息为上一层所有节点输出信息乘以节点间连接线权重的累和;即
sigmoid规整具体为:
利用sigmoid函数对向量的每一维进行规整。本发明实施例中,选取的sigmoid函数为:
对于输入层,这样可以得到每句话对应的规整后的特征向量Xn(x1,x2,x3……xn,)。这个向量是需要输入到神经网络中到向量。
对于隐层和输出层节点,节点在接收到输入的信息时,按照sigmoid方法对数据进行规整,得到相应的输出向量。
经过前向过程,可以得到根据情感向量计算出的输出向量Om(o1,o2,o3……om,)。
2.2,误差计算,具体为:
对VAD最优参数选取阶段得到的M维VAD参数序列Tm(t1,t2,t3……tm,),进行sigmoid规整,与前向得到的向量Om计算两向量各个维度的平方和,定义为误差函数:
该误差的物理意义为:两向量欧式距离的平方,现可利用误差对神经网络进行更新。
2.3,后向流程为:
利用BP算法的反馈学习机制,计算得到每个节点的更新量,更新网络的权值。将定义的误差函数展开至隐层,有:
从上式可以看出,网络输入误差是各层权值的函数,因此调整权值可改变误差E。显然,调整权值的原则是使误差不断地减小,因此应使权值的调整量与误差的梯度下降成正比,经过对w的多次求导,得到:
上式中,常数μ∈(0,1)表示神经网络学习率,由人工设定,已经完成实验调优,但是需要根据不同任务进行调整。根据该式可以对网络中的权值进行更新。
按照“前向—误差—后向”的训练顺序进行迭代,迭代多次后,误差函数E大大减小,完成神经网络的训练。
需要指出的是,本发明实施例中,用所有训练数据对神经网络进行一次“前向—误差—后向”的过程,称为一次迭代。本实施例中可以通过设定迭代次数阈值,来限定整个训练过程总共需的迭代次数。
较佳地,本发明实施例中,在迭代时还可以通过调整神经网络学习率的方式来辅助降低误差。在本发明的一个具体示例中,设定迭代次数阈值为10次,可以设定在第4次迭代时,神经网络学习率减半,在之后的迭代中,神经网络学习率均为之前的一半,即:μ-0,1,2=μ,μ-3=μ/2,μ-4=μ-3/2,……,μ-9=μ-8/2,其中,μ的下标指代迭代次数,0指第一次迭代,1指第二次迭代,依次类推。另外,在达到迭代阈值后,还可以判断末次迭代的误差与前几次迭代的误差相比是否为最小的,若不是最小的,则可以取前几次迭代后误差最小的模型作为最终的模型。例如,判断测试第8,9,10次迭代的误差,取误差最小的模型作为最终模型,至此,训练完成。
需要说明的是,上述神经网络学习率的调整方式只是一种具体的实施方式,本领域技术人员可以根据需求,灵活的设定神经网络学习率的调整方式。当然,本发明也不排除通过调整算法中的其他参数的方式,来辅助降低误差。而通过调整其他参数进行误差的调节,也均在本发明的保护思想范围之内。
四,语音处理阶段:
在语音处理过程中,提取待处理语音段中每句语音数据的情感特征向量,并对情感特征向量进行sigmoid规整,按句将规整后的情感特征向量输入到训练完成的情感网络中,输入到情感网络的情感特征向量经过前向计算输出的结果即为规整后的预估VAD参数(即VAD解码参数序列),将该VAD参数进行sigmoid逆变换,得到相应的解码参数,利用该参数序列,对得到本参数序列而输入的语句的下一句语音信号进行语音端点检测,这种利用动态的VAD参数进行语音端点检测可以得到比采用固定VAD参数进行语音端点检测具有更好的VAD效果。
举例来说,将第i句的情感特征向量进行sigmoid规整后,输入到训练完成的情感网络,经过情感网络的前向计算输出的结果再经过sigmoid逆变换,即得到用于第i+1句语音端点检测的VAD参数。即用于当前语句的语音端点检测所需的VAD参数是将历史语句的情感向量输入到神经网络中而得到的,且是个动态调整的参数。
综上可知,本发明实施例所述方法解决了特殊场景下VAD优化的问题,较现有技术从语音中获取的信息更多,利用了语音中的情感信息,使得VAD更加准确。
在本发明的第三实施例中,提供一种语音端点检测VAD动态参数调整装置,如图3所示,所述装置包括:
信息提取模块310,用于提取训练语料中每句语音信号的情感特征向量;
训练模块320,用于将各句语音信号的情感特征向量作为神经网络的输入特征、将预先确定的各句语音信号的最优VAD参数序列作为神经网络的期望输出,采用设定的神经网络训练算法,对搭建的神经网络进行训练;
检测模块330,用于在语音处理时,利用已训练的所述神经网络以当前语句的前一语句的情感特征向量为输入特征而输出的VAD参数,对当前语句进行语音端点检测。也就是说,用于当前语句的语音端点检测所需的VAD参数是将历史语句的情感向量输入到神经网络中而得到的,所以,对当前语句进行语音端点检测是个动态调整的参数,相比较于采用固定的VAD参数,本发明具有更好的检测准确性。
在本发明的一个具体实施例中,所述装置还包括:
参数确定模块340,用于利用多套VAD参数,对所述训练语料中的每句语音信号进行语音端点检测,并通过语音端点检测的VAD帧正确率,确定每句语音信号的最优VAD参数序列。
基于上述结构框架及实施原理,下面结合图4给出在上述结构下的几个具体及优选实施方式,用以细化和优化本发明所述装置的功能,以使本发明方案的实施更方便,准确。具体涉及如下内容:
在本发明的一具体实施例中,信息提取模块310提取的情感特征向量包括如下向量中的一个或多个:语速特征向量、语调特征向量和瞬时特征向量。
具体的,本实施例中,为了提取语速特征向量,信息提取模块310包括:
语速比值获取单元311,用于求取语音信号的语速与预先设定的标准语速的比值;
异常判断单元312,用于根据设定的语速阈值区间,判断语音信号的语速是否为异常语速;
语速调整单元313,用于当判断语音信号的语速为异常语速时,按照设定的调整系数对所述比值进行调整,并将调整后的比值作为提取的语速特征向量;否则,直接以所述比值作为提取的语速特征向量。
进一步地,本实施例中,为了提取语调特征向量,信息提取模块310还包括:
音高获取单元314,用于按设定的帧长和帧移,将语音信号切分为若干帧,并确定各帧的平均音高;
语调类型获取单元315,用于根据当前帧与前一帧的平均音高的差值,确定当前帧的语调类型;
语调比例获取单元316,用于确定各类型的语调占总语调的比例,并将各类型的语调占总语调的比例作为提取的语调特征向量。
进一步地,本实施例中,信息提取模块310还包括:
瞬时特征提取单元317,用于提取的瞬时特征向量,其中,瞬时特征向量包括:语音信号的音高特征向量和/或能量特征向量。
在本发明的又一具体实施例中,训练模块320所采用的神经网络训练算法包括:反向传播Back-Propagation算法。当采用该算法时,训练模块320,具体包括:
参数序列获取单元321,用于将第i句语音信号的情感特征向量作为神经网络的输入特征输入神经网络后,通过前向传播算法处理,得到VAD参数序列;
误差函数单元322,用于将得到的VAD参数序列与第i句语音信号对应的最优VAD参数序列进行比较,得到以相邻两层节点间连线权重为变量的误差函数;
权重更新单元323,用于基于所述误差函数,求取神经网络中相邻两层节点间连线权重的调整量,并根据求取的调整量对神经网络中相邻两层节点间连线权重进行更新;
迭代训练单元324,用于令i=i+1,重复上述过程,直到所述训练语料内的语音信号全部训练完毕;其中i=1,….,N,N为所述训练语料内语音信号的总句数。
具体的,本实施例中,训练模块320通过对误差函数进行求导的方式,求取神经网络中相邻两层节点间连线权重的调整量。
在本发明的一个较佳的实施例中,训练模块320,还包括:
训练完成单元325,用于在所述训练语料内的语句全部训练完毕后,判断是否已达到设定的训练迭代次数阈值,当已达到时,判定所述神经网络已训练完成;
继续训练单元326,用于在所述训练语料内的语句未训练完毕后,在判断出当未达到设定的训练迭代次数阈值时,继续将所述训练语料内的各句语音信号的情感特征向量作为神经网络的输入特征、将预先确定的各句语音信号的最优VAD参数序列作为神经网络的期望输出,采用设定的神经网络训练算法,对搭建的神经网络进行训练,直至达到设定的训练迭代次数阈值。
在本发明的又一较佳实施例中,训练模块320还包括:
参数调整单元327,用于在所述训练语料内的语句全部训练完毕后,在判断出当未达到设定的训练迭代次数阈值时,还判断当前迭代次数是否满足设定的参数调整条件,当满足时,按设定方式,对所述神经网络训练算法中指定的训练参数进行调整。
在本发明的一个具体实施例中,参数调整单元327,具体用于:在判断出当未达到设定的训练迭代次数阈值时,判断当前迭代次数是否满足达到设定的m次数,所述m小于所述训练迭代次数阈值,当满足时,将本次迭代训练时的神经网络学习率调整为前次迭代训练时神经网络学习率的一半。
例如,设定迭代次数为10,m可以设为4。
在本发明的又一具体实施例中,指定的训练参数可以但不限于为神经网络学习率。
本发明中VAD动态参数调整装置的具体实现方式可参见种VAD动态参数调整方法实施例,在此不再赘述。
综上可知,本发明实施例所述装置利用深度神经网络学习语音中的情感信息,找到语音中的情感信息和VAD模型相关参数间存在的规律,得到相应的VAD效果最优参数模型,当需要语音端点检测时,利用最优参数模型对VAD参数进行动态预估,并利用预估的动态VAD进行语音端点检测,达到了优化特殊场景下的VAD的效果。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是其与其他实施例的不同之处。尤其对于装置实施例而言,由于其基本相似与方法实施例,所以,描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
总之,以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。