掌桥专利:专业的专利平台
掌桥专利
首页

一种基音检测方法及装置

文献发布时间:2023-06-19 09:29:07


一种基音检测方法及装置

技术领域

本公开涉及一种基音检测方法,同时也涉及实现该方法的基音检测装置,属于语音信号处理技术领域。

背景技术

语音信号的基音周期是描述激励源的重要特征参数之一。准确的检测语音信号的基音周期对高质量的语音分析与合成、语音压缩编码、语音识别等具有重要意义。但是,由于声道的易变性及声道特征因人而异,而基音的范围又很宽,即使是同一个人在不同情态下发音的基音周期也不相同,加之基音周期还受到单次发音音调的影响,因而基音周期的精确检测实际是一件比较困难的事情。

基音周期检测方法主要有两类:时域法和频域法。由于时域法比较直观且运算量小,故在实际项目应用中通常选用时域法。现有的时域基音周期检测方法有两种:分别为ACF(Auto Correlation Function,自相关函数)方法和AMDF(Average MagnitudeDifference Function,平均幅度差函数)方法。

自相关函数方法是计算语音信号的自相关函数,通过ACF曲线在基音周期整数倍位置存在较大峰值来估计基音。从估计基音周期的角度来看,短时自相关函数所包含的信息许多是多余的,真正能反映基音周期性的只是少数几个峰,其余的大多数峰都是由于声道的谐振特性引起的。而通常情况下,基波分量往往不是最强的分量,丰富的谐波成分使语音信号的波形变得非常复杂,给基音检测带来了困难,经常发生基频估计结果为其实际基音频率的二次倍频或二次分频的情况。

平均幅度差函数方法是计算语音信号的平均幅度差函数,通过AMDF曲线在基音周期整数倍处出现谷值来估计基音。当语音信号的变化比较平缓时,ADMF方法进行基音周期估计可以得到较高的估计,即精度和可靠性,所需计算量比较小,但是当语音信号的幅度或频率变化较快时,即在语音环境较恶劣、信噪比较低时,基因检测结果的准确程度下降较快,难以让人满意。

发明内容

本公开所要解决的首要技术问题在于提供一种基音检测方法。

本公开所要解决的另一技术问题在于提供一种基音检测装置。

为了实现上述目的,本公开采用下述技术方案:

根据本公开实施例的第一方面,提供一种基音检测方法,包括如下步骤:

获取语音采集装置发送的多帧语音数据,并对每一帧语音数据进行解码和预处理;

分别计算经预处理的每一帧语音数据的基音检测核心函数,得到相应的基音检测核心函数曲线;

根据每一帧语音数据的基音检测核心函数曲线,得到每一帧语音数据的基音周期;

根据当前帧语音数据的基音周期阈值,验证该帧语音数据的基音检测是否有效。

其中较优地,对所述语音采集装置实时采集的连续语音信号按照预设时间段进行分帧并分别进行编码,得到所述多帧语音数据。

其中较优地,对每一帧语音数据进行预处理包括采用自相关的自适应语音增强算法抑制语音信号中的高斯白噪声和采用线性相位低通滤波器滤除语音信号中的高次谐波分量。

其中较优地,分别计算经预处理的所述每一帧语音数据的基音检测核心函数的过程为:

分别计算语音信号的平均幅度差函数的倒数和短时自相关函数,并进行最大值归一化处理;

将经最大值归一化处理后的平均幅度函数的倒数和短时自相关函数,进行调和平均后的函数作为当前帧语音数据的基音检测核心函数。

其中较优地,所述语音信号s(n)的短时自相关函数为:

上式中,N为计算语音信号s(n)的短时自相关函数所需的样值点数,s(n+m)为当前帧语音数据的语音信号的样值点数,w(m)为当前帧语音数据的语音信号的样值点对应的加窗函数,s(n+m+τ)为当前帧语音数据的语音信号延迟τ个样值点,w(m+τ)为当前帧语音数据的语音信号延迟τ个样值点对应的加窗函数;

所述语音信号s(n)的平均幅度差函数为:

上式中,N为计算语音信号s(n)的平均幅度差函数所需的样值点数,s(n+m)为所述当前帧语音数据的语音信号的样值点数,w(m)为所述当前帧语音数据的语音信号的样值点对应的加窗函数,s(n+m+τ)为所述当前帧语音数据的语音信号延迟τ个样值点,w(m+τ)为所述当前帧语音数据的语音信号延迟τ个样值点对应的加窗函数。

