基于基音频率的快速音频分割方法

文档序号:2821305阅读:201来源:国知局
专利名称:基于基音频率的快速音频分割方法
技术领域
本发明涉及信号处理和模式识别,主要是一种基于基音频率的快速音频分割方法。
背景技术
说话人检索技术是指利用信号处理和模式识别方法,在大量音频文档中检索特定说话人的技术。说话人检索技术需要解决两个问题,即谁在说话,和在什么时候说话。通常的说话人检索借助声纹特征识别技术来解决谁在说话的问题,而在什么时候说话则需要用到音频分割。
常用的分割方法有基于贝叶斯信息准则的分割和基于KL2距离的分割。贝叶斯信息准则的分割方法通过计算“两段音频特征服从同一个高斯分布”和“两段音频特征分别服从两个高斯分布”两个假设的贝叶斯值来决定是否分割。但贝叶斯信息准则往往仅局限于说话人之间的分割,对于噪音等特征分布无规律的情况缺乏鲁棒性。另外贝叶斯信息准则的运算速度较慢,不利于实时处理。
基于KL2距离的分割方法比较特征的KL2距离,并与经验阈值比较来确定说话人改变。但基于KL2距离的算法用于计算距离的语音段来自于移动的固定长度的窗,使得距离值并不可靠。
现有的分割方法大多仅使用倒谱特征(MFCC)而忽略了韵律特征,但实际上基音频率等韵律特征在区分语音和噪音、不同说话人的语音之间有很大的作用。

发明内容
本发明要解决上述技术所存在的缺陷,提供一种基于基音频率的快速音频分割方法,通过用基音频率来检测语音和说话人改变,实现将音频分割成属于不同人的语音段,用于说话人检索的音频分割方法。
本发明解决其技术问题所采用的技术方案首先用基音频率从音频中检测语音,然后用能量将非语音部分分成静音和非静音,最后在语音片段之间检测说话人改变,由说话人改变点得到最终分割结果。
本发明解决其技术问题所采用的技术方案还可以进一步完善。该方法具体包括如下步骤1)、对音频进行预处理音频预处理分为采样量化,去零漂,预加重和加窗三个部分;2)、音频特征提取音频帧上的特征提取包括能量,过零率和基音频率的提取;将音频分帧后计算各帧基音频率,并将通过自相关效验的连续帧归为一个语音段;3)、语音检测将连续的基音频率不为0的帧归为语音段,连续的基音频率为0的帧归为非语音段;4)、静音检测通过计算自适应能量阈值将基音频率为0的帧分类为静音和非语音;5)、说话人改变检测说话人改变检测为将相邻语音段之间的距离与自适应阈值比较,确定说话人改变点。
本发明有益的效果是利用韵律特征基音频率实现静音、语音和非语音的分割,消除非语音对说话人分割的不利影响;而基音频率较倒谱特征更节省计算时间。


