一种对带噪语音进行语音活动检测的方法与流程

文档序号:11867456阅读:360来源:国知局
一种对带噪语音进行语音活动检测的方法与流程

本发明涉及语音信号处理技术领域,具体涉及一种对带噪语音进行语音活动检测的方法。



背景技术:

语音质量在一些语音应用中很重要,比如手机、助听器以及语音编码系统等等,提升语音质量的一个关键就是消除信号中的噪音。而分析和处理语音需要解决的一个首要问题是检测出语音信号中的语音和非语音,即语音活动检测(Voice activity detection,VAD)。

基于G.729标准的VAD方法计算信号的能量,然后设定门限对信号的每一帧进行简单的分类,同时还用平滑和自适应的校正来提高分类的准确性。然而,这种方法在噪音存在的情况下无法取得令人满意的效果。所以,很多学者开始尝试利用数学建模实现VAD,但是这种方法无法在不同的噪声环境中均取得良好的效果,为解决这一问题,研究者们进一步提出了声学事件检测(AED)技术,转换卡尔曼滤波器(SKF),聚类算法(如谱聚类)和稀疏编码(Sparse Coding)等等。然而,这些方法有的需要很大的计算量,有的需要纯净语音作为参考,有很大的局限性。

语音是由人的声带产生的,某一个人的声带通常可以认为是不变的,所以一段信号中的不同的语音部分常常有一些共同的相像的特征,这些特征取决于说话者的声带,是非语音部分不具有的。



技术实现要素:

为了解决现有的VAD方法存在的不足,本发明提出一种对带噪语音进行语音活动检测的方法,可以在不同的噪音环境中计算出语音信号中的语音存在的概率。具体技术方案如下:

一种对带噪语音进行语音活动检测的方法,包括如下步骤:

a.采集语音信号;

b.输入步骤a采集的语音信号;

c.对输入的带噪语音进行分帧处理;

d.计算相邻帧快速傅立叶变换模的互相关值;

e.基于步骤d所得互相关值计算出每一帧的语音存在概率。

进一步地,步骤c中,对输入的带噪语音信号data分帧得到x(i),帧长len1设置为40ms,帧移len2设置为20ms,其中i为帧号。

进一步地,步骤d中包括:

(d-1)对分帧后的带噪语音做快速傅立叶变换后取模;

(d-2)求相邻帧的模的互相关值;

(d-3)求相邻帧的模的互相关值后,取其四次方根;

(d-4)互相关值四次方根需要减去所有互相关值四次方根幅度分布最大值对应的横坐标,并且小于零的数值归零。

进一步地,步骤e中包括:

(e-1)归一化处理;

(e-2)平滑处理;

(e-3)得到语音概率。

进一步地,步骤b中输入手机、助听器以及语音编码系统等,其内置可运行本方法的检测芯片。

进一步地,步骤(d-1)中,对各帧做快速傅立叶变换(FFT)并取模,加汉明窗平滑,得到xfft(i)=abs(FFT(x(i)))*hamming(L),其中abs表示取模运算,*表示卷积运算,hamming(L)表示窗长为L的汉明窗,L可根据具体应用调整。

进一步地,步骤(d-2)中,对相邻两帧的xfft做互相关运算,得到xcorr(i)=∑xfft(i)·xfft(i+1)。

进一步地,步骤(d-3)中,对xcorr(i)取四次方根,得到xdata(i)=(xcorr(i))1/4

进一步地,步骤(d-4)中,计算xdata(i)的幅度分布,得到幅度分布最大值对应的横坐标m=abscissa(max(H(xdata))),max(*)表示*的最大值,H(*)表示*的幅度分布,abscissa(*)表示*的横坐标;计算xdata2(i)=max(0,xdata(i)-m)。

进一步地,步骤(e-1)中,对xdata2(i)做归一化处理,得xdata3(i)=xdata2(i)/max(xdata2);步骤(e-2)中,对xdata3(i)做平滑处理,得xsp(i)=xdata3*hamming(len2);步骤(e-3)中,得到xsp(i)即表示第i帧包含语音的概率。

