一种语音端点检测方法与流程

文档序号:18239015发布日期:2019-07-24 08:53阅读:351来源:国知局
一种语音端点检测方法与流程

本发明涉及语音信号处理技术领域,特别涉及一种大规模环境下的多路电话信道语音实时端点检测方法。



背景技术:

随着智能客服机器人产业的迅速发展,尤其是伴随着人工智能AI的风潮,预计在2020年我国智能客服市场将达到万亿级别。在智能客服机器人领域中对电话信道语音进行端点检测处理的应用正在不断扩展和深化。目前语音端点检测(Voice Active Detection,简称VAD)的主要任务是准确快速判决出待处理的语音信号有话还是无话,作为自动语音识别(Automatic Speech Recognition,简称ASR)系统的前置处理模块,一旦检测到话音信号,就启动自动语音语音识别系统,并进行话音数据流的传输。准确的语音端点检测将提高自动语音识别系统的利用率和减少语音处理的数据量。

目前现有技术中,语音端点检测算法有基于LPC倒谱距离的算法、基于自适应模型的算法、基于倒谱分析的算法等等,但是这些方法难以在识别性能和处理速度方面达到平衡。为解决大规模环境下多路电话信道语音实时端点检测的难题,对语音端点检测算法的要求必须具备有较低的复杂度和具有较强的抗噪性能。综合分析目前已有的端点检测算法,可以将端点检测大体归结为两类:时域端点检测和频域端点检测。其中,时域端点检测大多是针对实验室安静环境的,其算法相对简单,实现比较容易,实时性较高,但是对于存在噪声的语音检测,效果明显下降;而频域端点检测在噪声环境下检测能力较强,检测精度较高,但是在较强的噪声环境下仍会有较大的漏检和误检概率,同时其算法比较复杂,实现相对较为困难。

现实应用环境中,智能客服的应用场景十分广泛,话音活动检测面临的噪声环境种类多样,不仅要适应各类缓变噪声,而且必须在噪声强度和种类多变的情况下保持稳定性能。随着智能客服机器人的快速发展,如何实现多路电话语音实时检测,并大规模实现应用,得到稳健性好、精准性高、鲁棒性强、运算量少的VAD技术成为了一个亟待解决的问题。



技术实现要素:

为解决现有存在的技术问题,本发明实施例提供一种语音端点检测方法,以解决大规模环境下多路电话信道语音实时端点检测所面临的难题。

为达到上述目的,本发明实施例的技术方案是这样实现的:

一种语音端点检测方法,包括如下步骤:

步骤1、获取语音端点检测数据,将所述语音端点检测数据分为连续的多帧音频信号数据;

步骤2、对所述语音端点检测数据进行多窗谱减,得到降噪后的频域能量数据;

步骤3、将所述语音降噪后的频域数据输入到能量计算模块,得到多窗谱减输出频域能量数据;

步骤4、将所述多窗谱减输出频域能量数据作为语音检测时的特征,基于所述多窗谱减输出语音片段的频域能量均值高于非语音片段对应的能量均值这一假设,分别计算每一帧的短时和长时能量均值作为每一帧对应的得分值和判决阈值,依据上述得分值和判决阈值的大小进行语音或非语音判决;

步骤5、根据预先设置的断句策略,对所述语音或非语音判决进行处理,确定一句话语音的起始位置和结束位置。

进一步地,步骤2中还包括:

对带噪语音x(n)进行加窗分帧处理,加窗分帧后为xi(n),其中相邻帧之间重叠;

对分帧后的信号进行快速傅里叶变换(FFT),分别求其幅度谱|xi(k)|和相位谱θi(k),并在相邻帧之间做平滑处理,计算平均幅度谱

把分帧后的信号xi(m)进行多窗谱估计,得到多窗谱功率谱密度P(k,i)(其中,i表示第i帧,k表示第k条谱线):

P(k,i)=PMTM[xi(m)]

式中,PMTM表示进行多窗谱功率谱密度估计。

进一步地,步骤2中还包括:

