发明内容
本发明的目的是提供一种能够提高语音活性检测结果的准确度(特别是在信噪比较低、或者背景噪声为人声的情况下)的基于时域和频域的语音活性检测方法和设备。
为了实现上述目的,本发明提供一种基于时域和频域的语音活性检测方法。该方法包括:向输入的语音信号中加入白噪声;对加入白噪声后的语音信号进行分帧处理;确定每帧的短时能量值;确定每帧的谐波乘积谱值;以及针对每一帧,根据该帧的短时能量值和该帧的谐波乘积谱值来确定该帧是否为语音帧,并得出所述语音信号中所包含的语音片段。
优选地,该方法还包括:在向所述输入的语音信号中加入所述白噪声之前,估计所述语音信号的噪声能量;以及根据所估计的噪声能量来确定要加入的白躁声的比例;以及向所述输入的语音信号中加入所述白噪声是按照所确定的比例进行的。
优选地,对所述语音信号的噪声能量的所述估计是动态进行的。
优选地,所述白噪声为高斯白噪声。
优选地,确定所述每帧的谐波乘积谱值的步骤包括:对所述加入白噪声后的语音信号进行规范化;获取每帧的频域信息;以及根据所述每帧的频域信息来确定所述每帧的谐波乘积谱值。
优选地,通过以下方式来确定所述帧是否为语音帧:在所述帧的短时能量值大于或等于第一阈值、并且所述帧的谐波乘积谱值大于或等于第二阈值的情况下,确定所述帧为所述语音帧。
优选地,通过以下方式来确定所述帧是否为语音帧:利用预先建立的分类模型、根据所述帧的短时能量值和所述帧的谐波乘积谱值来对所述帧进行分类,以确定所述帧是否为所述语音帧。
本发明还提供一种基于时域和频域的语音活性检测设备。该设备包括:用于向输入的语音信号中加入白噪声的装置;用于对加入白噪声后的语音信号进行分帧处理的装置;用于确定每帧的短时能量值的装置;用于确定每帧的谐波乘积谱值的装置;以及用于针对每一帧,根据该帧的短时能量值和该帧的谐波乘积谱值来确定该帧是否为语音帧,并得出所述语音信号中所包含的语音片段的装置。
优选地,该设备还包括:用于在向所述输入的语音信号中加入所述白噪声之前,估计所述语音信号的噪声能量的装置;以及用于根据所估计的噪声能量来确定要加入的白躁声的比例的装置;以及向所述输入的语音信号中加入所述白噪声是按照所确定的比例进行的。
优选地,对所述语音信号的噪声能量的所述估计是动态进行的。
优选地,所述白噪声为高斯白噪声。
优选地,用于确定所述每帧的谐波乘积谱值的装置包括:用于对所述加入白噪声后的语音信号进行规范化的装置;用于获取每帧的频域信息的装置;以及用于根据所述每帧的频域信息来确定所述每帧的谐波乘积谱值的装置。
优选地,通过以下方式来确定所述帧是否为语音帧:在所述帧的短时能量值大于或等于第一阈值、并且所述帧的谐波乘积谱值大于或等于第二阈值的情况下,确定所述帧为所述语音帧。
优选地,通过以下方式来确定所述帧是否为语音帧:利用预先建立的分类模型、根据所述帧的短时能量值和所述帧的谐波乘积谱值来对所述帧进行分类,以确定所述帧是否为所述语音帧。
在上述技术方案中,通过在原有的语音信号中混入一定比例的白噪声,可以有效减小原有的语音信号中包含的噪声片段对语音活性检测的影响。并且,在背景噪声为人声的情况下,通过混入白噪声,可以在一定程度上抹平这些为人声的背景噪声的谐波结构,从而避免这些背景噪声对语音活性检测结果的影响。通过短时能量值与谐波乘积谱值这两项参数来共同确定语音信号中包含的语音片段,相比于仅依靠单一参数来进行判决,可以提高准确性。特别是在背景噪声为人声的情况下,虽然这些噪声可能具有谐波结构,但它们的短时能量值较低,因此,通过本发明提供的语音活性检测方法可以有效地区分出这些为人声的背景噪声和真实的语音片段。本发明提供的语音活性检测方法和设备,结合了时域分析与频域分析方法,针对实际情况具有更好的适应性,在背景噪声为人声以及信噪比较低等情况下也有很好的表现,并且该方法实现简单、精巧,很容易嵌入各类语音系统中。
本发明的其他特征和优点将在随后的具体实施方式部分予以详细说明。
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
图1示出了根据本发明的实施方式的基于时域和频域的语音活性检测方法的流程图。如图1所示,该方法可以包括:步骤S101,向输入的语音信号中加入白噪声;步骤S102,对加入白噪声后的语音信号进行分帧处理;步骤S103,确定每帧的短时能量值;步骤S104,确定每帧的谐波乘积谱值;以及步骤S105,针对每一帧,根据该帧的短时能量值和该帧的谐波乘积谱值来确定该帧是否为语音帧,并得出所述语音信号中所包含的语音片段。在本发明的一个示例实施方式中,所述白噪声可以例如为高斯白噪声。但是应当理解的是,其他类型的白噪声也适用于本发明。
具体地,在步骤S101,主动向输入的语音信号中加入白噪声。所加入的白噪声的比例可以根据经验来设定。可替换地,在本发明提供的一个优选实施方式中,该比例可以根据输入的语音信号的噪声能量来设定。
在根据输入的语音信号的噪声能量来确定加入的白噪声的比例的情况下,如图2所示,本发明提供的语音活性检测方法还可以包括:步骤S106,在向所述输入的语音信号中加入所述白噪声(即,步骤S101)之前,估计所述语音信号的噪声能量;之后,步骤S107,根据所估计的噪声能量来确定要加入的白躁声的比例。在这种情况下,在步骤S101中,向所述输入的语音信号中加入所述白噪声是按照所确定的比例进行的。
对噪声能量进行估计,可以预判出该语音信号中包含的噪声情况,为确定应当在步骤S101中向该语音信号中加入多少比例的白噪声提供依据。如上所述,要加入的白躁声的比例可以基于所估计出的噪声能量来确定。例如,如果原有的语音信号的信噪比较高,那么可以在所估计出的噪声能量相对高时,加入更多比例的白噪声。这样,可以有效减小原有的语音信号中包含的噪声片段对语音活性检测的影响,并且不影响原有的语音信号中包含的语音片段。而在原有的语音信号的信噪比较低的情况下,可以在该语音信号中加入较小比例的白噪声,以避免对语音活性检测造成干扰。
接下来,在步骤S102,对加入白噪声后的语音信号进行分帧处理,其中,每帧长度可以例如为20~30ms。该步骤的实施对于本领域的技术人员而言是公知的,因此,本发明在此不进行赘述。
接下来,在步骤S103,确定每帧的短时能量值。短时能量值能够反映语音信号的时域特性。通常情况下,语音和噪声的区别可以体现在它们的短时能量上,语音段的短时能量比噪声段的短时能量大。因此,本发明采用短时能量值作为判决某一帧是否为语音帧的一个依据。应当理解的是,短时能量值的计算方法是公知的,本领域的技术人员能够采用公知的任何短时能量值计算方法来计算出某一帧的短时能量值。
除了确定出每帧的短时能量值之外,在步骤S104,还确定每帧的谐波乘积谱(Harmonic Product Spectrum,HPS)值。谐波乘积谱值能够反映语音信号的频域特性。谐波乘积谱值的大小能够作为判断某一信号帧是否具有谐波结构的依据。通常情况下,语音段具有谐波结构,而噪声段不具有谐波结构。因此,通过谐波乘积谱值的大小来判断信号是否具有谐波结构,可以确定出该信号是语音还是噪声。不过在背景噪声为人声的情况下,该背景噪声也可能会表现出具有谐波结构,从而对语音活性检测结果产生误导。然而,在本发明中,由于在步骤S101中在原有的语音信号中加入了白噪声,所加入的白噪声可以在一定程度上抹平这些为人声的背景噪声的谐波结构,从而降低其对检测结果的影响。
在本发明的一个示例实施方式中,如图3所示,确定所述每帧的谐波乘积谱值的步骤S104可以包括:步骤S1041,对所述加入白噪声后的语音信号进行规范化。针对离线处理情况,由于语音信号完整已知,因此,可以对语音信号做整体的规范化。而针对在线处理情况,由于语音信号是实时的,因此,只能对语音信号做局部的规范化处理,并不断进行更新。在本发明中,可以采用本领域的技术人员公知的零-均值规范化方法对加入白噪声后的语音信号进行规范化。但是能够理解的是,其余规范化方法同样适用于本发明。
之后,在步骤S1042,获取每帧的频域信息。在本发明中,可以利用快速傅氏变换(FFT)算法来获取每帧的频域信息。但是应当理解的是,其余获取频域信息的方法也适用于本发明。最后,在步骤S1043,根据所述每帧的频域信息来确定所述每帧的谐波乘积谱值。应当理解的是,根据所述每帧的频域信息来确定所述每帧的谐波乘积谱值的方法是本领域的技术人员公知的,因此,本发明在此不进行赘述。
在确定出每帧的短时能量值和谐波乘积谱值之后,在步骤S105,针对每一帧,根据该帧的短时能量值和该帧的谐波乘积谱值来共同确定该帧是否为语音帧,并得出所述语音信号中所包含的语音片段。
可以通过多种方式来根据帧的短时能量值和帧的谐波乘积谱值共同确定该帧是否为语音帧。例如,如前所述,通常情况下,语音段表现为具有高短时能量值和谐波结构。因此,在一种示例实施方式中,可以在所述帧的短时能量值大于或等于第一阈值(可以根据经验设定或经实验得出)、并且所述帧的谐波乘积谱值大于或等于第二阈值(可以根据经验设定或经实验得出)的情况下,确定所述帧为所述语音帧。
可替换地,可以首先利用已知的样本数据(每个样本数据可以包括帧的短时能量值、帧的谐波乘积谱值和对应的帧类型)来预先建立分类模型。之后,对于新输入的信号帧,可以利用该预先建立好的分类模型、根据所述帧的短时能量值和所述帧的谐波乘积谱值来对所述帧进行分类,以确定所述帧是否为所述语音帧。
采用上述两种方式均可以实现语音帧的判决。但是应当理解的是,其余判决方式也适用于本发明。在确定出所述语音帧之后,就可以得出原有的语音信号中所包含的语音片段(该语音片段由被判决为是语音帧的信号形成)。
通过短时能量值与谐波乘积谱值这两项参数来共同确定语音信号中包含的语音片段,相比于仅依靠单一参数来进行判决,可以提高准确性。特别是在背景噪声为人声的情况下,虽然这些噪声可能具有谐波结构,但它们的短时能量值较低,因此,通过本发明提供的语音活性检测方法可以有效地区分出这些为人声的背景噪声和真实的语音片段,从而保证语音活性检测结果正确。
在本发明的一个优选的实施方式中,在步骤S106中,对所述语音信号的噪声能量的估计可以动态进行。并且,在步骤S101中加入的白噪声的比例可以基于动态估计出的噪声能量来调整。由此,可以实现噪声能量的动态跟踪,以及混入的白噪声的比例的实时调整。这样,可以增强语音活性检测对环境变化的感知能力,并且大幅提高在环境条件发生变化下语音活性检测的鲁棒性。
本发明还提供一种基于时域和频域的语音活性检测设备。该设备可以包括:用于向输入的语音信号中加入白噪声的装置;用于对加入白噪声后的语音信号进行分帧处理的装置;用于确定每帧的短时能量值的装置;用于确定每帧的谐波乘积谱值的装置;以及用于针对每一帧,根据该帧的短时能量值和该帧的谐波乘积谱值来确定该帧是否为语音帧,并得出所述语音信号中所包含的语音片段的装置。其中,所述白噪声可以例如为高斯白噪声。
该设备还可以包括:用于在向所述输入的语音信号中加入所述白噪声之前,估计所述语音信号的噪声能量的装置;以及用于根据所估计的噪声能量来确定要加入的白躁声的比例的装置;以及向所述输入的语音信号中加入所述白噪声是按照所确定的比例进行的。
在本发明的一个优选的实施方式中,对所述语音信号的噪声能量的所述估计可以是动态进行的。
用于确定所述每帧的谐波乘积谱值的装置可以包括:用于对所述加入白噪声后的语音信号进行规范化的装置;用于获取每帧的频域信息的装置;以及用于根据所述每帧的频域信息来确定所述每帧的谐波乘积谱值的装置。
可以通过以下方式来确定所述帧是否为语音帧:在所述帧的短时能量值大于或等于第一阈值、并且所述帧的谐波乘积谱值大于或等于第二阈值的情况下,确定所述帧为所述语音帧。可替换地,可以通过以下方式来确定所述帧是否为语音帧:利用预先建立的分类模型、根据所述帧的短时能量值和所述帧的谐波乘积谱值来对所述帧进行分类,以确定所述帧是否为所述语音帧。
综上所述,在本发明提供的基于时域和频域的语音活性检测方法和设备中,通过在原有的语音信号中混入一定比例的白噪声,可以有效减小原有的语音信号中包含的噪声片段对语音活性检测的影响。并且,在背景噪声为人声的情况下,通过混入白噪声,可以在一定程度上抹平这些为人声的背景噪声的谐波结构,从而避免这些背景噪声对语音活性检测结果的影响。通过短时能量值与谐波乘积谱值这两项参数来共同确定语音信号中包含的语音片段,相比于仅依靠单一参数来进行判决,可以提高准确性。特别是在背景噪声为人声的情况下,虽然这些噪声可能具有谐波结构,但它们的短时能量值较低,因此,通过本发明提供的语音活性检测方法可以有效地区分出这些为人声的背景噪声和真实的语音片段。本发明提供的语音活性检测方法和设备,结合了时域分析与频域分析方法,针对实际情况具有更好的适应性,在背景噪声为人声以及信噪比较低等情况下也有很好的表现,并且该方法实现简单、精巧,很容易嵌入各类语音系统中。
以上结合附图详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。
此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。