其中较优地,所述当前帧语音数据的最大值归一化的语音信号的短时自相关函数为:

上式中,R

所述当前帧语音数据的最大值归一化的语音信号的平均幅度差函数的倒数为:

上式中,F

以当前帧语音数据最大值归一化的语音信号的平均幅度差函数ADMF(τ)的倒数与语音信号的短时自相关函数ACF(τ)取调和平均Kernel(τ)作为当前帧语音数据的基音检测核心函数,具体表示为:

其中较优地,根据所述当前帧语音数据的基音检测核心函数曲线,选取出满足最大值归一化处理后的平均幅度差函数的倒数和短时自相关函数数值最大时对应的样值点范围,并根据所述样值点范围确定出所述当前帧语音数据的语音信号的基音周期。

其中较优地,验证所述当前帧语音数据的基音检测是否有效时,分别将计算的当前帧语音数据与其相邻帧语音数据的基音周期的门限值和当前帧语音数据的基音周期阈值进行比较,当计算的所述当前帧语音数据与其相邻帧语音数据的基音周期的门限值大于所述当前帧语音数据的基音周期阈值时,认为所述当前帧语音数据的基音检测是有效的。

其中较优地,所述当前帧语音数据与其相邻帧语音数据的基音周期的门限值为:

上式中,A[i]、B[i]为前后两帧语音数据出现最大值归一化处理后的短时自相关函数和平均幅度差函数数值最大时对应的样值点范围,P为前后两帧语音数据基音周期。

根据本公开实施例的第二方面,提供一种基音检测装置,包括处理器和存储器,所述处理器读取所述存储器中的计算机程序或指令,用于执行以下操作:

获取语音采集装置发送的多帧语音数据,并对每一帧语音数据进行解码和预处理;

分别计算经预处理的每一帧语音数据的基音检测核心函数,得到相应的基音检测核心函数曲线;

根据每一帧语音数据的基音检测核心函数曲线,得到每一帧语音数据的基音周期;

根据当前帧语音数据的基音周期阈值,验证该帧语音数据的基音检测是否有效。

本公开实施例提供的基音检测方法及装置主要是基于短时自相关函数方法和平均幅度差函数方法进行改进,有效地抑制了共振峰的影响,在低信噪比环境下能有效检测到基音周期,更准确地定位基音周期的位置,从而提高了基音检测精度,并解决传统的时域基音检测方法准确度较差的问题。此外,在实际运用中能够较好地满足语音信号处理对基音检测的要求,从而提高了语音信号处理的性能。

附图说明

图1为本公开实施例提供的基音检测方法的流程图;

图2为本发明实施例提供的基音检测装置的结构示意图。

具体实施方式

下面结合附图和具体实施例对本公开的技术内容做进一步的详细说明。

为了解决采用自相关函数方法估计语音信号的基音周期时出现的倍频或半频错误,以及采用平均幅度差函数方法估计语音信号的基音周期在语音信号的幅度或频率变化比较敏感时,基音检测精度明显下降的问题,如图1所示,本公开实施例提供了基音检测方法,包括:

步骤S1、获取语音采集装置发送的多帧语音数据,并对每一帧语音数据进行解码和预处理。

在进行IP语音会议的过程中,采用语音采集装置实时采集语音信号。由于语音信号是非稳态信号,其特征是随着时间变化的,但在一个很短的时间段内可以认为具有相对稳定的特征即短时平稳性。因此,语音信号具有短时相关性。这个时间段约为5ms-50ms。为了使其统计特性和频谱特性都是对短时段而言,需要对语音采集装置实时采集的连续语音信号按照预设时间段进行分帧并分别进行编码,得到多帧语音数据,每一帧语音数据都具有短时平稳性,从而便于对其进行短时相关分析。其中较佳地,优选对语音采集装置实时采集的连续的语音信号按照每20ms为一个时间段进行分帧。