对多窗谱功率谱密度估计值进行相邻帧之间的平滑处理,计算平滑功率谱密度Py(k,i):

根据已知前导无话段(噪声占有)NIS帧,计算出噪声的平均功率谱密度值Pn(k):

进一步地,在步骤4中,具体还包括:

以当前帧为中心,计算特定数量帧临近帧的能量均值,并以该能量均值作为得分值yn,计算公式如下:

其中I表示以当前帧的能量ei为中心,前后两侧用来计算能量均值的帧数,yn为短时能量均值。

进一步地,步骤4中,将当前帧集之前特定数量帧的能量均值作为判决阈值,阈值的计算公式如下:

其中n表示当前帧的时间;ni>0为当前帧之前的某一个时刻,且n≥ni;βn为从第ni帧到第n帧的能量均值,βn为长时能量均值,该值随着帧序的更新而更新。

本发明实施例提供的技术方案的有益效果是:

本发明通过多窗谱减算法,将有噪声环境下的语音信号减噪,对语音进行增强,计算增强后语音的频域信号能量,并将该能量作为语音检测时的特征;分别计算每一帧的短时和长时能量均值作为每一帧对应的得分值和判决阈值,根据所述得分值和判决阈值的大小进行语音或非语音判决;最后,根据语义意图自适应调整说话间隙时长,判决出完整一句话的起止点位置。其具有较低的复杂度和计算量,并在复杂环境下具有很好的鲁棒性;不需要对各种环境噪声有先验知识,也能适应非平稳的各类噪声背景。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种语音端点检测方法的流程图示;

图2是本发明实施例语音端点检测方法中的拖尾延迟保护的状态转移图;

图3是本发明实施例语音端点检测方法中的说话间隙时长动态控制步骤中断句流程图示。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

根据本发明实施例,提供了一种语音端点检测方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

参照图1-图3所示,本发明语音端点检测方法包括如下步骤:

步骤1、获取语音端点检测数据,将所述语音端点检测数据分为连续的多帧音频信号数据;

步骤2、对所述语音端点检测数据进行多窗谱减,得到降噪后的频域能量数据;

步骤3、将所述语音降噪后的频域数据输入到能量计算模块,得到多窗谱减输出频域能量数据;

步骤4、将所述多窗谱减输出频域能量数据作为语音检测时的特征,基于所述多窗谱减输出语音片段的频域能量均值高于非语音片段对应的能量均值这一假设,分别计算每一帧的短时和长时能量均值作为每一帧对应的得分值和判决阈值,依据上述得分值和判决阈值的大小进行语音或非语音判决;

步骤5、根据预先设置的断句策略,对所述语音或非语音判决进行处理,确定一句话语音的起始位置和结束位置。

具体地,步骤2中对所述语音端点检测数据进行多窗谱减,得到降噪后的频域能量数据,包括:

步骤20、对带噪语音x(n)进行加窗分帧处理,加窗分帧后为xi(n),其中相邻帧之间重叠;

步骤21、对分帧后的信号进行快速傅里叶变换(FFT),分别求其幅度谱|xi(k)|和相位谱θi(k),并在相邻帧之间做平滑处理,计算平均幅度谱

以第i帧为中心前后各取M帧,共有2M+1帧进行平均。实际中常取M为1,即在3帧中进行平均。

步骤22、把分帧后的信号xi(m)进行多窗谱估计,得到多窗谱功率谱密度P(k,i)(其中,i表示第i帧,k表示第k条谱线):

P(k,i)=PMTM[xi(m)]

式中,PMTM表示进行多窗谱功率谱密度估计。

步骤23、对多窗谱功率谱密度估计值进行相邻帧之间的平滑处理,计算平滑功率谱密度Py(k,i):

以第i帧为中心前后各取M帧,共有2M+1帧进行平均。实际中常取M为1,即在3帧中进行平均。

步骤24、根据已知前导无话段(噪声占有)NIS帧,计算出噪声的平均功率谱密度值Pn(k):

步骤25、利用谱减关系计算增益因子

