一种新型双麦克风语音检测和增强方法与流程

文档序号:14059000阅读:290来源:国知局

本发明涉及语音识别和检测领域,特别是涉及到一种基于动态阈值更新策略的双麦克风语音检测和增强的方法。



背景技术:

受推动于深度神经网络等机器学习技术的影响,语音识别准确率得到很大的改善,语音识别已经开始在各个领域广泛应用。目前语音识别技术多应用手机、空调、电视等各类电子设备中,语音识别的人机交互技术相比于传统遥控器而言更加方便,并且是实现无交互界面信息查询、信息推荐等新一代人机交互技术的关键。

目前,在没有强烈噪音干扰和近讲的情况下,语音识别的准确率已经达到可以实用的效果。然而,在说话人距离麦克风距离较远的情况下,受制于噪声、混响等因素,语音识别率还需要进一步提高才能达到实用,此外,语音检测的实现是语音识别系统实时实现的重要部分,其目的是在复杂的实际环境中区分语音段与非语音段,避免非语音段信号被语音识别系统解码成错误指令造成误触发,缩短系统处理时间,减少移动端发射功率并节省信道资源。通常来讲,语音增强也需要知道语音的起始信息,以对噪声的功率谱等统计信息进行自适应。因此,语音增强和语音检测技术存在很强的关联性,更准确的语音检测技术也可以提高语音增强、噪声抑制的性能,在实际应用中,语音识别系统性能的优劣在很大程度上取决于语音检测的准确率、实时性和对噪声的抑制性能。因此,稳健、精确、实时和可以对各种非平稳噪声适应性强的语音检测和降噪技术是语音识别前端处理系统必须的。

当前自动语音检测的方法有三种,分别是时域中短时能量大小、过零率大小以及频域中频带能量均方,具体方法是求出短时能量、过零率或者频带能量均方差,然后与一个经验阈值进行比较,实际应用表明,这三种方法存在两个主要的缺点:1.采用固定阈值,无法在噪音环境改变的情况下取得良好的性能,而在实际应用中噪声通常是多变的,很难找到合适的固定阈值适应大多数噪声场景;2.单独比较短时能量大小或过零率大小的方法对于噪声能量较强的情况下,性能不稳定,准确性较低,同时如果语音检测准确率低,会造成噪音功率谱等统计信息不够精确,或者错误地包含了语音信息,进而导致语音扭曲。

为解决上述问题,需要发明一种对各种噪声鲁棒,并能够根据噪音环境的变化进行自适应调整的语音检测方法,在语音不被错误判断成噪音的情况下,判断出环境噪声时间段,以提高对背景噪声统计特性估计的准确率,从而大幅提高在复杂环境下噪声抑制性能和语音识别的准确率。



技术实现要素:

本发明的目的在于克服现有技术中所存在的上述不足,提供一种基于双麦克风信号采集系统的语音检测和增强方法,该方法可以根据环境噪声的变化进行阈值自动更新并大幅提高复杂噪声场景下语音识别的准确率。

为了达到上述目的,本发明提供了如下技术方案。

一种新型双麦克风语音检测与增强方法,其包括以下步骤:

步骤一,载入当前帧数据,所述当前帧数据为时域内语音数据;

步骤二,将所述时域内语音数据通过快速傅立叶变换(fft)转换为频域内语音数据,对应第n个时间帧,所述时域内语音数据简记为【ym((n-1)lw+1),ym((n-1)lw+2),…,ym(nlw)】,m=1,2,其中m代表两个麦克风的标号,lw为一个语音帧周期内数据的采样个数;fft变换后的所述频域内语音数据简记为ym(n,k),m=1,2,其中n代表时间帧坐标,k代表频带坐标;

步骤三,将所述时域内语音数据的当前时间帧长度与听觉特征缓冲区的长度进行对比,若所述当前时间帧长度小于所述听觉特征缓冲区的长度,则进行步骤四,若所述当前时间帧长度大于等于所述听觉特征缓冲区的长度,则直接进入步骤五;

步骤四,初始化参数,所述参数包括观测信号功率谱密度、噪音功率谱密度、语音频谱估计值、先验信噪比特征、谱通量特征、时域特征,若干所述观测信号功率谱密度组成观测信号功率谱密度矩阵,将所述先验信噪比特征初始化为1,如果完成初始化则进行步骤八,如果未完成初始化则进行步骤五;

