一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于时频域联合损失函数的语音增强方法与流程

2021-06-08 12:19:00 来源:中国专利 TAG:语音 增强 函数 损失 特别


1.本发明涉及语音增强领域,特别涉及一种基于时频域联合损失函数的语音增强方法。


背景技术:

2.语音通信是人与人、人与机器之间最便捷的信息交互方式。然而,不管在什么环境下,语音通信或多或少的被周围环境噪声所干扰。语音增强技术是解决语音交互过程中噪声影响的有效途径。语音增强的目的是尽可能的从背景噪声中提取出干净的语音信号,消除环境噪声,提高语音质量和语音可懂度。
3.近年来,人工智能技术的热度居高不下,语音增强技术也得到了飞速的发展,各种语音增强技术层出不穷。这些语音增强方案主要分为:传统语音增强方案和基于深度学习的语音增强方案。
4.传统语音增强方案主要包括:谱减法、基于统计模型的增强算法和子空间增强算法。谱减法假设噪声为加性噪声,然后从带噪语音的语音谱中减去对噪声谱的估计,最后的到干净语音。维纳滤波算法和最小均方误差算法是基于统计模型增强算法的代表,相对于谱减法,维纳滤波法算法处理后的语音信号中的残留噪声类似白噪声,听觉上让人更加舒适。最小均方误差算法利用语音信号的短时频谱振幅在感知中的重要作用,并利用最小均方误差的短时频谱振幅估计器来增强带噪语音。子空间增强算法主要源自于线性代数理论,其原理是在欧式空间中,纯净信号的分布局限在带走按信号的子空间中。所以只要将带噪信号的向量空间分解到两个子空间就可以完成语音增强的任务。
5.传统的语音增强算法大多假设语音信号是平稳的。但是,在现实生活中,这种假设条件根本无法满足。基于深度学习的语音增强算法以其强大的非线性拟合能力能有效解决这个问题。根据训练目标的不同,基于深度学习的语音增强算法可以分为两类:一是基于掩模的增强网络,二是基于映射的增强网络。基于掩模的增强网络是将理想比例掩模或者相位掩模等作为神经网络的训练目标。基于映射的增强网络利用神经网络的拟合能力,将带噪语音的对数谱或者功率谱直接映射到干净语音的功率谱。根据网络模型的不同,基于深度学习的语音增强网络可以分为dnn增强网络、cnn增强网络、rnn增强网络和gan增强网络。
6.其中,对语谱图的特征处理是基于深度学习语音增强网络的关键。所以,cnn网络较其他网络模型更契合语音增强任务。
7.本申请发明人在实施本发明过程中,发现现有技术方法至少存在以下和技术问题:
8.语音增强网络通常使用带噪语音幅度谱生成估计语音的幅度谱,同时使用带噪语音的相位谱进行波形重构,这种方法会造成幅度谱与相位谱的不匹配的情况。语音增强算法通常会作为语音识别的前端模块,其效果极大影响着识别系统的表现。而幅度谱与相位谱不匹配的问题会对语音信号的特征信息,例如梅尔频率倒谱系数(mel frequency cepstrum coefficient,mfcc)造成破坏,从而影响语音识别的准确率。
9.由此可见,现有技术的方法中,作为语音识别前端模块的语音增强方法还存在缺陷,解决语音增强相位失配的问题具有重要的实际意义。


技术实现要素:

10.基于深度神经网络的语音增强模型通常利用短时傅里叶变换(short time fourier transform,stft)方法,将带噪语音信号变换到频域上进行操作。该方法通常使用干净语音与估计结果的频域幅度谱的均方误差(mean square error,mse)作为损失函数,学习幅度谱之间的映射关系。传统方法使用带噪语言的相位谱生成估计信号,会导致幅度谱与相位谱不匹配,从而影响增强效果。本发明旨在通过使用时域与频域的联合损失函数,减少增强后生成语音幅度谱与相位谱不匹配的现象。
11.鉴于传统方法的不足,本发明提出了基于时频域联合损失函数的语音增强模型。本发明使用时频域联合损失函数替换传统方案中单一的频域损失函数。通过引入时域损失,计算估计信号与干净语音信号在时域上波形的误差,减少传统方案中幅度谱与相位谱不匹配的情况所带来的影响。通过减少增强后语音的信息丢失与破坏,改善作为语音识别前端模块的语音增强算法的表现。本发明的目的通过以下技术方案实现:
12.本发明提出了一种基于时频域联合损失函数的语音增强方法,其特征在于,包括以下步骤:
13.步骤1,将开源数据集中干净语音数据集与噪声数据集合成带噪语音数据集,将干净语音数据集中干净语音通过短时傅里叶变换的方法,进行分帧、重叠,转换为每条干净语音的频域幅度谱,构建干净语音频域幅度谱数据集,将干净语音数据集中干净语音进行采样、分帧并添加汉明窗转换为干净语音的波形数据,构成干净语音时域波形数据集,对于带噪语音数据集中带噪语音,通过短时傅里叶变换的方法进行分帧、重叠,转换为每条带噪语音的频域幅度谱与每条带噪语音的频域相位谱,构成带噪语音频域幅度谱数据集、带噪语音频域相位谱数据集,通过干净语音的频域幅度谱数据集、干净语音的时域波形数据集、带噪语音的频域幅度谱数据集、带噪语音的频域相位谱数据集,构建网络训练集数据;
14.步骤2,构建cnn网络模型,将网络训练集数据中的带噪语音的频域幅度谱即作为模型输入数据集,将干净语音的频域幅度谱即作为训练目标集,网络每次获取一条带噪语音的频域幅度谱,将其对应的干净语音的频域幅度谱作为标签,cnn网络模型根据带噪语音的频域幅度谱预测干净语音的频域幅度谱得到频域幅度谱估计值;将频域幅度谱估计值与带噪语音的频域相位谱结合,进一步通过逆短时傅里叶变换方法进行波形重构,获得增强后的语音;将增强后的语音通过采样、分帧重叠以及添加汉明窗,获得估计语音时域上的波形数据即;
15.通过干净语音的频域幅度谱与频域幅度谱估计值计算频域损失;通过干净语音的时域波形数据与估计语音时域上的波形数据计算时域损失;根据频域损失、时域损失构建时频域联合损失;
16.步骤3,根据时频域联合损失,使用adam作为优化器更新卷积层的权值矩阵,进行下一次迭代,直到训练结束,得到优化后网络权重参数,以构建优化后cnn网络模型。
17.作为优选,步骤1所述干净语音数据集为:
18.{c
i
,i∈[1,k]}
[0019]
其中,c
i
干净语音数据集第i个干净语音,k为干净语音的数量;
[0020]
步骤1所述噪声数据集为:
[0021]
{n
i
,i∈[1,k']}
[0022]
其中,k'为噪声数据集中噪声的数量;
[0023]
步骤1所述合成的带噪语音数据集为:
[0024]
{r
i
,i∈[1,k]}
[0025]
其中,r
i
为合成的带噪语音数据集中第i个合成的带噪语音,k为合成的带噪语音数据集中带噪语音的数量;
[0026]
步骤1所述干净语音频域幅度谱数据集为:
[0027]
{y
i
,i∈[1,k]},y
i
={y
i,j
,j∈[1,n
i
]}
[0028]
其中,y
i
表示第i条干净语音的频域幅度谱,y
i,j
表示第i条干净语音的第j帧频域幅度数据,n
i
为第i条干净语音的总帧数;
[0029]
步骤1所述干净语音时域波形数据集为:
[0030]
{y
i
,i∈[1,k]},y
i
={y
i,j
,j∈[1,t
i
]}
[0031]
其中,y
i
表示第i条干净语音的波形数据,y
i,j
表示第i条干净语音的第j个采样点的值,t
i
为第i条干净语音的总采样点数;
[0032]
步骤1所述带噪语音频域幅度谱数据集为:
[0033]
{m
i
,i∈[1,k]},m
i
={m
i,j
,j∈[1,n
i
]}
[0034]
其中m
i
表示第i条带噪语音的频域幅度谱,m
i,j
表示第i条带噪语音的第j帧的频域幅度数据,n
i
为第i条带噪语音的总帧数;
[0035]
步骤1所述带噪语音频域相位谱数据集为:
[0036]
{p
i
,i∈[1,k]}
[0037]
其中,p
i
表示第i条带噪语音的频域相位谱,k为带噪语音频域相位谱数据集中带噪语音的频域相位的数量;
[0038]
步骤1所述构建网络训练集数据为:
[0039]
{m
i
,p
i
,y
i
,y
i
,i∈[1,k]}
[0040]
其中,k为带噪语音数据集中语音的总数;
[0041]
作为优选,步骤2所述预训练cnn网络模型模型由编码器与解码器级联组成;
[0042]
所述编码器由编码卷积层、编码批归一化层、最大池化层、leaky relu激活层依次级联组成,其中编码卷积层涉及权值更新;
[0043]
所述解码器由解码卷积层、解码批归一化层、上采样层依次级联组成,其中解码卷积层涉及权值更新;
[0044]
步骤2所述训练集数据中带噪语音的频域幅度谱为:{m
i
,i∈[1,k]};
[0045]
m
i
={m
i,j
,j∈[1,n
i
]}
[0046]
其中,m
i
表示第i条带噪语音的频域幅度谱,m
i,j
表示第i条带噪语音的第j帧的频域幅度数据,n
i
为第i条带噪语音的总帧数;
[0047]
步骤2所述训练集数据中干净语音的频域幅度谱为:{y
i
,i∈[1,k]};
[0048]
y
i
={y
i,j
,j∈[1,n
i
]}
[0049]
其中,y
i
表示第i条干净语音的频域幅度谱,y
i,j
表示第i条干净语音的第j帧频域
幅度数据,n
i
为第i条干净语音的总帧数;
[0050]
步骤2所述模型输出的频域幅度谱估计值为:
[0051][0052]
其中,表示第i条带噪语音输入后,网络输出的频域幅度谱估计值,表示第i个频域幅度谱估计值的第j帧数据,n
i
为第i个频域幅度谱估计值的总帧数;
[0053]
步骤2所述估计语音时域波形数据为:
[0054][0055]
其中,表示第i条估计语音的时域波形数据,表示第i条估计语音的第j个采样点的幅值,t
i
为第i条估计语音的采样点总数;
[0056]
步骤2所述的频域损失为频域幅度谱的均方误差,具体如下:
[0057][0058]
其中,l
i,f
为第i条带噪语音作为输入时的频域损失;
[0059]
步骤2所述的时域损失为时域波形幅值的均方误差,具体如下:
[0060][0061]
其中,l
i,w
为第i条带噪语音作为输入时的时域损失;
[0062]
步骤2所述的时频域联合损失为:
[0063]
l
i,total
=l
i,f
αl
i,w
[0064]
其中,l
i,total
为第i条带噪语音输入时的时频域联合损失,α为超参数的权值系数。
[0065]
与现有技术相比,本发明具有以下优点和有益效果:减少估计的幅度谱与相位谱不匹配的现象,一定程度上提升了语音增强的效果。
附图说明
[0066]
图1:为本发明方法流程图。
[0067]
图2:为本发明中cnn语音增强网络的结构示意图。
具体实施方式
[0068]
本实施例用于实现基于aishell语音集与musan噪声集的训练和测试。
[0069]
如图1所示,本实施例基于卷积神经网络(convolutional neural network,cnn)模型进行语音增强与训练。通过将损失函数替换为时频域的联合损失函数,与现有算法进行语音增强比较。
[0070]
本发明第一实施例为一种基于时频域联合损失函数的语音增强方法,具体步骤如下:
[0071]
步骤1,将开源数据集中干净语音数据集与噪声数据集合成带噪语音数据集,将干净语音数据集中干净语音通过短时傅里叶变换的方法,进行分帧、重叠,转换为每条干净语
音的频域幅度谱,构建干净语音频域幅度谱数据集,将干净语音数据集中干净语音进行采样、分帧并添加汉明窗转换为干净语音的波形数据,构成干净语音时域波形数据集,对于带噪语音数据集中带噪语音,通过短时傅里叶变换的方法进行分帧、重叠,转换为每条带噪语音的频域幅度谱与每条带噪语音的频域相位谱,构成带噪语音频域幅度谱数据集、带噪语音频域相位谱数据集,通过干净语音的频域幅度谱数据集、干净语音的时域波形数据集、带噪语音的频域幅度谱数据集、带噪语音的频域相位谱数据集,构建网络训练集数据;
[0072]
步骤1所述干净语音数据集为:
[0073]
{c
i
,i∈[1,k]}
[0074]
其中,c
i
干净语音数据集第i个干净语音,k=1024为干净语音的数量;
[0075]
步骤1所述噪声数据集为:
[0076]
{n
i
,i∈[1,k']}
[0077]
其中,k'为噪声数据集中噪声的数量;
[0078]
步骤1所述合成的带噪语音数据集为:
[0079]
{r
i
,i∈[1,k]}
[0080]
其中,r
i
为合成的带噪语音数据集中第i个合成的带噪语音,k=1024为合成的带噪语音数据集中带噪语音的数量;
[0081]
步骤1所述短时傅里叶变换参数具体为16khz采样、窗长为256、窗重叠为75%,采样点数与帧数的计算方式为:
[0082]
t=t
×
16000
[0083][0084]
其中t为语音的时间长度,t为该语音的总采样点数,n为该语言的频域幅度谱帧数
[0085]
步骤1所述干净语音频域幅度谱数据集为:
[0086]
{y
i
,i∈[1,k]},y
i
={y
i,j
,j∈[1,n
i
]}
[0087]
其中,y
i
表示第i条干净语音的频域幅度谱,y
i,j
表示第i条干净语音的第j帧频域幅度数据,n
i
为第i条干净语音的总帧数;
[0088]
步骤1所述干净语音时域波形数据集为:
[0089]
{y
i
,i∈[1,k]},y
i
={y
i,j
,j∈[1,t
i
]}
[0090]
其中,y
i
表示第i条干净语音的波形数据,y
i,j
表示第i条干净语音的第j个采样点的值,t
i
为第i条干净语音的总采样点数;(t
i
为第i条干净语音经过16khz采样的总采样点数)
[0091]
步骤1所述带噪语音频域幅度谱数据集为:
[0092]
{m
i
,i∈[1,k]},m
i
={m
i,j
,j∈[1,n
i
]}
[0093]
其中m
i
表示第i条带噪语音的频域幅度谱,m
i,j
表示第i条带噪语音的第j帧的频域幅度数据,n
i
为第i条带噪语音的总帧数;
[0094]
步骤1所述带噪语音频域相位谱数据集为:
[0095]
{p
i
,i∈[1,k]}
[0096]
其中,p
i
表示第i条带噪语音的频域相位谱,k为带噪语音频域相位谱数据集中带噪语音的频域相位的数量;
[0097]
步骤1所述构建网络训练集数据为:
[0098]
{m
i
,p
i
,y
i
,y
i
,i∈[1,k]}
[0099]
其中,k为带噪语音数据集中语音的总数;
[0100]
步骤2,构建cnn网络模型,将网络训练集数据中的带噪语音的频域幅度谱即作为模型输入数据集,将干净语音的频域幅度谱即作为训练目标集,网络每次获取一条带噪语音的频域幅度谱,将其对应的干净语音的频域幅度谱作为标签,cnn网络模型根据带噪语音的频域幅度谱预测干净语音的频域幅度谱得到频域幅度谱估计值;将频域幅度谱估计值与带噪语音的频域相位谱结合,进一步通过逆短时傅里叶变换方法进行波形重构,获得增强后的语音;将增强后的语音通过采样、分帧重叠以及添加汉明窗,获得估计语音时域上的波形数据即;
[0101]
通过干净语音的频域幅度谱与频域幅度谱估计值计算频域损失;通过干净语音的时域波形数据与估计语音时域上的波形数据计算时域损失;根据频域损失、时域损失构建时频域联合损失;
[0102]
所述预训练cnn网络模型模型由编码器与解码器级联组成;
[0103]
所述编码器由编码卷积层、编码批归一化层、最大池化层、leaky relu激活层依次级联组成,其中编码卷积层涉及权值更新;
[0104]
所述解码器由解码卷积层、解码批归一化层、上采样层依次级联组成,其中解码卷积层涉及权值更新;
[0105]
步骤2所述训练集数据中带噪语音的频域幅度谱为:{m
i
,i∈[1,k]};
[0106]
m
i
={m
i,j
,j∈[1,n
i
]}
[0107]
其中,m
i
表示第i条带噪语音的频域幅度谱,m
i,j
表示第i条带噪语音的第j帧的频域幅度数据,n
i
为第i条带噪语音的总帧数;
[0108]
步骤2所述训练集数据中干净语音的频域幅度谱为:{y
i
,i∈[1,k]};
[0109]
y
i
={y
i,j
,j∈[1,n
i
]}
[0110]
其中,y
i
表示第i条干净语音的频域幅度谱,y
i,j
表示第i条干净语音的第j帧频域幅度数据,n
i
为第i条干净语音的总帧数;
[0111]
步骤2所述模型输出的频域幅度谱估计值为:
[0112][0113]
其中,表示第i条带噪语音输入后,网络输出的频域幅度谱估计值,表示第i个频域幅度谱估计值的第j帧数据,n
i
为第i个频域幅度谱估计值的总帧数;
[0114]
步骤2所述估计语音时域波形数据为:
[0115][0116]
其中,表示第i条估计语音的时域波形数据,表示第i条估计语音的第j个采样点的幅值,t
i
为第i条估计语音的采样点总数;
[0117]
步骤2所述的频域损失为频域幅度谱的均方误差,具体如下:
[0118]
[0119]
其中,l
i,f
为第i条带噪语音作为输入时的频域损失;
[0120]
步骤2所述的时域损失为时域波形幅值的均方误差,具体如下:
[0121][0122]
其中,l
i,w
为第i条带噪语音作为输入时的时域损失;
[0123]
步骤2所述的时频域联合损失为:
[0124]
l
i,total
=l
i,f
αl
i,w
[0125]
其中,l
i,total
为第i条带噪语音输入时的时频域联合损失,α=0.15为超参数的权值系数。
[0126]
步骤3,根据时频域联合损失,使用adam作为优化器更新卷积层的权值矩阵,进行下一次迭代,直到训练结束,得到优化后网络权重参数,以构建优化后cnn网络模型。
[0127]
本发明第二实施例为具体测试流程,包括以下步骤:
[0128]
步骤1,采集带噪语音,并将其转换为幅度谱与相位谱。
[0129]
步骤2,将幅度谱送入增强模型,得到增强后的语音幅度谱。
[0130]
步骤3,使用带噪语音的相位谱和估计结果的幅度谱进行逆短时傅里叶变换(inverse short time fourier transform istft),得到增强后的语音波形,并写入wav文件,
[0131]
步骤4,将生成的语音文件进行语音识别,对比不同增强模型生成语音的识别准确率。
[0132]
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
[0133]
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文章

  • 日榜
  • 周榜
  • 月榜