获取语音采集装置发送的多帧语音数据,并对每一帧语音数据进行解码后得到预设时间段的语音信号,对该预设时间段的语音信号进行预处理包括采用自相关的自适应语音增强算法抑制语音信号中的高斯白噪声和采用线性相位低通滤波器滤除语音信号中的高次谐波分量,以尽可能地提取出纯净的原始语音信号。其中较佳地,优选采用通带为900Hz左右的线性相位低通滤波器滤除语音信号中的高次谐波分量,以减小语音信号中的高频信号干扰。需要强调的是,采用自相关的自适应语音增强算法抑制语音信号中的高斯白噪声为现有成熟技术,在此就不再赘述了。

其中,语音采集装置一般为进行IP语音会议时所使用的语音通话设备的声卡,如IP电话、手机中设置的声卡等。

步骤S2、分别计算经预处理的每一帧语音数据的基音检测核心函数,得到相应的基音检测核心函数曲线。

针对获取的当前帧语音数据进行解码和预处理得到的预设时间段的语音信号,分别计算语音信号基音检测核心函数的过程包括:

步骤S21、分别计算语音信号的平均幅度差函数的倒数和短时自相关函数。

由于语音信号的短时自相关函数采用的是对应样值点相乘,而语音信号的平均幅度差函数采用的是对应样值点相减,使得语音信号的短时自相关函数和平均幅度差函数的计算结果不在同一个数量级;因此,需要采用最大值归一化的方法将短时自相关函数方法和平均幅度差函数方法的计算值做归一化处理,避免因量级差别而造成语音信号的基音检测精度下降。

具体的说,语音信号s(n)的短时自相关函数为:

上式中,N为计算语音信号s(n)的短时自相关函数所需的样值点数,s(n+m)为当前帧语音数据的语音信号的样值点数,w(m)为当前帧语音数据的语音信号的样值点对应的加窗函数,s(n+m+τ)为当前帧语音数据的语音信号延迟τ个样值点,w(m+τ)为当前帧语音数据的语音信号延迟τ个样值点对应的加窗函数。

以当前帧语音数据的语音信号的样值点数为160为例,那么通过公式(1)计算出该160个样值点的语音信号往后平移τ个样值点后,进行乘积累加得到相应的短时自相关函数。

值得说明的是,清音信号没有周期性,它的短时自相关函数也没有周期性规律,因此没有明显的峰值出现,清音信号的短时自相关函数R

语音信号s(n)的平均幅度差函数为:

上式中,N为计算语音信号s(n)的平均幅度差函数所需的样值点数,s(n+m)为当前帧语音数据的语音信号的样值点数,w(m)为当前帧语音数据的语音信号的样值点对应的加窗函数,s(n+m+τ)为当前帧语音数据的语音信号延迟τ个样值点,w(m+τ)为当前帧语音数据的语音信号延迟τ个样值点对应的加窗函数。

以当前帧语音数据的语音信号的样值点数为160为例,那么通过公式(2)计算出该160个样值点的语音信号往后平移τ个样值点后,进行作差累加得到相应的平均幅度差函数。

语音信号的短时平均幅度差函数F

需要强调的是,在分别计算每一帧语音数据的语音信号的短时自相关函数和平均幅度差函数时均添加了加窗函数,避免引起很大的频谱泄露,使得语音信号的基音检测结果更准确。

因此,当前帧语音数据的最大值归一化的语音信号的短时自相关函数为:

上式中,R

最大值归一化的语音信号的平均幅度差函数的倒数为:

上式中,F

步骤S22、将经最大值归一化处理后的平均幅度函数的倒数和短时自相关函数,进行调和平均后的函数作为当前帧语音数据的基音检测核心函数。

以当前帧语音数据最大值归一化的语音信号的平均幅度差函数ADMF(τ)的倒数与语音信号的短时自相关函数ACF(τ)取调和平均Kernel(τ)作为当前帧语音数据的基音检测核心函数,具体表示为:

由于短时自相关函数方法和平均幅度差函数方法两者具有独立且相似的统计特性,即语音信号的短时自相关函数在基音周期处表现为峰值(短时自相关函数方法计算最大值),而语音信号的的平均幅度差函数在基音周期处表现为谷值(平均幅度差函数方法计算最小值),此时为了同时平衡短时自相关函数和平均幅度差函数的计算结果,因此可以同时运用短时自相关函数方法和平均幅度差函数方法的特点,将经最大值归一化处理后的平均幅度函数的倒数和短时自相关函数,进行调和平均后的函数作为当前帧语音数据的基音检测核心函数,使得对应基音周期处出现更明显的峰值,从而提高基音检测的准确程度。