步骤五,更新所述观测信号功率谱密度组成的观测信号功率谱密度矩阵,采用一阶前向回归系数进行平滑,即结合所述当前帧的所述观测信号功率谱密度对初始所述观测信号功率谱密度矩阵进行更新获得新的所述观测信号功率谱密度矩阵;

quote公式一

其中,为取值区间为0~1的平滑因子,上标‘*’为共轭算子,quote是所述观测信号功率谱密度矩阵,quote是用于语音检测的噪音功率谱密度矩阵,用以检测语音是否存在,由于初始化阶段假设语音不存在,观测信号就是环境噪声,所以初始化阶段等于quote,quote是用于语音增强的所述噪音功率谱密度矩阵,精度比quote更高,同样在初始化阶段初始为quote,quote是语音频域估计值,在步骤四的初始化参数阶段设置为所述频域内语音数据quote以一个远小于1的正数衰减因子quote

步骤六,计算所述当前帧数据的所述谱通量特征和时域特征,所述先验信噪比特征、谱通量特征和时域特征组成听觉特征,所述听觉特征用于语音检测判决;

quote公式二

t=(n-1)lw

quote公式三

所述先验信噪比特征用f1表示,在初始化阶段设置为quote,f2代表所述谱通量特征,代表前后帧语音频谱估计差异的平均值,由于环境噪音通常平稳且变化不大,而语音则变化较大,f2的大小可以用以检测语音是否存在,f3代表所述时域特征,计算所述时域内语音数据在时域相差若干采样点时的平均差异值,差异越大,说明语音出现的概率越大,t代表计算所述时域内语音数据的初始采样点坐标;

步骤七,更新所述听觉特征缓冲区和语音初步检测缓冲区,所述听觉特征缓冲区存储在听觉特征缓冲区矩阵中,所述听觉特征缓冲区矩阵共有lb列,lb为大于1的正整数,每列所述听觉特征缓冲区矩阵记录了一组所述听觉特征,所述当前帧的最新所述听觉特征计算完毕后,即步骤六的计算结果,将步骤六的计算结果存入所述听觉特征缓冲区矩阵的最后一列,并移除所述听觉特征缓冲区矩阵的第一列的所述听觉特征数据,从而形成新的所述听觉特征缓冲区矩阵,所述语音初步检测缓冲区存储在语音初步检测缓冲区矩阵中,所述语音初步检测缓冲区矩阵的列数与所述听觉特征缓冲区矩阵的列数相同,所述语音初步检测缓冲区的更新方法与所述听觉特征缓冲区的更新方法相同,每列所述语音初步检测缓冲区矩阵记录了一组所述初步的语音活动检测结果,所述当前帧的最新所述语音初步检测结果存入所述语音初步检测缓冲区矩阵的最后一列,并移除所述语音初步检测缓冲区矩阵的第一列的所述语音初步检测结果从而形成新的所述语音初步检测缓冲区矩阵;

quote公式四

quote公式五

bf代表所述听觉特征缓冲区,所述听觉特征缓冲区存储在所述听觉特征缓冲区矩阵中,所述听觉特征缓冲区矩阵共有lb列,是一个维度为lb×3的二维矩阵,每列记录一组3维所述听觉特征,所述听觉特征缓冲区存储了最新的lb帧听觉特征。当前帧听觉特征计算完毕后,放入该缓冲区矩阵的最后一列,并移除历史最久的即第一列数据。公式四表示,更新后的听觉特征缓冲区由原缓冲区去除第一列并加上最新的听觉特征构成,quote代表所述听觉特征阈值,max表示取所述听觉特征缓冲区中的最大值;

步骤八,更新所述观测信号功率谱密度矩阵,并计算各频带所述先验信噪比特征;

quote公式六

quote公式七

quote公式八

其中,平滑系数quote为取值区间为0~1的平滑因子,上标‘*’为共轭算子,quote是所述观测信号功率谱密度矩阵,采用一阶前向回归系数进行平滑,平滑系数为quote,即结合所述频域内语音数据y(n,k)对原所述功率谱密度矩阵进行更新,quote是所述先验信噪比特征,反应了观测信号与噪音信号的功率谱密度的平均比值,比值越大,说明当前所述时域内语音数据含有噪音的几率越小,否则越大,quote是用于语音检测的所述噪音功率谱密度矩阵,用以检测语音是否存在,quote是所述语音频域估计值,其中上标‘h’代表共轭转置算子;

步骤九,计算所述当前帧数据的所述听觉特征,即所述先验信噪比特征、谱通量特征和时域特征,所述先验信噪比特征不再采用固定值;

