耳机左右声道测试mp3 [同声道语音检测及SAPVR算法]
摘 要:本文分析了同声道语音检测的典型算法SAPVR算法,介绍了算法的基本思想和流程,并用MATLAB工具进行了验证。 关键词:同声道语音 频谱自相关峰谷率算法
引言
同声道语音是指目标说话人语音混杂着另一个干扰者的说话语音。同声道语音检测属于语音增强技术,是目前国际上的一个研究热点和难点,国内少有涉及者。
要实现目标语音的提取,首先要能正确地检测出同声道语音帧。同声道语音和单个说话人语音不同之处在于:单个说话人语音波形具有谐波性,而同声道语音波形不具有谐波性,这是区分它们的关键特征。
1 同声道语音检测的基本概念和典型算法
1.1同声道语音检测的基本概念
实际生活中经常遇到多人同时说话的情况,此时不需要的语音就形成了同声道干扰,通信系统中邻近信道的串话也是同声道干扰。人类的听觉系统擅长分辨在多人说话时某一人的声音,然而,利用数学方法模仿人类的听觉系统只取得了有限的进展。由于语音是宽带信号,目标语音和干扰语音在时域和频域都发生混迭,不能按照常规的通过滤波器的方法来分离,所以同声道语音分离是语音增强的一个难点。要实现目标语音的提取,首先要能正确地检测出同声道语音帧。同声道语音和单个说话人语音不同之处在于:单个说话人语音波形具有谐波性,而同声道语音波形不具有谐波性,这是区分它们的关键特征。
同声道语音检测问题可以解释如下:给出一个混合的语音信号,该语音信号混合了两人或者更多人,我们要做的就是检测当前的语音帧是否是两人或以上的语音帧。
在图1中,我们有目标语音(speaker 1)和干扰语音(speaker 2)。混合语音信号含有speaker1的帧,含有speaker 2的帧,也含有speaker 1和speaker 2同时存在的帧。研究的目标就是开发一个系统,该系统要区分只含有目标语音帧和目标语音和干扰语音同时存在的帧,也就是区分单个人的语音帧和同声道语音帧。
目前,同声道语音检测技术典型方法是频谱自相关峰谷率法SAPVR(Spectral Auto Correlation Peak Valley Ratio)算法和基于小波的检测算法。下面具体介绍SAPVR算法并验证之。
1.2频谱自相关峰谷率法SAPVR(Spectral Auto Correlation Peak Valley
Ratio)
1.2.1 SAPVR算法
SAPVR(频谱自相关峰谷率)算法是在频域的基础上对语音信号作处理,继而对某一点的前后关系进行分析比较,从而在理论上可以得出语音信号是否具有谐波性。SAPVR算法框图如图2所示:
先将语音信号加窗,然后进行傅里叶变换,求出频谱,再自相关化,选定峰谷比计算算法算出比值,最后与设定的阈值比较,大于该值的就是单个人语音帧,小于阈值的就是同声道语音。需要注意的是,前面已经提到过,这里的语音样本都经过了语音预处理,即已经做好端点检测、去除了静音段、清音段和噪声。
1.2.2 加窗
在本算法中,加窗的方法采用汉明窗(Hamming)。
采用的Hamming窗函数为:
w(n)=|0.54-0.46cos(2πn/(N-1),(0≤n≤N-1)
|0,(其他) (3-1)
其中“N”为窗宽,表示一个音框内取样点的数目,窗宽选择必须适中。将连续信号分割成数个音框,再从音框中提取特征值,将整个语音简单化,以进行辨识。
1.2.3 进行FFT计算
前面论述过,同声道语音检测的根据是单个人的语音(实际上是浊音)在时域上具有准周期性,这种时域上的准周期性在频域则表现为具有谐波结构;而同声道语音由于两个人的语音在频域和时域叠加,破坏了这种谐波性。
傅里叶变换将信号分解为各个不同频率分量的组合,使信号的时域特征与频域特征联系起来。因此,通过语音的短时傅里叶分析就可以研究语音的短时频谱随时间的变化关系,从而研究语音信号的谐波性。
1.2.4 进行自相关计算
自相关函数用于测定一个信号自身在时域内的相似性,如果信号的两个部分波形相同,则在超前、滞后处出现峰值,由此可以求出信号自身的相似程度。这里利用自相关函数来处理语音信号经过傅里叶变换以后的数据,可以有效地对数据谐波性做出判定。
1.2.5 设定阈值并比较
设定阈值,将所求自相关值与阈值进行比较。若峰谷率大于该阈值,则为“同声道语音”;若峰谷率小于阈值,则为“单个人说话的语音”。
通常阈值采用经验值。
1.3 SAPVR算法的验证及结果分析
1.3.1几个概念
检出率:算法正确检测出该语音帧是同声道语音的帧数占全部同声道语音帧的比例;
漏判率:该帧是同声道语音却未被检出,该语音帧占全部同声道语音帧的比例;
虚警率(误判率):单个人语音帧被判为同声道语音帧,该语音帧占全部单个人语音帧的比例。
1.3.2 对SAPVR算法的验证及结果分析
本文采用汉明窗,无重叠,窗函数从150到500数据点,每次增加50;阈值从1到12,增量为1。先检测100帧同声道语音,检出帧数就是检出率;再检测100帧单个人语音,检出的同声道语音数就是虚警率。检测图和检测数据结果如图3所示:
左边三个图是SAPVR对单个人语音的处理,上面第一个图是原始语音,中间的图是对原始语音做了fft运算以后的系数图,下面第三个图是对中间系数图的波形做谐波计算的结果。右边类似是SAPVR对同声道语音的处理。对比可以看出,SAPVR算法对单个人语音和同声道语音的分辨结果并不是很强,因为最后的计算结果差异并不是很大,但通过设置恰当的阈值,还是可以较好地分辨出单个人语音和同声道语音帧。
表1是本文给出的SAPVR算法基于实验语音样本库的实验结果:
可以看出SAPVR算法对于男性和女性的不同组合,其检出率变化不大;同时检出率越大,虚警率也随之增大。
2 阈值变化对检出率的影响
本文给出了阈值变换对检出率及虚警率的影响如图4所示:
从上图可以清楚地看出,算法的检出率与虚警率都与阈值变化成正比。同声道语音与单个人的语音阈值的分界不是清楚的线,而是模糊的带状;将一些“边缘地带”的同声道语音包括进来的时候,也必然误判了一些单个人的语音。
结束语
同声道语音检测是国际上的语音处理研究最近几年兴起的研究热点和难点,但国内少有研究者。本文首先介绍了同声道语音检测的概念,详细分析并实验验证了目前该领域中典型的SAPVR算法。
参考文献:
[1] Arvind Ram an Kizhanatham. DETECTION OF COCHANNEL SPEECHANDUSABLE SPEECH[D]. the Temple University Graduate Board.
[2] Nishant Chandra. DETECTION OF USABLE SPEECH UNDER CO-CHANNEL SPEECH CONDITIONS[D]. Department of Electrical And Computer Engineering Temple University.
[3] StuartN.Wrigley,GuyJ.Brown.SPEECH AND CROSSTALK DETECTION IN MULTI-CHANNELAUDIO[C]. IEEE TRANSACTIONS ON SPEECH AND AUDIO PROCESSING, VOL. X, NO. Y, SEPTEMBER 2004.