Reverb音效算法研究实现

来源:互联网 发布:大浦洞导弹 知乎 编辑:程序博客网 时间:2024/05/23 11:47

如需转载请注明出处!


1. Reverb物理原型

在一定的空间范围内(如房间中)进行语音/音频播放时(讲话或者Audio播放)。对于语音/音频接收端而言,其接收到的音频信号除了播放端直接传递过来的信号(直达声)外,还包含了经过各种复杂物理反射后的信号(反射声)。反射声信号要延迟于直达声信号到达,并且由于物理反射作用其能量要发生衰减。并且空间模型不同(房间、礼堂),反射声的延迟及能量衰减会有较大的差异,从而造成主观听觉的不同。如图1所示。

   

 图1. 音频信号传输

 

2. 数字信号处理模型

2.1 梳状滤波器模型

由Reverb物理模型可知,混响信号可以看做直达信号和各阶延迟信号的叠加。

y(n) = x(n) + ax(n-m) + a2 x(n-2m) + ……

转换到Z域,可得到系统单位冲击响应的Z变换为:

H(z) = 1+a z-m + a2 z-2m+……

等比求和后,传递函数为:

        

其时域方程又可以表述为:
                 y(n) = ay(n-m) + x(n)
即一阶的IIR滤波器,其中m为延迟间隔即延迟时间,系统框图如图2所示:

 

 图2. 梳状滤波器系统框图

由梳状滤波器的幅频特性可知,其频域相应幅度呈现梳妆分布;从梳状滤波器的脉冲响应可知,其冲击响应点离散的以m为间隔延续,且能量逐渐减小,因此与Reverb物理特性相一致。但是其回声密度受限于延迟时间,因此回声密度较低。

2.2 全通滤波器模型

全通滤波器模型是在梳状滤波器模型的基础上,通过增加一条前向反馈支路实现的。该模型的时域系统表达式为:
             y(n) = -gx(n) + x(n-m) +gy(n-m);

其Z域传递函数为:
            

系统传递框图如图3所示:

图3. 全通滤波器系统框图

由全通滤波器的幅频特性可知,其频域相应幅度呈现直通分布;从梳状滤波器的脉冲响应可知,其冲击响应点离散的以m为间隔延续,且能量逐渐减小,因此与Reverb物理特性相一致。但是其回声密度同样受限于延迟时间,因此回声密度较低。

  

2.3 Schroeder混合模型
    综合梳状滤波器和全通滤波器,为了实现较高的回声密度,将4个梳状滤波器进行并联,然后通过2个级联的全通滤波器,实现Schroder混合模型。Schroeder混合模型的系统框图如图4所示。

         

图4. Schroeder模型系统框图


3.  算法实现

基于Schroeder模型的原理,本地对算法进行了实现。根据不同的空间模型其延迟特性不同,在空间模型设定时进行延迟参数的校准,最终生成了3种空间模型:小房间、大房间及礼堂模型。并且对纯语音和音频样本进行了初步测试,效果如下(以纯语音样本处理为例)。


(a) 原始音频文件


(b) 小房间模型数据




0 0
原创粉丝点击