quote公式九

t=(n-1)lw

f1代表全局所述先验信噪比特征,是公式七中计算的所述先验信噪比特征在各个频带的平均值,f1越大,说明当前帧越可能出现语音信号;

f2代表估计的语音频谱前后帧的平均差异值即谱通量特征,由于背景噪音通常平稳变化,而语音信号则变化较大,所以f2越大说明语音出现的概率也越大;

f3特征计算观测信号在时域相差若干采样点的平均差异值即时域特征,同样差异越大,说明语音出现的概率越大;

t代表计算所述时域内语音数据的初始采样点坐标;

步骤十,所述先验信噪比特征、谱通量特征和时域特征分别与所述先验信噪比特征、谱通量特征和时域特征的阈值进行比对,得到初步的语音活动检测结果,所述初步的语音活动检测结果形成语音初步检测缓冲区,如果有任一个特征表明出现语音,则暂时把结果标记为检测到语音,否则则标记为未出现语音;

quote公式十

quote公式十一

i代表特征维度坐标i=1,2,3.,n代表时间帧坐标,每一个特征的判别结果为q(i),p(n)为第n帧综合判定结果,公式五的意思是,对第n帧的听觉特征分别与阈值进行对比,如果有任一个特征表明出现语音,则暂时把结果定为检测到语音(p(n)=1),否则则标记为未出现语音(p(n)=0);

步骤十一,更新听觉特征缓冲区和语音初步检测缓冲区;

quote公式四

quote公式十二

所述听觉特征缓冲区存储在所述听觉特征缓冲区矩阵中,所述听觉特征缓冲区矩阵共有lb列,是一个维度为lb×3的二维矩阵,每列记录一组3维所述听觉特征,所述听觉特征缓冲区存储了最新的lb帧听觉特征,当前帧听觉特征计算完毕后,放入该缓冲区矩阵的最后一列,并移除历史最久的即第一列数据,公式四表示,更新后的听觉特征缓冲区由原缓冲区去除第一列并加上最新的听觉特征构成;

bp代表语音初步检测结果缓冲区,更新过程和所述听觉特征缓冲区更新方法相同;

bp记录前lb帧语音初步检测结果,每一个数据为1则代表该帧初步检测为语音,否则取值0代表未检测到语音,由一行长为lb的行向量表示,更新后的bp由原缓冲区去除第一个数据并加上最新的检测结果构成;

步骤十二,自适应更新所述听觉特征阈值,如果所述当前帧的所述听觉特征的最小值大于当前帧的所述听觉特征阈值,则把所述最小值设置为新的所述听觉特征阈值,否则所述听觉特征阈值不变;

quote,公式十三

quote代表第i个听觉特征的阈值,i=1,2,3,更新后的结果为取当前所述听觉特征的阈值与所述听觉缓冲区中的最小值进行比较,取二者之间的最大值作为新的所述听觉特征的阈值,即如果所述听觉特征缓冲区中的数据的最小值大于当前所述听觉的阈值,则把所述听觉特征缓冲区的最小值设置为新的所述听觉特征的阈值,否则所述听觉特征的阈值不变,这是做的目的是为了避免由于环境噪声增大,造成所述听觉特征缓冲区内的所述听觉特征同步增大,而阈值却不能同步进行更新造成过多的环境噪声被错误检测为语音信号的问题;

步骤十三,更新噪音功率谱密度矩阵和阈值重设标志,所述阈值重设标志用以记录连续检测不到语音的帧数量,更新所述噪音功率谱密度矩阵的原则是如果检测到所述当前帧有语音信号存在则不进行更新,如果检测到所述当前帧无语音信号则进行更新;

quote公式十四

quote公式十五

公式十四中的q是阈值重设标志,代表距离最近的被检测为语音时间帧的数量,也表示连续检测不到语音帧的数量,即如果当前检测结果为非语音(p(n)<1),则该值q加上1;否则如果当前检测结果为语音(p(n)=1),则说明检测到语音信号,该值重设为0;

公式十五为更新所述噪音功率谱密度矩阵的公式,即如果所述当前帧数据检测结果为非语音(p(n)<1),则当前所述当前帧数据全部由噪音信号构成,所述功率谱密度矩阵在原矩阵的基础上,通过平滑因子quote把所述当前帧数据信号更新进去;如果所述当前帧数据检测结果为语音信号存在即(p(n)=1),则由于语音信号的存在,更新噪音功率谱密度矩阵会引入误差,采用暂时不更新的策略;