与目前现有技术相比,本发明对输入的带噪语音进行分帧,然后计算相邻帧快速傅立叶变换模的互相关值,基于此互相关值计算出每一帧的语音存在概率。本发明提出的语音活动检测方法鲁棒性强,可以在不同的噪音环境中计算出带噪语音信号中的语音存在的概率。

附图说明

图1为本发明的算法流程图;

图2为采用本发明提出的方法对一段带噪语音计算得到的语音存在概率示意图;

具体实施方式

下面根据附图对本发明进行详细描述,其为本发明多种实施方式中的一种优选实施例。

在一个优选实施例中,技术方案包含以下步骤:

步骤1、对输入的带噪语音信号data分帧得到x(i),帧长len1设置为40ms,帧移len2设置为20ms,其中i为帧号;

步骤2、对各帧做快速傅立叶变换(FFT)并取模,加汉明窗平滑,得到xfft(i)=abs(FFT(x(i)))*hamming(L),其中abs表示取模运算,*表示卷积运算,hamming(L)表示窗长为L的汉明窗,L可根据具体应用调整;

步骤3、对相邻两帧的xfft做互相关运算,得到xcorr(i)=∑xfft(i)·xfft(i+1);

步骤4、对xcorr(i)取四次方根,得到xdata(i)=(xcorr(i))1/4

步骤5、计算xdata(i)的幅度分布,得到幅度分布最大值对应的横坐标m=abscissa(max(H(xdata))),max(*)表示*的最大值,H(*)表示*的幅度分布,abscissa(*)表示*的横坐标;

步骤6、计算xdata2(i)=max(0,xdata(i)-m);

步骤7、对xdata2(i)做归一化处理,得xdata3(i)=xdata2(i)/max(xdata2),对xdata3(i)做平滑处理,得xsp(i)=xdata3*hamming(len2),则xsp(i)即表示第i帧包含语音的概率。

在另一个优选实施例中,可以采用如下方案:如图1所示,一种对带噪语音进行语音活动检测的方法,可以在不同的噪音环境中检测出带噪语音信号中的语音和非语音部分,其具体步骤为:步骤1、对输入的带噪语音信号data分帧得到x(i),帧长len1设置为40ms,帧移len2设置为20ms,其中i为帧号;步骤2、对各帧做快速傅立叶变换(FFT)并取模,加汉明窗平滑,得到xfft(i)=abs(FFT(x(i)))*hamming(L),其中abs表示取模运算,*表示卷积运算,hamming(L)表示窗长为L的汉明窗,L可根据具体应用调整;步骤3、对相邻两帧的xfft做互相关运算,得到xcorr(i)=∑xfft(i)·xfft(i+1);步骤4、对xcorr(i)取四次方根,得到xdata(i)=(xcorr(i))1/4;步骤5、计算xdata(i)的幅度分布,得到幅度分布最大值对应的横坐标m=abscissa(max(H(xdata))),max(*)表示*的最大值,H(*)表示*的幅度分布,abscissa(*)表示*的横坐标;步骤6、计算xdata2(i)=max(0,xdata(i)-m);步骤7、对xdata2(i)做归一化处理,得xdata3(i)=xdata2(i)/max(xdata2),对xdata3(i)做平滑处理,得xsp(i)=xdata3*hamming(len2),则xsp(i)即表示第i帧包含语音的概率。

如图2所示,该带噪语音为夹杂工厂噪音的语音,信噪比为3分贝,对输入的带噪语音进行分帧,然后计算相邻帧快速傅立叶变换模的互相关值,基于此互相关值计算出每一帧的语音存在概率。本发明提出的语音活动检测方法鲁棒性强,可以在不同的噪音环境中计算出带噪语音信号中的语音存在的概率。其原理为:对分帧后的带噪语音做快速傅立叶变换后取模。求相邻帧的模的互相关值后,取其四次方根。互相关值四次方根需要减去所有互相关值四次方根幅度分布最大值对应的横坐标,并且小于零的数值归零。互相关值四次方根减去所有互相关值四次方根幅度分布最大值对应的横坐标,并且小于零的数值归零后,需要进行归一化和平滑处理。

上面结合附图对本发明进行了示例性描述,显然本发明具体实现并不受上述方式的限制,只要采用了本发明的方法构思和技术方案进行的各种改进,或未经改进直接应用于其它场合的,均在本发明的保护范围之内。

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