图1是本发明的算法流程图;具体实施方式
下面结合附图和实施例对本发明作进一步介绍本发明的方法共分五步。
第一步音频预处理音频预处理分为采样量化,去零漂,预加重和加窗三个部分。
1、采样量化A)、用锐截止滤波器对音频信号进行滤波,使其奈奎斯特频率FN为4KHZ;B)、设置音频采样率F=2FN;C)、对音频信号sa(t)按周期进行采样,得到数字音频信号的振幅序列s(n)=sa(nF);]]>D)、用脉冲编码调制(PCM)对s(n)进行量化编码,得到振幅序列的量化表示s’(n)。
2、去零漂A)、计算量化的振幅序列的平均值s;B)、将每个振幅值减去平均值,得到去零漂后平均值为0的振幅序列s”(n)。
3、预加重A)、设置数字滤波器的Z传递函数H(z)=1-αz-1中的预加重系数α,α可取比1稍小的值;B)、s”(n)通过数字滤波器,得到音频信号的高、中、低频幅度相当的振幅序列s(n)。
4、加窗A)、计算音频帧的帧长N(32毫秒)和帧移量T(10毫秒),分别满足NF=0.032]]>TF=0.010]]>这里F是音频采样率,单位为Hz;B)、以帧长为N、帧移量为T,把s(n)划分成一系列的音频帧Fm,每一音频帧包含N个音频信号样本;C)、计算哈明窗函数 D)、对每一音频帧Fm加哈明窗ω(n)×Fm(n){Fm′(n)|n=0,1,…,N-1}。
第二步特征提取音频帧上的特征提取包括能量,过零率和基音频率(Pitch)的提取。
1、能量的提取E=Σn=1Ns2(n)]]>2、能量阈值的计算这里需要计算能量阈值进行随后的静音检测。用固定的能量阈值来检测静音有很大的局限性,因为各种环境下的音频能量相差很大,但语音和静音之间能量大小的相对关系是不变的,所以可以计算自适应阈值
Threshold(E)=min(E)+0.3×[mean(E)-min(E)]其中,Threshold(E)是自适应能量阈值,min(E)是各帧能量的最小值,mean(E)是各帧能量的平均值。
3、Pitch的提取A)、设置基音频率的搜索范围ffloor=50,fceiling=1250(Hz);B)、设置语音的基音频率的取值范围fmin=50,fmax=550(Hz);C)、做快速傅立叶变换FFT,将时域信号s(n)变成频域信号X(k)。
D)、计算每个频率的SHR(分谐波-谐波比例)SHR=SS/SH其中SS=Σn=1NX((n-1/2)f),]]>SH=Σn=1NX(nf),]]>N=fceiling/fE)、找出SHR最高的频率f1F)、如果f1>fmax或者f1的SS-SH<0,那么认为是非语音或静音帧,基音频率为0,Pitch=0G)、在[1.9375f1,2.0625f1]的区间寻找SHR的局部极大的频率f2H)、如果f2>fmax,或者f2的SHR>0.2,Pitch=f1I)、其他情况,Pitch=f2J)、对得到的基音频率进行自相关效验从帧的中点开始,前后各取1/pitch长的采样点,计算它们的自相关值C,如果C<0.2那么认为基音频率值不可靠,Pitch=0。
K)、最后对全部的Pitch值进行中值平滑滤波。
第三步、语音检测在提取基音频率时已经进行过语音判断,所以只需要将连续的基音频率不为0的帧归为语音段,连续的基音频率为0的帧归为非语音段即可。
第四步、静音检测1、静音预检
A)、语音段和非语音段的能量定义如下E=mean(E)+0.3×[max(E)-mean(E)]其中,E是静音段的能量,mean(E)是段内各帧能量的平均值,max(E)是段内各帧能量的最大值。
B)、段能量与能量阈值比较,如果低于阈值则视为静音。
2、平滑处理A)、将连续的静音段合并成一段;B)、低于10帧(0.1秒)的静音段被视为连续语音间的短时停顿而舍去。
第五步、说话人改变检测每一说话人的语音特征在特征空间中都形成了特定的分布,可以用这一分布来描述说话人的个性。不同说话人的分布也不同,所以可以用特征分布之间的相似度来检测说话人的改变。在这里我们用T2距离来计算每个语音段之间的Pitch特征距离。
1、T2距离计算为了检测说话人改变,需要计算每两个相邻的语音段之间的T2距离。T2距离定义如下T2=aba+b(μ1-μ2)TΣ-1(μ1-μ2)]]>其中a,b是段的长度,μ1,μ2是各段内Pitch的平均值,∑是共同的协方差矩阵。
2、自适应阈值计算通过比较T2距离与阈值,可以检测是否存在说话人改变。自适应阈值的计算公式如下T=μ+λσ其中μ是全局平均距离,σ是距离方差,λ是惩罚系数,这里设成-1.5。
3、合并如果两个语音段之间的距离小于阈值,那么这两个语音段被视为属于同一个说话人,可以将这两个语音段合并成一个。如果这两个语音段之间存在静音,那么这段静音也将被合并进来。如果两个语音段之间存在非静音,则不合并。这是为了防止噪音的干扰。
实验结果本系统在1997 Mandarin Broadcast News Speech Corpus(Hub4-NE)新闻广播语音上进行了实验。这个语音库包括CCTV,KAZN和VOA的新闻广播,总时间40个小时左右,其中约10小时的内容是音乐或噪音。
我们同时在这个库上用基于贝叶斯信息准则的分割方法和基于KL2距离的分割方法进行了同样的实验,用于和本系统进行对比。这两种方法都是直接用说话人特征MFCC在固定的窗长(1秒)之间搜索说话人改变。
基于贝叶斯信息准则的方法比较两个假设的参数估计的似然度和参数使用数。假设1两个窗属于同一个说话人,特征服从同一个高斯分布;假设2两个窗属于不同的说话人,特征分别服从两个高斯分布。如果假设2的贝叶斯值(似然度减去惩罚项参数个数)较高,则认为有说话人改变。
KL2距离是用于说话人分割的方法。通过计算两段语音的说话人特征之间的KL2距离并与阈值比较,以检测存在说话人改变。
我们对分割算法的结果进行五方面的评估1)分割点误检率错误的分割点占检测出分割点的比例2)分割点漏检率未检测出的分割点占实际分割点的比例3)纯语音比例检测纯语音段总长度占实际语音总长度的比例4)语音段召回率被检测出的实际语音段比例5)检索等错误率说话人检索实验中错误拒绝率与错误接收率相等时的值纯语音段的定义是只包含一个说话人语音的语音段。包含噪音或者多个说话人语音的语音段是不纯语音段。纯语音比例是纯语音段总长度占全部语音长度的比例。语音段召回率是指被检测出有对应纯语音段的语音段比例。这两个指标可以更好的衡量分割效果对说话人检索的作用,是误检率和漏检率的补充。检索等错误率是在分割的结果基础上做说话人检索实验的等错误率。这个指标用来衡量分割算法的最终效果。
实验结果如下

