一种人工混响的生成装置与方法

文档序号:1393441 发布日期:2020-02-28 浏览:31次 >En<

阅读说明:本技术 一种人工混响的生成装置与方法 (Artificial reverberation generation device and method ) 是由 宋冬梅 武剑 王宏 于 2019-10-15 设计创作,主要内容包括:本发明提供一种人工混响的生成装置与方法,所述方法包括:直达声信号、早期早期反射声信号和混响分量信号的音量和相位进行加权混合生成,其中,所述混响分量信号的产生通过延时矩阵与滤波器相结合的方法生成,通过上述方案解决了现有算法生成混响尾音时会存在金属音和混响密度不够的问题,可在极大增加混响密度的同时抑制金属尾音的产生,提高混响效果自然度。(The invention provides a device and a method for generating artificial reverberation, wherein the method comprises the following steps: the method solves the problem that the existing algorithm has insufficient metal sound and reverberation density when generating reverberation tail sound, can inhibit the generation of metal tail sound while greatly increasing the reverberation density, and improves the naturalness of reverberation effect.)

一种人工混响的生成装置与方法

技术领域

本发明涉及音频信号领域,尤其涉及一种人工混响的生成装置与方法。

背景技术

声波在室内传播时,会经过室内天花板、障碍物等的反射,在每一次的反射过程中,该声波能量都会被障碍物吸收而有所衰减。当声源停止发声后,声波在室内需要经过多次反射和吸收之后,才会消失。即,我们感受到的声波在声源停止发声后还会持续一段时间,这种现象称为混响。混响广泛应用于对人声和音乐的修饰,用于增加声音的空间感和自然度,适用于KTV演唱、手机K歌、歌曲制作、电影制作以及大型晚会等应用场景。

目前混响算法主要有Schroeder混响算法,它主要采用了四个并联的梳状滤波器与两个全通滤波器串联处理实现混响效果,该算法混响尾音会产生金属音,同时,混响的密度不够。另一种是MOORER混响算法,在Schroeder算法的基础上做了改进,采用一个FIR滤波器用于模拟早期反射声,采用六个并联的低通梳状滤波器与一个全通滤波器串联处理来模拟混响效果,最后将直达声、早期反射声和混响声按一定比例混合成最终效果,后一种方法对于金属尾音消除有一定的效果,混响密度也有一定的增强。但是,Schroeder和Moorer的混响算法,均不能可靠地实现既增加混响密度同时又抑制金属尾音产生的效果,混响效果较差。

目前,针对上述问题,还没有提出一种能够有效解决问题的技术方案。

发明内容

本发明提供了一种人工混响的生成装置与方法,采用延时矩阵与全通滤波器结合方式,可在极大增加混响密度的同时抑制金属尾音的产生,显著提高混响效果自然度。

一方面,本发明提供了一种人工混响的生成装置,包括:混响分量产生模块、用于接收原声信号的直达声模块、用于模拟环境反射声的早期反射声模块和加权混合模块,所述加权混合模块用于对上述三个模块的音量和相位进行加权混合,生成人工混响信号;其中,所述混响分量产生模块通过延时单元和滤波单元生成混响分量信号;

其中,所述延时单元包括复制子单元、延时系数子单元、吸收滤波子单元和累加系数子单元,用于增加混响密度;

所述复制子单元用于接收所述早期反射模块产生的早期反射声信号,并复制至少一个所述早期反射声信号,生成早期反射声信号集合矩阵;

所述延时系数子单元用于将所述早期反射声信号集合矩阵与延时参数矩阵相乘,生成延时信号集合矩阵;

所述吸收滤波子单元用于将所述延时信号集合矩阵与吸收滤波矩阵相乘,生成吸收滤波信号集合矩阵;

所述累加系数子单元用于将所述吸收滤波信号集合矩阵与至少一个系数矩阵相乘,再把所述相乘后的结果进行加权累加,得到延时信号。

在一个实施例中,所述延时单元还包括:

反馈子单元,用于将所述吸收滤波信号集合矩阵与反馈系数矩阵相乘,生成反馈信号集合矩阵,所述反馈信号集合矩阵用于与下一次的早期反射声信号集合矩阵相加,得到更新的早期反射声信号集合矩阵。

在一个实施例中,所述延时单元包括:

校正子单元,用于对所述延时信号进行校正滤波,并更新延时信号。

在一个实施例中,所述滤波单元包括:

材质滤波器子单元,用于对所述延时信号根据障碍物材质的模拟参数进行全通滤波,生成混响分量信号。

在一个实施例中,所述滤波单元包括:

声音色彩均衡子单元,用于对所述延时信号根据冷暖感情色彩的模拟参数进行高低频滤波,并生成混响分量信号。

另一方面,本发明还提供了一种人工混响的生成方法,人工混响信号由直达声信号、早期早期反射声信号和混响分量信号的音量和相位进行加权混合生成,其中,所述混响分量信号通过延时矩阵和滤波生成混响分量信号,所述延时矩阵的工作流程包括:

接收所述早期反射模块产生的早期反射声信号,并至少复制一个所述早期反射声信号,生成早期反射声信号集合矩阵;

将所述早期反射声信号集合矩阵与延时参数矩阵相乘,生成延时信号集合矩阵;

将所述延时信号集合矩阵与吸收滤波矩阵相乘,生成吸收滤波信号集合矩阵;

将所述吸收滤波信号集合矩阵与至少一个系数矩阵相乘,再把所述相乘后的结果进行加权累加,得到延时信号。

在一个实施例中,所述延时矩阵的工作流程包括,还包括:

将所述吸收滤波信号集合矩阵与反馈系数矩阵相乘,生成反馈信号集合矩阵,所述反馈信号集合矩阵用于与下一次的早期反射声信号集合矩阵相加,得到更新的早期反射声信号集合矩阵。

在一个实施例中,所述延时矩阵的工作流程还包括:

对所述延时信号进行校正滤波,并更新延时信号。

在一个实施例中,所述滤波过程包括:

对所述延时信号根据障碍物材质的模拟参数进行全通滤波,生成混响分量信号。

在一个实施例中,所述滤波过程包括:

对所述延时信号根据冷暖感情色彩的模拟参数进行高低频滤波,并生成混响分量信号。

本发明通过直达声信号、早期早期反射声信号和混响分量信号的音量和相位进行加权混合的方法生成人工混响,其中,所述混响分量信号的产生是通过延时矩阵与滤波器结合的方法。通过上述方案解决了现有算法生成混响尾音时会存在金属音和混响密度不够的问题,可在极大增加混响密度的同时抑制金属尾音的产生,提高混响效果自然度。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是一种人工混响的生成装置结构图;

图2是一种模拟房间反射声的全通滤波器原理示意图;

图3是一种模拟房间反射声的全通滤波器的实现过程示意图;

图4是一种混响分量产生模块结构示意图;

图5是一种延时单元的结构示意图;

图6是一种具体的延时单元数据处理过程示意图;

图7是一种滤波单元的结构示意图;

图8是一种人工混响生成方法的流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本说明书中,诸如第一和第二这样的形容词仅可以用于将一个元素或动作与另一元素或动作进行区分,而不必要求或暗示任何实际的这种关系或顺序。在环境允许的情况下,参照元素或部件或步骤(等)不应解释为局限于仅元素、部件、或步骤中的一个,而可以是元素、部件、或步骤中的一个或多个等。

在本说明书中,为了便于描述,附图中所示的各个部分的尺寸并不是按照实际的比例关系绘制的。

图1是一种人工混响的生成装置结构图。

本发明中,人工混响的生成装置包括4个模块:直达声模块11、早期反射声模块12和混响分量产生模块13和加权混合模块14。

其中,直达声模块用于接收原声信号。

早期反射声模块用于模拟环境反射声的早期反射声信号。具体的,早期反射声模块可模拟原声信号经过墙壁等障碍物的前几次反射效果。早期反射声模块可通过将原声信号输入到一个房间大小的全通滤波器实现早期反射声效果,可以调节房间大小全通滤波器的参数来模拟不同房间大小条件下的早期反射声效果。

