基于多分辨率KL散度和投票机制的带噪语音端点检测方法与流程

文档序号:31168431发布日期:2022-08-17 09:03阅读:148来源:国知局
技术简介:
本专利针对噪声环境下语音端点检测易因子带能量起伏导致误判的问题,提出基于多分辨率KL散度与投票机制的解决方案。通过分帧、多颗粒度子带划分、KL散度计算及多判据融合,有效提升不同信噪比下的检测鲁棒性与准确率。
关键词:多分辨率KL散度,语音端点检测
基于多分辨率kl散度和投票机制的带噪语音端点检测方法
技术领域
1.本发明涉及语音信号处理技术领域,特别是涉及一种基于多分辨率kl散度和投票机制的带噪语音端点检测方法。


背景技术:

2.本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
3.语音端点检测技术在语音信号处理领域有着广泛应用。如在变速率语音编码系统中,语音端点检测技术用来进行语音段和非语音段的判定,从而在非语音段减少编码比特数,降低平均编码速率。如在语音降噪系统中,语音端点检测技术用来判定语音段和非语音段,从而在非语音段对噪声特性进行估计和更新,取得更好的降噪效果。除此之外,还涉及语音识别、回声抵消、语音唤醒等技术领域。
4.但是背景噪声的存在会影响语音端点检测的准确率,对带噪语音进行端点检测仍然是研究难点和热点。为了更好地进行端点检测,基于频域特征的方法等技术被提出。基于频域特征进行端点检测能够更好地利用噪声与语音信号频谱统计特征的区别,具有很好的检测效果;基于谱熵的端点检测方法是这一类算法的典型代表。
5.但是,利用谱熵进行端点检测的方法其鲁棒性仍然需要进一步提高,在白噪声、粉噪声等带噪语音中,噪声频谱特征虽然相对平稳,但仍会有程度不一的区别,如能量在临近子带的分布会有起伏,采用单一固定的子带划分方法会产生噪声误判为语音的情况;再如,在单一固定子带划分框架下,仍然会有个别语音帧的谱熵由于非常接近噪声帧,而被判断为噪声,从而出现误判的问题。上述问题都会直接影响语音端点检测的效果。


技术实现要素:

6.为了解决上述问题,本发明提出了一种基于多分辨率kl散度和投票机制的带噪语音端点检测方法,有效解决噪声频谱在临近子带起伏而导致的噪声被误判为语音的问题,从而有效提高语音端点检测的准确率。
7.为了实现上述目的,本发明采用如下技术方案:
8.第一方面,本发明提供一种基于多分辨率kl散度和投票机制的带噪语音端点检测方法,包括:
9.对采样的语音信号样点按时间顺序进行分帧;
10.对当前帧按不同颗粒度进行频带划分,在每种颗粒度下得到多个子带;
11.分别计算不同颗粒度下子带能量分布的kl散度,将每种颗粒度的kl散度与第一阈值比较后,得到每种颗粒度的判别值;
12.根据不同颗粒度的判决值采用投票机制得到综合值,根据综合值与第二阈值的比较,得到语音和噪声的判别结果。
13.作为可选择的实施方式,设定前n帧语音信号样点为噪声段,若当前帧号小于n,则
根据当前帧的频谱更新噪声段的频谱,具体为:
[0014][0015]
其中,为待估计噪声第k种颗粒度下第j个子带的能量;为当前帧i第k种颗粒度下第j个子带的能量。
[0016]
作为可选择的实施方式,kl散度为:
[0017][0018]
其中,klk为第k种颗粒度下子带能量分布的kl散度,l为第k种颗粒度下的子带数量;为待估计噪声第k种颗粒度下第m个子带的能量;为待估计噪声第k种颗粒度下第j个子带的能量;为当前帧号i第k种颗粒度下第m个子带的能量;为当前帧号i第k种颗粒度下第j个子带的能量。
[0019]
作为可选择的实施方式,将每种颗粒度的kl散度与第一阈值进行比较,若kl散度大于第一阈值,则当前帧为语音帧,判别值为1;否则,当前帧为噪声,判别值为零。
[0020]
作为可选择的实施方式,根据不同颗粒度的判决值采用投票机制得到综合值,具体为:
[0021][0022]
其中,sn
total
为综合值,wk为k种颗粒度下的子带数量,snk(i)为判别值,kn为颗粒度类别总数量。
[0023]
作为可选择的实施方式,根据综合值与第二阈值的比较,若综合值大于第二阈值,则当前帧为语音帧,否则为噪声帧。
[0024]
作为可选择的实施方式,对当前帧进行快速傅里叶变换后,按照不同颗粒度进行频带划分。
[0025]
第二方面,本发明提供一种基于多分辨率kl散度和投票机制的带噪语音端点检测系统,包括:
[0026]
分帧模块,被配置为对采样的语音信号样点按时间顺序进行分帧;
[0027]
子带划分模块,被配置为对当前帧按不同颗粒度进行频带划分,在每种颗粒度下得到多个子带;
[0028]
第一判别模块,被配置为分别计算不同颗粒度下子带能量分布的kl散度,将每种颗粒度的kl散度与第一阈值比较后,得到每种颗粒度的判别值;
[0029]
第二判别模块,被配置为根据不同颗粒度的判决值采用投票机制得到综合值,根据综合值与第二阈值的比较,得到语音和噪声的判别结果。
[0030]
第三方面,本发明提供一种电子设备,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成第一方面所述的方法。
[0031]
第四方面,本发明提供一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成第一方面所述的方法。
[0032]
与现有技术相比,本发明的有益效果为:
[0033]
本发明提出了一种基于多分辨率kl散度和投票机制的带噪语音端点检测,对输入的语音帧信号进行短时时频分析,并根据不同的颗粒度进行多分辨率的子带划分,对每一种子带划分分别计算其kl散度,并利用kl散度进行语音端点检测,得到该颗粒度下的噪声/语音判决结果;结合投票机制,并根据分辨率计入权重,分辨率越高,权重越大,综合利用多颗粒度下的噪声/语音判决结果,进行最终的噪声与语音的判别。有效解决噪声频谱在临近子带起伏而导致的噪声被误判为语音的问题,从而有效提高语音端点检测的准确率。
[0034]
本发明附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
[0035]
构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
[0036]
图1为传统的基于谱熵的语音端点检测方法流程框图;
[0037]
图2为本发明实施例1提供的带噪语音端点检测方法流程图。
具体实施方式
[0038]
下面结合附图与实施例对本发明做进一步说明。
[0039]
应该指出,以下详细说明都是示例性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
[0040]
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0041]
在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
[0042]
实施例1
[0043]
如图1所示为传统的基于谱熵的语音端点检测方法的流程图,具体为:
[0044]
(1)对输入的语音信号样点按时间顺序分帧;
[0045]
(2)将每帧信号进行快速傅里叶变换,并将其划分为n个子带;
[0046]
(3)计算各子带能量ei,并根据各子带能量占该语音帧信号总能量e
total
的比例计算谱熵h,具体为:
[0047]
(4)计算当前帧谱熵h与噪声帧谱熵hn差值的绝对值h
err
=|h-hn|,其中,hn利用开始的多个输入帧统计获得;
[0048]
(5)将谱熵差绝对值h
err
与经验阈值t进行比较,得到语音帧与非语音帧的判别结果,若h
err
》t,当前帧为语音帧,否则,当前帧为噪声。
[0049]
而利用谱熵进行端点检测的方法其鲁棒性仍然需要进一步提高,且存在误判的问题。
[0050]
由此,本实施例提出一种基于多分辨率kl散度(kullback-leibler divergence)和加权投票机制的带噪语音端点检测方法,如图2所示,具体包括:
[0051]
对采样的语音信号样点按时间顺序进行分帧;
[0052]
对当前帧按不同颗粒度进行频带划分,在每种颗粒度下得到多个子带;
[0053]
分别计算不同颗粒度下子带能量分布的kl散度,将每种颗粒度的kl散度与第一阈值比较后,得到每种颗粒度的判别值;
[0054]
根据不同颗粒度的判决值采用投票机制得到综合值,根据综合值与第二阈值的比较,得到语音和噪声的判别结果。
[0055]
在本实施例中,对语音信号按8khz频率采样,且通过高通滤波去除工频干扰,得到语音信号样点,对语音信号样点按时间顺序分帧。
[0056]
作为可选择的一种实施方式,每32ms,也就是256个语音信号样点构成一帧,但不限于此。
[0057]
在本实施例中,对当前帧进行快速傅里叶变换后,按照不同颗粒度进行频带划分,在每种颗粒度下得到多个子带;
[0058]
本实施例设定不同分辨率下的颗粒度集合k={2,4,8,16,32},设置了2、4、8、16、32等5种子带划分颗粒度,k代表每个子带包含的傅里叶变换频点数,颗粒度类别总数量记为kn。
[0059]
作为可选择的一种实施方式,根据离散傅里叶变换对当前帧进行256点的快速傅里叶变换,选取前128个值进行频带划分,在2、4、8、16、32等5种颗粒度下,将当前帧划分为64、32、16、8、4个子带。
[0060]
本实施例设定前n帧语音信号为噪声段,如设定n=20,但不限于此;
[0061]
初始化帧号i,令帧号i=0,若当前帧号i《n,则根据当前帧的频谱更新噪声段的频谱,且令i=i+1,重新分帧且重新划分子带,直至当前帧号i大于或等于n;
[0062]
噪声段的频谱更新具体为:
[0063][0064]
其中,为待估计的背景噪声第k种颗粒度下第j个子带的能量,初值为0;为当前帧i第k种颗粒度下第j个子带的能量。
[0065]
否则,对不同颗粒度下的子带能量分布分别计算kl散度;具体为:
[0066][0067]
其中,klk为第k种颗粒度下子带能量分布的kl散度,l为第k种颗粒度下的子带数量;为待估计的背景噪声第k种颗粒度下第m个子带的能量;为当前帧第k种颗粒度下第m个子带的能量。
[0068]
在本实施例中,将每种颗粒度的kl散度分别与第一阈值t1进行比较,若kl散度大于t1,则当前帧为语音帧,记判别值snk(i)=1;否则,当前帧为环境噪声,记判别值snk(i)=0;
[0069]
具体地:若klk》t1,则第k种颗粒度下,当前帧为语音帧,记snk(i)=1;否则当前帧为环境噪声,记snk(i)=0;t1为经验统计值,离线获得。
[0070]
在本实施例中,根据不同颗粒度的判决值,结合投票机制,并计入权重,颗粒度越细、子带越多,则权重越大,由此得到综合值sn
total

