一种语音分离方法及装置与流程

文档序号:20692314发布日期:2020-05-08 19:45阅读:251来源:国知局
一种语音分离方法及装置与流程

本发明涉及信号处理技术领域,尤其涉及一种语音分离方法及装置。



背景技术:

目前,在人们的通信交流或者留言中由于身处的环境不同,在通信的过程中难免会掺杂着噪声,基于上述问题如今开发了语音分离技术,语音分离又称鸡尾酒会问题,目标是估计出混合语音中的每一个信号源。现有的基于深度学习的语音分离方法主要由以下步骤构成:首先将包括混合语音和纯净语音的数据划分为训练集、验证集和测试集,然后使用训练集训练语音分离模型,使用验证集来确定分离模型,最后在测试集上测试分离效果。目前基于深度学习的语音分离方法,一般使用均方误差作为分离模型的训练指标,使用声源失真比等作为分离效果的评价测试指标,但由于分离模型过于单一而导致部分语音无法有效的进行分离,从而无法实现完整的语音分离。



技术实现要素:

针对上述所显示出来的问题,本方法利用分离网络来生成训练数据进而训练一个优化网络,使用优化网络和分离网络进行二次训练来提升语音分离效果。

一种语音分离方法,包括以下步骤:

获取混合语音信号;

对所述混合语音信号进行预处理,提取出所述混合语音信号的幅度谱xt以训练分离网络;

利用所述分离网络生成训练数据;

利用所述训练数据训练优化网络q;

利用所述分离网络和训练好的优化网络q对所述分离网络进行再次训练。

优选的,所述对混合语音信号进行预处理,提取出所述混合语音信号的幅度谱xt以预先训练分离网络,包括:

对所述混合语音信号进行预设时长傅里叶变换,得到所述幅度谱xt;

将所述幅度谱xt进行归一化处理后传输给神经网络;

定义s()为分离网络,输入所述幅度谱xt,通过所述神经网络对所述幅度谱xt提取语音特征,输出预测的掩蔽值,进而得到所述掩蔽值的幅度谱s(xt);

通过最小化均方误差lmse(s(xt),yt)训练所述分离网络,其中所述lmse()为均方误差函数,所述yt表示说话人纯净语音的幅度谱。

优选的,所述利用分离网络生成所述训练数据,包括:

调用预先训练好的分离模型ht;

利用多个混合语音信号的幅度谱组成训练集;

通过所述训练集获取序列h={h1,h2,......hn},其中,所述h1,h2,......hn为在所述混合语音信号里出现的其他幅度谱;

计算所述序列h对应的sdr得分q(h),获取所述优化网络q的训练样本({xt,s(xt)},q(h))。

优选的,所述利用训练数据训练所述优化网络q,包括:

获取预设数量的所述训练样本({xt,s(xt)},q(h))作为训练数据;

使用均方误差函数利用所述训练数据训练所述优化网络q;

其中,所述优化网络q使用卷积神经网络将所述xt和所述s(xt)表示为向量,然后将所述xt和所述s(xt)进行拼接,通过多层感知机预测最终q(h)。

优选的,所述利用分离网络和训练好的优化网络q对所述分离网络进行再次训练,包括:

利用下列公式将所述优化网络q整合到语音分离的损失函数中:

其中,所述lmse()为均方误差函数,所述qtarget为期望的评价指标值,所述q(xt,s(xt))为当前的评价值。

一种语音分离装置,该装置包括:

获取模块,用于获取混合语音信号;

提取模块,用于对所述混合语音信号进行预处理,提取出所述混合语音信号的幅度谱xt以训练分离网络;

生成模块,用于利用所述分离网络生成训练数据;

第一训练模块,用于利用所述训练数据训练优化网络q;

第二训练模块,用于利用所述分离网络和训练好的优化网络q对所述分离网络进行再次训练。

优选的,所述提取模块,包括:

转换子模块,用于对所述混合语音信号进行预设时长傅里叶变换,得到所述幅度谱xt;