各方法运行时间如下

实验用机器配置CPU为AMD Athlon(tm)XP2500+,内存为512M ddr400。
实验结果表明,与当前流行的KL2和BIC方法相比,本分割算法在检索性能和运算速度上均有绝对优势。在误检率比KL2和BIC方法低2%的情形下本分割算法漏检率比KL2方法低9.75%、比BIC方法低10.8%;本分割算法召回率比KL2方法高20.28%、比BIC方法高19.62%;本分割算法纯语音比例比KL2方法高5.36%、比BIC方法高3.66%;本分割算法检索等错误率比KL2方法低15.41%、比BIC方法低5.48%。而且本算法运行速度最快,处理同样音频所耗时间为KL2方法的41%,为BIC方法的28%。
权利要求
1.一种基于基音频率的快速音频分割方法,其特征在于首先用基音频率从音频中检测语音,然后用能量将非语音部分分成静音和非静音,最后在语音片段之间检测说话人改变,由说话人改变点得到最终分割结果。
2.根据权利要求1所述的基于基音频率的快速音频分割方法,其特征在于包括如下步骤1)、对音频进行预处理音频预处理分为采样量化,去零漂,预加重和加窗三个部分;2)、音频特征提取音频帧上的特征提取包括能量,过零率和基音频率的提取;将音频分帧后计算各帧基音频率,并将通过自相关效验的连续帧归为一个语音段;3)、语音检测将连续的基音频率不为0的帧归为语音段,连续的基音频率为0的帧归为非语音段;4)、静音检测通过计算自适应能量阈值将没有基音频率的帧分类为静音和非静音;5)、说话人改变检测说话人改变检测为将相邻语音段之间的距离与自适应阈值比较,确定说话人改变点。
3.根据权利要求2所述的基于基音频率的快速音频分割方法,其特征在于所述的音频预处理具体步骤是1)、采样量化A)、用锐截止滤波器对音频信号进行滤波,使其奈奎斯特频率FN为4KHZ;B)、设置音频采样率F=2FN;C)、对音频信号sa(t)按周期进行采样,得到数字音频信号的振幅序列s(n)=sa(nF);]]>D)、用脉冲编码调制对s(n)进行量化编码,得到振幅序列的量化表示s’(n);2)、去零漂A)、计算量化的振幅序列的平均值s;B)、将每个振幅值减去平均值,得到去零漂后平均值为0的振幅序列s”(n);3)、预加重A)、设置数字滤波器的Z传递函数H(z)=1-αz-1中的预加重系数α,α可取比1稍小的值;B)、s”(n)通过数字滤波器,得到音频信号的高、中、低频幅度相当的振幅序列s(n);4)、加窗A)、计算音频帧的帧长N和帧移量T,分别满足NF=0.032]]>TF=0.010]]>这里F是音频采样率,单位为Hz;B)、以帧长为N、帧移量为T,把s(n)划分成一系列的音频帧Fm,每一音频帧包含N个音频信号样本;C)、计算哈明窗函数 D)、对每一音频帧Fm加哈明窗ω(n)×Fm(n){Fm′(n)|n=0,1,…,N-1}。
4.根据权利要求2所述的基于基音频率的快速音频分割方法,其特征在于所述音频特征提取的具体步骤是1)、能量的提取E=Σn=1Ns2(n)]]>2)、能量阈值的计算计算静音检测自适应能量阈值Threshold(E)=min(E)+0.3×[mean(E)-min(E)]其中,Threshold(E)是自适应能量阈值,min(E)是各帧能量的最小值,mean(E)是各帧能量的平均值;3)、基音频率,即Pitch的提取A)、设置基音频率的搜索范围ffloor=50,fceiling=1250Hz;B)、设置语音的基音频率的取值范围fmin=50,fmax=550Hz;C)、做快速傅立叶变换FFT,将时域信号s(n)变成频域信号X(k);D)、计算每个频率的SHR,即分谐波-谐波比例SHR=SS/SH其中SS=Σn=1NX((n-1/2)f),SH=Σn=1NX(nf),N=fceiling/f]]>E)、找出SHR最高的频率f1F)、如果f1>fmax或者f1的SS-SH<0,那么认为是非语音或静音帧,基音频率为0,Pitch=0G)、在[1.9375f1,2.0625f1]的区间寻找SHR的局部极大的频率f2H)、如果f2>fmax,或者f2的SHR>0.2,Pitch=f1I)、其他情况,Pitch=f2J)、对得到的基音频率进行自相关效验从帧的中点开始,前后各取1/pitch长的采样点,计算它们的自相关值C,如果C<0.2那么认为基音频率值不可靠,Pitch=0K)、最后对全部的Pitch值进行中值平滑滤波。
5.根据权利要求2所述的基于基音频率的快速音频分割方法,其特征在于所述的静音检测的具体步骤是1)、静音预检A)、语音段和非语音段的能量定义如下E=mean(E)+0.3×[max(E)-mean(E)]其中,E是静音段的能量,mean(E)是段内各帧能量的平均值,max(E)是段内各帧能量的最大值;B)、段能量与能量阈值比较,如果低于阈值则视为静音;2)、平滑处理A)、将连续的静音段合并成一段;B)、低于10帧的静音段被视为连续语音间的短时停顿而舍去。
6.根据权利要求2所述的基于基音频率的快速音频分割方法,其特征在于所述的说话人改变检测具体步骤是1)、T2距离计算计算每两个相邻的语音段之间的T2距离,T2距离定义如下T2=aba+b(μ1-μ2)TΣ-1(μ1-μ2)]]>其中a,b是段的长度,μ1,μ2是各段内Pitch的平均值,∑是共同的协方差矩阵;2)、自适应阈值计算通过比较T2距离与阈值,检测是否存在说话人改变,自适应阈值的计算公式如下T=μ+λσ其中μ是全局平均距离,σ是距离方差,λ是惩罚系数;3)、合并如果两个语音段之间的距离小于阈值,那么这两个语音段被视为属于同一个说话人,将这两个语音段合并成一个;如果这两个语音段之间存在静音,那么这段静音也将被合并进来;如果两个语音段之间存在非静音,则不合并。
全文摘要
本发明涉及一种基于基音频率的快速音频分割方法,首先用基音频率从音频中检测语音,然后用能量将非语音部分分成静音和非静音,最后在语音片段之间检测说话人改变,由说话人改变点得到最终分割结果。本发明有益的效果是利用韵律特征基音频率实现静音、语音和非语音的分割,消除非语音对说话人分割的不利影响;而基音频率较倒谱特征更节省计算时间。
文档编号G10L17/00GK1758331SQ200510061358
公开日2006年4月12日 申请日期2005年10月31日 优先权日2005年10月31日
发明者杨莹春, 吴朝晖, 杨旻 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1