混响分量产生模块用于将早期反射声模块产生的早期反射声信号依次通过延时单元和滤波单元来实现混响分量信号的产生。其中,通过延时单元可以极大地增加混响密度,配合滤波单元中的多种滤波方式可将声音信号的颗粒度处理的更为细腻。

加权混合模块用于对直达声模块、早期反射声模块和混响分量产生模块这三个模块产生的声信号的音量和相位进行加权混合,从而生成人工混响信号。

具体的,在实际的人工混响生成过程中,在混响处理操作之前,首先需要对音频数据PCM进行归一化处理,将音频数据范围归一化到-1~+1范围。如已归一化则可以跳过此步骤。

归一化的公式如下所示:

Figure BDA0002234359520000041

式中,val表示需要混响处理的音频数据,以定点数表示,nval代表归一化后的音频数据值,它以浮点数据表示,bitnum表示定点val数据的位宽。

预处理后的音频数据即为原声信号,它复制两份分别进入直达声模块和早期反射声模块。

直达声模块主要用于接收原声信号,并将直达声信号传输到加权混合模块,加权混合模块对直达声信号的音量和相位进行控制。其中,对直达声音量DIR_VOL(取值范围0~100)的控制可以调节直达声在最终人工混响信号中的音量大小,对直达声相位DIR_RHASE(取值为+1或-1)的控制可以避免直达声相位与早期反射声相位和混响分量相位相抵消。

其中,加权混合模块对直达声模块输入的直达声音量DIR_VOL和直达声相位DIR_RHASE的加权处理公式如下所示:

DIR_OUTDATA=nval×DIR_VOL×DIR_PHASE×0.01

式中,DIR_OUTDATA表示在加权混合模块中计算所得的直达声分量信号结果。

早期反射声模块由全通滤波器构成,该全通滤波器的参数由环境反射声的模拟结果确定。例如,如果将本发明应用在一个房间内,则需要根据原声信号通过该房间前几次反射时的情况确定该全通滤波器的参数。一种具体的模拟房间反射声的全通滤波器框图如图2所示,该全通滤波器输入信号为x(n),即原声信号,输出信号为y(n),其脉冲响应为h(n),则Y(z)=H(z)*X(z),X(z)、Y(z)是x(n)和y(n)的Z变换,全通滤波器的传递函数为:

Figure BDA0002234359520000051

式中,g表示增益系数,这里取为0.7,m表示延时样点数,m与房间尺寸的关系如下所示:

Figure BDA0002234359520000052

式中,L、W、H代表房间的长、宽、高,FS表示音频数据采样率,MIN()表示取最小值,Round()表示四舍五入取整。这样根据房间大小参数就可以确定该全通滤波器的参数了。

该全通滤波器的实现过程如下:

根据全通滤波器的传递函数,该全通滤波器输出的音频数据需要当前输入数据及当前输入数据之前m个点的输入数据,采用该全通滤波器直接II型实现方法,可设计一个大小为m个点的环状缓冲,指针指向当前点之前的第m个中间数据。如图3所示:

设当前数据为curdata,经该全通滤波器处理后的数据为outdata,当前数据curdata之前的第m个直接II型方法中间数据APF_BUF(ploop),则该全通滤波器按照如下的方法得到输出数据outdata。

1.dtmp=g×APF_BUF[ploop]+curdata

2.outdata=APF_BUF[ploop]-g×dtmp

3.APF_BUF[ploop]=dtmp

4.

Figure BDA0002234359520000061

5.重复步骤1~4,直到所有数据计算完毕

经过该全通滤波器处理后的音频数据复制两份,一份传递到混响分量产生模块进行处理,另一份进入到加权混合模块对早期反射声模块产生的早期反射声的音量、相位EARLYECHO_PHASE进行控制处理,其中,对早期反射声音量EARLYECHO_VOL(取值范围0~100)的控制可以调节早期反射声在最终人工混响信号中的音量大小,对早期反射声相位EARLYECHO_PHASE(取值为+1或-1)的控制可以避免直达声相位与早期反射声相位相抵消。