式中,α为过减因子;β为增益补偿因子。

适当地选择α值可以有效去除音乐噪声,但过大的α值会引起语音失真。

步骤26、通过增益因子g(k,i)和平均幅度谱求得谱减后的幅度谱:

步骤27、对谱减后的幅度谱求频域能:

在不同噪声背景不同信噪比条件下,多窗谱减后的频域能量反映了语音的内在组成结构,能有效表示语音,且具有较好的一致性。

步骤4中,以当前帧为中心,计算特定数量帧临近帧的能量均值,并以该能量均值作为得分值yn,计算公式如下:

其中I表示以当前帧的能量ei为中心,前后两侧用来计算能量均值的帧数,yn为短时能量均值。

将当前帧集之前特定数量帧的能量均值作为判决阈值,阈值的计算公式如下:

其中n表示当前帧的时间;ni>0为当前帧之前的某一个时刻,且n≥ni。βn为从第ni帧到第n帧的能量均值,βn为长时能量均值,该值随着帧序的更新而更新。

设H0和H1分别表示非语音和语音,βn表示判决阈值,yn表示得分值,那么当yn>β时,其中对应的帧为语音帧,否则为非语音帧。判决公式如下:

作为本发明另一实施例,还包括有最终判决步骤;

通过每一帧的多窗谱减的短时和长时能量均值比较后到了初步的VAD判决结果,但是初步判决有时存在着误判的情况。当把有语音误判为无语音时,造成了语音切断的现象;相反,把无语音误判为有语音时,势必会造成过多的残留噪声存在。为了降低误判的概率,本方法引入拖尾延迟保护机制,进行最终判决。

具体地,基于语音相关性的基础,把输入的带噪语音分为三种状态,即语音状态、噪声状态及语音和噪声之间的转换状态,并为语音状态转换为噪声状态以及噪声状态转换为语音状态分别设置了不同的延迟保护长度。如果当前帧的初步判决结果在保护长度之内,则判定当前帧为转换状态,而初步判决结果作为累计值保存起来;如果当前帧的初步判决结果超出了保护长度的范围,则判定当前帧为新的语音状态或噪声状态。各帧具体的最终判决结果由图2所示,其中,T表示初步判决,VAD表示最终判决。

通过拖尾延迟保护提供了由无语音到有语音的无条件迅速判决,而延迟了由有语音到无语音的判决时间,判决时间由转换状态的持续时间决定。这样有效地保护了微弱语音以及字间的短暂停顿,有效地防止了切音现象,保证了语音的连贯悦耳。同时通过自动语音识别系统的噪声吸收模型吸收语音前后端的噪声,防止因为语意检测算法的不准确而切除语音情况的发生。

作为本发明另一实施例,还包括有说话间隙时长动态控制步骤;

基于所述语音激活检测,可准确获取子句的起始位置和结束位置。对于判断说话人在人机交互过程中的语义完整的一句话还需依赖说话间隙时长,口语语言存在着大量的省略、迟疑、停顿、临时插入、重复强调、自我纠错以及非法语法结构和无意义语音的现象,智能客服机器人应该根据输入语音流的特点对VAD的句间停顿时长timeout进行一定的自适应调整,使得智能客服的智能断句技术对特定的语音更具有针对性,更能适应口语语言。

具体地,如图3所示,结合语义理解(NLP)的动态自适应控制对所述VAD的句间停顿时长timeout进行设置。timeout取值范围在[400ms 15000ms]之间,一般timeout默认最小值400ms,当VAD判决出子句技术的标志时,会发送消息至ASR获取文本信息,接着文本信息会被推送到NLP获取对话意图,若对话意图为明确性意图(肯定、否定及拒绝),timeout取值不变,默认400ms,若对话意图为非明确性意图,timeout延长至最大值,在1500ms内继续等待捕捉客户意图,超时时强制结束。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

本发明实施例提供的上述技术方案的全部或部分可以通过程序指令相关的硬件来完成,所述程序可以存储在可读取的存储介质中,该存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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