步骤十四,更新所述听觉特征阈值,在连续检测不到语音的情况下,选择当前所述听觉特征缓冲区的最大值做为新的所述听觉特征阈值,如果连续检测不到语音信号的所述当前帧数据数量大于所述听觉特征缓冲区的数量,则将所述听觉特征缓冲区所有数据的最大值设定为新的所述听觉特征阈值,如果连续检测不到语音信号的所述当前帧数据数量小于所述听觉特征缓冲区的数量,则不更新所述听觉特征阈值;

quote公式十六

根据公式十四中连续检测不到语音帧的数量q更新所述听觉特征阈值quote,如果q的数量超过听觉特征缓冲区的数量,则把缓冲区所有数据的最大值设为新的阈值,这样更新的目的是避免阈值过大,造成语音信号被漏检,如果连续检测不到语音帧的数量小于缓冲区的数量,则暂时不更新所述听觉特征阈值;

步骤十五,根据所述语音初步检测缓冲区的结果修正最终语音检测结果,如果所述语音初步检测缓冲区内超过一半的所述当前帧为语音则判定为所述最终语音检测结果,否则将所述语音初步检测结果设置为所述最终语音检测结果;

quote公式十七

由于语音信号是连续多帧出现,采用阈值判断的方法会出现语音帧不连续的错误情况,为了避免这种情况,可以根据所述语音初步检测结果缓冲区bp对检测结果进行修正,公式十七计算原理为,如果所述语音初步检测结果缓冲区bp内超过1半的时间帧检测结果为1,即检测到语音,则不论初步检测结果是0还是1,都判定所述当前帧数据检测到语音,结果取为1,反之则把所述语音初步检测结果设置为所述最终语音检测结果;

步骤十六,根据所述最终语音检测结果更新所述噪音功率谱密度矩阵同时更新最终的语音增强后频域结果;

quote公式十八

quote公式十九

quote是用于语音增强的所述噪音功率谱密度矩阵,如果最终的检测结果p(n)<1,则表明所述当前帧数据没有检测到语音,所述频域内语音数据只包含噪音信号,在原所述功率谱密度矩阵的基础上,通过平滑因子quote对所述噪音功率谱密度矩阵进行平滑更新;

由于quote比quote对噪音的刻画更准确,所以在这一阶段,quote值赋给quote

公式十九中的x(n,k)代表最终的所述语音频谱估计值,根据双麦克风维纳滤波器进行估计,quote代表维纳滤波器,反应了所述当前帧数据相对于噪音信号的平均比率,比率越大,则噪声越多,反之比率越小,越多比率语音信号保留到最终语音估计输出;

步骤十七,使用快速傅立叶逆变换将所述最终的增强后语音频域结果转换为最终增强后语音时域结果。

通常的语音能量虽然并不平稳,但是会持续一段时间,即检测到语音的时候通常是一段时间持续为语音活动,通过设定的语音初步检测结果缓冲区的方式,把一段区域内,如果有一半以上所述当前帧数据被检测出语音信号,通常在这些活动语音帧之间都会有语音存在,根据这一准则进一步对语音检测结果进行修正,可以有效避免语音帧被漏识,本项发明的动态阈值更新策略体现在两个方面,分别如步骤十二和步骤十四所示,步骤十二是在每一帧进行微调,但是选择所述特征缓冲区内的最小值参与更新,避免语音信号被错误判断成语音不存在,进而避免在最终语音增强信号输出中造成过大语音扭曲,步骤十四可以理解为如果很长一段时间内都没有语音存在,则可以以更大幅度更新阈值,即选择所述听觉特征缓冲区中的最大值作为新的阈值,根据得到的语音活动检测信息对背景噪音的所述功率谱密度矩阵进行更新,最后根据多麦克风维纳滤波得到最终的语音频谱估计和时域估计。

作为本发明的优选方案,所述听觉特征缓冲区的时长范围在10毫秒到50毫秒之间,所述平滑因子quote区间为0.9~0.98,所述固定衰减因子quote设为0.1,;步骤三中参数所述当前时间帧长度lt设定为10,步骤四中缓冲区帧的数量lb优选为25。

作为本发明的优选方案,步骤十一和步骤十五中x(n,k)计算采用频域多麦克风维纳滤波器进行估计,优选频域多麦克风维纳滤波器进行维纳滤波是因为其可以最小化均方估计误差,在语音扭曲和噪音残留之间达到较好的权衡。

