CN100580770C - 基于能量及谐波的语音端点检测方法 - Google Patents
基于能量及谐波的语音端点检测方法 Download PDFInfo
- Publication number
- CN100580770C CN100580770C CN200510089957A CN200510089957A CN100580770C CN 100580770 C CN100580770 C CN 100580770C CN 200510089957 A CN200510089957 A CN 200510089957A CN 200510089957 A CN200510089957 A CN 200510089957A CN 100580770 C CN100580770 C CN 100580770C
- Authority
- CN
- China
- Prior art keywords
- energy
- new
- frame
- signal
- buffer memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Electrophonic Musical Instruments (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明涉及一种基于能量及谐波的语音端点检测方法,包括如下步骤:将数字化声音信号进行预处理,保存在一段缓存中;每输入一帧信号就移位更新缓存并调整能量阈值,根据能量初步判出语音起点Tstart,然后从当前缓存中搜索具有浊音谐波特征的信号;如果发现浊音,则搜索语音的精确起点,反之则继续根据能量搜索语音起点;搜索到语音精确起点后,根据信号能量寻找语音终点。本发明的优点是:能够根据噪声强度调节精度,所以对输入信号的信噪比有一定自适应能力;由于谐波检测可以过滤突发噪声,所以能量检测较宽泛,不会漏掉能量较弱的语音;随时根据噪声调节阈值,所以能迅速适应噪声的强度和类型变化,特别能适应电信***中的信道噪声突变。
Description
技术领域
本发明涉及自动语音识别领域,特别涉及一种语音端点检测方法。
背景技术
自动语音识别***的输入信号通常是带有噪声的语音,为防止不含语音的信号段进入识别器,以保证***性能并减少计算开销,需要在信号中检测出用户语音的起点和终点,这个过程称为端点检测。
常用端点检测算法可分为基于规则和基于模型两类。基于规则的方法一般利用信号的能量、过零率、倒谱、长时谱估计等特征计算出距离,并通过距离与阈值的比较和逻辑运算,确定语音是否存在。基于模型的方法一般针对噪声和语音的统计特性分别建立模型,然后根据似然度做出判决。
自动语音识别***的应用环境较复杂,因此,端点检测必须具有广泛可靠的适应性,这包括:适应各种强度和种类的缓变噪声、迅速适应噪声的强度和种类变化、不受短暂强噪声影响,并且在各种情况下保持稳定的正确率、运算效率和时延。但是,在噪声复杂的环境中,不仅噪声本身没有固定的特征,而且语音特征也常被噪声掩盖。基于模型的方法往往只适用于特定环境,而基于单一特征设定规则的方法既容易受到信噪比限制,又对噪声类型变化比较敏感。因此,很多人通过把多个特征相结合,提高端点检测的可靠性。例如Sahar E.Bou-Ghazale等人在2002年提出的利用能量叠加关系及倒谱特征进行端点检测的方法,该方法可在平稳噪声环境中稳定工作,但该方法对噪声能量突变很敏感,而且由于语音的倒谱特征会受噪声影响,因而不能用于低信噪比的情况。又如Arnaud Martin在2003年提出的把信号能量与浊音特征结合起来的端点检测方法,该方法的缺点是在难以跟踪噪声能量的突变,另外,它需要先检测信号的基频才能确定浊音,所以容易受到基音倍频的干扰,同时,该算法使用了频域上的梳状滤波器,因而在复杂噪声环境中也较难搜索浊音。
发明内容
本发明的目的是提供一种把信号能量和语音的浊音谐波特征相组合的端点检测方法,该方法适用于大多数语音和噪声环境,不仅能在多种噪声类型和强度下稳定工作,而且能够迅速适应噪声类型和强度的突然变化。
为实现上述发明目的,本发明提供的基于能量及谐波的语音端点检测方法包括如下步骤:
1)对输入的数字化声音信号分帧并进行加窗、预加重等预处理,每帧信号包含F个采样点,长度约为25毫秒,相邻帧间交叠约15毫秒;
2)采用一段缓存,保存最前面的L帧(L>25,L帧的时间长度大于200毫秒)信号;
3)通过缓存中信号的能量大小对语音起点进行初步检测;包括:
31)利用缓存中前r帧信号估计噪声能量,其中7<r<13;用符号Ei表示第i帧信号能量,计算前r帧信号能量均值 和均方差 并对均方差进行归一化,即d=σ/E,把E和d作为对噪声分布的最初估计;
32)根据噪声能量,设定能量阈值Thd,计算方法为:Thd=E+σ/α=E+E·d/α,其中α是灵敏度系数,0<α<1;
33)能量阈值Thd确定后,进行能量检测;如果缓存中有tstart_energy毫秒连续信号的能量均值大于Thd,则标记这段连续信号的第1帧为Tstart,并触发谐波检测,其中tstart_energy是常数,单位为毫秒,范围为80<tstart_energy<150;如果缓存中没有满足上述条件的信号段,则输入一帧新信号,更新缓存和阈值Thd,并在更新后的缓存中搜索语音起点;每输入一帧新信号就更新一次缓存,并随之更新阈值Thd,直到找到Tstart为止;更新缓存的过程是:抛弃缓存中第1帧内容,把缓存第2至第L帧的内容向前移动一帧,把新一帧信号存入缓存第L帧;
4)在能量检测初步判出语音起点Tstart后,从当前缓存中搜索具有浊音谐波特征的信号,如果搜索到了浊音,则认为缓存中存在语音,进入步骤5)对语音起点进行进一步的精细搜索;如果没有搜索到浊音,则删除Tstart标记,并回到步骤3);
5)在当前缓存中精确搜索语音起点;包括:从Tstart顺次向前搜索满足如下条件的一帧信号:从这一帧开始,信号能量逐帧递增,则这帧信号的前一帧就判为语音起点。
上述技术方案中,所述步骤5)完成后,根据缓存中信号的能量检测语音终点,检测过程是:如果缓存中有一段长度为特tend_energy毫秒的连续信号(其中tend_energy是常数,单位为毫秒,范围为60<tend_energy<120),其每帧能量都大于终点能量阈值Thdend,则更新缓存;不断更新缓存和阈值Thdend,直到在缓存中搜索不到这样的信号段,则把缓存中的第一帧信号判为语音终点。
上述技术方案中,所述步骤3)和步骤4)中,所述更新能量阈值的过程包括:计算缓存中前r帧信号的能量均值 和归一化均方差 用如下逻辑更新E和d:
a)若Enew<E·cupdate且dnew<d·cupdate,则E=Enew,d=dnew。其中cupdate是噪声更新常数,1<cupdate<1.5,这个策略可以保证***随时跟踪平稳噪声;
b)若不满足条件a),但满足Enew<E·10且dnew<d,则E=Enew,且d=dnew,这个更新策略有助于尽快适应阶跃变化的噪声;
c)若不满足条件a)和b),但满足Enew<E·10,dnew<1且dnew<d·1.5,则E=(Enew+E)/2,d=(dnew+d)/2,这个策略可以防止常见的噪声更新“死锁”状况,有助于尽快跟踪能量突增的阶跃噪声。
d)如果上述条件都不满足,说明这r帧信号不是平稳噪声,所以不进行噪声更新。
在更新了E和d后,用公式Thd=E+E·d/α计算出新阈值。
上述技术方案中,所述终点能量阈值Thdend由噪声能量均值E和归一化均方差d确定,表示为:Thdend=E+E·d;缓存更新一次,同样用前r帧信号的能量均值 和归一化均方差 分别更新E和d;更新逻辑为:如果Enew≤E且dnew≤d,则E=(Enew+E)/2,d=(d+dnew)/2。
本发明的优点是:首先,在能量检测初始化时引入了灵敏度系数,能够自动根据噪声强度调节精度;其次,由于本方法中能量检测位于浊音谐波检测的前端,而且两者是“与”的逻辑关系,所以能量阈值设得比较低,既滤掉大部分噪声,又不会将语音误判为噪声,这就可以防止把语音起点能量较弱的部分切掉;另外,由于采用了一段缓存,每输入一帧信号就进行噪声更新,而且在阈值更新策略上允许噪声能量的突变,所以本方法可以迅速适应噪声变化,因而对噪声的适应性较强。本发明对***输入信号的强度大小有一定的自适应能力,并且对说话人的年龄、性别和说话习惯都没有限制。本发明的特别优势还在于,对于电信***中的信道噪声阶跃变化有较强的适应性。
附图说明
图1是本发明的原理流程图;
图2是一段受到噪声干扰的语音时域图和语谱图;
图3是谐波检测流程图;
图4是连续4帧的谐波判决示意图。
具体实施方式
本发明的原理如下:
首先通过自适应能量检测初步判定语音起点Tstart,然后进入谐波检测步骤,若发现缓存中存在浊音的谐波结构,则判定缓存中存在浊音,并在Tstart附近精确搜索语音起始点;如果没有找到谐波结构,则继续用能量检测搜索语音起点。在找到语音起点之后,通过自适应能量检测搜索语音终点。
因为语音与噪声在能量上是叠加的关系,所以当噪声能量变化比较缓慢时,语音的出现会使信号能量突然增加。能量检测能够不断跟踪缓变噪声,找到能量突增的区域,将其标为语音可能出现的位置。但是,突发噪声也会使信号能量改变,可能导致能量检测误判,所以本发明用谐波检测做进一步判断,去除这些错误。
谐波是浊音的显著特征,它在语谱图中表现为以基频为间距的均匀亮横纹。因为语音由清音和浊音结合构成,而浊音的能量和持续时间又远大于清音,所以,任何有意义的语音段都必须含有较长的浊音。由于浊音能量主要集中在基频和谐波,所以即使噪声很强,含噪浊音仍会保持部分清晰谐波(如图2所示)。如果在较长信号段(>200毫秒)中都没有浊音的谐波结构,则可认为当前信号不含语音。
下面结合附图及优选实施例对本发明作进一步描述。
实施例:
本发明提供的基于能量及谐波的语音端点检测方法包括3个基本步骤:能量检测、谐波检测、语音终点检测。输入信号是数字化声音信号,分为等长(每帧信号包含F个采样点,时间长度为25毫秒左右)且相互交叠约15毫秒的帧,并使用L帧缓存(L>25,L帧信号的时间长度大于200毫秒)。下面具体说明本发明各步骤工作流程。
如图1所示,本发明包括如下步骤:
步骤100:设定L帧缓存,把前L帧输入信号存入缓存中,开始进行端点检测。每输入一帧信号,缓存自动移位更新。
步骤200:根据能量初步检测语音起点。即,根据噪声情况设定一个信号能量阈值Thd,通过缓存中信号的能量判断当前缓存中是否存在语音信号,如果判断为是,则初步确定语音起点Tstart,进入步骤300;如果判断为否,则进入步骤700。本步骤的具体实施过程如下:
对缓存中的L帧数字化声音信号每帧信号分别做预处理(根据***实际情况,可以包括加窗、预加重等),设每帧长度为F点,先补零到N点(其中N≥F,N=2x,x为整数且x≥8),进行N点离散傅里叶变换,得到离散谱 其中x(i,n)表示缓存中第i帧的第n个采样点,X(i,bin)表示缓存中第i帧的第bin个傅里叶变换值(bin=0,1,..,N-1)。经过Mel刻度上均匀分布的滤波器组(例如p个三角窗滤波器,相邻两滤波器间交叠一半),得到每个子带的能量 (j=0,1,2...p-1)。
其中,j为子带滤波器的编号,p为子带滤波器组数目,Tj(bin)是第j个滤波器的频率响应,Lj和Hj分别是第j个滤波器的起始频率和截止频率。最后对子带能量求和,得到第i帧信号能量
利用输入信号的前r帧(一般取7<r<13)完成能量检测的初始化。由于用户总是先打开***才开始说话,所以可认为这r帧信号只含噪声,计算它们的能量均值 和均方差 并对均方差进行归一化,即d=σ/E,则E和d可作为对噪声分布的最初估计。
能量阈值Thd的计算方法为:Thd=E+σ/α=E+E·d/α。其中α是灵敏度系数(0<α<1),α越大,能量检测的灵敏度越高,即越容易把噪声误检为语音;反之,α越小,越容易把语音误判为噪声。α的确定方法为:若E≥Ex,则α=αmax;若E<Ex,则α=αmin。其中,αmin<αmax。αmin、αmax和Ex都可根据识别器输入信号能量范围事先设定,与使用环境无关。这样,当环境噪声能量大时,自动提高检测灵敏度,防止漏检语音;当环境噪声小时,降低灵敏度,防止过多虚警。另外,要根据语音识别器的输入范围设定Thd的取值区间,并把取值限制在范围内。
能量阈值Thd确定后,进行能量检测。其流程为:如果当前缓存中有tstart_energy毫秒(其中tstart_energy是常数,80<tstart_energy<150)连续信号的能量均值大于阈值Thd,则标记其中第1帧为Tstart,触发谐波检测(即进入步骤300);反之,如果缓存中没有满足此条件的信号段,则抛弃缓存中第1帧内容,把缓存第2至第L帧的内容向前移动一帧,把新一帧信号存入缓存第L帧,并利用更新后的缓存中前r帧信号更新能量阈值(即进入步骤700)。每输入一帧新信号就更新一次缓存和阈值,直到找到Tstart为止;
步骤300:对缓存中的信号进行谐波检测,判断缓存中是否存在浊音,如果判断为是,进入步骤400;如果判断为否,则进入步骤700。本步骤的具体实施过程将在下文中详述。
步骤400:在缓存中精确搜索语音起点。其主要操作是:从Tstart顺次向前搜索满足如下条件的一帧信号:从这一帧开始,信号能量逐帧递增,则这帧信号的前一帧就判为语音起点。
步骤700:根据检测结果及当前缓存更新阈值。更新阈值是本发明跟踪噪声、适应环境变化的主要途径。其具体做法是:每输入一帧信号,缓存就移动更新一帧。计算缓存中前r帧信号的能量均值 和归一化均方差 并根据不同情况用如下逻辑更新E
和d:
1.如果当前缓存的前r帧是平稳噪声,且与原有噪声性质相似,则其均值和归一化均方差变化不大,对应更新策略为:若(Enew<E·cupdate且dnew<d·cupdate),则E=Enew,d=dnew。其中cupdate是噪声更新常数,1<cupdate<1.5。
2.若不满足上述条件,但满足Enew<E·10且dnew<d,则E=Enew,且d=dnew。这种情况下,可能r帧是平稳噪声,但与原噪声情况稍有不同,因此Enew和E有差距,但dnew仍会较小,且不会明显大于d。对于能量骤增并维持在较高状态的阶跃噪声,这个更新策略也有助于***尽快跟踪其能量;
3.若不满足条件1和2,但满足Enew<E·10,dnew<1且dnew<d·1.5,则E=(Enew+E)/2,d=(dnew+d)/2,这个策略可以防止常见的噪声更新“死锁”状况,同样有助于尽快跟踪阶跃噪声。
4.其它情况下,当前r帧包含非平稳噪声,不进行噪声更新。如果这r帧中恰好包含两段平稳噪声的切换点,且两段噪声能量相差较大,随着缓存的逐步更新,前r帧会逐渐更新为新的平稳噪声,并满足第2或第3种情况。这样,***以最多r帧的延时,实现了对平稳噪声的跟踪。
根据更新后的均值和归一化均方差,可根据Thd=E+E·d/α计算出新阈值,并进入步骤200,在当前缓存中进行能量检测。
步骤500:在检测到语音起点后,根据缓存中信号的能量检测语音终点。检测过程是:如果缓存中有一段长度为tend_energy毫秒的连续信号(其中tend_energy是常数,范围为60<tend_energy<120),其每帧能量都大于终点能量阈值Thdend,则更新缓存和阈值;不断更新缓存和阈值Thdend,直到缓存中没有这样的信号段,把这时的缓存第一帧判为语音终点。
由于能量检测的计算量较小,所以通过能量判决语音终点可以保证***效率。另外,本算法在语音段中仍不断更新噪声,当环境噪声减弱时,阈值也随之降低,这有助于防止终点判决的提前,减少识别错误。
能量阈值Thdend由噪声能量均值E和归一化均方差d确定,表示为:Thdend=E+E·d。缓存每移动一帧,同样用能量均值 和归一化均方差 分别更新E和d。更新逻辑为:如果Enew≤E且dnew≤d,则E=(Enew+E)/2,d=(d+dnew)/2。这样,只有在检测到更低或更平稳的噪声时,才进行能量阈值更新,可以确保不把能量平稳的语音误判为噪声。对于语音识别***,切掉语音尾端的低能量部分可能导致误识或拒识。由于噪声在语音出现时仍不断变化,如果仍用起点检测时的噪声信息,则噪声减弱后可能会把语音尾端的低能量部分误当作噪声,从而影响语音完整性并降低识别率。而该更新逻辑由于在语音段也不断检测新的噪声,可以防止这个问题,保证语音段的完整。
步骤600:输出语音起点和终点,语音端点检测过程结束。
下面详细叙述本实施例中步骤300的实施过程。
在能量检测初步判出语音起点Tstart后,本步骤利用浊音谐波的各种特征,在当前缓存中搜索具有浊音谐波的信号帧,并据此找到浊音,实现语音起点检测。
实用语音识别***中,输入信号在各频带的信噪比不同,如果基频附近的噪声能量较强,尽管信号的谐波特征很明显,但其基音却较难检测,所以通过检测基音而检测浊音的方法很容易受到干扰。同样,如果在全频带检测语音的谐波,则信噪比低的频带也会影响浊音检测。因此,本发明根据信号具体情况,只搜索5条最清晰的谐波,或者只搜索基音和相邻3条谐波,从而自动避开信噪比低的频带,可以在噪声较强时稳定工作,并对噪声的变化不敏感。
因为谐波和基音集中了浊音的主要能量,而谐波频率是基音频率的整数倍,所以纯净浊音在频域上存在均匀分布的能量极值,且其间隔等于基音频率。浊音信号即使受到录音设备和噪声的干扰,一般也至少在频域保持4~5个等距能量极值,这就是本实施例中谐波检测的主要依据。如图3所示,本实施例中的步骤300(即谐波检测步骤)包括以下子步骤:
步骤301:开始对缓存中的L帧数字化声音信号进行检测,搜索具有浊音谐波特征的信号。
步骤302:在缓存中取出还未进行谐波检测的一帧信号(设其为缓存中第i帧),根据***具体情况进行加窗和预加重等预处理,补零到N点,(其中N≥F,N=2x,x为整数且x≥8),然后进行N点离散傅里叶变换,得到离散谱 bin=0,1,..,N-1,其中x(i,n)表示缓存中第i帧信号的第n个采样值,X(i,bin)表示缓存中第i帧的第bin个傅里叶变换值(bin=0,1,...,N-1)。取模的平方,得各频带能量εbin=|X(i,bin)|2。其中bin为频带编号,1≤bin≤N/2,每个频带的宽度R=采样率/N。
步骤303:把频带能量的最小值记为εmin,在εbin(其中1<bin<N/2)中,如果εbin同时满足εbin>εbin-1,εbin>εbin+1,且εbin>M·εmin,则标记εbin为能量极值,它有可能对应于谐波或基音,也可能对应于偶然的噪声干扰或语音频谱的小波动。其中M是经验常数,5<M<20。设满足该要求的频带共有u个,按频率从低到高的顺序,记录其位置(即εbin的下标bin)Ik(k=1..u)。之所以要求εbin>M·εmin,是因为当信号中存在谐波时,信号能量分布不平坦,εmin与谐波频带能量相差较大,εbin只有满足此条件,才可能对应于谐波或基音。
步骤304:对可能的基音,搜索最接近于此基音的极值分布,即极值与基音相匹配,其目的是确定当前一帧信号可能对应于哪些浊音。人类的基音范围是60~450Hz,若用pitchα表示基音对应的频带编号,则[60/R]≤pitchα≤[450/R]。其中,[]表示取小于该值的最大整数,R为每个频带的宽度,即频域分辨率(见步骤302)。因为基音和谐波的能量优势在低频较明显,所以只对60~2000Hz范围内的极值进行匹配,对应于[60/R]≤Ik≤[2000/R]。
因此,搜索的过程是:基音pitchα遍历[60/R]到[450/R]内所有整数,分别在编号为[60/R]到[2000/R]范围内的能量极值点中搜索与pitchα及其谐波位置接近的点。由于浊音通常在频域上表现出至少4~5个均匀分布的能量极值点,所以,若现存极值点中存在5个以pitchα为间距的点,其频带编号Fm.满足Fm≈m·pitchα,其中 或者存在4个以pitchα为间距的点,其频带编号Fm满足Fm≈m·pitchα,其中m=1,2,3,4,则这帧信号可能对应于基音为pitchα的浊音;反之,这帧信号不可能对应于这个浊音。
为此,对当前选定的一个测试基音pitchα,从Ik(k=1..u)中搜索与m·pitchα最接近的值Im′,Im′满足|Im′-m·pitchα|≤|Im″-m·pitchα|(1≤m′≤u,1≤m″≤u,m″≠m′)。把所有对应于m·pitchα(其中 的Im′(其中 记为集合{P1,P2,P3....},并增加一个元素P0=0,组成集合{P0,P1,P2,P3....}。
步骤305:如果集合儡,{P0,P1,P2,P3....}中存在5个连续元素Pt,Pt+1,Pt+2,Pt+3,Pt+4(其中 )间距相等,则认为极值分布与基音相匹配。由于频带宽度为R,即频域分辨率不能做到绝对精确,所以基音的精确值可表示为这5个元素的间距均值。
为测度5个元素间距是否相等,对集合{P0,P1,P2,P3....}中的任意5个连续元素,计算其间距D1=Pt+1-Pt,D2=Pt+2-Pt+1,D3=Pt+3-Pt+2,D4=Pt+4-Pt+3(其中 )。求{D1,D2,D3,D4}的均值D,并对其方差归一化,表示为 Var越小,则含有浊音的可能性越大。对应于同一个pitchα有多个5元素组合,选择归一化方差最小的一组,记录其间距均值为Dα,归一化方差为Varα。
步骤306:如果Varα<Varthd(其中Varthd是经验阈值,0.001<Varthd<0.003),则认为当前一帧信号可能含有基音为Dα的浊音,其中Dα代表这组间距对应的精确基频,并进入步骤307。如果在集合{P1,P2,P3....}中,对应于任意5元素组合的间距{D1,D2,D3,D4}均不满足Var<Varthd,则进入步骤310。
步骤307:判断Dα是否与当前帧已保存的其它精确基频很接近。过程如下:
在基音pitchα遍历[60/R]到[450/R]内所有整数的搜索过程中,如果曾有基音pitchβ也对应于均匀的极值分布,即pitchα和pitchβ对应的Varα和Varβ都小于步骤306中的Varthd,则Varβ和Dβ都已被保存下来。检查|Dα-Dβ|是否大于阈值Dpitch,其中Dpitch=Dmin/R,Dmin是一个经验值(50<Dmin<150),单位为Hz。
如果|Dα-Dβ|≥Dpitch,则进入步骤308。
如果|Dα-Dβ|<Dpitch,则进入步骤309。
步骤308:在当前的精确基频Dα所对应的间距归一化方差足够小,且与其它所有精确基频都相距足够大时,进入此步骤。记录当前的距离均值Da和归一化方差Varα。在[60/R]到[450/R]内所有pitchα中,如果α=α1,α2,α3....都能对应到均匀分布的极值,则保留它们的归一化方差和其精确基频,记为VAR={Var1,Var2....}和Dall={D1,D2...}。这是因为,当输入信号为基频很低的浊音时,基音的2倍频甚至3倍频也都在人类基频范围内,即也包括在pitchα的搜索范围中,且其对应的极值间距可能更均匀。所以归一化方差最小的数据不一定对应真正的基音。常用的浊音检测算法往往通过跟踪基频定位浊音,因而容易受到基音倍频的干扰而失效,而本方法保留多组数据并在最后结合前后帧进行筛选,可以避免基音倍频干扰问题。
步骤309:当步骤307中|Dα-Dβ|<Dpitch时进入此步骤。在频率接近的两个精确基频中,仅保留其中归一化方差较小的一个。即:如果Varα<Varβ,则从集合VAR和Dall中删去对Dβ和Varβ的记录,并把Varα和Dα记录到其中;反之,则保留Dβ和Varβ的记录,并且不记录Dα的相关信息。这是因为,如果两个很接近的基音都可能存在,则可能是因为pitchα受频谱分辨率限制而不精确的缘故,选择极值分布较均匀的一组,可以保留最接近实际的基音。
步骤310:判断是否已经遍历所有可能的基音(即[60/R]≤pitchα≤[450/R]范围内所有整数),如果判断为是,进入步骤311;如果判断为否,回到步骤304。
步骤311:判断是否缓存中所有帧都处理完。每帧信号在经过[60/R]≤pitchα≤[450/R]中所有基音的测试(即为每个可能的基音在当前所有极值中搜索最匹配的极值)以后,最终保留下来的是VAR和Dall。有的帧因为对任何基音都没有符合要求的极值分布,可能其VAR和Dall都是空集。如果缓存中还有信号没有经过步骤302到310的极值搜索和对可能基音的测试,则返回步骤302,如果缓存中所有帧都已搜索并测试完,则进入步骤312。
步骤312:开始结合前后几帧信息,初步判定谐波是否存在。首先设定检测的第一帧编号t为1。
步骤313:检测第t到第t+3帧是否可以连接成谐波,即判决是否存在浊音。判决条件是:在连续4帧信号中,如果任意相邻两帧的Dall中都至少存在一个与对方某元素非常接近的元素,则可认为这4帧信号中存在谐波。具体地说,只要相邻两帧各自的Dall中各自至少有一个元素跟对方的Dall中某元素之差与两者中较小值的比值不超过常数ratio,则认为它们符合要求。ratio的取值范围是10%~20%。图4是连接的简单示意图。可见,在4帧中(即第t、t+1、t+2和t+3帧),只要任意连续两帧都有一条路径能连通,就可以判这4帧为浊音。
之所以要求两帧之间必须连通,是因为浊音的基频和谐波都是连续缓变的,两帧之间不会有突变。这样,即使某段信号因干扰而出现均匀分布的能量极值,也不会相互连续而连通起来,因而不会被判为浊音。另外,有些浊音的基音倍频也对应很小的归一化方差,所以各帧的Dall中可能分别包含基频及其倍频,因此,只要基频或倍频能连通起来,即前后两帧中有一个连接通路,就可认为这两帧的基频和谐波是连续的,这就防止了真正浊音的漏判。
步骤314:把判断谐波的起始帧编号t增加1,继续检测下4帧是否连通。
步骤315:判断是否已对缓存中所有的4个连续帧都做过了谐波连接,即,如果已经测试完了第L-3帧到第L帧的连续4帧,则进入步骤316,否则返回步骤313。
步骤316:由于浊音是连续缓变的,且端点检测算法的主要目的是检测语音(即清音和浊音的总和),所以当两段浊音比较接近时,可以认为中间一段也是语音,并且很可能是浊音。因此,利用前后信息,对缓存中判出的谐波做进一步连接和整形,把缓存中处于两段浊音之间,且时间长度小于60毫秒的非谐波段都判为浊音。
步骤317:输出对当前缓存的浊音检测结果,谐波检测过程结束。
Claims (4)
1、一种基于能量及谐波的语音端点检测方法,其特征在于,包括如下步骤:
1)对输入的数字化声音信号分帧并进行加窗、预加重,每帧信号包含F个采样点,其中F为整数;
2)采用一段缓存,保存最前面的L帧信号,其中L为大于25的整数且L帧的时间长度大于200毫秒;
3)通过缓存中信号的能量大小对语音起点进行初步检测;包括:
31)利用缓存中前r帧信号估计噪声能量,其中7<r<13且r为整数;用符号Ei表示第i帧信号能量,计算前r帧信号能量均值 和均方差 并对均方差进行归一化,得d=σ/E,把E和d作为对噪声分布的最初估计;
32)根据噪声能量,设定能量阈值Thd,计算方法为:Thd=E+σ/α=E+E·d/α,其中α是灵敏度系数,0<α<1;
33)能量阈值Thd确定后,进行能量检测;如果缓存中有tstart_energy毫秒连续信号的能量均值大于Thd,则标记这段连续信号的第1帧为Tstart,并触发谐波检测,其中tstart_energy是常数,单位为毫秒,范围为80<tstart_energy<150;如果缓存中没有满足上述条件的信号段,则输入一帧新信号,更新缓存和阈值Thd,并在更新后的缓存中搜索语音起点;
4)在能量检测初步判出语音起点Tstart后,从当前缓存中搜索具有浊音谐波特征的信号,如果搜索到了浊音,则认为缓存中存在语音,进入步骤5)对语音起点进行进一步的精细搜索;如果没有搜索到浊音,则删除Tstart标记,更新缓存和能量阈值Thd,再回到步骤3);
5)在当前缓存中精确搜索语音起点;包括:从Tstart顺次向前搜索满足如下条件的一帧信号:从这一帧开始,信号能量逐帧递增,则这帧信号的前一帧就判为语音起点;
所述步骤5)完成后,根据缓存中信号的能量检测语音终点,检测过程是:如果缓存中有一段长度为tend_energy毫秒的连续信号,其中tend_energy是常数,单位为毫秒,范围为60<tend_energy<120,其每帧能量都大于终点能量阈值Thdend,则更新缓存;不断更新缓存和阈值Thdend,直到在缓存中搜索不到这样的信号段,则把缓存中的第一帧信号判为语音终点。
2、按权利要求1所述的基于能量及谐波的语音端点检测方法,其特征在于,所述步骤3)和步骤4)中,所述更新能量阈值的过程包括:计算缓存中前r帧信号的能量均值 和归一化均方差 用如下逻辑更新E和d:
a)若Enew<E·cupdate且dnew<d·cupdate,则E=Enew,d=dnew;其中cupdate是噪声更新常数,1<cupdate<1.5,这个策略可以保证***随时跟踪平稳噪声;
b)若不满足条件a),但满足Enew<E·10且dnew<d,则E=Enew,且d=dnew,这个更新策略有助于尽快适应阶跃变化的噪声;
c)若不满足条件a)和b),但满足Enew<E·10,dnew<1且dnew<d·1.5,则E=(Enew+E)/2,d=(dnew+d)/2,这个策略可以防止常见的噪声更新“死锁”状况,有助于尽快跟踪能量突增的阶跃噪声;
d)如果上述条件都不满足,说明这r帧信号不是平稳噪声,所以不进行噪声更新;
在更新了E和d后,用公式Thd=E+E·d/α计算出新阈值。
3、按权利要求1所述的基于能量及谐波的语音端点检测方法,其特征在于,所述终点能量阈值Thdend由噪声能量均值E和归一化均方差d确定,表示为:Thdend=E+E·d;缓存更新一次,同样用前r帧信号的能量均值 和归一化均方差 分别更新E和d;更新逻辑为:如果Enew≤E且dnew≤d,则E=(Enew+E)/2,d=(d+dnew)/2。
4、按权利要求1所述的基于能量及谐波的语音端点检测方法,其特征在于,所述步骤33)中,每输入一帧新信号就更新一次缓存,并随之更新阈值Thd,直到找到Tstart为止;更新缓存的过程是:抛弃缓存中第1帧内容,把缓存第2至第L帧的内容向前移动一帧,把新一帧信号存入缓存第L帧。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200510089957A CN100580770C (zh) | 2005-08-08 | 2005-08-08 | 基于能量及谐波的语音端点检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200510089957A CN100580770C (zh) | 2005-08-08 | 2005-08-08 | 基于能量及谐波的语音端点检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1912993A CN1912993A (zh) | 2007-02-14 |
CN100580770C true CN100580770C (zh) | 2010-01-13 |
Family
ID=37721904
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200510089957A Expired - Fee Related CN100580770C (zh) | 2005-08-08 | 2005-08-08 | 基于能量及谐波的语音端点检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100580770C (zh) |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101232366B (zh) * | 2006-10-04 | 2013-06-19 | 马维尔国际贸易有限公司 | 移动通信设备及用于其中的减少假突发检测的方法 |
CN101625860B (zh) * | 2008-07-10 | 2012-07-04 | 新奥特(北京)视频技术有限公司 | 语音端点检测中的背景噪声自适应调整方法 |
CN101625857B (zh) * | 2008-07-10 | 2012-05-09 | 新奥特(北京)视频技术有限公司 | 一种自适应的语音端点检测方法 |
US8380497B2 (en) * | 2008-10-15 | 2013-02-19 | Qualcomm Incorporated | Methods and apparatus for noise estimation |
CN101458943B (zh) * | 2008-12-31 | 2013-01-30 | 无锡中星微电子有限公司 | 一种录音控制方法和录音设备 |
CN101872616B (zh) * | 2009-04-22 | 2013-02-06 | 索尼株式会社 | 端点检测方法以及使用该方法的*** |
CN102164328B (zh) * | 2010-12-29 | 2013-12-11 | 中国科学院声学研究所 | 一种用于家庭环境的基于传声器阵列的音频输入*** |
CN102436810A (zh) * | 2011-10-26 | 2012-05-02 | 华南理工大学 | 一种基于信道模式噪声的录音回放攻击检测方法和*** |
CN102568473A (zh) * | 2011-12-30 | 2012-07-11 | 深圳市车音网科技有限公司 | 语音信号的录制方法和装置 |
CN102592592A (zh) * | 2011-12-30 | 2012-07-18 | 深圳市车音网科技有限公司 | 语音数据的提取方法和装置 |
CN103310800B (zh) * | 2012-03-06 | 2015-10-07 | 中国科学院声学研究所 | 一种抗噪声干扰的浊语音检测方法及*** |
CN102820035A (zh) * | 2012-08-23 | 2012-12-12 | 无锡思达物电子技术有限公司 | 一种对长时变噪声的自适应判决方法 |
CN103824555B (zh) * | 2012-11-19 | 2015-11-18 | 腾讯科技(深圳)有限公司 | 音频段提取方法及提取装置 |
CN103730124A (zh) * | 2013-12-31 | 2014-04-16 | 上海交通大学无锡研究院 | 一种基于似然比测试的噪声鲁棒性端点检测方法 |
CN103854662B (zh) * | 2014-03-04 | 2017-03-15 | ***装备发展部第六十三研究所 | 基于多域联合估计的自适应语音检测方法 |
CN104934032B (zh) * | 2014-03-17 | 2019-04-05 | 华为技术有限公司 | 根据频域能量对语音信号进行处理的方法和装置 |
CN104091603B (zh) * | 2014-05-23 | 2017-06-09 | 普强信息技术(北京)有限公司 | 基于基频的端点检测***及其计算方法 |
US20160109842A1 (en) * | 2014-10-16 | 2016-04-21 | Kodak Alaris Inc. | Audio detection of medium jam |
CN104464722B (zh) * | 2014-11-13 | 2018-05-25 | 北京云知声信息技术有限公司 | 基于时域和频域的语音活性检测方法和设备 |
CN104639478B (zh) * | 2014-12-30 | 2017-12-26 | 无锡北邮感知技术产业研究院有限公司 | 一种联合方差修正的信号检测与时域定位方法和*** |
CN105609118B (zh) * | 2015-12-30 | 2020-02-07 | 生迪智慧科技有限公司 | 语音检测方法及装置 |
CN106356076B (zh) * | 2016-09-09 | 2019-11-05 | 北京百度网讯科技有限公司 | 基于人工智能的语音活动性检测方法和装置 |
CN106782573B (zh) * | 2016-11-30 | 2020-04-24 | 北京酷我科技有限公司 | 一种编码生成aac文件的方法 |
CN108428448A (zh) * | 2017-02-13 | 2018-08-21 | 芋头科技(杭州)有限公司 | 一种语音端点检测方法及语音识别方法 |
CN107799126B (zh) * | 2017-10-16 | 2020-10-16 | 苏州狗尾草智能科技有限公司 | 基于有监督机器学习的语音端点检测方法及装置 |
CN108550365B (zh) * | 2018-02-01 | 2021-04-02 | 云知声智能科技股份有限公司 | 离线语音识别的阈值自适应调整方法 |
CN108665889B (zh) * | 2018-04-20 | 2021-09-28 | 百度在线网络技术(北京)有限公司 | 语音信号端点检测方法、装置、设备及存储介质 |
CN108806725A (zh) * | 2018-06-04 | 2018-11-13 | 平安科技(深圳)有限公司 | 语音区分方法、装置、计算机设备及存储介质 |
CN109036470B (zh) * | 2018-06-04 | 2023-04-21 | 平安科技(深圳)有限公司 | 语音区分方法、装置、计算机设备及存储介质 |
CN108922513B (zh) * | 2018-06-04 | 2023-03-17 | 平安科技(深圳)有限公司 | 语音区分方法、装置、计算机设备及存储介质 |
CN109102823B (zh) * | 2018-09-05 | 2022-12-06 | 河海大学 | 一种基于子带谱熵的语音增强方法 |
CN110880329B (zh) * | 2018-09-06 | 2022-11-04 | 腾讯科技(深圳)有限公司 | 一种音频识别方法及设备、存储介质 |
CN109545191B (zh) * | 2018-11-15 | 2022-11-25 | 电子科技大学 | 一种歌曲中人声起始位置的实时检测方法 |
CN109767782B (zh) * | 2018-12-28 | 2020-04-14 | 中国科学院声学研究所 | 一种提高dnn模型泛化性能的语音增强方法 |
CN110444194B (zh) * | 2019-06-28 | 2021-08-20 | 北京捷通华声科技股份有限公司 | 一种语音检测方法和装置 |
CN110401781B (zh) * | 2019-07-25 | 2021-04-02 | 上海掌学教育科技有限公司 | 一种虚假通话检测***、方法及介质 |
CN110689905B (zh) * | 2019-09-06 | 2021-12-21 | 西安合谱声学科技有限公司 | 一种用于视频会议***的语音活动检测*** |
CN110556128B (zh) * | 2019-10-15 | 2021-02-09 | 出门问问信息科技有限公司 | 一种语音活动性检测方法、设备及计算机可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020118648A1 (en) * | 2001-02-15 | 2002-08-29 | Olaf Zaencker | Method and arrangement for testing the transmission system and method for quality of a speech transmission |
EP1284551A1 (de) * | 2001-08-08 | 2003-02-19 | Siemens Aktiengesellschaft | Kennzeichnung der Dienstgüte einer Informationsübermittlung in einem Kommunikationsnetz |
CN1427395A (zh) * | 2001-12-17 | 2003-07-02 | 中国科学院自动化研究所 | 基于子带能量和特征检测技术的语音信号端点检测方法 |
CN1628337A (zh) * | 2002-06-12 | 2005-06-15 | 三菱电机株式会社 | 语音识别方法及其装置 |
-
2005
- 2005-08-08 CN CN200510089957A patent/CN100580770C/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020118648A1 (en) * | 2001-02-15 | 2002-08-29 | Olaf Zaencker | Method and arrangement for testing the transmission system and method for quality of a speech transmission |
EP1284551A1 (de) * | 2001-08-08 | 2003-02-19 | Siemens Aktiengesellschaft | Kennzeichnung der Dienstgüte einer Informationsübermittlung in einem Kommunikationsnetz |
CN1427395A (zh) * | 2001-12-17 | 2003-07-02 | 中国科学院自动化研究所 | 基于子带能量和特征检测技术的语音信号端点检测方法 |
CN1628337A (zh) * | 2002-06-12 | 2005-06-15 | 三菱电机株式会社 | 语音识别方法及其装置 |
Also Published As
Publication number | Publication date |
---|---|
CN1912993A (zh) | 2007-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100580770C (zh) | 基于能量及谐波的语音端点检测方法 | |
CN100580768C (zh) | 一种基于谐波特征的浊音检测方法 | |
CN105118502B (zh) | 语音识别***的端点检测方法及*** | |
KR100312919B1 (ko) | 화자인식을위한방법및장치 | |
US8554560B2 (en) | Voice activity detection | |
CN101872616B (zh) | 端点检测方法以及使用该方法的*** | |
US20050060153A1 (en) | Method and appratus for speech characterization | |
CN105261357A (zh) | 基于统计模型的语音端点检测方法及装置 | |
US20080300875A1 (en) | Efficient Speech Recognition with Cluster Methods | |
Ying et al. | A probabilistic approach to AMDF pitch detection | |
CN101228577B (zh) | 自动化语音识别通道归一化方法及*** | |
CN103489446A (zh) | 复杂环境下基于自适应能量检测的鸟鸣识别方法 | |
CN101206858B (zh) | 一种孤立词语音端点检测的方法及*** | |
CN103559879A (zh) | 语种识别***中声学特征提取方法及装置 | |
CN109243497A (zh) | 语音唤醒的控制方法及装置 | |
JP3105465B2 (ja) | 音声区間検出方法 | |
Dubuisson et al. | On the use of the correlation between acoustic descriptors for the normal/pathological voices discrimination | |
Padrell et al. | Robust speech activity detection using LDA applied to FF parameters | |
Hansen et al. | Robust speech recognition training via duration and spectral-based stress token generation | |
Ma et al. | A path-stack algorithm for optimizing dynamic regimes in a statistical hidden dynamic model of speech | |
US6055499A (en) | Use of periodicity and jitter for automatic speech recognition | |
Zolnay et al. | Extraction methods of voicing feature for robust speech recognition. | |
Sarikaya et al. | Robust detection of speech activity in the presence of noise | |
Sorin et al. | The ETSI extended distributed speech recognition (DSR) standards: client side processing and tonal language recognition evaluation | |
Sarikaya et al. | Robust speech activity detection in the presence of noise. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100113 |