处理子模块,用于将所述幅度谱xt进行归一化处理后传输给神经网络;

提取子模块,用于定义s()为分离网络,输入所述幅度谱xt,通过所述神经网络对所述幅度谱xt提取语音特征,输出预测的掩蔽值,进而得到所述掩蔽值的幅度谱s(xt);

第一训练子模块,用于通过最小化均方误差lmse(s(xt),yt)训练所述分离网络,其中所述lmse()为均方误差函数,所述yt表示说话人纯净语音的幅度谱。

优选的,所述生成模块,包括:

调用子模块,用于调用预先训练好的分离模型ht;

组成子模块,用于利用多个混合语音信号的幅度谱组成训练集;

第一获取子模块,用于通过所述训练集获取序列h={h1,h2,......hn},其中,所述h1,h2,......hn为在所述混合语音信号里出现的其他幅度谱;

计算子模块,用于计算所述序列h对应的sdr得分q(h),获取所述优化网络q的训练样本({xt,s(xt)},q(h))。

优选的,所述第一训练模块,包括:

第二获取子模块,用于获取预设数量的所述训练样本({xt,s(xt)},q(h))作为训练数据;

第二训练子模块,用于使用均方误差函数利用所述训练数据训练所述优化网络q;

其中,所述优化网络q使用卷积神经网络将所述xt和所述s(xt)表示为向量,然后将所述xt和所述s(xt)进行拼接,通过多层感知机预测最终q(h)。

优选的,所述第二训练模块,包括:

整合模块,用于利用下列公式将所述优化网络q整合到语音分离的损失函数中:

其中,所述lmse()为均方误差函数,所述qtarget为期望的评价指标值,所述q(xt,s(xt))为当前的评价值。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

图1为本发明所提供的一种语音分离方法的工作流程图;

图2为本发明所提供的一种语音分离方法的另一工作流程图;

图3为本发明所提供的一种语音分离方法的工作流程截图;

图4为本发明所提供的一种语音分离装置的结构图;

图5为本发明所提供的一种语音分离装置的另一结构图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

本领域技术人员应当理解的是,本发明中的第一、第二指的是不同应用阶段而已。

目前,在人们的通信交流或者留言中由于身处的环境不同,在通信的过程中难免会掺杂着噪声,基于上述问题如今开发了语音分离技术,语音分离又称鸡尾酒会问题,目标是估计出混合语音中的每一个信号源。现有的基于深度学习的语音分离方法主要由以下步骤构成:首先将包括混合语音和纯净语音的数据划分为训练集、验证集和测试集,然后使用训练集训练语音分离模型,使用验证集来确定分离模型,最后在测试集上测试分离效果。目前基于深度学习的语音分离方法,一般使用均方误差作为分离模型的训练指标,使用声源失真比等作为分离效果的评价测试指标,这种方法存在以下问题:1、由于训练指标和测试指标之间的差异,会导致模型的训练和最终的需求不一致,从而阻碍了语音分离效果的提升。2、分离模型过于单一,导致部分语音无法有效的进行分离,从而无法实现完整的语音分离。为了解决上述问题,本实施例公开了一种利用分离网络来生成训练数据进而训练一个优化网络,使用优化网络和分离网络进行二次训练来提升语音分离效果的方法。

一种语音分离方法,如图1所示,包括以下步骤:

步骤s101、获取混合语音信号;

步骤s102、对混合语音信号进行预处理,提取出混合语音信号的幅度谱xt以训练分离网络;

步骤s103、利用分离网络生成训练数据;

步骤s104、利用训练数据训练优化网络q;

步骤s105、利用分离网络和训练好的优化网络q对分离网络进行再次训练。

上述技术方案的工作原理为:预先获取混合语音信号,在混合语音信号中提取出所有声音的幅度谱xt来训练分离网络,然后利用分离网络生成训练数据来训练优化网络q,然后利用上述优化网络q对分离网络进行二次训练以优化分离网络。