作为本发明的优选方案,步骤七中采用3组听觉特征联合对语音活动进行检测,只要3组所述听觉特征中有2组所述听觉特征表明有语音活动则初步判定为存在语音。

与现有技术相比,本发明的有益效果:

本发明采用两种动态阈值更新策略,充分考虑噪音环境的多变性,采用可以反映噪音能量占全部能量比率的3组听觉特征,可以有效检测出语音活动的时间帧,又可以根据噪音的变换对阈值进行动态调整;发明采用对检测结果缓冲的方式,对检测结果进行再次修正,避免了连续活动语音帧之间存在漏检的缺陷;根据语音检测结果,对噪音功率谱密度矩阵进行自适应更新,进一步采用维纳滤波器进行语音增强,可以在最小均方误差准则下抑制噪声。

附图说明

图1为本发明流程图。

具体实施方式

下面结合实施例及具体实施方式对本发明作进一步的详细描述,但不应将此理解为本发明上述主体的范围仅限于以下的实施例,凡基于本发明内容所实现的技术均属于本发明的范围。

如图1所示,一种新型双麦克风语音检测与增强方法,其包括以下步骤:

步骤一,载入当前帧数据,所述当前帧数据为时域内语音数据;

步二,将所述时域内语音数据通过快速傅立叶变换(fft)转换为频域内语音数据,对应第n个时间帧,所述时域内语音数据简记为【ym((n-1)lw+1),ym((n-1)lw+2),…,ym(nlw)】,m=1,2,其中m代表两个麦克风的标号,lw为一个语音帧周期内数据的采样个数;fft变换后的所述频域内语音数据简记为ym(n,k),m=1,2,其中n代表时间帧坐标,k代表频带坐标,本实施例中n=10,k=10;

步骤三,将所述时域内语音数据的当前时间帧长度与听觉特征缓冲区的长度进行对比,若所述当前时间帧长度小于所述听觉特征缓冲区的长度,则进行步骤四,若所述当前时间帧长度大于等于所述听觉特征缓冲区的长度,则直接进入步骤五;

步骤四,初始化参数,所述参数包括观测信号功率谱密度、噪音功率谱密度、语音频谱估计值、先验信噪比特征、谱通量特征、时域特征,若干所述观测信号功率谱密度组成观测信号功率谱密度矩阵,将所述先验信噪比特征初始化为1,如果完成初始化则进行步骤八,如果未完成初始化则进行步骤五;

步骤五,更新所述观测信号功率谱密度组成的观测信号功率谱密度矩阵,采用一阶前向回归系数进行平滑,即结合所述当前帧的所述观测信号功率谱密度对初始所述观测信号功率谱密度矩阵进行更新获得新的所述观测信号功率谱密度矩阵;

更新所述观测信号功率谱密度矩阵,并计算各频带所述先验信噪比特征;

quote公式六

quote公式七

quote公式八

其中,平滑系数quote为取值区间为0~1的平滑因子,上标‘*’为共轭算子,quote是所述观测信号功率谱密度矩阵,采用一阶前向回归系数进行平滑,平滑系数为quote,即结合所述频域内语音数据y(n,k)对原所述功率谱密度矩阵进行更新,quote是所述先验信噪比特征,反应了观测信号与噪音信号的功率谱密度的平均比值,比值越大,说明当前所述时域内语音数据含有噪音的几率越小,否则越大,quote是用于语音检测的所述噪音功率谱密度矩阵,用以检测语音是否存在,quote是所述语音频域估计值,其中上标‘h’代表共轭转置算子;

步骤六,计算所述当前帧数据的所述谱通量特征和时域特征,所述先验信噪比特征、谱通量特征和时域特征组成听觉特征,所述听觉特征用于语音检测判决;

quote公式二

t=9lw

quote公式三

所述先验信噪比特征用f1表示,在初始化阶段设置为quote,f2代表所述谱通量特征,代表前后帧语音频谱估计差异的平均值,由于环境噪音通常平稳且变化不大,而语音则变化较大,f2的大小可以用以检测语音是否存在,f3代表所述时域特征,计算所述时域内语音数据在时域相差若干采样点时的平均差异值,差异越大,说明语音出现的概率越大,t代表计算所述时域内语音数据的初始采样点坐标;

