基于语音频谱的共振峰声码器实现

[10-10 20:38:44]   来源:http://www.88dzw.com  电子制作   阅读:8941

文章摘要:V(t)为合成语音信号,fp为基频。为避免出现尖峰信号,设定了相位φn(ω)函数:比较3种方式确定的离散频谱所合成的语音信号:(1)直接对原语谱图离散;(2)对所得的语谱包络离散;(3)对根据共振峰值确定的频谱包络离散。此方式的具体方案是:由于人耳对共振峰的参数中的中心频率敏感,而对幅值和带宽不敏感,所以本文只用共振峰的中心频率和最大幅值两个参数信息来合成语音。根据成年人语音信号的共振峰带宽大约300 Hz,将各共振峰的带宽统一定为300 Hz。重新作语音频谱包络线时,以各共振峰中心频率值为中点、最大能量为幅度作宽度为300 Hz的门信号,然后根据新生成的包络线确定基频的各次谐波的幅值。用第一

基于语音频谱的共振峰声码器实现,标签:电子小制作,http://www.88dzw.com

  V(t)为合成语音信号,fp为基频。为避免出现尖峰信号,设定了相位φn(ω)函数:

  比较3种方式确定的离散频谱所合成的语音信号:

  (1)直接对原语谱图离散;

  (2)对所得的语谱包络离散;

  (3)对根据共振峰值确定的频谱包络离散。

  此方式的具体方案是:由于人耳对共振峰的参数中的中心频率敏感,而对幅值和带宽不敏感,所以本文只用共振峰的中心频率和最大幅值两个参数信息来合成语音。

  根据成年人语音信号的共振峰带宽大约300 Hz,将各共振峰的带宽统一定为300 Hz。重新作语音频谱包络线时,以各共振峰中心频率值为中点、最大能量为幅度作宽度为300 Hz的门信号,然后根据新生成的包络线确定基频的各次谐波的幅值。用第一种语谱图合成语音听起来只是音质略有变化,可以清晰分辨每个音节,完整保留原语音的语调、语气和说话人音质特征等信息。这说明算法能够准确提取基频信息,而且这种合成方法可以合成出高质量的语音信号。用第二种语谱图合成的语音中说话人音质特征有些不清楚,其他方面与第一种相同。第三种语谱图和成的语音中说话人音质特征完全被过滤掉,个别音节有些含糊,但语气、语调信息完整保留。

  3 共振峰语音编码

  共振峰编码算法需要基频和共振峰两种参数。通过实验表明应用基频、共振峰信息不但可以重建语音中的元音和浊辅音部分,还可以重建清辅音部分。首先是因为参数提取算法在清辅音部分时所确定的基频参数不稳定,根据不稳定参数重建的语音信号会出现跳变,这种跳变信号与清辅音的频谱相似。更重要的原因人耳对于辅音的听辨要点是过渡音征,所以只要准确提供共振峰值就能重建清辅音部分。根据语音信号合成的研究表明,表示浊音信号最主要的是前三个共振峰。一个语音信号的共振峰模型,只用前三个时变共振峰频率就可以得到可懂度很好的合成浊音。考虑到特殊情况下可能会出现伪共振峰,本算法在确定编码参数时根据共振峰幅值大小保留4个共振峰参数。

  3.1 参数量化

  语音编码算法最主要的两个主要指标是比特率和语音质量。低速率语音编码算法要求在语音可懂的基础上最大限度地降低比特率。为确定各参数的最大量化度,我们对各参数进行不同程度量化后重新合成语音,并评价各量化程度的语音质量。

  正常语音的基频变化范围为50~500 Hz,基频量化实验时发现当基频量化精度为20 Hz时,重建的语音信号仍然清晰。所以编码时基频最低可以用5 b表示,但为了提高抗误码能力用8 b对基频进行编码。共振峰的量化分为频率值量化和幅值量化。根据参数提取算法可知,共振峰曲线是基频及其各次谐波的包络线。我们可以认为语音频谱是基频及其谐波对共振峰曲线采样信号,所以可以以基频值作为描述共振峰曲线的精度。共振峰的中心频率值就可以用基频的第几次谐波确定,所以变化范围是1~32,编码时用5 b表示。人耳对共振峰幅值不敏感,通过语音实验表明当时域上以16位采样精度录制语音,信号振幅变化范围210~215时用3 b对幅值编码时就能清楚表现语音。所以对于每个共振峰可以用8 b量化,其中5 b表示中心频率,3 b表示幅值。

  3.2 编码规则

  编码中语音帧周期可以分为动态和固定两种形式。动态形式是每帧的周期根据基频来确定,即每帧是一个基频周期。这种方式在解码时语音清晰度自然度最好,但由于帧周期的长度小导致编码率高。固定形式是帧的周期是一定的,根据实际情况可以设定为10~40 ms。周期长度与音质成反比,与压缩率成正比。本算法中帧周期采用固定形式设定为25 ms。根据频谱能量值判断是否有语音,当没有语音时以一个0字节编码。我们采用一个字节表示静音帧,是为了提高算法的抗误码能力。

上一页  [1] [2] [3]  下一页


Tag:电子制作电子小制作维修教程知识 - 电子制作