改进的话音活动性检测器的制作方法

文档序号:2831770阅读:267来源:国知局

专利名称::改进的话音活动性检测器的制作方法
技术领域
:本发明涉及针对音乐状态的、包括背景噪声更新和拖尾保护增加(hangoveradditional)在内的改进话音(voice)活动性检测器(VAD)。本发明还涉及包括改进的VAD的系统。
背景技术
:在用于会话式语音(speech)的语音编码系统中,通常使用不连续发射(DTX)来增大编码的效率(降低比特率)。理由在于会话式语音包含了嵌入在语音中的大量停顿,例如,当一个人在说而另一人在听时。对于不连续发射(DTX)来说也是一样,语音编码器仅平均活动大约50%的时间,而其余时间利用舒适噪声(comfortnoise)来编码。可以在DTX模式下使用的编解码器的一个例子是AMR编解码器,参考文献[l]中对其进行了描述。对于重要质量DTX操作来说,g卩,语音质量没有劣化,重要的是,检测输入信号中的语音时段,这是由话音活动性检测器(VAD)来完成的。随着富媒体(richmedia)使用的日益增加,利用VAD来检测音乐信号,以使它们不被舒适噪声取代,这也是很重要的,因为这对终端用户质量有负面影响。图1示出了根据现有技术的广义VAD的概览框图,其采用输入信号(根据实现被分成10-30ms的多个数据帧)作为输入并且生成VAD判定作为输出(每个帧一个判定)。图1例示了现有技术广义VAD10的主要功能,其包括特征提取器11、背景估计器12、主要话音检测器13、拖尾保护增加模块14以及操作控制器15。虽然不同的VAD使用不同的特征和策略来估计背景,但基本操作都是相同的。主要判定"vad_prim"由主要话音检测器13来进行并且基本上仅是对当前帧的特征(在特征提取器ll中提取到)和背景特征(在背景估计器12中根据先前输入帧估计出)的比较。比阈值大的差导致活动的主要判定"vacLprim"。拖尾保护增加模块14被用来基于过去的主要判定扩展该主要判定,以形成最终判定"vad—flag"。这样做主要是为了降低/消除语音突发的中间语音和后端削波(clipping)的风险。然而,它还被用来避免音乐篇章(passage)中的削波,如参考文献[l]、[2]及[3]中所述。如图1所示,操作控制器15可以根据输入信号的特性来调节主要检测器13的阈值和拖尾保护增加的长度。如图1所示,VAD10的另一重要功能部分是在背景估计器12中估计背景特征。这可以通过两种本质上不同的原理来完成,或者通过利用主要判定"vacLprim",艮卩,有判定反馈;或者通过利用输入信号的某些其它特性,即,没有判定反馈。在某种程度上,还可以组合这两种原理。下面是不同VAD和三个相关问题的简要描述。AMRVAD1在参考文献[l],TS26.094中对AMRVAD1进行了描述,并且在参考文献[2]中对变型例进行了描述。基本操作摘要,更详细内容请参见参考文献[l]。特征子带SNR求和背景基于先前判定的背景估计自适应控制基于输入噪声电平的阈值自适应其它基于稳态估计(stationarityestimation)对噪声电平中的阶状增加的死锁恢复分析。用于检测音乐/复杂信号的高频相关性并且能够扩展这种信号的拖尾保护。这种方案的主要问题是,针对某些复杂背景(例如,串音(babble),尤其是对于高输入电平来说)会导致显著的过度活动量。结果导致DTX效率增益和相关系统性能的下降。使用针对背景估计的判定反馈还造成难以改变检测器灵敏度。因为即使灵敏度的较小变化也对背景估计有影响,这可能对将来的活动判定产生显著影响。虽然它是基于造成电平灵敏度的输入噪声电平的阈值自适应,但是希望保持自适应,因为其改进了用于检测低SNR稳态噪声中的话音的性能。虽然该解决方案还包括工作于大多数情况下的音乐检测器,但已经标识了被该检测器略去的音乐区段,由此导致解码(音乐)信号的主观质量的显著劣化,S卩,该区段被舒适噪声所取代。EVRCVAD在参考文献[4]和[5]中将EVRCVAD描述为EVRCRDA。所使用的主要技术为特征拆分频带分析(splitbandanalysis),将最坏情况频带用于可变速率语音编解码器中的速率选择。背景随着瞬间跌落至输入电平而基于判定增加控制将自适应噪声拖尾保护增加原理用于减少主要检测器错误。Hong等人在参考文献[6]中描述了噪声拖尾保护自适应。现有的拆分频带解决方案EVRCVAD具有偶然性的劣判定,这降低了检测语音的可靠性,并且表现出影响检测音乐的可靠性的过低频率分辨率。Freeman/Barret的话音活动性检测参见参考文献[7],Freeman公开了一种带有独立的噪声频谱估计的VAD检测器。参见参考文献[8],Barrett公开了一种音调检测器机制,其不会错误地表征针对信号音调的低频汽车(car)噪声。基于Freeman/Barret的现有解决方案偶尔会表现出过低的灵敏度(例如,针对背景音乐)。AMRVAD2在参考文献[l],TS.094中对AMRVAD2进行了描述。技术-特征基于FFT的子带SNR检测器求和背景基于先前判定的背景估计自适应控制基于输入信号电平和自适应噪声拖尾保护的阈值自适应。因为这种解决方案类似于AMRVAD1,所以它们也存在同类问题。
发明内容本发明的一个目的是提供这样一种话音活动性检测器,它与现有技术话音活动性检测器相比,检测音乐状态的能力得到了改进。这个目的通过一种话音活动性检测器来实现,该话音活动性检测器包括至少第一主要话音检测器和短期活动性检测器。第一主要话音检测器被设置用于生成表示输入信号中存在语音的信号,而短期活动性检测器被设置用于根据第一主要话音检测器所生成的信号来生成表示输入信号中存在音乐的信号。本发明的一个优点是,与现有技术话音活动性检测器相比,降低了语音削波的风险。本发明的另一优点是,与现有技术话音活动性检测器相比,实现了针对串音噪声输入和汽车噪声输入的活动性的显著改进。根据详细说明书,本领域技术人员可以发现进一步的目的和优点。下面结合以下附图,对本发明进行描述,这些附图是作为非限制性实例而提供的,其中图1例示了广义现有技术VAD。图2示出了根据本发明的具有一个主要话音检测器和短期话音活动性检测器的VAD的第一实施方式。图3示出了根据本发明的具有两个主要话音活动性检测器和短期话音活动性检测器的VAD的第二实施方式。图4示出了对图3的VAD的主要判定的比较。图5示出了包括根据本发明的VAD的语音编码器。图6示出了包括根据本发明的VAD的终端。縮略语AMR自适应多速率AR全极滤波器ANT天线CN舒适噪声CNB舒适噪声缓冲器CNC舒适噪声编码器DTX不连续发射DPLX双工滤波器HO拖尾保护EVRC增强可变速率编解码器NB窄带PVD主要话音检测器RX接收分支(receptionbranch)VAD话音活动性检测器VAF话音活动性因子具体实施例方式本发明的基本思想是,在主要话音检测器对短期活动性测量的判定形式中引入新的特征。这个特征可以单独用于音乐(如结合图2所述的输入信号)的可靠检测。图2示出了包括与结合图1所描述的VAD相似的功能模块的第一实施方式VAD20,这些相似的功能模块例如是特征提取器21、背景估计器22、一个主要话音检测器(PVD)23、拖尾保护增加模块24以及操作控制器25。VAD20还包括短期话音活动性检测器26和音乐检测器27。在特征提取器21中接收到输入信号,PVD23通过比较当前帧的特征(在特征提取器21中提取到)与背景特征(在背景估计器22中根据先前输入帧估计出)而作出主要判定"vad_prim_A"。大于阈值的差导致活动的主要判定"Vad_prim—A"。拖尾保护增加模块24被用于基于过去的主要判定来扩展主要判定,以形成最终判定"vad_flag"。短期话音活动性检测器26被设置成,基于PVD23所生成的主要语音判定来生成与输入信号中音乐的存在率成比例的短期主要活动性信号"vad—act_prim—A"。主要话音检测器23设置有短期存储器,其中存储有"k"个先前主要语音判定"Vad_prim—A"。短期活动性检测器26设置有计算装置,该计算装置被设置成基于存储器的内容和当前主要语音判定来计算短期主要活动性信号。—(3"—戶'W—=其中,vad—act_prim—A是短期主要活动性信号,是存储器中的活动判定和当前主要语音判定的数量,而k是存储在存储器中的先前主要语音判定的数量。短期话音活动性检测器优选地设置有低通滤波器,用于进一步平滑信号,由此生成经过低通滤波的短期主要活动性信号"vad一act一prim一AJp"。音乐检测器27被设置成,通过对可能经过了低通滤波或者没有经过低通滤波的短期主要活动性信号"vad—act_prim—A"施加一阈值,而基于该短期主要活动性信号来生成表示输入信号中存在音乐的音乐判定"vad—music,,。在图2中,将"vad—music"提供给拖尾保护增加模块24以通过检测输入信号中的音乐来进一步改进VAD,同时还提供给背景估计器22以针对背景估计来影响更新速度(或步长)。然而,"vad—music"可以仅用于在拖尾保护增加模块22中改进音乐检测,或者仅用于在背景估计器24中改进背景估计。如果本系统配备有两个主要话音活动性检测器,如结合图3所描述的,一个是主动性(aggressive)的,而另一个是敏感性(sensitive)的,则本发明的特征还可以扩展。如果这两个主要VAD都配备有新的短期活动性特征,则可以将两者之间的短期主要活动性中的大差异用作在更新背景噪声中应当使用提醒的警告。应注意到,仅主动性主要VAD被用于进行话音活动性判定,这将导致因复杂背景(例如,串音)而造成的过度活动性的縮减。图3示出了包括与结合图2所述的VAD相似的功能模块的第二实施方式VAD30,这些相似的功能模块例如是特征提取器31、背景估计器32、第一主要话音检测器(PVD)33a、拖尾保护增加模块34、操作控制器35、短期话音活动性检测器36以及音乐检测器37。VAD20还包括第二PVD33b。第一PVD是主动性的,而第二PVD是敏感性的。虽然可以将完全不同的技术用于这两个主要话音检测器,但更合理的是,从复杂性观点来看,仅仅使用一个基本主要话音检测器,但允许它工作在不同的工作点(例如,两个不同阈值或两个不同意义阈值,如在转让给本申请人的共同未决国际专利申请PCT/SE2007/000118中所述,参见参考文献[ll])。这还将保证敏感性检测器总是生成比主动性检测器更高的活动性,并且保证"vad_prim—A"是图4所示"vad_prim—B"的子集。在特征提取器31中接收到输入信号,并且第一PVD33a和第二PVD33b通过比较当前帧的特征(在特提取器31中提取到)和背景特征(在背景估计器32中根据先前输入帧估计出)分别作出主要判定"Vad_prim—A"和"vadjrim—B"。第一PVD和第二PVD中大于阈值的差导致分别来自第一PVD33a和第二PVD33b的活动主要判定"vad_prim—A"和"Vad_prim_B"。拖尾保护增加模块34被用于基于第一PVD33a作出的过去主要判定来扩展主要判定"Vad_prim—A",以形成最终判定"vad—flag"。短期话音活动性检测器36被设置成,基于第一PVD33a所生成的主要语音判定来生成与输入信号中音乐的存在率成比例的短期主要活动性信号"vad—actjrim—A",并且基于第二PVD33a所生成的主要语音判定来生成与输入信号中音乐的存在率成比例的附加短期主要活动性信号"vad—act_prim—B"。第一PVD33a和第二PVD33b都设置有短期存储器,其中分别存储有"k"个先前主要语音判定"Vad_prim—A"和"Vad_prim—B"。短期活动性检测器36设置有计算装置,该计算装置被设置成基于存储器的内容和第一PVD33a的当前主要语音判定来计算短期主要活动性信号"vad—aCt_prim—A"。音乐检测器37被设置成,通过对可能经过低通滤波或没有经过低通滤波的短期主要活动性信号"vad—act_prim_A"施加一阈值,而基于该短期主要活动性信号来生成表示输入信号中存在音乐的音乐判定"vad—music,,o在图3中,将"vad—music"提供给拖尾保护增加模块34以通过检测输入信号中的音乐来进一步改进VAD,同时还提供给背景估计器32以针对背景估计来影响更新速度(或步长)。然而,"vad一music"可以仅用于在拖尾保护增加模块32中改进音乐检测,或者仅用于在背景估计器34中改进背景估计。短期存储器(一个用于vad_prim—A而另一个用于vad_prim—B)记住"k"个先前PVD判定,并且允许将针对当前帧的vad_prim_A的短期活动性计算为附rac/—戸附—j=-^-—一一A:+l其中,vad—act_prim—A是短期主要活动性信号,mmemory+current是存储器中的活动判定和当前主要语音判定的数量,而k是存储在存储器中的先前主要语音判定的数量。为了进一步平滑信号,使用简单AR滤波器va(a"—爿—(1—cc).\w/—acLP"K//+avad—acf—戶'附一爿其中,a是范围在0-1.0的常数(优选为0.005-0.1的范围以获得显著的低通滤波效果)。按相似方式来完成对vad—act_prim—B和vad_act_prim_B_lp的计算。短期话音活动性检测器36还被设置成,基于第一主要检测器33a和第二主要检测器33b的活动性的差异来生成差信号"Vad—aCt_prim_diff—lp",背景估计器32被设置成,基于来自第一话音检测器33a的主要语音判定"vacLprim—A"和来自短期话音活动性检测器36的差信号"vad一actjrim—diff—lp"的反馈来估计背景。利用这些变量,可以如下来计算这两个主要检测器的活动性的差异的估计值\W—戶'm—c^"一/"wi(i一acL戸d&-va(i一acL戶K/p其结果是两个新的特征vad—act_prim—A—lp主动性VAD的短期活动性vad_act_prim_diff—lp两个VAD的活动性的差异接着将这些特征用于进行激活音乐拖尾保护增加的可靠音乐检测。在利用主动性VAD时改进能够进行更可靠操作的噪声更新,其中,主动性VAD被用于减少串音和其它非稳态背景中的过度活动的量。(尤其是改进的噪声更新可能对于音乐状态缺少主动性)图4示出了第一PVD33a和第二PVD33b的主要判定的比较。针对每一个PVD,分别针对输入信号的每一帧作出主要判定"Vad_prim—A"和"Vad_prim—B"。例示了针对每一个PVD的短期存储器,每一个都包含当前帧"N"的主要判定和先前"k"个主要判定。举一个非限制性例子,"k"被选择为31。针对可靠音乐拖尾保护增加的音乐检测的实施例这个实施例基于AMR-NBVAD,如参照参考文献[l]所述,且扩展到使用有意义的阈值来调节VAD的主动性。语音包括被组合成音节的有声语音(诸如"a"、"o"的元音)和无声语音(诸如"s"的辅音)的混合物。因此,几乎不可能的是,连续语音在主要话音活动性检测器中导致高短期活动性,与无声区段相比,其在检测有声区段方面运行地要轻松得多。这种情况下的音乐检测通过对短期主要活动性施加一阈值来实现。ifvad_act_prim—A—lp>ACT—MUSIC—THRESHOLDthenMusic—detect=1;elseMusic—detect=0;end针对音乐检测的阈值应当足够高,以使不会错误地将语音归类为音乐,并且必须根据所使用的主要检测器来调谐。还应注意到,用于平滑特征的低通滤波器可能需要根据希望结果进行调谐。针对使用判定反馈来更新背景噪声电平的VAD来说,使用主动性VAD可能导致不希望的噪声更新。这个影响可以使用新的特征vad_aCt—prim—diff—lp来减小。该特征比较主动性和敏感性主要话音检测器(PVD)的短期活动性的差异并且允许使用阈值来指示何时需要停止背景噪声更新。if(vad—act_prim_diff_lp>ACT—DIFF_WARNING)thenact—diff—warning=1elseact—diff—warning=0end这里,该阈值控制噪声更新的工作点,将其设置成0会导致与只有敏感性PVD所实现的噪声更新特征相似的噪声更新特征。而较大值将导致与仅使用主动性PVD所实现的噪声更新特征相似的噪声更新特征。因此,必须根据希望性能和所使用的PVD来进行调谐。这个使用短期活动性差异的过程,尤其改进了针对音乐输入信号状态的VAD背景噪声更新。本发明可以通过修改参考文献[9]中描述的AMRNBTS26.073ver7.0.0的源代码,通过以下改动以C-代码来实现文件"vadl.h"的改变在第32行处添加下列行/*significancethresholds*//*Originalvalue*/#defineSIG_00/*Optimizedvalue*/#defineSIG—THR—OPT(Wordl6)1331/*Floorvalue*/#defmeSIG—FLOOR—05(Wordl6)256/*Activitydifferencethreshold*/#defineACT—DIFF—THR一OPT(Wordl6)7209/*shorttermactivitylp/#defineCVAD—ADAPT—ACT(Wordl6)((1.0-0.995)*MAX—16)/*ActivitythresholdforextendedhangoverV#defineCVAD—ACT—HANG—THR(Wordl6)(0.85*MAX—16)在第77行处添加下列行Word32vadreg32;Wordl6vadcnt32;Wordl6vadact32—lp;Wordl6vadlprim;Word32vadlreg32jWordl6vadlcnt32;Wordl6vadlact32—lp;Wordl6lowpowregj/*32bitsvadreg*//*numberofonesinvadreg32*//*lpfilteredshorttermactivityV/*PrimarydecisionforVADl*//*32bitsvadregforVADl*//*numberofonesinvadreg32forVADl*//*lpfilteredshorttermactivityforVADl*//*Historyoflowpowerflag*/文件"vadl.c"的改变如下所示,修改435-442行改变前if(low_power!:0)st->burst—count=0;st->hang—count=0;st->complex—hang—count=0;st->complex_hang_timer=0;return0;改变后if(lowpower!=0)st->burst—count=0;movel6(>movel6()movel6()movel6()movel6();st->hang—count=0;movel6();st->complex—hang—count=0;movel6();/*Requirefourinarowtostoplonghangover*/test();1ogicl6();if(st->lowpowreg&0x7800){st->complex—hang—timer=0;movel6(夂return0;如下所示,修改521-544行改变前1ogicl6();test();1ogicl6();test();test();if(((0x7800&st->vadreg)==0)&&((st->pitch&0x7800)==0)&&(st->complex—hang—count■——=0))alpha—up=ALPHA—UP1;movel6();alpha—down=ALPHA_DOWN1;movel6();elsetest();test();if((st->stat—count==0)&&(st->complex—hang—count==0))alpha—up=ALPHA—UP2;movel6();alpha—down=ALPHA—DO罷2;movel6();elsealpha—up—画0;alpha—down=ALPHA3;bckradd=0;改变后1ogicl6();test();1ogicl6();test();test();if(((0x7800&st->vadreg)==0)&&((st-〉pitch&0x7800)==0)&&(st->comp1ex—warning==0)&&(st->complex—hang—count画—画画O))alpha—up=ALPHA—UP1;alpha—down=ALPHA—DOWNl;elsetest();test();if((st->stat—count==0)&&(st->complex_warning==0)&&(st-〉complex—hang—count==O))alpha—up=ALPHA一UP2;alpha—down=ALPHA_DOWN2;elsemovel6();movel6();movel6();movel6();movel6();movel6();movel6();if((st->stat—count==0)&&(st->compex—warning==O)){alpha—up=0;movel6()alpha—down=ALPHADOWN2;movel6()bckr—add=1;movel6()else{alpha—up=0;movel6()■alpha—down—ALPHA3;movel6():bckr—add—画-0;movel6()在645行处添加下列行/*Keeptrackofnumberofonesinvadreg32andshorttermact*/Iogic32();test();if(st->vadreg32&0x00000001){st->vadcnt32=sub(st->vadcnt32,l);movel6();st->vadreg32=L—shr(st->vadreg32,l);move32();test();if(low_power==0){1ogicl6();test();if(st隱〉vadreg&0x楊0){st->vadreg32=st->vadreg32|0x40000000;1ogic32();move32();st->vadcnt32=add(st->vadcnt32,l);movel6(》/*Keeptrackofnumberofonesinvadlreg32andshorttermact*/1ogic32();test();if(st-〉vadlreg32&0x00000001){st->vadlcnt32=sub(st-〉vadlcnt32,l);movel6();}st->vadlreg32=L—shr(st->vadlreg32,l);move32();test();if(low_power==0){test();if(st->vadlprim){st->vadlreg32=st->vadlreg32|0x40000000;1ogic32();move32();st-〉vadlcnt32=add(st-〉vadlcnt32,l);movel6();/*updateshorttermactivityforaggressiveprimaryVAD*/st匿〉vadact32—lp=add(st-〉vadact32—lp,mult—r(CVAD—ADAPT—ACT,sub(shl(st-〉vadcnt32,10),st->vadact32—lp)));/*updateshorttermactivityforaggressiveprimaryVAD*/st画〉vadlact32—lp=add(st-〉vadlact32—lp,mult一r(CVAD—ADAPT—ACT,sub(shl(st->vadlcnt32,10)st匿〉vadlact32」p)));如下所示,修改678-687行改变前test();if(sub(st->corr—hp—fast,CVADTHRESH—HANG)>0)st->complex_hang—timer—add(st->complex_hang—timer,1);movel6();elsest->complex—hang—timer=0;movel6();改变后/*Alsotestforactivityincomplexandincreasehangtime*/test();1ogicl6();test();if((sub(st-〉vadact32—lp,CVAD—ACT—HANG—THR)>0)11(sub(st->corr—hp—fast,CVAD—THRESH一HANG)>0)){st-〉complex—hang—timer—.add(st->complex—hang_timer,1);movel6();elsest->complex—hang—timer=0;movel6();test();if(sub(sub(st->vadlact32—lp,st->vadact32—lp),ACT—DIFF—THR_OPT)>0)st->complex」ow=st->complex—low10x4000;1ogicl6();movel6();如下所示,修改710-710行改变前Wordl6i;Wordl6snr—sum;Word32L—temp;Wordl6vad—thr,temp,noise—level;Wordl6low_power—flag;/承Calculatesquaredsumoftheinputlevels(level)dividedbythebackgroundnoisecomponents(bckr一est).承/L—temp=0;move32();改变后Wordl6i;Wordl6snr—sum;/*Usedforaggressivemainvad*/Wordl6snrsumvadl;/*Usedforsensitivevad*/Word32L—temp;Word32L—temp—vadl;Wordl6vad一thr,temp,noise—level;Wordl6low_power—flag;Calculatesquaredsumoftheinputlevels(level)dividedbythebackgroundnoisecomponents(bckr—est).承/L—temp=0;move32();L—temp—vadl.—0;move32();如下所示,修改721-732行改变前for(i=0;i<COMPLEN;i++)Wordl6expsexp=norm—s(st->bckr—est[i]);temp=shl(st-〉bckr一est[i],exp);temp=div—s(shr(level[i],l),temp);temp=shl(temp,sub(exp,UNIRSHFT-l));L一temp=L—mac(L一temp,temp,temp);snr一sum=extract—h(L—shl(L—temp,6));snr_sum=mult(snr—sum,INV—COMPLEN);改变后for(i=0;i<COMPLEN;i++)Wordl6exp;exp=norm—s(st->bckr—est[i]);temp=shl(st->bckr—est[i],exp);tempdiv—s(shr(level[i],1),temp);tempshl(temp,sub(exp,腦RSHFT-l));/*Alsocalcordinarysnr—sum—Sensitive*/L—temp_vadl—L一mac(L—temp—vadl,temp,temp);/*runcoresig—threshadaptiveVAD—Aggressive*/if(temp>SIG—THR—OPT){/*definitelyincludethisband*/L—temp=L—mac(L一temp,temp,temp);}else{"reducedthisband*/if(temp>SIG—FLOOR—05){"includethisbandwithafloorvalue*/L—temp=L_mac(L—temp,SIG—FLOOR—05,SIG一FLOOR一05);else{/*includelowbandwiththecurrentvalue*/L一temp=L—mac(L—temp,temp,temp);snr_sum=extract—h(L—shl(L一temp,6));snr—sum=mult(snr_sum,INV一COMPLEN);snr—sum—vadl—extract一h(L—shl(L一temp一vadl,6));snr—sumvadl=mult(snr—sum—vadl,INV—COMPLEN);在754行处添加下列行/*Shiftlowpowerregister*/st->lowpowreg=shr(st->lowpowreg,1);movel6();在762行处添加下列行/*AlsomakeintermediateVADldecision*/st->vadlprim=0;movel6();test();if(sub(snr—sum—vadi,vad一thr)〉0)st->vadlprim=1;movel6();/*primaryvadldecsionmade*/如下所示,修改763-772行改变前/*checkiftheinputpower(pow—sum)islowerthanathreshold"*/test();if(L-Sub(pow一sum,VAD—POW—LOW)<0)low_power—flag—1;movel6();elselow_power—flag=0;movel6();改变后/*checkiftheinputpower(pow—sum)islowerthanathreshold"*/test();if(L—sub(pow—sum,VAD一POW一LOW)<0)low_power—flag—1;movel6();st->lowpowreg=st->lowpowreg|0x4000;1ogicl6();movel6()elselow_power—flag—0;movel6();如下所示,修改853行改变前stete-〉v3dreg=0j改变后state->vadreg=0;state->vadreg32=0;state-〉vadcnt32=0;state->vadlreg32=0;state->vadlcnt32=0;state-〉lowpowreg=0;state->vadact32_lp=0;state->vadlact32—lp=0;文件"cod_amr.c"的改变在375行处添加下列行dtx—noise—burst—warning(st->dtx—encSt);文件"dtx一enc.h"的改变在37行处添加下列行#defineDTX—BURST—THR250#defmeDTX—BURST—HO—EXT1//defineDTX—MAXMIN—THR80#defineDTX—MAX—HO—EXT一CNT4#defmeDTX—LP—AR一COEFF(Wordl6)((l.O画0,95)*MAX—16)/*lowpassfilter*/在54行处添加下列行/*NeededformodificationsofVADl*/Wordl6dtxBurstWarning;Wordl6dtxMaxMinDiff;Wordl6dtxLas她xMinDiff;Wordl6dtxAvgLogEn;Wordl6dtxLastAvgLogEn;Wordl6dtxHoExtCnt;在139行处添加下列行*Function:dtx—noise—burst—warning*Purpose:Analysesframeenergiesandprovidesawarning*thatisusedforDTXhangoverextension*Returnvalue:DTXburstwarning,1=warning,0=noise*voiddtx—noise一burst—warning(dtx一encState*st);/*i/o:Statestruct*/文件"dtx_enc.C"的改变在119行处添加下列行>st->dtxBurstWarning=0>st->dtxHoExtCnt=0;在339行处添加下列行>st->dtxHoExtCnt=0;movel6();在348行处添加下列行>/*8ConsecutiveVAD==0framessave>BackgroundMaxMindiffandAvgLogEn*/>st->dtxLastMaxMinDiff=>add(st->dtxLastMaxMinDiff,>mult一r(DTX_LP—AR—COEFF,>sub(st->dtxMaxMinDiff,>st->dtxLastMaxMinDiff)));movel6();>>st->dtxLastAvgLogEn=st->dtxAvgLogEn;movel6();如下所示,修改355-367行改变前test();if(sub(add(st->decAnaElapsedCount,st->dtxHangoverCount):DTX—ELAPSED—FRAMES—THRESH)<0)*usedMode=MRDTX;move16();/*ifshorttimesincedecoderupdate,donotaddextraHO*/elseoverrideVADandstayinspeechmode*usedModeandaddextrahangover改变后test();if(sub(add(st->decAnaElapsedCount,st->dtxHangoverCount),DTX—ELAPSED—FRAMES—THRESH)<0)*usedMode=MRDTX;movel6();/*ifshorttimesincedecoderupdate,donotaddextraHO*/else/承elseoverrideVADandstayinspeechmode*usedModeandaddextrahangoverIf(*usedMode!=MRDTX)/*AllowforextensionofHOifenergyisdroppingorvarianceishigh*/test();if(st->dtxHangovercount==0)test();if(st->dtxBurstWarning!=0)test();if(sub(DTX_MAX—HOJEXT—CNT,st->dtxHoExtCnt)>0)st画〉dtxHangoverCoun1OTX一BURST—HO—EXT;movd6();st-〉dtxHoExtCnt=add(st-〉dtxHoExtCnt,l);/*Resetcounteratendofhangoverforreliablestats*/test();if(st->dtxHangoverCount==0){st->dtxHoExtCnt=0;move16();}在372行处添加下列行*Function:dtx_noise—burst—warning*Purpose:Analysesframeenergiesandprovidesawarning*thatisusedforDTXhangoverextension*Returnvalue:DTXburstwarning,1=warning,0—noisevoiddtx—noise一burst一warning(dtx一encState*st/*i/o:Statestruct*/Wordl6tmp—hist_ptr;Wordl6tmp—max—log—en;Wordl6tmp一min一log一en;Wordl6first—half—en;Wordl6second—half_en;Wordl6i;/*Testforstableenergyinframeenergybuffer*//*UsedtoextendDTXhangover*/tmp—hist_ptr=st->hist_ptr;movel6();/*Calcenergyforfirsthalf*/first—half—en=0;movel6();for(i=0;i<4;i++){/*updatepointertocircularbuffer*/tmp—hist_ptr=add(tmp—hist_ptr,1);test();if(sub(tmp—hist_ptr,DTX_HIST—SIZE)==0){tmp—hist_ptr=0;move16();first—half—en—ad《first_half—en,shr(st->log_en_hist[tmp—hist_ptr],1));first—half_en=shr(first_half_en,1);/*Calcenergyforsecondhalf*/Second—half—en=0;movel6();for(i=0;i<4;i++){/*updatepointertocircularbuffer*/tmp_hist_ptr—add(trnp—hist_ptr,1);test();if(sub(tmp_hist_ptr,DTX—HIST—SIZE)==0){tmp—hist_ptr=0;move16();second—half—en=add(second一half—en,shr(st->log_en—hist[tmp_hist_ptr],1》;second—half—en=shr(second—half—en,1);tmp—hist_ptr=st->hist_ptr;move16();trnp—max—log—en=st->log—en—hist[tmp—hist_ptr];move16(》tmp—min—log—en=tmp—max—log_en;move16();■for(i=0;i<8;i++){tmp—hist_ptr-■—add(tmp_hist_ptr,1);test();if(sub(tmp—hist_ptr,DTX—HIST_SIZE)==0){tmp—hist_ptr=0;movel6();test();if(sub(st->log—en—hist[tmp_hist_ptr],tmp—max_log_en)>=0){tmp—max—log—en=st->log_en—hist[tmp—hist_ptr];movel6();else{test();if(sub(tmp—min—log—en,st-〉1og_en—hist[tmp—hist_ptr]>0)){tmp—min—log—en—〉log—en—hist[tmp—hist_ptr];movel6();}st->dtxMaxMinDiff=sub(tmp一max一log_en,tmp—min—log—en);movel6();st->dtxAvgLogEn=add(shr(first_half_en,1),shr(second—half—en,l));move16();/*Replacemaxwithmin*/30st->dtxAvgLogEn=add(sub(st->dtxAvgLogEn,shr(tmp一max—log一en,3)):shr(tmp—min—log一en,3》;movel6();test();test();test();test();st->dtxflurstWarning—(/*Majoritydecisiononhangoverextension*//*Notdecreasingenergy*/add(add((sub(fct一half一en,add(s函d—half—en,DTX—BURST—THR))>0),/*NotHigerMaxMindifferance*/(sub(st-〉dtxMaxMinDiff,add(st->dtxLastMaxMinDiff,MAXMIN—THR))>0》,/*Nothigheraverageenergy*/shl((sub(st->dtxAvgLogEn,add(add(st->dtxLastAvgLogEn,shr(st->dtxLastMaxMnDiff,2)),Shi(st國〉dtxHoExtCH4)))X)),l》"2;修改后的C代码在上面定义的变量上使用了下列名称<table>tableseeoriginaldocumentpage31</column></row><table>其中,发现CVAD—ACT—HANG—THR=0.85ACT—DIFF—THE—OPT=7209(即,0.22)SIG—THR_OPT=1331(即,2.6)SIG—FLOOR:256(即,0.5)效果最好。编码器的主程序位于coder.c中,该文件调用amr一enc.c中的cod一amr,该cod—amr又调用包含所述c-代码中大多数相关函数的vadl。vadl在vadl.c中被定义,其还(直接或间接)调用vad—decison、complex—vad、noise—estimate—update,以及complex—estimate—update,它们都在vadl.c中进行了定义。cnst—vad.h包含一些VAD相关常数。vadl.h定义了vadl.c中定义的函数的原型。短期活动性特征的计算和更新是在vadl.c中的函数complex—estimate—adapt中进行的。在所述C代码中,将改进的音乐检测器用于控制添加复杂的拖尾保护增加,它在足够数量的连续帧具有活动的音乐检测器(Musci—detect=1)的情况下被使能。细节参见函数hangover—addition。在所述C代码中,修改后的背景更新允许主要活动性中足够大的差异,以通过函数noise—estimate—update中的st->complex—warning变量来影响噪声更新。这些结果仅示出了组合解决方案(改进音乐检测器和修改背景噪声更新)的增益;然而,根据分离解决方案也可以获得显著增益。在附图中的表1中可以找到该结果的概要,其中VADR等同于AMRVADl[l]。VADL是具有有意义阈值[2.6]和活动性差阈值的最优/评估VAD。而且,縮略语DSM和MSIN是在ITUG.191[IO]中定义编码输入信号之前施加至这些输入信号的滤波器。结果示出了针对一些不同输入信号的不同编解码器的性能。结果按DTX活动性的形式示出,其是语音编码帧的量(但其还包括通过DTX拖尾保护系统添加的活动性,参见[l]并且引用其中细节)。该表的顶部示出了针对具有不同量的白背景噪声的语音的结果。在这种情况下,VADL示出了仅针对清洁语音(其中没有添加噪声)情况的略高的活动,这会降低语音削波的风险。为了增加白背景噪声的量,逐渐地改进VADL效率。该表的底部针对两种类型的信号输入滤波器设置(DSMMSIN和MSIN),示出了针对不同类型的纯音乐和噪声输入的结果。针对音乐输入来说,大多数情况示出了活动性的增加,这也表示用舒适噪声取代音乐降低了风险。针对纯背景噪声输入来说,活动性存在显著改进,因为从效率的观点出发,希望用舒适噪声来取代大多数串音和汽车背景噪声。我们看到,即使针对背景噪声(串音/汽车)增加了效率,VADL的音乐检测能力也得到了保持,这也是我们关注的。图5示出了复杂编码系统50,其包括优选地根据本发明而设计的话音活动性检测器VAD51,以及包括不连续发射/舒适噪声(DTX/CN)在内的语音编码器52。图5示出了简化的语音编码器52,可以在参考文献[1]和[12]中找到详细的描述。VAD51接收输入信号并生成判定"vad一flag"。语音编码器52包括DTX拖尾保护模块53,其可以将七个额外帧添加至从VAD51接收到的"vad一flag"中,更多细节参见参考文献[12]。如果"vad一DTX"="1",则检测到话音,而如果"vad一DTX"="0",则没有检测到话音。"vad—DTX"判定控制开关54,如果"vad—DTX"为"0"则将该开关设在位置O,而如果"vad—DTX"为"1"则将该开关设在位置1。将"vad—flag"转发至舒适噪声缓冲器(CNB)56,其记住输入信号中的最后七个帧。将这个信息转发至舒适噪声编码器57(CNC),其还接收到"vad—DTX"以在无声和无音乐帧中生成舒适噪声,更多细节参见参考文献[l]。CNC连接至开关54中的位置0。图6示出了根据本发明的用户终端60。该终端包括连接至A/D转换器62以将模拟信号转换成数字信号的麦克风61。将该数字信号馈送至语音编码器63和VAD64,如结合图5所述。将来自语音编码器的信号经由发射器TX和双工滤波器DPLX转发至天线ANT,并且从该天线进行发射。在天线ANT中接收到的信号经由双工滤波器DPLX转发至接收分支RX。针对在接收处接收到的语音执行接收分支RX的己知操作,并且通过扬声器65来重复。参考文献3GPP,"AdaptiveMulti-Rate(AMR)speechcodec;VoiceActivityDetector(VAD)"3GPPTS26.094V7.0.0(2006-07)(A0画900乙)O'OTA£60'9乙S工d<IO£"uo卩BJ3dosib^iojiuoo9amosbspooipssds(,v)s^a-卩in何3八卩cfepv,,ddO£Z^00乙'6'8nOOO/AOO乙3S/丄Od"Jop9^p90!oabu!spireq-qnsSu!ssaiddnsjojpoq:puibpirej。p9邵90!oay,,'ip3岡ips[n]S00乙'ldss'161'O工-OLI'"uopBz^rcpircisSu!po3o!priBpuBipssdsjq;spoiareAvyos,,'丄-fl丄I(A0-900乙)0'0'AA£厶0'9乙S丄cWO£'"叩oo3,0s3iSNV《丽V)乖M-卩兩3A卩鄉v,,'cHO£[6]9661'8ip顺'1V一乙90617"—Sn—pb9戰,,'w誠g[g]686101ip,'IV—,9"SSn'"uo,3a一!PV3。!。a,,'ireui33Jj[/j1661'£乙司丰o兩'IV—Z£90lt^_Sn'"j0:p3邵々Aip:)bMp八biq3呵J3Ao3u叫9iqB!j它A,,'§uoh[9]t766I'013nv'画oq一'IV—t7"乙t^SnSuo卩do3,9S1p33ds'。3po〕9则qq,Ap3,i|u3,,'ZddO£l>]乙00乙'£乙々nr'uoss。卩3'何,i^Bpqqppuojspi'188S6t7乙l79Sfl'"pu^so!prmubjouo卩B顺ssBi。3s!ou/1p93dsp3八cadui!jojuo!:p3ppA!八!pb1叨—xqdu103,,"b.p'uossireqof[£]9661'01。3<3'BPI。N'IVI06£96SSfl'""!八spuopBo!immuioo虽os/os澎法能改权利要求1、一种话音活动性检测器,该话音活动性检测器包括至少第一主要话音检测器,所述话音活动性检测器被设置成,基于至少所述第一主要话音检测器生成的主要语音判定“vad_prim_A”来输出表示输入信号中存在语音的语音判定“vad_flag”,其特征在于,所述话音活动性检测器还包括短期活动性检测器,所述话音活动性检测器进一步被设置成,基于所述短期活动性检测器根据第一话音检测器生成的主要语音判定“vad_prim_A”而生成的短期主要活动性信号“vad_act_prim_A”来生成表示所述输入信号中存在音乐的音乐判定“vad_music”,所述短期主要活动性信号“vad_act_prim_A”与所述输入信号中音乐的存在率成比例。2、根据权利要求1所述的话音活动性检测器,其中,所述话音活动性检测器还包括音乐检测器,该音乐检测器被设置成,通过对所述短期主要活动性信号"vad—act_prim—A"施加阈值来生成所述音乐判定"V3d一music3、根据权利要求1或2中任一项所述的话音活动性检测器,其中,所述第一主要话音检测器设置有存储器,该存储器中存储有先前主要语音判定"vad_prim—A",所述短期活动性检测器设置有计算装置,该计算装置被设置成,基于所述存储器的内容和当前主要语音判定来计算所述短期主要活动性信号"vad—aCt_prim—A"。4、根据权利要求3所述的话音活动性检测器,其中,所述计算装置被设置成,基于以下关系来计算所述短期主要活动性信号"vacLact一prim—A,附<formula>formulaseeoriginaldocumentpage2</formula>其中,vad—actjrim—A是所述短期主要活动性信号,mmemory+current是所述存储器中的活动判定和当前主要语音判定的数量,而k是存储在所述存储器中的先前主要语音判定的数量。5、根据权利要求3或4中任一项所述的话音活动性检测器,其中,所述短期活动性检测器还设置有滤波器,该滤波器用于平滑所述短期主要活动性信号。6、根据权利要求1-5中任一项所述的话音活动性检测器,该话音活动性检测器还包括拖尾保护增加模块,该拖尾保护增加模块被设置用于生成所述语音判定"vad—flag",其中,所述语音判定还基于提供给所述拖尾保护增加模块的所述音乐判定"vad—music"。7、根据权利要求1-6中任一项所述的话音活动性检测器,该话音活动性检测器还包括背景估计器,该背景估计器被设置用于向至少所述第一主要话音检测器提供背景特征,其中,所述音乐判定"vad—music"被提供给所述背景估计器,并且背景特征的更新速度/步长基于所述音乐判定"vad一music,,o8、根据权利要求1-7中任一项所述的话音活动性检测器,其中,所述话音活动性检测器还包括比所述第一主要话音检测器更敏感的第二主要话音检测器,该第二主要话音检测器被设置成,生成与第一主要话音检测器生成的主要语音判定"Vad_prim—A"相似的、表示所述输入信号中存在语音的附加主要语音判定"Vad_prim—B",所述短期活动性检测器被设置成,基于第一主要话音检测器与第二主要话音检测器的活动性差异来生成差信号"vad—aCt_prim_diff_lp",所述话音活动性检测器还包括背景估计器,该背景估计器被设置成,基于来自第一主要话音检测器的主要语音判定"vad_prim—A"和来自所述短期活动性检测器的所述差信号"vad—aCt_prim—lp"的反馈来估计背景。9、根据权利要求8所述的话音活动性检测器,其中,所述背景估计器被设置成,通过对所述短期活动性检测器生成的差信号"vad—act—prim—lp"施加阈值,基于所述差信号来更新背景噪声。10、一种利用话音活动性检测器来检测输入信号中的音乐的方法,该话音活动性检测器包括至少第一主要话音检测器和短期活动性检测器,所述方法包括以下步骤基于至少第一主要话音检测器生成的主要语音判定"Vad_prim—A"来输出表示所述输入信号中存在语音的语音判定"vag—flag",基于第一主要话音检测器生成的主要语音判定"vadjprim—A",在所述短期活动性检测器中生成与所述输入信号中的音乐的存在率成比例的短期主要活动性信号"vad—act_prim—A",以及基于所述短期活动性检测器生成的短期主要活动性信号"vad—act_prim—A"来生成表示所述输入信号中存在音乐的音乐判定"vad—music"。11、根据权利要求10所述的方法,其中,所述话音活动性检测器还包括音乐检测器,所述方法还包括以下步骤通过对所述短期主要活动性信号"Vad_aCt_prim—A"施加阈值而在所述音乐检测器中生成所述音乐判定。12、根据权利要求IO或11中任一项所述的方法,其中,所述语音判定"Vad_flag"基于所生成的音乐判定"vad—music"。13、根据权利要求10-12中任一项所述的方法,其中,该方法还包括以下步骤向所述至少第一主要话音检测器提供背景特征,其中,所述背景特征的更新速度/步长基于所生成的音乐判定"vad—music"。14、一种电信系统中的节点,该节点包括权利要求1-9中任一项所限定的话音活动性检测器。15、根据权利要求14所述的节点,其中,该节点是终端。全文摘要本发明涉及话音活动性检测器(VAD)(20;30),该话音活动性检测器包括至少第一主要话音检测器(23;33a)。所述话音活动性检测器(20;30)被设置成,基于至少第一主要话音检测器(23;33a)生成的主要语音判定“vad_prim_A”来输出表示输入信号中存在语音的语音判定“vag_flag”。所述话音活动性检测器(20;30)还包括短期活动性检测器(26;36),并且所述话音活动性检测器(20;30)还被设置成,基于所述短期活动性检测器(26;36)根据第一主要话音检测器(23;33a)所生成的主要语音判定“vad_prim_A”而生成的短期主要活动性信号“vad_act_prim_A”来生成表示所述输入信号中存在音乐的音乐判定“vad_music”。所述短期主要活动性信号“vad_act_prim_A”与输入信号中音乐的存在率成比例。本发明还涉及通信系统中的包括这种VAD的节点,例如,终端。文档编号G10L11/00GK101681619SQ200880016775公开日2010年3月24日申请日期2008年4月18日优先权日2007年5月22日发明者马丁·泽尔施泰特申请人:Lm爱立信电话有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1