步骤S3、根据每一帧语音数据的基音检测核心函数曲线,得到每一帧语音数据的基音周期。

根据当前帧语音数据的基音检测核心函数曲线,选取出满足最大值归一化处理后的平均幅度差函数的倒数和短时自相关函数数值最大时对应的样值点范围。因为由当前帧语音数据最大值归一化的语音信号的平均幅度差函数ADMF(τ)的倒数与语音信号的短时自相关函数ACF(τ)取调和平均Kernel(τ)的计算公式可知,只有语音信号的短时自相关函数ACF(τ)和语音信号的平均幅度差函数的倒数ADMF(τ)

步骤S4、根据当前帧语音数据的基音周期阈值,验证该帧语音数据的基音检测是否有效。

由于会持续计算获取的每一帧语音数据的基音周期,因此需要验证每一帧语音数据的基音检测是否有效。其验证过程为:分别将计算的当前帧语音数据与其相邻帧语音数据的基音周期的门限值和当前帧语音数据的基音周期阈值进行比较,以验证当前帧语音数据的基音检测是否有效。只有当计算的当前帧语音数据与其相邻帧语音数据的基音周期的门限值大于当前帧语音数据的基音周期阈值时,才认为当前帧语音数据的基音检测是有效的。其中,当前帧语音数据的基音周期阈值可根据实际应用场景而选择合适的经验值。

当前帧语音数据与其相邻帧语音数据的基音周期的门限值为:

上式中,A[i]、B[i]为前后两帧语音数据出现最大值归一化处理后的短时自相关函数和平均幅度差函数数值最大时对应的样值点范围,P为前后两帧语音数据基音周期。

此外,如图2所示,本公开实施例还提供一种基音检测装置,包括处理器32和存储器31,还可以根据实际需要进一步包括通信组件、传感器组件、电源组件、多媒体组件及输入/输出接口。其中,存储器、通信组件、传感器组件、电源组件、多媒体组件及输入/输出接口均与该处理器32连接。前已述及,存储器31可以是静态随机存取存储器(SRAM)、电可擦除可编程只读存储器(EEPROM)、可擦除可编程只读存储器(EPROM)、可编程只读存储器(PROM)、只读存储器(ROM)、磁存储器、快闪存储器等;处理器32可以是中央处理器(CPU)、图形处理器(GPU)、现场可编程逻辑门阵列(FPGA)、专用集成电路(ASIC)、数字信号处理(DSP)芯片等。其它通信组件、传感器组件、电源组件、多媒体组件等均可以采用现有智能手机中的通用部件实现,在此就不具体说明了。

另一方面,在基音检测装置中,处理器32读取存储器31中的计算机程序或指令,用于执行以下操作:

获取语音采集装置发送的多帧语音数据,并对每一帧语音数据进行解码和预处理。

分别计算经预处理的每一帧语音数据的基音检测核心函数,得到相应的基音检测核心函数曲线。

根据每一帧语音数据的基音检测核心函数曲线,得到每一帧语音数据的基音周期。

根据当前帧语音数据的基音周期阈值,验证该帧语音数据的基音检测是否有效。

另外,本公开实施例还提供一种计算机可读存储介质,所述可读存储介质上存储有指令,当其在计算机上运行时,使得所述计算机执行如上述图1所述的基音检测方法,此处不再赘述其具体实现方式。

另外,本公开实施例还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得所述计算机执行如上述图1所述的基音检测方法,此处不再赘述其具体实现方式。

本公开实施例提供的基音检测方法及装置主要是基于短时自相关函数方法和平均幅度差函数方法进行改进,有效地抑制了共振峰的影响,在低信噪比环境下能有效检测到基音周期,更准确地定位基音周期的位置,从而提高了基音检测精度,并解决传统的时域基音检测方法准确度较差的问题。此外,在实际运用中能够较好地满足语音信号处理对基音检测的要求,从而提高了语音信号处理的性能。

以上对本公开所提供的基音检测方法及装置进行了详细的说明。对本领域的一般技术人员而言,在不背离本公开实质内容的前提下对它所做的任何显而易见的改动,都将属于本公开专利权的保护范围。

技术分类

06120112183888