上述技术方案的有益效果为:通过训练优化网络来对分离网络二次训练进而优化分离网络,可以使分离网络的语音分离结果更加精确,进而提高了语音分离的效率,同时使分离网络可以更加的完善以针对不同的混合语音信号进行语音分离,解决了现有技术中由于分离模型过于单一,导致部分语音无法有效的进行分离,从而无法实现完整的语音分离的问题。

在一个实施例中,如图2所示,对混合语音信号进行预处理,提取出混合语音信号的幅度谱xt以预先训练分离网络,包括:

步骤s201、对混合语音信号进行预设时长傅里叶变换,得到幅度谱xt;

步骤s202、将幅度谱xt进行归一化处理后传输给神经网络;

步骤s203、定义s()为分离网络,输入幅度谱xt,通过神经网络对幅度谱xt提取语音特征,输出预测的掩蔽值,进而得到掩蔽值的幅度谱s(xt);

步骤s204、通过最小化均方误差lmse(s(xt),yt)训练分离网络,其中lmse()为均方误差函数,yt表示说话人纯净语音的幅度谱;

特别的,上述掩蔽值为混合语音信号中的噪音信号,分离网路通过对混合语音信号的幅度谱进行分离,分离出噪音部分的幅度谱。

上述技术方案的有益效果为:通过最小化均方误差来输出最多的噪音幅度谱,使得分离的效果更好,同时为分离网络生成的训练数据更加的准确,为用户提供更好的的体验。

在一个实施例中,利用分离网络生成所述训练数据,包括:

调用预先训练好的分离模型ht;

利用多个混合语音信号的幅度谱组成训练集;

通过训练集获取序列h={h1,h2,......hn},其中,所述h1,h2,......hn为在混合语音信号里出现的其他幅度谱;

计算序列h对应的sdr得分q(h),获取优化网络q的训练样本({xt,s(xt)},q(h)).

上述技术方案的有益效果为:利用多个混合语音信号的幅度谱组成的训练集来提取出除了噪音部分之外的幅度谱用来做训练样本,避免了把用户纯净语音部分的幅度谱分离掉从而使分离的结果和预期结果不一致,降低了失误分离的风险。

在一个实施例中,利用训练数据训练优化网络q,包括:

获取预设数量的训练样本({xt,s(xt)},q(h))作为训练数据;

使用均方误差函数利用训练数据训练优化网络q;

其中,优化网络q使用卷积神经网络将xt和s(xt)表示为向量,然后将xt和s(xt)进行拼接,通过多层感知机预测最终q(h)。

上述技术方案的有益效果为:再次利用均方误差函数来训练优化网络q,明显的减小了误分离的概率,通过多层感知机预测最终q(h)可以使结果更加的准确,为保证优化网络q更加偏向于期望值。

在一个实施例中,利用分离网络和训练好的优化网络q对分离网络进行再次训练,包括:

利用下列公式将优化网络q整合到语音分离的损失函数中:

其中,lmse()为均方误差函数,qtarget为期望的评价指标值,q(xt,s(xt))为当前的评价值。

上述技术方案的有益效果为:通过将优化网络q整合到损失函数中可以优化分离网络,避免出现测试集和训练集不一致而出现的无法分离的问题,同时进一步地提高语音分离的效果解决了现有技术中由于训练指标和测试指标之间的差异,会导致模型的训练和最终的需求不一致,从而阻碍了语音分离效果的提升的问题。

在一个实施例中,如图3所示,包括:

第1.1步:本文使用mt表示时域混合语音,混合语音是由多个时域的纯净语音ni(t)线性相加得到,对混合语音mt进行短时傅里叶变换,对得到幅度谱xt进行归一化之后作为神经网络的输入。

第1.2步:定义s()为分离网络,输入xt,神经网络输出说话人的幅度谱s(xt)。

第1.3步:通过最小化均方误差lmse(s(xt),yt)训练分离网络,其中lmse()是均方误差函数,yt表示说话人纯净语音的幅度谱。