[0071][0072]
其中,wk为k种颗粒度下的子带数量。
[0073]
在本实施例中,根据综合值与第二阈值t2的比较,若sn
total
》t2,则当前帧为语音帧,否则为噪声帧;t2为经验统计值,离线获得。依次对每帧语音信号进行上述处理,直至语音信号处理完毕。
[0074]
本实施例的带噪语音端点检测方法,改善噪声环境下语音端点检测的准确率。与谱熵比较,kl散度可以更加有效地描述不同频谱能量分布之间的差别,在不同信噪比下具有更强的鲁棒性;由于常规kl散度存在噪声频谱在子带间能量起伏问题上鲁棒性较差,所以本实施例同时结合投票机制,根据不同颗粒度下的kl散度得到综合判别值。本实施例的带噪语音端点检测方法可用于噪声环境下的变速率语音压缩编码、语音增强、语音降噪、回声抵消、语音识别以及语音唤醒等各种语音信号处理领域中的语音端点检测技术需求。
[0075]
实施例2
[0076]
本实施例提供一种基于多分辨率kl散度和投票机制的带噪语音端点检测系统,包括:
[0077]
分帧模块,被配置为对采样的语音信号样点按时间顺序进行分帧;
[0078]
子带划分模块,被配置为对当前帧按不同颗粒度进行频带划分,在每种颗粒度下得到多个子带;
[0079]
第一判别模块,被配置为分别计算不同颗粒度下子带能量分布的kl散度,将每种颗粒度的kl散度与第一阈值比较后,得到每种颗粒度的判别值;
[0080]
第二判别模块,被配置为根据不同颗粒度的判决值采用投票机制得到综合值,根据综合值与第二阈值的比较,得到语音和噪声的判别结果。
[0081]
此处需要说明的是,上述模块对应于实施例1中所述的步骤,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为系统的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。
[0082]
在更多实施例中,还提供:
[0083]
一种电子设备,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成实施例1中所述的方法。为了简洁,在此不再赘述。
[0084]
应理解,本实施例中,处理器可以是中央处理单元cpu,处理器还可以是其他通用处理器、数字信号处理器dsp、专用集成电路asic,现成可编程门阵列fpga或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0085]
存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据、存储器的一部分还可以包括非易失性随机存储器。例如,存储器还可以存储设备类型的信息。
[0086]
一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成实施例1中所述的方法。
[0087]
实施例1中的方法可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器、闪存、只读存储器、可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
[0088]
本领域普通技术人员可以意识到,结合本实施例描述的各示例的单元即算法步骤,能够以电子硬件或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0089]
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
当前第1页1 2 
网友询问留言 留言:0条
  • 还没有人留言评论。精彩留言会获得点赞!