本发明涉及语音识别技术领域,具体涉及一种训练生成对抗网络、语音增强方法及系统。
背景技术:
语音增强(speechenhancement,se)指从带噪声的语音y中去除噪声z,从而分离出纯净语音x,即x=y-z。从混合的语音信号中去除噪声是语音信号处理中最具挑战的任务之一,传统的语音增强算法包括谱减法、子空间法和维纳滤波法。近年来,基于深度学习的语音增强方法在语音增强领域取得了极大地突破,特别是生成对抗网络(generativeadversarialnetwork,gan)在语音增强领域的应用有效地提高了去噪后语音的质量。
生成对抗网络自被提出来后在许多具有挑战性的生成任务诸如图像翻译,超分辨率等取得了不错的效果,它包含两个重要的部件:生成器(generator,g)和判别器(discriminator,d)。生成器将来自先验分布z的样本z映射到感兴趣分布x的样本x,d作为一个二元分类器判定真实的样本为真而将生成器生成的样本为假。生成器和判别器对抗地训练,生成器生成的样本尽量服从真实分布来迷惑判别器以使判别器判断其为真,而判别器尽量将真实的样本和生成的样本分开,在这不断的博弈过程中直至达到纳什均衡,此时生成器生成的样本已经非常接近真实的样本,判别器无法判断生成的样本是真实的还是生成的。
现有的基于生成对抗网络的语音增强技术对语音降噪基本上直接将图像生成任务里的框架用于语音增强领域,并没有结合语音的特征进行更有效的去噪。带噪声语音的是一种极其非平稳的信号,即某些地方噪音可能非常强烈,某些地方噪声可能很小或基本没噪声。生成器并没有设计合理的结构去感知这种特性,另外尽管判别器能引导生成器生成尽量干净的语音,但是它仅仅从一个全局的比较粗的角度,生成的语音局部很可能还存在噪声,语音增强效果差。
技术实现要素:
因此,本发明提供的一种训练生成对抗网络、语音增强方法及系统,克服了现有技术中的基于对抗网络的语音增强技术对语音增强效果差的缺陷。
第一方面,本发明实施例提供一种训练生成对抗网络方法,包括如下步骤:获取带噪声的语音y以及其对应纯净语音x构成训练集;将噪声的语音y输入到生成器生成去噪后的语音
在一实施例中,对判别器进行训练的过程,包括:
将生成器去噪后语音的子语音和带噪声语音的子语音组成的语音对
在一实施例中,所述判别损失通过以下公式计算:
d_loss=locald_loss+globald_loss,
locald_loss=-log(min(p(xi,yi))),
globald_loss=-log(p(x,y));
其中,globald_loss为全局判别损失,locald_loss为局部判别损失,min(p(xi,yi)为k个带噪声的语音对应纯净语音的子语音为真的相对概率中最小值。
在一实施例中,对生成器进行训练的过程,包括:将生成器去噪后语音的子语音和带噪声语音的子语音组成的语音对
在一实施例中,所述生成损失通过以下公式计算:
g_loss=localdg_loss+globaldg_loss+l_loss,
其中,globaldg_loss为判别器的全局对抗损失,localdg_loss为判别器的局部对抗损失,l_loss为生成器生成增强的语音与纯净语音的l1距离损失。
第二方面,本发明实施例提供一种语音增强方法,包括:获取待增强带噪声的语音;将待增强带噪声的语音输入本发明实施例第一方面所述的训练生成对抗网络方法得到的生成对抗网络中的生成器对语音进行增强,生成纯净的语音。
在一实施例中,所述生成器以特征金字塔网络作为主干网络获取不同尺度的语音特征。
第三方面,本发明实施例提供一种训练生成对抗网络系统,包括:训练集获取模块,用于获取带噪声的语音y以及其对应纯净语音x构成训练集;生长器去噪模块,用于将噪声的语音信号输入到生成器生成去噪后的语音
第四方面,本发明实施例提供一种语音增强系统,包括:待增强语音获取模块,用于获取待增强带噪声的语音;语音增强模块,用于将待增强带噪声的语音输入本发明实施例第一方面所述的训练生成对抗网络方法得到的生成对抗网络中的生成器对语音进行增强,生成纯净的语音。
第五方面,本发明实施例提供一种计算机设备,包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行本发明实施例第一方面或第二方面所述的方法。
第六方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,以使所述至少一个处理器执行本发明实施例第一方面或第二方面所述的方法。
本发明技术方案,具有如下优点:
1、本发明实施例提供的训练生成对抗网络方法及系统,结合带噪的不平稳性及噪声存在的局部性,将生成器去噪后语音的子语音和带噪声语音的子语音组成的语音对
2、本发明实施例提供的语音增强方法及系统,结合带噪语音不平稳的特性,通过基于特征金字塔网络的生成器以更好地提取语音特征以及感知噪声,从而更有效地消除噪声。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的训练生成对抗网络方法的一个具体示例的流程图;
图2为本发明实施例提供的语音增强方法的一个具体示例的流程图;
图3为本发明实施例提供的将特征金字塔网络作为主干网络进行卷积操作的流程图;
图4为本发明实施例提供的多个卷积操作的示意图;
图5为本发明实施例提供练生成对抗网络系统的模块组成示意图;
图6为本发明实施例提供的语音增强系统的的模块组成示意图;
图7为本发明实施例提供的计算机设备一个具体示例的组成图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
实施例1
本发明实施例提供的一种训练生成对抗网络方法,如图1所示,包括如下步骤:
步骤s1:获取带噪声的语音以及其对应纯净语音构成训练集。
本发明实施例中,可以首先获取纯净的语音x,在纯净语音中随机加入噪声,得到带噪声的语音y,仅以此举例,不以此为限。
步骤s2:将带噪声的语音输入到生成器生成去噪后的语音。
本发明实施例将带噪声的语音y输入到一预设的生成器中得到去噪后的语音
步骤s3:在纯净语音、带噪声的语音和生成器去噪后的语音
本实施例中,通过将分别在纯净语音x、带噪声的语音y和生成器去噪后的语音
步骤s4:将生成器去噪后语音的子语音和带噪声语音的子语音组成的语音对
本实施例中预设训练结束条件可以是训练得到的损失值小于预设阈值和/或训练的步数小于预设的次数,在此不做限制。
本发明实施例对判别器进行训练的过程,包括:
1)将生成器去噪后语音的子语音和带噪声语音的子语音组成的语音对
2)将带噪声的语音和对应纯净语音组成的语音对(x,y)以及生成器去噪后的语音和带噪声语音组成的语音对
3)固定生成器的参数并计算判别损失以更新判别器的参数。
本发明实施例中的判别损失通过以下公式计算:
d_loss=locald_loss+globald_loss,
locald_loss=-log(min(p(xi,yi))),
globald_loss=-log(p(x,y));
其中,globald_loss为全局判别损失,locald_loss为局部判别损失,min(p(xi,yi)为k个带噪声的语音对应纯净语音的子语音为真的相对概率中最小值。
本发明实施例中,对生成器进行训练的过程,包括:
1)将生成器去噪后语音的子语音和带噪声语音的子语音组成的语音对
2)将生成器去噪后语音的子语音和带噪声语音的子语音组成的语音对
3)固定判别器参数并计算生成损失以更新生成器的参数。
本发明实施例中给的生成损失通过以下公式计算:
g_loss=localdg_loss+globaldg_loss+l_loss,
其中,globaldg_loss为判别器的全局对抗损失,localdg_loss为判别器的局部对抗损失,l_loss为生成器生成增强的语音与纯净语音的l1距离损失。
发明实施例中中,对于生成器生成的每个粒度的语音都希望尽可能的去除噪声,也就是希望判别器将其判别为真,即希望判别器输出的值尽可能的靠近为1。对于l1距离损失l_loss,它是干净和增强的每个粒度的语音的l1距离。需要说明的是,该距离可以是余弦距离、欧式距离或者其他类似的距离,在此不做限制。
本发明实施例提供的训练生成对抗网络方法,结合带噪的不平稳性及噪声存在的局部性,利用包含全局判别器和局部判别器动态粒度判别器从整体和局部地引导生成器生成去噪后的语音,从而更具靶向地消除特定区域内的难以消除的噪音,达到的语音增强效果较好。
实施例2
本发明实施例提供一种语音增强方法,如图2所示,包括如下步骤:
步骤s21:获取待增强带噪声的语音;
步骤s22:将待增强带噪声的语音输入得到的生成对抗网络中的生成器对语音进行增强,生成纯净的语音。本实施例中采用的生成器为基于实施例1中的训练生成对抗网络方法生成对抗网络中包含的生成器。
本发明实施例中生成对抗网络的生成器,以特征金字塔网络作为主干网络,如图3所示,在特征金字塔网络之前,首先使用一个步长为1的卷积,特征金字塔网络在bottom-up通路包含5个denseblock,每个block分别产生不同语义程度信息的特征。在top-down通路,1×1卷积使每个尺度的特征都具有相同的通道数,将最上面的四个特征都上采样到原始输入的1/4长度,然后拼接在一起并进行一次卷积得到一个包含不同语义程度信息的稠密特征,之后再结合第一个denseblock的输出进行两次上采样和一次卷积得到纯净的语音。本实施例中以四个不同尺度的语音特征作为举例,但是不以此为限。
如图4所示,本实施例中的denseblock包含多个卷积操作,每个卷积操作都将之前层的输出作为输入并将其输出输入到之后的每一层,假设第l层的输出为xl,第l-1,l-2层,第0层的输出(即当前block的输入)为xl-1,xl-2,…,x0,则:
xl=hl([xl-l,xl-2,…,xo])
其中,hl表示第l层的卷积操作,[·]表示拼接操作。为了产生不同尺度的特征,本发明实施例将步长为2的卷积嵌入到每个denseblock的最后。每个卷积之后都使用带参数的线性修正单元(parametricrectifiedlinearunit,prelu)做为激活函数。
本发明实施例提供的语音增强方法,结合带噪语音不平稳的特性,通过基于特征金字塔网络的生成器以更好地提取语音特征以及感知噪声,从而更有效地消除噪声;结合带噪的不平稳性及噪声存在的局部性,通过实施例1中得到的包含全局判别器和局部判别器动态粒度判别器从整体和局部地引导生成器生成去噪后的语音,更具靶向地消除特定区域内的难以消除的噪音。
实施例3
本发明实施例提供一种训练生成对抗网络系统,如图5所示,包括:
训练集获取模块1,用于获取带噪声的语音y以及其对应纯净语音x构成训练集;此模块执行实施例1中的步骤s1所描述的方法,在此不再赘述。
生长器去噪模块2,用于将噪声的语音信号输入到生成器生成去噪后的语音
子语音获取模块3,用于在纯净语音x、带噪声的语音y和生成器去噪后的语音
训练模块4,用于将生成器去噪后语音的子语音和带噪声语音的子语音组成的语音对
本发明实施例提供的训练生成对抗网络系统,结合带噪的不平稳性及噪声存在的局部性,利用包含全局判别器和局部判别器动态粒度判别器从整体和局部地引导生成器生成去噪后的语音,从而更具靶向地消除特定区域内的难以消除的噪音,达到的语音增强效果较好。
实施例4
本发明实施例提供一种语音增强系统,如图6所示,包括:
待增强语音获取模块5,用于获取待增强带噪声的语音;此模块执行实施例2中的步骤s21所描述的方法,在此不再赘述。
语音增强模块6,用于将待增强带噪声的语音输入实施例1中所述的训练生成对抗网络方法得到的生成对抗网络中的生成器对语音进行增强,生成纯净的语音。此模块执行实施例2中的步骤s22所描述的方法,在此不再赘述。
本发明实施例提供的语音增强系统,结合带噪语音不平稳的特性,通过基于特征金字塔网络的生成器以更好地提取语音特征以及感知噪声,从而更有效地消除噪声;结合带噪的不平稳性及噪声存在的局部性,通过实施例1中得到的包含全局判别器和局部判别器动态粒度判别器从整体和局部地引导生成器生成去噪后的语音,更具靶向地消除特定区域内的难以消除的噪音。
实施例5
本发明实施例提供一种计算机设备,如图7所示,包括:至少一个处理器401,例如cpu(centralprocessingunit,中央处理器),至少一个通信接口403,存储器404,至少一个通信总线402。其中,通信总线402用于实现这些组件之间的连接通信。其中,通信接口403可以包括显示屏(display)、键盘(keyboard),可选通信接口403还可以包括标准的有线接口、无线接口。存储器404可以是高速ram存储器(ramdomaccessmemory,易挥发性随机存取存储器),也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。存储器404可选的还可以是至少一个位于远离前述处理器401的存储装置。其中处理器401可以执行实施例1或实施例2中的方法。存储器404中存储一组程序代码,且处理器401调用存储器404中存储的程序代码,以用于执行实施例1中或实施例2中的方法。其中,通信总线402可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。通信总线402可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器404可以包括易失性存储器(英文:volatilememory),例如随机存取存储器(英文:random-accessmemory,缩写:ram);存储器也可以包括非易失性存储器(英文:non-volatilememory),例如快闪存储器(英文:flashmemory),硬盘(英文:harddiskdrive,缩写:hdd)或固降硬盘(英文:solid-statedrive,缩写:ssd);存储器404还可以包括上述种类的存储器的组合。
其中,处理器401可以是中央处理器(英文:centralprocessingunit,缩写:cpu),网络处理器(英文:networkprocessor,缩写:np)或者cpu和np的组合。
其中,处理器401还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(英文:application-specificintegratedcircuit,缩写:asic),可编程逻辑器件(英文:programmablelogicdevice,缩写:pld)或其组合。上述pld可以是复杂可编程逻辑器件(英文:complexprogrammablelogicdevice,缩写:cpld),现场可编程逻辑门阵列(英文:field-programmablegatearray,缩写:fpga),通用阵列逻辑(英文:genericarraylogic,缩写:gal)或其任意组合。
可选地,存储器404还用于存储程序指令。处理器401可以调用程序指令,实现如本申请执行实施例1中或实施例2中的方法。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机可执行指令,该计算机可执行指令可执行实施例中1或实施例2中的方法。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)、随机存储记忆体(randomaccessmemory,ram)、快闪存储器(flashmemory)、硬盘(harddiskdrive,缩写:hdd)或固降硬盘(solid-statedrive,ssd)等;所述存储介质还可以包括上述种类的存储器的组合。
显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引申出的显而易见的变化或变动仍处于本发明创造的保护范围之中。