其中,加权混合模块对早期反射声模块输入的早期反射声音量EARLYECHO_VOL和直达声相位EARLYECHO_PHASE的加权处理公式如下所示:

EARLYECHO_OUTDATA

=ROOMSIZE_APF_DATA×EARLYECHO_VOL×EARLYECHO_PHASE

×0.01

式中,DIR_OUTDATA表示在加权混合模块中计算所得的直达声分量信号结果。

其中EARLYECHO_OUTDATA表示加权混合模块中计算所得的早期早期反射声信号结果,ROOMSIZE_APF_DATA表示经全通滤波器处理后的音频数据。

混响分量产生模块结构示意图如图4所示。该模块用于接收早期反射声模块传入的早期早期反射声信号,进一步将早期早期反射声信号打散。该模块包括:延时单元41和滤波单元42。即,混响分量产生模块通过延时单元和滤波单元生成混响分量信号。

其中,延时单元的结构示意图如图5所示。包括:复制子单元51、延时系数子单元52、吸收滤波子单元53、累加系数子单元54、反馈子单元55和校正子单元56,可极大增加混响密度。

具体的,复制子单元用于接收所述早期反射模块产生的早期反射声信号,并复制至少一个所述早期反射声信号,生成早期反射声信号集合矩阵;

延时系数子单元用于将所述早期反射声信号集合矩阵与延时参数矩阵相乘,生成延时信号集合矩阵;

吸收滤波子单元用于将所述延时信号集合矩阵与吸收滤波矩阵相乘,生成吸收滤波信号集合矩阵;

累加系数子单元用于将所述吸收滤波信号集合矩阵与至少一个系数矩阵相乘,再把所述相乘后的结果进行加权累加,得到延时信号;

反馈子单元,用于将所述吸收滤波信号集合矩阵与反馈系数矩阵相乘,生成反馈信号集合矩阵,所述反馈信号集合矩阵用于与下一次的早期反射声信号集合矩阵相加,得到更新的早期反射声信号集合矩阵;

校正子单元,用于对所述延时信号进行校正滤波,并更新延时信号。

一种具体的延时单元数据处理过程如图6所示。

复制子单元将接收到的早期反射声模块产生的早期反射声信号x(n)复制N份,这里我们取N=4,即,复制子单元内现有4份早期反射声信号,将这4份早期反射声信号打包,生成早期反射声集合矩阵X。

延时系数子单元接收到早期反射声集合矩阵后,将所述早期反射声集合矩阵X与延时参数矩阵Z相乘,得到延时生成延时信号集合矩阵XZ

Figure BDA0002234359520000072

延时参数矩阵Z中,延时函数z-m1、z-m2、z-m3、z-m4中的参数m1~m4可随机选择0~80ms对应的音频数据个数,对应的计算公式如下:

mstime(n(=random(0~1000(×0.08,n=1~4

Figure BDA0002234359520000073

其中random(0~1000)表示在0~1000取随机数,得到的四个值m1~m4保证互相不是倍数、不存在公倍数。这里我们优选值2641,3457,4083,4801。

吸收滤波子单元用于将所述延时信号集合矩阵XZ与吸收滤波矩阵H相乘,生成吸收滤波信号集合矩阵XH

Figure BDA0002234359520000081

该吸收滤波矩阵H的每一个参数为传递函数H1(z)~H4(z),分别对延时信号集合矩阵内的每一个延时信号进行处理。

其中,传递函数HN(z)函数形式和参数计算公式如下所示:

Figure BDA0002234359520000082

参数计算公式:

Figure BDA0002234359520000083

Figure BDA0002234359520000084

Figure BDA0002234359520000085

其中,FS代表采样率,reverbtime表示0频率的混响时间,reverbtimeNF表示奈奎斯特频率的混响时间,这里我们固定将ee设置为0.8。

累加系数子单元用于将所述吸收滤波信号集合矩阵XH与至少一个系数矩阵C相乘,再把所述相乘后的结果进行加权累加,得到延时信号;

例如,一种最简单的例子如下:

为了得到立体声输出,我们可以利用两组不同取值的系数矩阵Ca、Cb来产生两个互不相关的输出,如下所示:

Figure BDA0002234359520000086

由此我们可以得到两组信号y1(n)和y2(n),其中:

y1(n)=XH*Ca

y2(n)=XH*Cb

我们再通过以下公式得到左右耳互相关立体声输出yL(n)和yR(n),对应的立体声混响生成公式如下所示,立体声混响生成框图如图6所示。

yL(n)=cos(θ)y1(n)+sin(θ)y2(n)

yR(n)=sin(θ)y1(n)+cos(θ)y2(n)

Figure BDA0002234359520000091

这里IACC表示左右耳间互相关系数。对于混响效果,我们优选取值0.5。

反馈子单元,用于将经第N次早期反射声信号集合矩阵XN运算产生的吸收滤波信号集合矩阵(XH)N与反馈系数矩阵A相乘,生成反馈信号集合矩阵SN,反馈信号集合矩阵用于与第N+1次从早期反射声模块接收的早期反射声信号集合矩阵X′N+1相加,得到更新第N+1次的早期反射声信号集合矩阵XN+1,即,第N+1次更新的早期反射声信号集合矩阵XN+1为:

XN+1=X′N+1+(XH)N*A

反馈系数矩阵A的参考形式为:

Figure BDA0002234359520000092

这里我们取N为4,则反馈系数矩阵A的参数可以参考如下公式,矩阵A为酉矩阵。

Figure BDA0002234359520000093

校正子单元,用于对所述延时信号yL(n)和yR(n)进行校正滤波,并更新延时信号。具体地,校正滤波的传递函数T(z)和相关参数计算公式如下所示:

Figure BDA0002234359520000094

Figure BDA0002234359520000095

Figure BDA0002234359520000096

其中reverbtime表示0频率的混响时间,ee的计算公式与上相同,这里不在赘述,这里我们固定将ee设置为0.8。

通过上述介绍,本发明已阐明了混响分量产生模块中延时单元的处理方式,获得了延时信号。下一步,需要将处理得到的延时信号送到滤波单元,进而生成混响分量信号。

优选的,滤波单元包括材质滤波器子单元71和声音色彩均衡子单元72,其中:

材质滤波器子单元,用于对所述延时信号根据障碍物材质的模拟参数进行全通滤波;

声音色彩均衡子单元,用于对所述延时信号根据冷暖感情色彩的模拟参数进行高低频滤波。

其中,材质滤波器子单元可以模拟墙面的光滑粗糙程度。墙面越光滑时声音的散射度就越小,反射次数就越少,相互之间隔得越开,混响分量信号听起来越清晰;当墙面越粗糙时,声音的散射度就越大,反射次数就越多,相互之间越接近,混响分量信号是连声一片的,声音很温和。

材质滤波器子单元采用两个参数相同的房间材质全通滤波器作用于延时单元之后,对经校正子单元后的yR(n)和yL(n)进行处理。房间材质全通滤波器的传递函数及框图与上述模拟房间反射声的全通滤波器相同。参数g的取值为0.7,m的取值如下面的公式所示:

Figure BDA0002234359520000101

其中Roughness表示的是墙面粗糙度,范围为1~10。

具体的,声音色彩均衡子单元作用于材质滤波器输出后,它可以调节混响声音的冷暖感情色彩,采用一二阶IIR滤波器模型,声音在低频部分给人的感觉较温暖,在高频部分给人的感觉较冷。

一种具体的二阶IIR滤波器模型如下,

参数的计算公式如下所示:

Figure BDA0002234359520000103

Figure BDA0002234359520000105

Figure BDA0002234359520000106

a1=-2×cos(ω0)

Figure BDA0002234359520000107

b0=1+alpha×A

b1=-2×cos(ω0)

b2=1-alpha×A

其中color表示的是颜色等级,取值范围为1~7,值由小到达分别表示声音色彩由温暖(橙)到冷淡(蓝)。

加权混合模块对混响分量信号做音量和相位控制,混响分量信号音量REVERB_VOL用于调节混响在最终输出的混响音频中的音量大小,取值范围为0~100。混响分量信号相位REVERB_PHASE用于避免直达声相位与早期反射声相位和混响相位的抵消,取值为1或-1。

混响分量信号中的音量和相位处理公式如下所示:

REVERB_OUTDATA

=COLORFILTER_OUTDATA×REVERB_VOL×REVERB_PHASE×0.01

其中COLORFILTER_OUTDATA表示的是声音色彩均衡器输出的音频数据。

最后,加权混合模块将上述计算所得的将直达声分量DIR_OUTDATA、早期反射声分量EARLYECHO_OUTDATA和混响分量信号分量REVERB_OUTDATA累加后乘以主音量MAINVOL,即得到了最终人工混响音效输出数据REVERBEFF_OUTDATA。公式如下所示:

REVERBEFF_OUTDATA

=0.01×MAINVOL×(DIR_OUTDATA+EARLYECHO_OUTDATA

+REVERB_OUTDATA)

其中主音量的取值范围为0~200,可将整体声音放大一倍。

在具体的实际应用中,音频数据在做完混响处理之后需要将归一化的浮点数据转换为音频数据PCM,该数据还原的处理过程为预处理的逆过程,数据还原前需要对混响处理后的数据做越界处理,处理过程如下所示:

Figure BDA0002234359520000111

数据还原为音频数据PCM的公式如下所示:

val=tval×2bitnum-1

图8为本发明生成人工混响的方法流程图。

S81:数据预处理,将音频数据PCM(脉冲编码调制(Pulse Code Modulation)进行归一化处理,得到原声信号;

S82:将归一化处理后的原声信号复制两份,一份为直达声信号,一份经过模拟环境反射声的全通滤波器进行处理,生成早期反射声信号,将早期反射声信号复制两份,其中一份输入到混响分量信号产生流程进行处理;

混响分量信号产生流程的处理过程如下所示:

S831:接收早期反射模块产生的早期反射声信号,并至少复制一个早期反射声信号,生成早期反射声信号集合矩阵;

S832:将早期反射声信号集合矩阵与延时参数矩阵相乘,生成延时信号集合矩阵;

S833:将延时信号集合矩阵与吸收滤波矩阵相乘,生成吸收滤波信号集合矩阵;

S834:将吸收滤波信号集合矩阵与至少一个系数矩阵相乘,再把所述相乘后的结果进行加权累加,得到延时信号;

S835:将吸收滤波信号集合矩阵与反馈系数矩阵相乘,生成反馈信号集合矩阵,所述反馈信号集合矩阵用于与下一次的早期反射声信号集合矩阵相加,得到更新的早期反射声信号集合矩阵;

S836:对延时信号进行校正滤波,并更新延时信号;

S837:对延时信号根据障碍物材质的模拟参数进行全通滤波;

S838:对上述全通滤波后的信号根据冷暖感情色彩的模拟参数进行高低频滤波,并生成混响分量信号。

S84:对上述得到的直达声信号、早期反射声信号和混响分量信号的音量和相位进行加权混合,从而生成人工混响信号。

S85:对人工混响信号进行逆归一化处理,转换为PCM数据。

本发明通过直达声信号、早期早期反射声信号和混响分量信号的音量和相位进行加权混合的方法生成人工混响,其中,所述混响分量信号的产生是通过延时矩阵与滤波器结合的方法。通过上述方案解决了现有算法生成混响尾音时会存在金属音和混响密度不够的问题,可在极大增加混响密度的同时抑制金属尾音的产生,提高混响效果自然度。

至此,已详细描述了本发明。为了避免蒙蔽本发明的构思,没有对本领域所公知的一些细节进行描述。本领域技术人员根据上面的描述,完全可以明白如何实施本发明公开的技术方案。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

17页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:语音交互方法、装置及机器人

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!