Python学习

【嗓音特征】谐噪比

谐噪比提供了一些语音信号非周期的信息,语音信号的许多声学特性都来源于都来源于语音信号的非周期性:例如振幅变化,浊辅音(voiced consonants),停顿,摩擦音(fricatives),预期的噪音等等。研究人员已经使用谐噪比(HNR)来评估和处理嗓部疾病。在临床上,HNR可能最适合的衡量嗓音嘶哑程度的定量化指标。

嘶哑是大多数喉部疾病的重要症状,也是语言学家们评估声音疾病程度的重要指标。一般来说,我们认为,疾病的嗓音HNR更低,反之健康的嗓音HNR更高。

时域方法

Yumoto等人介绍了HNR代表性的时域计算方法。他们假设声音是由两部分组成:周期性成分和额外的噪声成分

  1. 计算连续周期的平均值,从而计算出单个周期的平均波形。该平均波形的能量定义了谐波能量。
  2. 假设噪声在帧与帧之间是固定的,因而使用平均波形和各个周期之间的均方差来计算噪声能量。
  3. 由于周期到周期的基频周期扰动,周期不一定是对齐的。因此,为了计算均值和方差之前,需要对每个周期做时间归一化(零填充)。然而,当语音信号本身就有基频扰动时(例如患病的声音),这种简单的归一化放大了噪声的能量。

为了克服以上局限性,Qi等人提出了使用DTW来进行时间归一化,也就是对准波形对准。目的是最小化F0扰动的影响。DTW是一种非线性的时间归一化方法,可以最大限度地减少两个输入帧之间的不匹配性。然而这种计算HNR的方法需要准确的估计基频。此外,基频边界,对相位失真非常敏感。基于此,Qi等人后来提出了合适的时间归一化方法——零相位变换,来最小化振幅微扰和基频微扰对于HNR计算的影响。

最近,Boersma提出了一种非常直接的基于时域的方法:基于短时自相关函数(ACF)方法。这种方法的关键思想是将周期性程度定义为lagT0(1/f0)处的ACF与非谐波能量的相对值。这样,一帧的log HNR可以定义为:


其中,ACF(0)表示语音波形的能量。在这个等十种,谐波分量的能量是基于lagT0处ACF的值来计算的。随后,通过从信号能量中减去谐波能量,得到非谐波部分(噪声)的能量。

频域方法

现在已经有很多在频域上计算HNR的方法了。这些方法主要的优点是,不需要准确地估计基频,对其依赖程度较小。Krom使用了一种梳状滤波器在倒谱域区分出谐波和噪声分量。然而,在倒谱域地分析是假设该过程在帧之间是不变的,并且波形变化可能会导致频谱泄露,从而带来谐波幅度地衰减。

Be the First to comment.

Leave a Comment

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.