本申请涉及计算机领域,具体涉及语音技术和深度学习领域,尤其涉及一种去混响方法、装置、电子设备和存储介质。
背景技术:
声音在室内传播时,会受到天花板、地板、墙壁等各种室内障碍物的反射,形成混响,过大的混响是影响听感舒适度和远场语音识别性能的因素之一。因此,如何较好的去除混响声,是目前亟待解决的问题。
技术实现要素:
本申请提供了一种去混响方法、装置、电子设备和存储介质。
根据本申请的一方面,提供了一种去混响方法,包括:
将采集的至少一路语音信号子带分解为多个子带信号;
对每个所述子带信号,依据设定的时间偏移量进行偏移处理,得到每个子带信号的参考信号;
将所述至少一路语音信号的每个所述子带信号,以及对应的参考信号输入去混响模型,以得到至少一路所述语音信号的每个所述子带信号所对应的理想比值膜irm;
对至少一路所述语音信号的各所述子带信号采用对应的irm进行幅度谱增强,得到至少一路所述语音信号去混响的各所述子带信号;
对同一路所述语音信号去混响的各所述子带信号进行子带合成,以得到各路去混响的语音信号。
根据本申请的另一方面,提供了一种去混响装置,包括:
分解模块,用于将采集的至少一路语音信号子带分解为多个子带信号;
偏移模块,用于对每个所述子带信号,依据设定的时间偏移量进行偏移处理,得到每个子带信号的参考信号;
输入模块,用于将所述至少一路语音信号的每个所述子带信号,以及对应的参考信号输入去混响模型,以得到至少一路所述语音信号的每个所述子带信号所对应的理想比值膜irm;
去混响模块,用于对至少一路所述语音信号的各所述子带信号采用对应的irm进行幅度谱增强,得到至少一路所述语音信号去混响的各所述子带信号;
合成模块,用于对同一路所述语音信号去混响的各所述子带信号进行子带合成,以得到各路去混响的语音信号。
根据本申请的另一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述一方面实施例所述的去混响方法。
根据本申请的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行上述一方面实施例所述的去混响方法。
上述可选方式所具有的其他效果将在下文中结合具体实施例加以说明。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是根据本申请实施例提供的一种去混响方法的流程示意图;
图2是根据本申请一个实施例提供的混响信号的生成过程示意图;
图3是根据本申请一个实施例提供的去混响方法的系统框图;
图4是根据本申请实施例提供的另一种去混响方法的流程示意图;
图5是根据本申请实施例提供的另一种去混响方法的流程示意图;
图6是根据本申请实施例提供的另一种去混响方法的流程示意图;
图7是本申请一个实施例的直达声和早起反射声的频谱图;
图8是本申请一个实施例的带混响信号(处理前)的频谱图;
图9是相关技术中加权预测误差算法的频谱图;
图10是本申请实施例的去混响方法的频谱图;
图11是根据本申请实施例提供的一种去混响装置的结构示意图;
图12是根据本申请实施例的去混响方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
下面参考附图描述本申请实施例的去混响方法、装置、电子设备和存储介质。
在描述本申请的去混响方法之前,先来说明下混响。
声音在室内传播时,会经过天花板、地板、墙壁等各种室内障碍物的反射,形成混响,过大的混响是影响听感舒适度和远场语音识别性能的因素之一。
根据到达时间的早晚,混响语音(音频)信号通常会被分成三个部分:直达声、早期反射声和晚期混响声。其中,直达声为声源未经过天花板、地板、墙壁等障碍物的反射,由声源以最短路径传播至麦克风的信号成分;早期反射声一般定义为直达声后50毫秒内传播至麦克风的反射信号成分;剩余部分信号成分为晚期混响声。大量研究指出早期反射声有助于提升语音的可懂度和听感舒适度,而晚期混响声则会导致语音的可懂度和听感舒适度的降低。因此,降低晚期混响声对人主观听感和机器的感知都是有帮助的。
为此,本申请提出了一种去混响方法,通过频带独立的去混响模型,可以较好的去除晚期混响声。
图1是根据本申请实施例提供的一种去混响方法的流程示意图。
本申请实施例的去混响方法,可由本申请实施例提供的去混响装置执行,该装置可配置于电子设备中。
如图1所示,本申请实施例的去混响方法包括:
步骤101,将采集的至少一路语音信号子带分解为多个子带信号。
语音信号是进行去混响时所接收到的声音信号。
通过麦克风等录音设备采集包括直达声、早期反射声和晚期混响声的语音信号,并在采集到语音信号后,将语音信号通过子带分解,将单路或多路麦克风采集的语音信号的时域转至频域。例如,可利用类似傅里叶变换进行时域转频域处理。
步骤102,对每个子带信号,依据设定的时间偏移量进行偏移处理,得到每个子带信号的参考信号。
偏移处理即为将麦克风采集的语音信号右移,形成参考通道,这样可以将过去的语音信号对齐到当前时刻,以便于去混响模型利用过去的语音信号消除当前语音信号中的混响声。
其中,右移是对时间参数进行调整,假设y(t)为麦克风采集的语音信号,则依据设定的时间偏移量2ms进行偏移处理所得到的参考信号为r(t)=y(t-2)。
步骤103,将至少一路语音信号的每个子带信号,以及对应的参考信号输入去混响模型,以得到至少一路语音信号的每个子带信号所对应的理想比值膜irm。
去混响模型用于对至少一路语音信号的每个子带信号和其对应的参考信号进行处理,得到至少一路语音信号的每个子带信号所对应的理想比值模irm,其中,理想比值膜irm的取值为0-1,即去混响的语音信号存在概率。
步骤104,对至少一路语音信号的各子带信号采用对应的irm进行幅度谱增强,得到至少一路语音信号去混响的各子带信号。
将去混响的语音信号存在概率点乘麦克风采集的原始语音信号的幅度谱,得到增强后的幅度谱,即至少一路语音信号去混响的各子带信号。
步骤105,对同一路语音信号去混响的各子带信号进行子带合成,以得到各路去混响的语音信号。
增强后的幅度谱联合麦克风采集的原始语音信号的相位,合成去混响后的时域信号,即去混响的语音信号。
本申请实施例的去混响方法,将采集的至少一路语音信号子带分解为多个子带信号;对每个子带信号,依据设定的时间偏移量进行偏移处理,得到每个子带信号的参考信号;将至少一路语音信号的每个子带信号,以及对应的参考信号输入去混响模型,以得到至少一路语音信号的每个子带信号所对应的理想比值膜irm;对至少一路语音信号的各子带信号采用对应的irm进行幅度谱增强,得到至少一路语音信号去混响的各子带信号;对同一路语音信号去混响的各子带信号进行子带合成,以得到各路去混响的语音信号。由此,通过频带独立的去混响模型,可以较好的去除混响。
本领域技术人员可知,去混响算法可以改善语音增强系统中后续其他模型的处理效果,比如去混响算法可以增加噪声和语音的可区分度,去混响后再进行降噪处理可以提升噪声消除量。
目前,常用的去混响算法主要分为两类:一类基于信号处理方案;另外一类是基于深度学习方案。
其中,基于信号处理方案的处理方法有谱减法、盲反卷积法和加权预测误差法。其中,谱减法需要先估计晚期混响信号的频谱,而后从麦克风采集语音信号频谱上减去估计出来的晚期混响的频谱;盲反卷积法需要先估计出声源到达麦克风传递函数的逆函数,混响信号经逆函数处理后可以恢复无混响语音信号;加权预测误差法需要先估计晚期房间脉冲响应对应的混响成分,然后将从麦克风采集语音信号减去该混响成分得到直达声和早期反射声。由此可知,基于信号处理方案的处理方法往往需要一些物理先验假设,比如语音的短时平稳假设,噪声和语音不相关假设等,而这类假设在实际场景下很难被完全满足,这会导致目标语音的失真和混响抑制能力的不足。另外,基于信号处理方案的处理方法还存在无法很好的跟后续其他深度学习模型匹配的问题,导致这些算法的性能退化。
基于深度学习方案的处理方法虽然无需物理先验假设,但是目前基于rnn(recurrentneuralnetwork,循环神经网络)和cnn(convolutionalneuralnetwork,卷积神经网络)的神经网络去混响模型的计算量非常大,很难在目前的实时系统中运行。
如上所述,常用的基于信号处理方案的处理方法存在混响消除能力有限,容易引起语音失真和无法很好的与后端其他模型匹配等诸多问题,基于深度学习方案的处理方法则存在计算复杂度过高,无法实时运行的问题。为此,本申请提出一种通过频带独立的去混响模型,该模型兼顾信号处理计算复杂度低和深度学习模型数据驱动的优势,同时该模型还可以通过跟后端的其他深度学习模型联合训练来消除信号处理方案和后端模型不匹配的问题。
在介绍本申请的去混响模型前,先来说明下本申请的实际应用场景。
假设,录音设备里设置有n个麦克风。麦克风采集的语音信号的短时傅里叶变换域,表示为一个n维的向量yt,f,其中t为时域的帧索引,f为频域的频带索引,远场场景下yt,f可以表示为如下公式(1):
yt,f=xt,f(early) xt,f(tail)=st,f*h1(f) st,f*h2(f)(1)
其中,st,f为无混响语音信号的短时傅里叶变换域的表示,xt,f(early)为早期反射声和直达声,xt,f(tail)为晚期混响声,h1(f)为房间脉冲响应(roomimpulseresponse,rir)峰值和峰值后50毫秒内的成分,h2(f)为rir50毫秒后的拖尾成分。去混响算法的目标为从yt,f中提取出早期发射声和直达声xt,f(early)。图2展示了目标无混响信号x(n)通过卷积rir生成混响信号y(n)的过程。
为了估计出xt,f(early),本申请使用了如图3所示结构的去混响模型,并结合如图4所示的去混响方法来说明本申请的去混响方法。参考图3和4,本申请实施例的去混响方法,包括:
步骤401,将采集的至少一路语音信号子带分解为多个子带信号。
步骤402,对每个子带信号,依据设定的时间偏移量进行偏移处理,得到每个子带信号的参考信号。
具体过程参见步骤101和102,本实施例中对此不再赘述。
步骤403,将n路语音信号的第m个子带信号与对应的参考信号拼接,得到输入信号;其中,m为取值小于或等于m的正整数,m为每一路语音信号所分解的子带信号的总通道数,n为至少一路语音信号的总通道数。
在通过步骤402形成参考通道之后,拼接麦克风采集的原始语音信号和参考信号,形成2*n通道的输入送至后续的去混响模型作为输入信号。
步骤404,将输入信号输入去混响模型,以得到n路语音信号中每一路语音信号的第m个子带信号所对应的irm。
在本申请的一个实施例中,去混响模型,包括:复数卷积神经网络cnn层、实数cnn层、rnn层和输出层。
其中,复数卷积神经网络cnn层,用于对输入信号中各帧信号的复数部分进行特征提取,得到各帧信号复数部分的音频特征,其中,音频特征用于指示信号相位和信号幅度;实数cnn层,用于对各帧信号复数部分的音频特征进行复数转实数处理得到各帧信号的实数音频特征;根据各帧信号的实数音频特征,以及对应相邻帧信号的实数音频特征,预测得到各帧信号的第一irm表征;循环神经网络rnn层,用于根据每一帧信号的第一irm表征,以及对应时序在先的各帧信号的第一irm表征,预测得到各帧信号的第二irm表征;输出层,用于根据各帧信号的第二irm表征,映射得到n路语音信号中每一路语音信号的第m个子带信号所对应的irm。
去混响模型在得到输入信号之后,将2*n通道中输入信号中各帧信号的复数部分送至复数卷积神经网络cnn层,而后再送至复数bn层,复数bn层的使用,是为了给去混响模型引入相位信息,以使去混响模型可以更准确的估计出理想比值膜irm。其中,复数卷积的卷积核大小为t*1,卷积方式为因果卷积。
复数bn层输出后进行log()操作,以将复数转为实数,同时压缩输入的动态范围。log()操作后送至实数cnn层,以将各帧信号复数部分的音频特征进行复数转实数处理,得到各帧信号的实数音频特征。其中,实数卷积的卷积核大小仍然为t*1,同样为了保证系统的因果属性,这里的卷积同样为因果的。因果卷积层的使用,可以使模型记住更多的过去信息,增强模型的建模能力。
之后,根据得到的各帧信号的实数音频特征和对应相邻帧信号的实数音频特征预测得到各帧信号的第一irm表征,并将第一irm表征输入rnn层。rnn层根据每一帧信号的第一irm表征,以及对应时序在先的各帧信号的第一irm表征,预测得到各帧信号的第二irm表征。其中,rnn层的结构可以是gru(gatedrecurrentunit)也可以是lstm(longshorttermmemory)等变体。rnn层可以使得去混响模型具有更强的时序建模能力。
rnn层输出第二irm表征至输出层,输出层包括全连接层和激活层,其中,每个子带的全连接层的输出维度为n(麦克风个数),激活层使用sigmoid函数激活,以将第二irm表征映射到0-1之间。
步骤405,对至少一路语音信号的各子带信号采用对应的irm进行幅度谱增强,得到至少一路语音信号去混响的各子带信号。
步骤406,对同一路语音信号去混响的各子带信号进行子带合成,以得到各路去混响的语音信号。
具体过程参见步骤103-105,本实施例中对此不再赘述。
本申请实施例的去混响方法,将采集的至少一路语音信号子带分解为多个子带信号;对每个子带信号,依据设定的时间偏移量进行偏移处理,得到每个子带信号的参考信号;将至少一路语音信号的每个子带信号,以及对应的参考信号输入去混响模型,以得到至少一路语音信号的每个子带信号所对应的理想比值膜irm;对至少一路语音信号的各子带信号采用对应的irm进行幅度谱增强,得到至少一路语音信号去混响的各子带信号;对同一路语音信号去混响的各子带信号进行子带合成,以得到各路去混响的语音信号。由此,通过频带独立的去混响模型,可以较好的去除混响。并且,该模型兼顾信号处理计算复杂度低和深度学习模型数据驱动的优势,同时该模型还可以通过跟后端的其他深度学习模型联合训练来消除信号处理方案和后端模型不匹配的问题。
为了加速和稳定训练,提升去混响模型性能,降低去混响模型参数量,在本申请的一个实施例中,如图5所示,在将输入信号输入去混响模型(即步骤204)之前,还包括:
步骤501,根据第m个子带信号所在频段,从多个候选rnn层中选择一个作为去混响模型中的rnn层;其中,多个候选rnn层分别具有不同的隐藏层节点数量,去混响模型中的rnn层所具有的隐藏层节点数量与第m个子带信号所在频段匹配。
也就是说,不同频段的第m个子带信号,使用不同的节点的rnn层。例如,基于房间高频反射声衰减更快的声学特性,低频混响往往严重一些,因此本申请可以在低频段使用具有更多隐藏层节点数量的rnn层。
为了进一步降低去混响模型参数的数量,同时显著增加训练速度,在本申请的一个实施例中,多个相邻的频段所匹配的rnn层之间共享模型参数。
假设m个子带分为4组,组内共享部分相邻频点的模型参数,每组包含的去混响模型参数的数量为m/4,这样会使得去混响模型参数的数量大大降低,同时训练速度也会显著增加。
为了加速和稳定训练,提升去混响模型性能,降低去混响模型参数量,在本申请的另一个实施例中,如图6所示,在将输入信号输入去混响模型(即步骤204)之前,还包括:
步骤601,根据配置的声源参数,生成多个房间脉冲响应rir;其中,声源参数包括麦克风阵列参数、采样率、房间尺寸、混响时间、声源位置和麦克风阵列所在位置中的一个或多个组合。
本实施例中,根据配置的麦克风阵列参数、采样率、房间尺寸、混响时间、声源位置和麦克风阵列所在位置等参数,使用虚源法生成各种参数配置下的房间脉冲响应rir数据库。
步骤602,将多个rir分别进行截短,得到对应截短后的rir。
本实施例中,对多个rir截短峰值及50ms之后的音频,作为直达和早期反射的部分。
步骤603,将截短前的各rir分别与标准语音卷积得到的音频作为训练样本,并采用对应截短后的rir与标准语音卷积得到的音频进行训练样本的标注。
本实施例中,截短前的各rir卷积标准语音(截短前的语音)作为去混响模型的输入训练样本,截短后的各rir卷积标准语音作为去混响模型的训练目标,即标注后的训练样本。
步骤604,采用训练样本对去混响模型进行训练。
本实施例中,去混响模型进行训练过程中使用尺度不变信噪比(scale-invariantsource-to-noiseratio,si-snr)作为损失函数,损失函数公式如下公式(2):
其中,
为了使得去混响模型可以长时间稳定工作,增加去混响模型的泛化能力,本申请可使用长句训练、对干净无混响语音做随机均衡和随机增益处理。
下面结合图7-图10的试验结果来验证本申请的去混响方法达到的效果。
图7是本申请一个实施例的直达声和早起反射声的频谱图,图8是本申请一个实施例的带混响信号(处理前)的频谱图,图9是相关技术中加权预测误差算法的频谱图,图10是本申请实施例的去混响方法的频谱图。根据频谱图可知,本申请的去混响方法相比于相关技术中加权预测误差算法,本申请能够消除掉更多的晚期混响声,同时本申请的去混响处理后的食欲信号包络也更加接近于图7的直达声和早起反射声的信号。
根据上述实验结果可知,本申请提出的去混响方法可以较好的去除晚期混响,语音失真也比较可控制。
本申请实施例中,将采集的至少一路语音信号子带分解为多个子带信号;对每个子带信号,依据设定的时间偏移量进行偏移处理,得到每个子带信号的参考信号;将至少一路语音信号的每个子带信号,以及对应的参考信号输入去混响模型,以得到至少一路语音信号的每个子带信号所对应的理想比值膜irm;对至少一路语音信号的各子带信号采用对应的irm进行幅度谱增强,得到至少一路语音信号去混响的各子带信号;对同一路语音信号去混响的各子带信号进行子带合成,以得到各路去混响的语音信号。由此,通过频带独立的去混响模型,可以较好的去除混响。并且,该模型兼顾信号处理计算复杂度低和深度学习模型数据驱动的优势,同时该模型还可以通过跟后端的其他深度学习模型联合训练来消除信号处理方案和后端模型不匹配的问题。另外,本申请通过采用不同频带选用不同参数规模的rnn层和相邻频带参数共享的形式,提升了模型的低频混响消除量和泛化能力,降低了模型的参数量。
为了实现上述实施例,本申请实施例还提出了一种去混响装置。
图11是根据本申请实施例提供的一种去混响装置的结构示意图。
如图11所示,本申请实施例的去混响装置1100,包括:分解模块1110、偏移模块1120、输入模块1130、去混响模块1140和合成模块1150。
其中,分解模块1110,用于将采集的至少一路语音信号子带分解为多个子带信号;
偏移模块1120,用于对每个子带信号,依据设定的时间偏移量进行偏移处理,得到每个子带信号的参考信号;
输入模块1130,用于将至少一路语音信号的每个子带信号,以及对应的参考信号输入去混响模型,以得到至少一路语音信号的每个子带信号所对应的理想比值膜irm;
去混响模块1140,用于对至少一路语音信号的各子带信号采用对应的irm进行幅度谱增强,得到至少一路语音信号去混响的各子带信号;
合成模块1150,用于对同一路语音信号去混响的各子带信号进行子带合成,以得到各路去混响的语音信号。
在本申请实施例一种可能的实现方式中,上述输入模块1130,用于:
将n路语音信号的第m个子带信号与对应的参考信号拼接,得到输入信号;其中,m为取值小于或等于m的正整数,m为每一路语音信号所分解的子带信号的总通道数,n为至少一路语音信号的总通道数;
将输入信号输入去混响模型,以得到n路语音信号中每一路语音信号的第m个子带信号所对应的irm。
在本申请实施例一种可能的实现方式中,上述去混响模型,包括:
复数卷积神经网络cnn层,用于对输入信号中各帧信号的复数部分进行特征提取,得到各帧信号复数部分的音频特征,其中,音频特征用于指示信号相位和信号幅度;
实数cnn层,用于对各帧信号复数部分的音频特征进行复数转实数处理得到各帧信号的实数音频特征;根据各帧信号的实数音频特征,以及对应相邻帧信号的实数音频特征,预测得到各帧信号的第一irm表征;
rnn层,用于根据每一帧信号的第一irm表征,以及对应时序在先的各帧信号的第一irm表征,预测得到各帧信号的第二irm表征;
输出层,用于根据各帧信号的第二irm表征,映射得到n路语音信号中每一路语音信号的第m个子带信号所对应的irm。
在本申请实施例一种可能的实现方式中,输入模块1130将输入信号输入去混响模型之前,还用于:
根据第m个子带信号所在频段,从多个候选rnn层中选择一个作为去混响模型中的rnn层;
其中,多个候选rnn层分别具有不同的隐藏层节点数量,去混响模型中的rnn层所具有的隐藏层节点数量与第m个子带信号所在频段匹配。
在本申请实施例一种可能的实现方式中,多个相邻的频段所匹配的rnn层之间共享模型参数。
在本申请实施例一种可能的实现方式中,输入模块1130将输入信号输入去混响模型之前,还用于:
根据配置的声源参数,生成多个房间脉冲响应rir;其中,声源参数包括麦克风阵列参数、采样率、房间尺寸、混响时间、声源位置和麦克风阵列所在位置中的一个或多个组合;
将多个rir分别进行截短,得到对应截短后的rir;
将截短前的各rir分别与标准语音卷积得到的音频作为训练样本,并采用对应截短后的rir与标准语音卷积得到的音频进行训练样本的标注;
采用训练样本对去混响模型进行训练。
需要说明的是,前述去混响方法实施例的解释说明,也适用于该实施例的去混响装置,故在此不再赘述。
根据本申请实施例的去混响装置,通过分解模块将采集的至少一路语音信号子带分解为多个子带信号,通过偏移模块对每个所述子带信号,依据设定的时间偏移量进行偏移处理,得到每个子带信号的参考信号,通过输入模块将所述至少一路语音信号的每个所述子带信号,以及对应的参考信号输入去混响模型,以得到至少一路所述语音信号的每个所述子带信号所对应的理想比值膜irm,通过去混响模块对至少一路所述语音信号的各所述子带信号采用对应的irm进行幅度谱增强,得到至少一路所述语音信号去混响的各所述子带信号,通过合成模块对同一路所述语音信号去混响的各所述子带信号进行子带合成,以得到各路去混响的语音信号。由此,通过频带独立的去混响模型,可以较好的去除混响。并且,该模型兼顾信号处理计算复杂度低和深度学习模型数据驱动的优势,同时该模型还可以通过跟后端的其他深度学习模型联合训练来消除信号处理方案和后端模型不匹配的问题。另外,本申请通过采用不同频带选用不同参数规模的rnn层和相邻频带参数共享的形式,提升了模型的低频混响消除量和泛化能力,降低了模型的参数量。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图12所示,是根据本申请实施例的去混响方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图12所示,该电子设备包括:一个或多个处理器1201、存储器1202,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示gui的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图12中以一个处理器1201为例。
存储器1202即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的去混响方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的去混响方法。
存储器1202作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的去混响方法对应的程序指令/模块(例如,附图11所示的分解模块1110、偏移模块1120、输入模块1130、去混响模块1140和合成模块1150)。处理器1201通过运行存储在存储器1202中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的去混响方法。
存储器1202可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据去混响的电子设备的使用所创建的数据等。此外,存储器1202可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器1202可选包括相对于处理器1201远程设置的存储器,这些远程存储器可以通过网络连接至去混响的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
去混响方法的电子设备还可以包括:输入装置1203和输出装置1204。处理器1201、存储器1202、输入装置1203和输出装置1204可以通过总线或者其他方式连接,图12中以通过总线连接为例。
输入装置1203可接收输入的数字或字符信息,以及产生与去混响的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置1204可以包括显示设备、辅助照明装置(例如,led)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(lcd)、发光二极管(led)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用asic(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(pld)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps(virtualprivateserver,虚拟专用服务器)服务中,存在的管理难度大,业务扩展性弱的缺陷。
根据本申请实施例的技术方案,涉及语音技术和深度学习领域,通过频带独立的去混响模型,可以较好的去除混响。并且,该模型兼顾信号处理计算复杂度低和深度学习模型数据驱动的优势,同时该模型还可以通过跟后端的其他深度学习模型联合训练来消除信号处理方案和后端模型不匹配的问题。另外,本申请通过采用不同频带选用不同参数规模的rnn层和相邻频带参数共享的形式,提升了模型的低频混响消除量和泛化能力,降低了模型的参数量。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
1.一种去混响方法,包括:
将采集的至少一路语音信号子带分解为多个子带信号;
对每个所述子带信号,依据设定的时间偏移量进行偏移处理,得到每个子带信号的参考信号;
将所述至少一路语音信号的每个所述子带信号,以及对应的参考信号输入去混响模型,以得到至少一路所述语音信号的每个所述子带信号所对应的理想比值膜irm;
对至少一路所述语音信号的各所述子带信号采用对应的irm进行幅度谱增强,得到至少一路所述语音信号去混响的各所述子带信号;
对同一路所述语音信号去混响的各所述子带信号进行子带合成,以得到各路去混响的语音信号。
2.根据权利要求1所述的去混响方法,其中,所述将所述至少一路语音信号的每个所述子带信号,以及对应的参考信号输入去混响模型,以得到至少一路所述语音信号的每个所述子带信号所对应的理想比值膜irm,包括:
将n路语音信号的第m个子带信号与对应的参考信号拼接,得到输入信号;其中,m为取值小于或等于m的正整数,m为每一路所述语音信号所分解的子带信号的总通道数,n为所述至少一路语音信号的总通道数;
将所述输入信号输入所述去混响模型,以得到所述n路语音信号中每一路语音信号的第m个子带信号所对应的irm。
3.根据权利要求2所述的去混响方法,其中,所述去混响模型,包括:
复数卷积神经网络cnn层,用于对所述输入信号中各帧信号的复数部分进行特征提取,得到各帧信号所述复数部分的音频特征,其中,所述音频特征用于指示信号相位和信号幅度;
实数cnn层,用于对各帧信号所述复数部分的音频特征进行复数转实数处理得到各帧信号的实数音频特征;根据各帧信号的实数音频特征,以及对应相邻帧信号的所述实数音频特征,预测得到各帧信号的第一irm表征;
循环神经网络rnn层,用于根据每一帧信号的所述第一irm表征,以及对应时序在先的各帧信号的所述第一irm表征,预测得到各帧信号的第二irm表征;
输出层,用于根据各帧信号的第二irm表征,映射得到所述n路语音信号中每一路语音信号的第m个子带信号所对应的irm。
4.根据权利要求3所述的去混响方法,其中,所述将所述输入信号输入所述去混响模型之前,还包括:
根据所述第m个子带信号所在频段,从多个候选rnn层中选择一个作为所述去混响模型中的rnn层;
其中,所述多个候选rnn层分别具有不同的隐藏层节点数量,所述去混响模型中的rnn层所具有的隐藏层节点数量与所述第m个子带信号所在频段匹配。
5.根据权利要求4所述的去混响方法,其中,多个相邻的所述频段所匹配的rnn层之间共享模型参数。
6.根据权利要求2所述的去混响方法,其中,所述将所述输入信号输入所述去混响模型之前,还包括:
根据配置的声源参数,生成多个房间脉冲响应rir;其中,所述声源参数包括麦克风阵列参数、采样率、房间尺寸、混响时间、声源位置和麦克风阵列所在位置中的一个或多个组合;
将多个所述rir分别进行截短,得到对应截短后的所述rir;
将截短前的各所述rir分别与标准语音卷积得到的音频作为训练样本,并采用对应截短后的所述rir与标准语音卷积得到的音频进行训练样本的标注;
采用所述训练样本对所述去混响模型进行训练。
7.一种去混响装置,包括:
分解模块,用于将采集的至少一路语音信号子带分解为多个子带信号;
偏移模块,用于对每个所述子带信号,依据设定的时间偏移量进行偏移处理,得到每个子带信号的参考信号;
输入模块,用于将所述至少一路语音信号的每个所述子带信号,以及对应的参考信号输入去混响模型,以得到至少一路所述语音信号的每个所述子带信号所对应的理想比值膜irm;
去混响模块,用于对至少一路所述语音信号的各所述子带信号采用对应的irm进行幅度谱增强,得到至少一路所述语音信号去混响的各所述子带信号;
合成模块,用于对同一路所述语音信号去混响的各所述子带信号进行子带合成,以得到各路去混响的语音信号。
8.根据权利要求7所述的去混响装置,其中,所述输入模块,用于:
将n路语音信号的第m个子带信号与对应的参考信号拼接,得到输入信号;其中,m为取值小于或等于m的正整数,m为每一路所述语音信号所分解的子带信号的总通道数,n为所述至少一路语音信号的总通道数;
将所述输入信号输入所述去混响模型,以得到所述n路语音信号中每一路语音信号的第m个子带信号所对应的irm。
9.根据权利要求8所述的去混响装置,其中,所述去混响模型,包括:
复数卷积神经网络cnn层,用于对所述输入信号中各帧信号的复数部分进行特征提取,得到各帧信号所述复数部分的音频特征,其中,所述音频特征用于指示信号相位和信号幅度;
实数cnn层,用于对各帧信号所述复数部分的音频特征进行复数转实数处理得到各帧信号的实数音频特征;根据各帧信号的实数音频特征,以及对应相邻帧信号的所述实数音频特征,预测得到各帧信号的第一irm表征;
rnn层,用于根据每一帧信号的所述第一irm表征,以及对应时序在先的各帧信号的所述第一irm表征,预测得到各帧信号的第二irm表征;
输出层,用于根据各帧信号的第二irm表征,映射得到所述n路语音信号中每一路语音信号的第m个子带信号所对应的irm。
10.根据权利要求9所述的去混响装置,其中,所述输入模块将所述输入信号输入所述去混响模型之前,还用于:
根据所述第m个子带信号所在频段,从多个候选rnn层中选择一个作为所述去混响模型中的rnn层;
其中,所述多个候选rnn层分别具有不同的隐藏层节点数量,所述去混响模型中的rnn层所具有的隐藏层节点数量与所述第m个子带信号所在频段匹配。
11.根据权利要求10所述的去混响装置,其中,多个相邻的所述频段所匹配的rnn层之间共享模型参数。
12.根据权利要求9所述的去混响装置,其中,所述输入模块将所述输入信号输入所述去混响模型之前,还用于:
根据配置的声源参数,生成多个房间脉冲响应rir;其中,所述声源参数包括麦克风阵列参数、采样率、房间尺寸、混响时间、声源位置和麦克风阵列所在位置中的一个或多个组合;
将多个所述rir分别进行截短,得到对应截短后的所述rir;
将截短前的各所述rir分别与标准语音卷积得到的音频作为训练样本,并采用对应截短后的所述rir与标准语音卷积得到的音频进行训练样本的标注;
采用所述训练样本对所述去混响模型进行训练。
13.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6中任一项所述的去混响方法。
14.一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行权利要求1-6中任一项所述的去混响方法。
技术总结