步骤七,更新所述听觉特征缓冲区和语音初步检测缓冲区,所述听觉特征缓冲区存储在听觉特征缓冲区矩阵中,所述听觉特征缓冲区矩阵共有lb列,本实施例中lb=25,每列所述听觉特征缓冲区矩阵记录了一组所述听觉特征,所述当前帧的最新所述听觉特征计算完毕后,即步骤六的计算结果,将步骤六的计算结果存入所述听觉特征缓冲区矩阵的最后一列,并移除所述听觉特征缓冲区矩阵的第一列的所述听觉特征数据,从而形成新的所述听觉特征缓冲区矩阵,所述语音初步检测缓冲区存储在语音初步检测缓冲区矩阵中,所述语音初步检测缓冲区矩阵的列数与所述听觉特征缓冲区矩阵的列数相同,所述语音初步检测缓冲区的更新方法与所述听觉特征缓冲区的更新方法相同,每列所述语音初步检测缓冲区矩阵记录了一组所述初步的语音活动检测结果,所述当前帧的最新所述语音初步检测结果存入所述语音初步检测缓冲区矩阵的最后一列,并移除所述语音初步检测缓冲区矩阵的第一列的所述语音初步检测结果从而形成新的所述语音初步检测缓冲区矩阵;

quote公式四

quote公式五

bf代表所述听觉特征缓冲区,所述听觉特征缓冲区存储在所述听觉特征缓冲区矩阵中,所述听觉特征缓冲区矩阵共有25列,是一个维度为25×3的二维矩阵,每列记录一组3维所述听觉特征,所述听觉特征缓冲区存储了最新的25帧听觉特征。当前帧听觉特征计算完毕后,放入所述听觉特征缓冲区矩阵的最后一列,并移除历史最久的即第一列数据。公式四表示,更新后的所述听觉特征缓冲区由原所述听觉特征缓冲区去除第一列并加上最新的听觉特征构成,quote代表所述听觉特征阈值,max表示取所述听觉特征缓冲区中的最大值;

步骤八,更新所述观测信号功率谱密度矩阵,并计算各频带所述先验信噪比特征;

quote公式六

quote公式七

quote公式八

其中,平滑系数quote为取值区间为0~1的平滑因子,上标‘*’为共轭算子,quote是所述观测信号功率谱密度矩阵,采用一阶前向回归系数进行平滑,平滑系数为quote,即结合所述频域内语音数据y(n,k)对原所述功率谱密度矩阵进行更新,quote是所述先验信噪比特征,反应了观测信号与噪音信号的功率谱密度的平均比值,比值越大,说明当前所述时域内语音数据含有噪音的几率越小,否则越大,quote是用于语音检测的所述噪音功率谱密度矩阵,用以检测语音是否存在,quote是所述语音频域估计值,其中上标‘h’代表共轭转置算子;

步骤九,计算所述当前帧数据的所述听觉特征,即所述先验信噪比特征、谱通量特征和时域特征,所述先验信噪比特征不再采用固定值;

quote公式九

t=9lw

f1代表全局所述先验信噪比特征,是公式七中计算的所述先验信噪比特征在各个频带的平均值,f1越大,说明当前帧越可能出现语音信号;

f2代表估计的语音频谱前后帧的平均差异值即谱通量特征,由于背景噪音通常平稳变化,而语音信号则变化较大,所以f2越大说明语音出现的概率也越大;

f3特征计算观测信号在时域相差若干采样点的平均差异值即时域特征,同样差异越大,说明语音出现的概率越大;

t代表计算所述时域内语音数据的初始采样点坐标;

步骤十,所述先验信噪比特征、谱通量特征和时域特征分别与所述先验信噪比特征、谱通量特征和时域特征的阈值进行比对,得到初步的语音活动检测结果,所述初步的语音活动检测结果形成语音初步检测缓冲区,如果有任一个特征表明出现语音,则暂时把结果标记为检测到语音,否则则标记为未出现语音;

quote公式十

quote公式十一

i代表特征维度坐标i=1,2,3.,n代表时间帧坐标,每一个特征的判别结果为q(i),p(n)为第n帧综合判定结果,本实施例中n=10,公式五的意思是,将第10帧的听觉特征分别与阈值进行对比,如果有任一个特征表明出现语音,则暂时把结果定为检测到语音(p(n)=1),否则则标记为未出现语音(p(n)=0);

步骤十一,更新听觉特征缓冲区和语音初步检测缓冲区;

quote公式四

quote公式十二

