端点检测

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

语音端点检测的方法演讲者:刘德体语音端点检测的目的和意义基于短时能量和短时平均过零率的端点检测基于倒谱特征的端点检测基于熵的端点检测基于复杂性的端点检测(KC复杂性和C0复杂性)不同语音端点检测方法的实验结果对比语音端点检测的目的和意义目的语音信号端点检测技术其目的就是从包含语音的一段信号中准确地确定语音的起始点和终止点,区分语音和非语音信号,它是语音处理技术中的一个重要方面。意义有效的端点检测技术不仅能在语音识别系统中减少数据的采集量,节约处理时间,还能排除无声段或噪声段的干扰,提高语音识别系统的性能,而且在语音编码中还能降低噪声和静音段的比特率,提高编码效率。基于短时能量和短时平均过零率的端点检测短时能量语音和噪声的区别可以体现在它们的能量上,语音段的能量比噪声段能量大,语音段的能量是噪声段能量叠加语音声波能量的和。在信噪比很高时,那么只要计算输入信号的短时能量或短时平均幅度就能够把语音段和噪声背景区分开。这是仅基于短时能量的端点检测方法。信号{x(n)}的短时能量定义为:语音信号的短时平均幅度定义为:其中w(n)为窗函数。短时平均过零率短时过零表示一帧语音信号波形穿过横轴(零电平)的次数。过零分析是语音时域分析中最简单的一种。对于连续语音信号,过零意味着时域波形通过时间轴;而对于离散信号,如果相邻的取样值的改变符号称为过零。过零率就是样本改变符号次数。信号{x(n)}的短时平均过零率定义为:式中,sgn为符号函数,即:过零率有两类重要的应用:第一,用于粗略地描述信号的频谱特性;第二,用于判别清音和浊音、有话和无话。从上面提到的定义出发计算过零率容易受低频干扰,特别是50Hz交流干扰的影响。解决这个问题的办法,一个是做高通滤波器或带通滤波,减小随机噪声的影响;另一个有效方法是对上述定义做一点修改,设一个门限T,将过零率的含义修改为跨过正负门限。于是,有定义:检测方法利用过零率检测清音,用短时能量检测浊音,两者配合。首先为短时能量和过零率分别确定两个门限,一个是较低的门限数值较小,对信号的变化比较敏感,很容易超过;另一个是比较高的门限,数值较大。低门限被超过未必是语音的开始,有可能是很短的噪声引起的,高门限被超过并且接下来的自定义时间段内的语音超过低门限,意味着信号开始。此时整个端点检测可分为四段:静音段、过渡段、语音段、结束。实验时使用一个变量表示当前状态。静音段,如果能量或过零率超过低门限,就开始标记起始点,进入过渡段。过渡段当两个参数值都回落到低门限以下,就将当前状态恢复到静音状态。而如果过渡段中两个参数中的任一个超过高门限,即被认为进入语音段。处于语音段时,如果两参数降低到门限以下,而且总的计时长度小于最短时间门限,则认为是一段噪音,继续扫描以后的语音数据,否则标一记结束端点。20004000600080001000012000140001600018000-101Speech2040608010012014016018020022002040Energy204060801001201401601802002200102030ZCR数字“4”的短时能量与平均过零率基于倒谱特征的端点检测概念信号倒谱的一种定义是信号的能量谱密度函数S(ω)的对数的傅里叶反变换,或者可以将信号s(n)的倒谱c(n)看成是logS(ω)的傅里叶级数展开,即:式中Cn=C-n为实数,通常称为倒谱系数,且对于一对谱密度函数S(w)与S’(w),利用Parseval定理,其对数谱的均方距离可用倒谱距离表示:式中,Cn与C’n分别代表谱密度函数S(w)与S’(w)的倒谱系数。方法:倒谱距离的测量法步骤类似于基于能量的端点检测,只是将倒谱距离代替短时能量来作为特征参数。首先,假定前几帧信号是背景噪声,计算这些帧的倒谱系数,利用前几帧倒谱系数的平均值可估计背景噪声的倒谱系数,噪声倒谱系数的近似值可按下述规则进行更新,即当前帧被认为是非语音帧:式中为噪声倒谱系数的近似值,为当前测试帧的倒谱系数,p为调节参数。倒谱距离可用下式近似计算:式中对应于的噪声倒谱系数,计算所有测试帧与背景噪声之间的倒谱距离可得到倒谱距离轨迹类似于基于能量的端点检测过程利用倒谱距离轨迹可检测语音的端点。基于熵的端点检测基于信息熵的检测方法对于离散型信源,当它由若干随机事件所组成时,随机事件出现的不确定度用其出现的概率来描述。事件出现的可能性愈小,概率就愈小,·而所含信息量却愈大;相反,事件出现可能性愈大,概率就愈大,而所含信息量却愈小。则信源提供的平均信息量为:这里所定义的H(x)就是信息熵。由于语音信号的幅度相对于背景噪声而言其幅度的动态范围大。因此可以认为语音信号在范围(一M,M)中的随机事件大,也就是熵值大,而无声状态(信号中只含噪声)的幅度小、分布相对集中,因而熵值小。按照以上原理,在构造出了熵函数之后就可只计算出每帧信号的信息熵(幅度熵)。假设语音信号S(n)的帧长为N,在一帧语音中最大幅度值与最小幅度值分别为M、一M,分别统计这一区域中S(n)=Si,Si∈(一M,M)出现的次数ni,并将比例ni/N作为出现Si这一值的概率:Pi=ni/N。将Pi代入前面的熵函数公式,即可得到语音信号的熵函数曲线。背景噪声信号的幅度熵的值较小而浊音信号的幅度熵值比较大,因此可以进行端点检测。首先通过实验确定一个阈值h,然后对每帧语音的熵值进行比较,认为熵值大于等于h时为语音帧,小于h则为无声帧,即可检测出语音信号的端点。基于谱熵的检测方法谱熵方法与信息嫡方法有着相似之处,信息熵方法是在时域内对信号进行熵值统计和计算,谱熵检测方法是从语音信号的频域来进行计算,然后从频谱分布概率来进行语音端点的检测。谱熵的计算方法如下:首先通过快速傅立叶变换(FFT)得到每一帧信号的频谱,其中每个频谱向量的系数表明了该帧信号在该频率点的大小分布。然后计算每个频谱分量在每帧总能量中所占的比例,将其作为信号能量集中在某频率点的概率,其概率密度函数定义为:式中,S(fi)是fi的能量,Pi是相应的概率密度,N是FTF中频率成分的所有点数。由于语音信号的绝大部分能量集中200Hz~350OHZ之间,所以,为了集中计算谱熵以增加语音和非语音在概率密度函数中的区分性,我们把200HZ~3500Hz之外的频率分量置为0,即:相应的每一帧的谱熵定义如下:通过熵函数就可以计算每帧语音信号的谱熵,并跟阈值比较,就可以检测出语音的起止点。基于复杂性的端点检测(KC复杂性和C0复杂性)复杂性Kolmogorov复杂度即KC复杂性,它可以用来衡量序列的复杂程度如何,LemPel和Ziv定义了由有限集合的元素所构成的有限序列的复杂度C(n),它反映了序列接近随机的程度,按有限序列从头开始反复进行以下操作:每次添加一个元素构成一个检验子串,如果该子串在除去最后添加的那个元素之前所构成的序列中已出现过,那么所构成的新序列的复杂度保持不变,并继续添加元素,直到由上述相继添加元素所构成的添加子串在除去最后添加的那个元素之前所形成的整个序列中从未出现过为止,此时整个序列的复杂度增加一,当往后继续添加元素时重新建立新的检验子串,如此反复进行,直到结束。如果最后一个检验子串在除去末尾一个元素之前的序列中出现过,复杂度也仍然加一。具体来说,分以下几个步骤:假如有一数列(x1,x2,…xn),首先求得这个数列的平均值m,再把这个数列重构。大于平均值m的值,令它们为1,小于平均值m的,令之为0,这样,就构成了(S1,S2,…Sn)新的(0,1)序列。在这样的(0,1)序列中已形成的一串字符S=s1,s2,…sr后,再加称之为Q的一个或一串字符Sr+1或者(Sr+1,Sr+2,…Sr+k),得到SQ,令SQπ是一串字符SQ减去最后的一个字符,再看Q是否属于SQπ字符串中已有的“字句”。如果已经有过,那么把这个字符加在后面称之为“复制”,如果没有出现过,则称之为“插入”,“插入”时用一个“.”把前后分开;下一步则把“.”前面的所有字符看成S,再重复如上步骤。例如,序列0010的复杂度可以由下列步骤而得:第一个符号永远是插入:0.S=0,Q=0,SQ=00,SQπ=0,Q属于SQ→0.0S=0,Q=01,SQ=001,SQπ=00,Q不属于SQ→0.01.S=001,Q=0,SQ=0010,SQπ=001,Q属于SQ→0.01.0,这时C(n)=3。如符号列0000…应是最简单的,它的形式应是0.00000…,C(n)=2。符号列01010101…应是0.1.0101…,C(n)=3。如上所述,就得到用“.”分成段的字符串。分成了段的数目就定义为“复杂度”C(n)。根据Lmapel和Ziv的研究,对几乎所有的x属于[0,1]区间的c(n)都会趋向一个定值:其中b(n)是随机序列的渐进行为,用它来使c(n)归一化,称为“相对复杂度”。定义相对复杂度:通常就是用这个函数来表达时间序列的复杂性变化。从这种算法可以看出,完全随机的序列C(n)值趋向于1,而有规律的周期运动的C(n)值则趋向于0。检测方法(1)对语音信号进行分帧、加窗,求解FFT变换,得其频率分量x(k);(2)重构语音信号,首先根据,其中1≤kN求得语音信号频谱均值,然后按照如下公式进行语音重构(3)对重构后的语音信号x’(k)按所示流程图分别求出每帧的KC复杂度。C0复杂性一般认为复杂运动可以是由规则运动和随机运动混合而成的。随机运动所占的分额,就是C0复杂性描述的基础。假设有一复杂运动的时间序列x(t),它包含了规则运动部分的时间序列及随机运动时间序列。它们是怎样组成x(t)的是一个复杂过程。假设规则运动部分时间序列为xl(t),它与x(t)的关系为函数f(x),于是有:从x(t)中去掉x1(t),剩余部分就是随机运动部分。简单的,设有一变换g(x),使得:A0代表了整个复杂运动时间序列的某种量度,而A1则代表了随机运动部分时间序列所占的份额。由此,可定义复杂性为:显然,当x1(t)在x(t)中所占份额很大时,C0趋向于O。说明系统的动力学行为几乎是规则的不含随机成分。反之,当x1(t)所占份额很小而随机运动部分时间序列所占的份额很大时,C0趋向于1时,说明系统的动力学几乎是完全随机的。所以,随着C0的增加,意味着动力学中的随机成分增加。步骤(1)对x(n)作离散傅立叶变换F(●),有:X(k)=F[x(n)](2)可求出幅度谱的平均值,k为频域变量,N为X(k)的长度,即k的最大值。大于平均值的频率成分被认为是规则部分的贡献,小于或等于平均值的成分则是随机部分的贡献,这里只取规则部分的贡献。(3)对规则部分贡献的频谱X’(k)作傅立叶反变换,即得x1(n)。所以有:至此,求得了x1(n),即规则部分时间序列。(4)利用公式求得复杂度C0。不同语音端点检测方法的实验结果对比实验条件(1)英文数据库(2)中文数据库(3)孤立词库中文数据库的采集由学生,都说普通话,个别人略带地方色彩。因语音信号主要集中在300一3400Hz,所以采用44100Hz的采样率,采样位数16位,采样通道选用立体声,每人读5次,每次通读十个词语一遍。共有250个有效测试session共有830MB的数据量。说话内容选择的词语考虑到了汉语中各个元音、辅音、摩擦音、爆破音和鼻音等各个不同的汉语因素。孤立词中文数据库采集由50名大学学生,一般发音标准,个别人略带地方色彩,语音信号主要集中在300一3400Hz,采用44100Hz的采样频率,采样位数16位,采样通道选用立体声,读26个英文字母,每次读一个英文字母,每人每个字母读2次。共有2600个有效测试孤立session,共有200MB的数据量。实验结果实验结果分析在高信噪比的条件下,上述方法大部分都能正常工作,端点检测的准确率都比较高,但是随着信噪比的降低,基于能量和基于倒谱距离的语音端点检测方法检测准确率急速降低,在低信噪比条件,这两种方法显然已经不能正常的工作。下面再看另外几种的比较:(1)在稳定白噪声条件下,

1 / 36
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功