一种融合Transformer和U-net网络的语音增强方法

文档序号:29123177发布日期:2022-03-04 22:59阅读:817来源:国知局
一种融合Transformer和U-net网络的语音增强方法
一种融合transformer和u-net网络的语音增强方法
技术领域
1.本发明属于语音增强技术领域,具体涉及一种融合transformer和u-net网络的语音增强方法。


背景技术:

2.语音是人与人之间最自然的交流方式,但是在现实生活中,噪声的干扰无处不在,使得语音通信质量以及基于语音的人机交互效率大幅度降低。语音增强的目的就是从带噪语音信号中提取出尽可能干净的语音信号,提高语音的质量和可懂度。为满足人们对高质量语音通信交流的需求等,语音增强技术在学术界和工业领域得到了广泛的研究和应用。根据采集声音时麦克风设备的使用数量,可将语音增强分为单通道语音增强和多通道语音增强。和多通道语音增强相比,单通道语音增强具有硬件成本低,能耗小的优势,但是缺失声源和噪声的空间信息,研究更具挑战性。
3.传统的单通道语音增强技术主要包括基于短时谱估计的语音增强法、基于信号子空间的语音增强法和基于语音生成模型的语音增强法等。这些方法所依赖的假设,并不符合很多实际场景的条件。基于深度神经网络的语音增强技术,不需要对数据设置额外假设条件,通过挖掘大规模数据的内在关联,能够准确实现语音和噪声估计,在低信噪比和非平稳噪声环境下取得了较大的进展。在语音增强任务中,各种网络模型都得到了应用,如深度神经网络(dnn)、递归神经网络(rnn)、卷积神经网络(cnn)、u-net神经网络和transformer神经网络等。
4.公开号为cn111968629a的中国专利公开了一种结合transformer和cnn-dfsmn-ctc的中文语音识别方法,该方法包括步骤:s1,将语音信号进行预处理,提取80维的log mel fbank特征;s2,将提取到的80维fbank特征用cnn卷积网络进行卷积;s3,将特征输入到dfsmn网络结构中;s4,将ctc loss作为声学模型的损失函数,采用beam search算法进行预测,使用adam优化器进行优化;s5,引入强语言模型transformer迭代训练直至达到最优模型结构;s6,将transformer和声学模型cnn-dfsmn-ctc相结合进行适配,在多数据集上进行验证,最终得到最优识别结果。
5.rnn能够捕获长距离的依赖信息,有效解决长时依赖问题,但是不能并行处理数据;cnn能够以并行方式处理输入数据,但是无法捕获长距离的依赖信息。和rnn、cnn相比,transformer能够以并行方式处理输入数据,有效地解决语音信号中的长时依赖问题,并能显著减少训练时间和推理时间。语音增强中主要使用的是上下文特征信息,其特征信息的使用不同于机器翻译等自然语言处理任务,因此传统的transformer神经网络在语音增强方面表现并不佳。为此,需要对transformer神经网络进行改进,才能在语音增强中有效发挥transformer模型的优势,改进语音增强性能。


技术实现要素:

6.本发明的目的是针对现有技术存在的问题,提供一种融合transformer和u-net网
络的语音增强方法,该增强方法在u-net网络中加入了transformer模块,有效提取局部和全局的上下文特征信息;在实现中,该增强方法同时使用时域损失、时频域损失和感知损失三类损失函数一起训练语音增强网络,从而获得更高的语音可懂度和感知质量。
7.为实现上述目的,本发明采用的技术方案是:
8.一种融合transformer和u-net网络的语音增强方法,包括如下步骤:
9.s1,采集原始的干净语音数据集和带噪语音数据集,并将采集的数据集分为训练集、验证集和测试集;
10.s2,构建融合transformer和u-net网络的语音增强模型;
11.s3,使用步骤s1中的训练集和验证集对步骤s2中构建的语音增强模型进行训练;
12.s4,将步骤s1中的测试集作为待增强的语音信号输入训练好的语音增强模型,输出干净的语音信号。
13.具体地,步骤s2中,所述融合transformer和u-net网络的语音增强模型包括依次相连的编码模块、transformer模块、掩码模块和解码模块。
14.进一步地,所述编码模块采用u-net网络的编码层,包括一个上采样层和多个编码层;所述编码模块的输入为一段时域语音信号,用一个三维张量(批次b*通道数c0*信号长度d)表示,编码模块的输出也是一个三维张量。所述上采样层用于对语音信号的采样频率进行扩展,提高模型的准确性。
15.进一步地,每个所述编码层均包括:
16.一个卷积核大小为k、步长为s、输出通道为2
i-1
h的一维卷积层,i表示层数;
17.一个relu函数激活层;
18.一个卷积核大小为1、步长为1、输出通道为2ih的一维卷积层;以及
19.一个将通道数转换为2
i-1
h的glu函数激活层。
20.具体地,所述transformer模块包括多个堆叠的双路径transformer块,所述双路径transformer块包括一个局部transformer块和一个全局transformer块,可以同时提取局部和全局的上下文特征信息。局部transformer块在四维输入张量的最后一维上执行计算,用于对输入的局部特征信息进行平行化处理,全局transformer块在四维输入张量的倒数第二维上执行计算,用于融合局部transformer块的输出信息,以学习全局特征信息。所述transformer模块的输入是一个四维张量(批次b*通道数ct*帧数n*帧长f),因此对编码模块的输出进行分割,得到n个长度为f的帧。n的计算公式如下:
[0021][0022]
其中,l表示编码模块输出的长度,m表示帧移。
[0023]
经过多个堆叠的双路径transformer块计算后,得到transformer模块的输出是一个四维张量。
[0024]
进一步地,所述局部transformer块和全局transformer块均包括多头注意力机制模块和前馈网络模块;
[0025]
所述多头注意力机制模块中的自注意力机制可以描述为在网络中通过查询(q)得到注意力输出的机制。网络通过一组键(k)和值(v)记录已学习的信息。自注意力机制既可以解决长时依赖问题,又可以进行并行化处理。自注意力机制可以“动态”地生成不同连接的权重,从而得以处理变长的信息序列,在一定程度上解决长时依赖问题。由于每个q之间
并不存在先后的依赖关系,自注意力机制能够并行地计算句子中不同的q,实现并行化处理。
[0026]
所述多头注意力机制模块集成了h个自注意力机制,每个自注意力机制关注相同的q、k和v;每个自注意力机制只负责最终输出序列中的一个子空间,且输出序列互相独立。
[0027]
所述多头注意力机制模块的计算公式如下:
[0028][0029]
headi=attention(qw
iq
,kw
ik
,vw
iv
)
[0030]
multihead(q,k,v)=concat(head1,l headh)wo[0031]
其中,dk表示键的维数,wo、w
iq
、w
ik
、w
iv
为线性映射的不同参数矩阵,h为子空间的个数,contact为向量拼接操作。
[0032]
所述前馈网络模块包括一个gru层、一个relu函数激活层和一个线性变换层,所述前馈网络模块的第一层使用gru层,用来学习位置信息。
[0033]
具体地,所述掩码模块包括多个激活函数层和多个卷积层,掩码模块是利用transformer模块的输出来计算用于增强的掩码。掩码模块的输入是一个四维张量,为了使掩码模块的输出和编码模块的输出相匹配,在掩码模块中采用了重叠添加操作,将输入的四维张量转换成三维张量。该模块首先将transformer模块的输出通过prelu运算和二维卷积对通道维度进行加倍。然后通过重叠添加操作,将输入的四维张量转换成三维张量。接着通过双路一维卷积和sigmoid/tanh激活函数运算,将两者的输出相乘。最后经过一维卷积和relu运算后得到一个三维张量的掩模。
[0034]
具体地,所述解码模块采用u-net网络的解码层,包括多个解码层和一个下采样层;所述解码模块的输出为一段时域语音信号。所述下采样层用于还原语音信号的采样频率。
[0035]
进一步地,每个所述解码层均包括:
[0036]
一个卷积核大小为1、步长为1、输出通道为2ih的一维卷积层;
[0037]
一个将通道数转换为2
i-1
h的glu函数激活层;以及
[0038]
一个卷积核大小为k、步长为s、输出通道为2
i-2
h的一维转置卷积层。
[0039]
与现有技术相比,本发明的有益效果是:
[0040]
(1)本发明中采用的u-net网络是一种带有跳跃连接的u型网络结构,避免了直接在高维特征中进行监督和计算损失函数,而是结合了低维特征,从而可以使得最终所得到的特征中既包含了高维特征,也包含很多的低维特征,实现了不同尺度下的特征融合,提高了模型的精确度;
[0041]
(2)由于人类在处理复杂听觉场景时,既能注意到关注的语音内容,又能注意到场景中的背景变化,实际上听觉注意存在多个注意的焦点;同时,由于关注的语音发音通常由同一人发出,在较长的时间尺度上这个语音和噪声内容相比,语音内容的特征分布相似性更强。transformer具有多头注意力机制、长序列依赖关系估计能力强的优势,可以很好的与语音中的这些特点相吻合;因此,本发明通过在u-net网络中引入transformer模型,可以有效改善增强语音的质量和可懂度;
[0042]
(3)本发明提出的方法属于端到端语音增强方法,由于直接对输入语音进行处理,
不再预先提取特征,简化了处理流程,减少了可能由幅度谱到波形转换带来的失真。
附图说明
[0043]
图1为本发明一种融合transformer和u-net网络的语音增强方法的流程示意图。
[0044]
图2为本发明实施例中融合transformer和u-net网络的语音增强模型的结构示意图。
[0045]
图3为本发明实施例中transformer模块的结构示意图。
[0046]
图4为本发明实施例中多头自注意力机制模块的结构示意图。
[0047]
图5为本发明实施例中前馈网络模块的结构示意图。
[0048]
图6为本发明实施例中自注意力机制示意图。
[0049]
图7为本发明实施例中掩码模块的结构示意图。
[0050]
图8为本发明实施例中融合transformer和u-net网络的语音增强模型训练原理示意图。
具体实施方式
[0051]
下面将结合本发明中的附图,对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动条件下所获得的所有其它实施例,都属于本发明保护的范围。
[0052]
如图1所示,本实施例提供了一种融合transformer和u-net网络的语音增强方法,包括如下步骤:
[0053]
s1,采集原始的干净语音数据集和带噪语音数据集,并将采集的数据集分为训练集、验证集和测试集;
[0054]
具体实施过程中,利用voicebank-demand数据集中的语音数据,该数据集包含干净语音信号和其对应的预混合带噪语音信号。干净语音信号选自voice bank corpus数据集,其中训练集包含28个说话人(14个男性和14个女性)的11572条语音数据,测试集包含2个说话人(1个男性和1个女性)的824条语音数据。带噪语音信号由干净语音信号和不同噪声合成,训练集包含40种不同噪声条件下的语音信号,共有10种噪声(8种来自demand数据集,2种是人工生成),信噪比为0db、5db、10db和15db;测试集包含20种不同噪声条件下的语音信号,共有5种噪声,均选自demand数据集,在训练集中并未出现,信噪比为2.5db、7.5db、12.5db和17.5db。
[0055]
将干净语音数据集和带噪语音数据集重采样为16khz;从训练集中随机选出512对干净语音和带噪语音作为验证集,剩下的11060对干净语音和带噪语音作为训练集,测试集是824对干净语音和带噪语音。训练集和验证集可以使用三种不同的数据扩充处理。第一种是重混(remix)扩充处理,打乱同一个批次中的噪声,形成新的带噪语音数据集;第二种是频带掩码(bandmask)扩充处理,在mel刻度上均匀地去除20%的频率,实际相当于进行了带阻滤波;第三种是平移(shift)扩充处理,在0秒和s秒之间实现了随机移位处理。
[0056]
s2,如图2所示,构建融合transformer和u-net网络的语音增强模型;
[0057]
所述融合transformer和u-net网络的语音增强模型包括依次相连的编码模块、
transformer模块、掩码模块和解码模块。
[0058]
进一步地,所述编码模块采用u-net网络的编码层,包括一个上采样层(编码模块的第零层为上采样层)和5个编码层;所述编码模块的输入为一段时域语音信号,用一个三维张量(批次b*通道数c0*信号长度d)表示,编码模块的输出也是一个三维张量。所述上采样层用于对语音信号的采样频率进行扩展,提高模型的准确性。
[0059]
进一步地,每个所述编码层均包括:
[0060]
一个卷积核大小为k、步长为s、输出通道为2
i-1
h的一维卷积层,i表示层数;
[0061]
一个relu函数激活层;
[0062]
一个卷积核大小为1、步长为1、输出通道为2ih的一维卷积层;以及
[0063]
一个将通道数转换为2
i-1
h的glu函数激活层。
[0064]
具体地,如图3所示,所述transformer模块包括多个堆叠的双路径transformer块,所述双路径transformer块包括一个局部transformer块和一个全局transformer块,可以同时提取局部和全局的上下文特征信息。局部transformer块在四维输入张量的最后一维f上执行计算,用于对输入的局部特征信息进行平行化处理,全局transformer块在四维输入张量的倒数第二维n上执行计算,用于融合局部transformer块的输出信息,以学习全局特征信息。所述transformer模块的输入是一个四维张量(批次b*通道数ct*帧数n*帧长f),因此对编码模块的输出进行分割,得到n个长度为f的帧。n的计算公式如下:
[0065][0066]
其中,l表示编码模块输出的长度,m表示帧移。
[0067]
将四维张量放入多个堆叠的双路径transformer块中进行计算,得到transformer模块的输出是一个四维张量。
[0068]
进一步地,所述局部transformer块和全局transformer块均包括多头注意力机制模块和前馈网络模块;
[0069]
所述多头注意力机制模块中的自注意力机制可以描述为在网络中通过查询(q)得到注意力输出的机制。网络通过一组键(k)和值(v)记录已学习的信息。
[0070]
如图6所示,在自注意力机制中,首先将q和k进行相似度计算获得权重,缩放层除以参数dk起到缩放调节作用,使得内积不至于太大,然后使用softmax函数对相似度权重进行归一化,最后将归一化的权重和相应的v进行加权求和得到注意力输出。计算自注意力输出向量的公式如下:
[0071][0072]
进一步地,多头注意力模块如图4所示,其本质是h个自注意力机制的集成。首先初始化h组q、k和v向量,每组q、k和v的权重参数w都不一样,可以用w
iq
、w
ik
、w
iv
来表示不同的参数矩阵。通过引入不同权重的参数可以允许多头注意力模块在不同的表征子空间里学习到更多的信息。然后对每组进行自注意力机制的计算,将得到的自注意力输出结果连接起来,再乘以一个权重向量wo就可以得到最终的多头注意力机制块输出向量。多头注意力模块的计算公式如下:
[0073]
headi=attention(qw
iq
,kw
ik
,vw
iv
)
[0074]
multihead(q,k,v)=concat(head1,l headh)wo[0075]
其中,dk表示键的维数,wo、w
iq
、w
ik
、w
iv
为线性映射的不同参数矩阵,h为子空间的个数,contact为向量拼接操作。
[0076]
如图5所示,所述前馈网络模块包括一个gru层、一个relu函数激活层和一个线性变换层,所述前馈网络模块的第一层使用gru层,用来学习位置信息。
[0077]
具体地,如图7所示,所述掩码模块包括多个激活函数层和多个卷积层,掩码模块是利用transformer模块的输出来计算用于增强的掩码。掩码模块的输入是一个四维张量,为了使掩码模块的输出和编码模块的输出相匹配,在掩码模块中采用了重叠添加操作,将输入的四维张量转换成三维张量。
[0078]
具体实施过程中,该模块首先将transformer模块的输出通过prelu运算和二维卷积对通道维度进行加倍。然后通过重叠添加操作,将输入的四维张量转换成三维张量。接着通过双路一维卷积和sigmoid/tanh激活函数运算,将两者的输出相乘。最后经过一维卷积和relu运算后得到一个三维张量的掩模。
[0079]
具体地,所述解码模块采用u-net网络的解码层,包括5个解码层和一个下采样层(解码模块的第零层为下采样层);所述解码模块的输出为一段时域语音信号。所述下采样层用于将语音信号的采样频率还原为16khz。所述解码模块将输入的三维张量转换成一段增强语音信号作为输出。
[0080]
进一步地,每个所述解码层均包括:
[0081]
一个卷积核大小为1、步长为1、输出通道为2ih的一维卷积层;
[0082]
一个将通道数转换为2
i-1
h的glu函数激活层;以及
[0083]
一个卷积核大小为k、步长为s、输出通道为2
i-2
h的一维转置卷积层。
[0084]
s3,使用步骤s1中的训练集和验证集对步骤s2中构建的语音增强模型进行训练;
[0085]
具体实施过程中,如图8所示,使用步骤s1中的训练集和验证集对语音增强模型进行训练,将带噪语音信号作为训练特征,干净语音信号作为训练目标。本发明的损失函数同时结合了时域损失、时频域损失和感知损失。使用时域损失估计干净语音与增强语音波形之间的损失。使用时频域损失衡量时频谱图的差异,可以监督模型学习更多的信息。使用感知损失来训练网络,可以使网络输出的增强语音信号尽可能的接近目标干净语音信号,从而获得更高的语音可懂度和感知质量,具体定义如下:
[0086]
时域损失函数是基于带噪语音和干净语音之间的均方误差(mse),定义为:
[0087][0088]
其中,x和分别表示干净语音和带噪语音,n表示样本个数;
[0089]
时频域损失是基于带噪语音和干净语音之间的平均绝对误差(mae),定义为:
[0090][0091]
其中,x和分别表示干净语音幅度谱和带噪语音幅度谱,r和i分别表示复数变量的实部和虚部,t和f分别表示帧数和频域bin数。
[0092]
感知损失函数同时考虑人类听觉掩蔽和阈值效应中的对称干扰d
(s)
和非对称干扰d
(α)
。在听觉掩蔽效应中,对称干扰d
(s)
考虑干净语音信号和增强语音信号在响度谱上的绝
对值差异。非对称干扰d
(α)
根据对称干扰计算得到,对增强后残存的加性噪声和引入的谱失真赋予不同的权重,更好地刻画了干净语音信号和增强语音信号之间的感知差异。考虑到d
(s)
和d
(α)
这两个干扰项,感知损失函数通过引入人类心理声学的感知标准来修正均方误差(mse)损失,定义为:
[0093][0094]
其中,l表示帧数,α和β是实验确定的加权系数。
[0095]
最终的损失函数结合了上述三种类型的损失函数,如下式所示:
[0096]
loss_sum=ρ
·
loss_time+(1-ρ)
·
(loss_freq+loss_pcep)
[0097]
其中,ρ是一个超参数,在本发明中设置为0.2。
[0098]
s4,将步骤s1中的测试集作为待增强的语音信号输入训练好的语音增强模型,输出干净的语音信号。
[0099]
具体实施过程中,使用步骤s1中的测试集,将待增强的语音测试集放入训练好的最优模型中,用于获得增强后的干净语音测试集。
[0100]
对于语音增强效果的评估,本实施例采用客观评价方法,主要包括pesq和stoi。pesq侧重于评估处理语音的总体质量,其分值范围为-0.5-4.5,分值越高,语音的总体质量越好。stoi侧重于评估处理语音的可懂度,其得分范围为0-1,得分越高,语音的可懂度越高。
[0101]
如下表1展示了四种语音增强方法在voicebank-demand数据集上五种指标的评估结果
[0102]
表1四种语音增强方法的评估结果
[0103][0104]
为了验证本实施例的语音增强效果,利用同样基于时域的segan方法、wave u-net方法、demucs方法和tstnn方法作为参照,在voicebank-demand数据集上的对比见表1。从segan方法、wave u-net方法和demucs方法对比发现,u-net网络在语音增强中表现较好,这是因为u-net网络的解码层既包含高维特征又包含低维特征,能够实现多尺度下的特征融合,可以提高模型精确度。然后,从demucs方法和tstnn方法对比发现,transformer模块拥有较小的模型并且各项评价指标表现都较好,这个因为transformer模块能够以并行方式处理输入数据,能够有效地解决长时依赖问题,所以在语音增强任务中发挥重要优势。
[0105]
最后,本实施例通过融合u-net网络和transformer模块的优点,形成了一种新的基于时域的端对端语音增强方法。同时,使用三种类型的损失函数训练模型,获得了最优的pesq和stoi,显著地提高了语音增强的效果。
[0106]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统或计算机程序
产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施列的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0107]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0108]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0109]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0110]
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1