所述听觉特征缓冲区存储在所述听觉特征缓冲区矩阵中,所述听觉特征缓冲区矩阵共有lb列,本实施例中lb=25,是一个维度为25×3的二维矩阵,每列记录一组3维所述听觉特征,所述听觉特征缓冲区存储了最新的25帧听觉特征,当前帧听觉特征计算完毕后,放入该缓冲区矩阵的最后一列,并移除历史最久的即第一列数据,公式四表示,更新后的听觉特征缓冲区由原缓冲区去除第一列并加上最新的听觉特征构成;

bp代表语音初步检测结果缓冲区,更新过程和所述听觉特征缓冲区更新方法相同;

bp记录前lb帧语音初步检测结果,每一个数据为1则代表该帧初步检测为语音,否则取值0代表未检测到语音,由一行长为lb的行向量表示,更新后的bp由原缓冲区去除第一个数据并加上最新的检测结果构成;

步骤十二,自适应更新所述听觉特征阈值,如果所述当前帧的所述听觉特征的最小值大于当前帧的所述听觉特征阈值,则把所述最小值设置为新的所述听觉特征阈值,否则所述听觉特征阈值不变;

quote,公式十三

quote代表第i个听觉特征的阈值,i=1,2,3,更新后的结果为取当前所述听觉特征的阈值与所述听觉缓冲区中的最小值进行比较,取二者之间的最大值作为新的所述听觉特征的阈值,即如果所述听觉特征缓冲区中的数据的最小值大于当前所述听觉的阈值,则把所述听觉特征缓冲区的最小值设置为新的所述听觉特征的阈值,否则所述听觉特征的阈值不变,这是做的目的是为了避免由于环境噪声增大,造成所述听觉特征缓冲区内的所述听觉特征同步增大,而阈值却不能同步进行更新造成过多的环境噪声被错误检测为语音信号的问题;

步骤十三,更新噪音功率谱密度矩阵和阈值重设标志,所述阈值重设标志用以记录连续检测不到语音的帧数量,更新所述噪音功率谱密度矩阵的原则是如果检测到所述当前帧有语音信号存在则不进行更新,如果检测到所述当前帧无语音信号则进行更新;

quote公式十四

quote公式十五

公式十四中的q是阈值重设标志,代表距离最近的被检测为语音时间帧的数量,也表示连续检测不到语音帧的数量,即如果当前检测结果为非语音(p(n)<1),则该值q加上1;否则如果当前检测结果为语音(p(n)=1),则说明检测到语音信号,该值重设为0;

公式十五为更新所述噪音功率谱密度矩阵的公式,即如果所述当前帧数据检测结果为非语音(p(n)<1),则当前所述当前帧数据全部由噪音信号构成,所述功率谱密度矩阵在原矩阵的基础上,通过平滑因子quote把所述当前帧数据信号更新进去;如果所述当前帧数据检测结果为语音信号存在即(p(n)=1),则由于语音信号的存在,更新噪音功率谱密度矩阵会引入误差,采用暂时不更新的策略;

步骤十四,更新所述听觉特征阈值,在连续检测不到语音的情况下,选择当前所述听觉特征缓冲区的最大值做为新的所述听觉特征阈值,如果连续检测不到语音信号的所述当前帧数据数量大于所述听觉特征缓冲区的数量,则将所述听觉特征缓冲区所有数据的最大值设定为新的所述听觉特征阈值,如果连续检测不到语音信号的所述当前帧数据数量小于所述听觉特征缓冲区的数量,则不更新所述听觉特征阈值;

quote公式十六

根据公式十四中连续检测不到语音帧的数量q更新所述听觉特征阈值quote,如果q的数量超过听觉特征缓冲区的数量,则把缓冲区所有数据的最大值设为新的阈值,这样更新的目的是避免阈值过大,造成语音信号被漏检,如果连续检测不到语音帧的数量小于缓冲区的数量,则暂时不更新所述听觉特征阈值;

步骤十五,根据所述语音初步检测缓冲区的结果修正最终语音检测结果,如果所述语音初步检测缓冲区内超过一半的所述当前帧为语音则判定为所述最终语音检测结果,否则将所述语音初步检测结果设置为所述最终语音检测结果;

quote公式十七

由于语音信号是连续多帧出现,采用阈值判断的方法会出现语音帧不连续的错误情况,为了避免这种情况,可以根据所述语音初步检测结果缓冲区bp对检测结果进行修正,公式十七计算原理为,如果所述语音初步检测结果缓冲区bp内超过1半的时间帧检测结果为1,即检测到语音,则不论初步检测结果是0还是1,都判定所述当前帧数据检测到语音,结果取为1,反之则把所述语音初步检测结果设置为所述最终语音检测结果;