第2步:使用已经训练好的分离网络为q网络生成训练数据,然后使用该数据训练q网络(未来期望度量函数)。

第2.1步:先要获得q网络的训练样本。给定一个预先训练好的分离模型s(),输入xt,可以获得模型的输出s(xt),为了表示方便暂用ht表示s(xt),然后从语音分离网络的训练集中获得序列h={h1,hn,...,hm}除ht之外的成分。

第2.2步:对应强化学习中的概念,在当前状态xt执行动作s(xt)的未来期望度量就是完整序列h对应的sdr得分,使用q(h)表示,这样就获得了q网络的一条训练样本({xt,s(xt)},q(h))。

第2.3步:使用上面的方式获得一定量的训练数据,然后使用均方误差训练未来期望度量函数q。其中q网络使用卷积神经网络将xt和s(xt)表示为向量,然后将这两部分信息进行拼接,然后通过多层感知机预测q(h)。以最小化均方误差为目的,通过adam优化器优化模型参数。

第3步:将预先训练好的分离网络和未来期望预测网络q相结合进行联合训练,即将函数q整合到语音分离的损失函数中,以提升语音分离的效果,即获得更高的sdr评价指标sdr,具体损失函数定义如下:

其中,qtarget是期望的评价指标值。

上述技术方案的工作原理和有益效果为:本方法提出基于强化学习的语音分离方法,类似actor-critic的网络结构,通过直接优化测试时的评价指标,避免了训练损失(均方误差)和测试指标(sdr)不一致的问题,保证了分离模型训练时不会和期望指标产生偏差,从而提升了语音分离的性能。

本实施例还提供了一种语音分离装置,如图4所示,该装置包括:

获取模块401,用于获取混合语音信号;

提取模块402,用于对混合语音信号进行预处理,提取出混合语音信号的幅度谱xt以训练分离网络;

生成模块403,用于利用分离网络生成训练数据;

第一训练模块404,用于利用训练数据训练优化网络q;

第二训练模块405,用于利用分离网络和训练好的优化网络q对分离网络进行再次训练。

在一个实施例中,如图5所示,提取模块,包括:

转换子模块501,用于对混合语音信号进行预设时长傅里叶变换,得到幅度谱xt;

处理子模块502,用于将幅度谱xt进行归一化处理后传输给神经网络;

提取子模块503,用于定义s()为分离网络,输入幅度谱xt,通过神经网络对幅度谱xt提取语音特征,输出预测的掩蔽值,进而得到掩蔽值的幅度谱s(xt);

第一训练子模块504,用于通过最小化均方误差lmse(s(xt),yt)训练分离网络,其中lmse()为均方误差函数,yt表示说话人纯净语音的幅度谱。

在一个实施例中,生成模块,包括:

调用子模块,用于调用预先训练好的分离模型ht;

组成子模块,用于利用多个混合语音信号的幅度谱组成训练集;

第一获取子模块,用于通过训练集获取序列h={h1,h2,......hn},其中,h1,h2,......hn为在混合语音信号里出现的其他幅度谱;

计算子模块,用于计算序列h对应的sdr得分q(h),获取优化网络q的训练样本({xt,s(xt)},q(h))。

在一个实施例中,第一训练模块,包括:

第二获取子模块,用于获取预设数量的训练样本({xt,s(xt)},q(h))作为训练数据;

第二训练子模块,用于使用均方误差函数利用训练数据训练优化网络q;

其中,优化网络q使用卷积神经网络将xt和s(xt)表示为向量,然后将xt和s(xt)进行拼接,通过多层感知机预测最终q(h)。

在一个实施例中,第二训练模块,包括:

整合模块,用于利用下列公式将优化网络q整合到语音分离的损失函数中:

其中,lmse()为均方误差函数,qtarget为期望的评价指标值,q(xt,s(xt))为当前的评价值。

本领域技术用户员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1