步骤十六,根据所述最终语音检测结果更新所述噪音功率谱密度矩阵同时更新最终的语音增强后频域结果;

quote公式十八

quote公式十九

quote是用于语音增强的所述噪音功率谱密度矩阵,如果最终的检测结果p(n)<1,则表明所述当前帧数据没有检测到语音,所述频域内语音数据只包含噪音信号,在原所述功率谱密度矩阵的基础上,通过平滑因子quote对所述噪音功率谱密度矩阵进行平滑更新;

由于quote比quote对噪音的刻画更准确,所以在这一阶段,quote值赋给quote

公式十九中的x(n,k)代表最终的所述语音频谱估计值,根据双麦克风维纳滤波器进行估计,quote代表维纳滤波器,反应了所述当前帧数据相对于噪音信号的平均比率,比率越大,则噪声越多,反之比率越小,越多比率语音信号保留到最终语音估计输出;

步骤十七,使用快速傅立叶逆变换将所述最终的增强后语音频域结果转换为最终增强后语音时域结果。

通常的语音能量虽然并不平稳,但是会持续一段时间,即检测到语音的时候通常是一段时间持续为语音活动,通过设定的语音初步检测结果缓冲区的方式,把一段区域内,如果有一半以上所述当前帧数据被检测出语音信号,通常在这些活动语音帧之间都会有语音存在,根据这一准则进一步对语音检测结果进行修正,可以有效避免语音帧被漏识,本项发明的动态阈值更新策略体现在两个方面,分别如步骤十二和步骤十四所示,步骤十二是在每一帧进行微调,但是选择所述特征缓冲区内的最小值参与更新,避免语音信号被错误判断成语音不存在,进而避免在最终语音增强信号输出中造成过大语音扭曲,步骤十四可以理解为如果很长一段时间内都没有语音存在,则可以以更大幅度更新阈值,即选择所述听觉特征缓冲区中的最大值作为新的阈值,根据得到的语音活动检测信息对背景噪音的所述功率谱密度矩阵进行更新,最后根据多麦克风维纳滤波得到最终的语音频谱估计和时域估计。

本实施例中,所述听觉特征缓冲区的时长为32毫秒,所述平滑因子quote为0.92,所述固定衰减因子quote设为0.1,;参数lt设定为10,lb优选为25。

本实施例中,步骤十一和步骤十五中quote计算采用频域多麦克风维纳滤波器进行估计,优选频域多麦克风维纳滤波器进行维纳滤波是因为其可以最小化均方估计误差,在语音扭曲和噪音残留之间达到较好的权衡,在其他实施例中可以用mvdr(最小方差无失真响应)滤波器替换多麦克风维纳滤波器。

如图1所示,首先载入当前帧数据,当前帧数据是时域内混合信号数据,在没有语音信号活动的情况下,仅仅包含背景噪音数据。首先经过fft变化转化到频域,以提取频域相关特征和后续进行频域滤波器进行噪音抑制、语音增强,系统在前20帧左右完成特征提取、阈值初始化等操作,通常假定初始化阶段(20帧对应0.5秒到1秒左右)仅有背景噪声而没有环境噪声,在实际应用中这一假设通常成立,同样,噪音功率谱密度矩阵在初始化阶段等于观测信号功率谱密度矩阵。

完成初始化阶段之后,计算先验信噪比、谱通量和时域特征,通过与阈值的比较得到语音活动的初步检测结果,随后进行特征缓冲区和语音检测结果缓冲区自动更新,并逐帧更新听觉阈值,在这一步骤的阈值更新中,选择特征缓冲区中的极小值参与更新,以避免局部阈值过高,造成语音漏检,随后更新噪音功率谱密度矩阵,得到更精确的密度矩阵,并更新阈值重设标志,如果阈值重设标志大于一定帧数,则说明连续没有检测到语音活动,则根据特征缓冲区内的最大值更新特征阈值,最后根据,语音检测结果缓冲区,对当前帧判别结果做最后修正,同时得到最终的噪音功率谱密度矩阵,最终,语音频谱估计结果基于当前观测信号功率谱密度矩阵和噪音功率谱密度矩阵估计结果,并采用频域维纳滤波器进行语音频谱估计。

在其他实施例中还可以采用后验信噪比等听觉特征代替目前采用的听觉特征。

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