一种多人的语音分离方法、装置、电子设备和存储介质与流程
本申请涉及人工智能技术领域,尤其涉及机器学习技术领域,提供了一种多人的语音分离方法、装置、电子设备和存储介质。
背景技术:
鸡尾酒会效应是人脑听觉具有的可以集中注意力“调入(tunein)”单个目标声音而“调出”其他竞争声音的能力的现象。尽管人脑听觉如何解决鸡尾酒会问题内部机理仍然未知,但是由于深度学习技术的飞速发展,用于说话人的识别和验证任务的深度学习模型也在快速发展。然而,它们通常与上述鸡尾酒会问题或语音分离任务无关。并且,相关技术中的说话人的识别和验证方法通常需要复杂的前处理流程,包括语音活动检测(sad),分段和聚类模块,以将短片段分组以对应于一个说话人的身份等。在严重干扰的情况下,说话人语音分离准确性也较低。
技术实现要素:
本申请实施例提供一种多人的语音分离方法、装置、电子设备和存储介质,用以提高说话人语音分离的准确性和语音分离效率。
本申请实施例提供的一种多人的语音分离方法,包括:
获取待分离的混合波形信号,所述混合波形信号包含多人的语音;
对所述混合波形信号进行特征提取,获得所述混合波形信号的编码特征;
通过对所述编码特征进行特征提取,从所述编码特征中分离出每个人的语音特征;
基于每个人的语音特征以及所述编码特征之间的关系,对每个人的语音特征进行调整,并对调整后的语音特征进行信号重建,获得每个人的重建语音信号。
本申请实施例提供的一种多人的语音分离装置,包括:
信号获取单元,用于获取待分离的混合波形信号,所述混合波形信号包含多人的语音;
特征提取模块,用于对所述混合波形信号进行特征提取,获得所述混合波形信号的编码特征;
知识表征模块,用于通过对所述编码特征进行特征提取,从所述编码特征中分离出每个人的语音特征;
信号重建模块,用于基于每个人的语音特征以及所述编码特征之间的关系,对每个人的语音特征进行调整,并对调整后的语音特征进行信号重建,获得每个人的重建语音信号。
可选的,所述特征提取模块,具体用于将所述混合波形信号输入已训练的语音分离模型,基于所述已训练的语音分离模型对所述混合波形信号进行特征提取,获得所述编码特征;
所述知识表征模块,具体用于基于所述已训练的语音分离模型,对所述编码特征进行特征提取,获得每个人的语音特征;
所述信号重建模块,具体用于基于所述已训练的语音分离模型,根据每个人的语音特征以及所述编码特征之间的关系,对每个人的语音特征进行调整,并对调整后的语音特征进行信号重建,获得所述已训练的语音分离模型输出的每个人的重建语音信号;
其中,所述已训练的语音分离模型是根据训练样本数据集训练得到的,所述训练样本数据集中的训练样本包括多人的多条语音样本。
可选的,所述已训练的语音分离模型包括通用子网络;所述通用子网络包括编码器以及由b个全局关注局部循环单元组成的堆栈,b为正整数;
所述特征提取模块具体用于:
将所述混合波形信号经由所述编码器转化为二维时间序列;
将所述二维时间序列分割为s段局部序列,并将分割得到的s段局部序列打包形成三维输入张量,其中每相邻两个局部序列之间存在部分重叠,s为正整数;
将所述三维输入张量输入由b个全局关注局部循环单元组成的堆栈,进行b次特征提取,获得由最后一个全局关注局部循环单元输出的所述编码特征,其中每相邻两个全局关注局部循环单元中,前一个全局关注局部循环单元的输出为后一个全局关注局部循环单元的输入,且第一个全局关注局部循环单元的输入为所述三维输入张量,每个全局关注局部循环单元的输入特征和输出特征的形状相同。
可选的,所述全局关注局部循环单元包括局部循环层和全局关注层;
所述局部循环层用于对接收到的输入特征中的每段局部序列的段内短期依赖性进行建模,输出中间张量l;
所述全局关注层用于基于多头自我注意力机制,对所述全局关注局部循环单元的中间张量g中的每段局部序列进行段间处理;将基于多头自我注意力机制处理得到的张量进行线性映射后拼接得到三维张量,作为所述全局关注局部循环单元的输出特征,其中所述中间张量g是对所述中间张量l进行线性映射和层归一化处理后得到的张量与位置编码张量的和。
可选的,所述已训练的语音分离模型还包括说话人知识子网络;所述说话人知识子网络包括由b1个全局关注局部循环单元组成的堆栈和嵌入层,b1为正整数;
所述知识表征模块具体用于:
将所述编码特征输入由b1个全局关注局部循环单元组成的堆栈,进行b1次特征提取,其中每相邻两个全局关注局部循环单元中,前一个全局关注局部循环单元的输出为后一个全局关注局部循环单元的输入,且第一个全局关注局部循环单元的输入为所述编码特征,每个全局关注局部循环单元的输入特征和输出特征的形状相同;
将最后一个全局关注局部循环单元的输出特征输入所述嵌入层,经过所述嵌入层进行投射及合并处理,获得每个人的语音特征。
可选的,所述全局关注局部循环单元包括局部循环层和全局关注层;
所述局部循环层用于对接收到的输入特征中的每段局部序列的段内短期依赖性进行建模,输出中间张量l1;
所述全局关注层用于基于多头自我注意力机制,对所述全局关注局部循环单元的中间张量g1中的每段局部序列进行段间处理;将基于多头自我注意力机制处理得到的张量进行线性映射后拼接得到三维张量,作为所述全局关注局部循环单元的输出特征,其中所述中间张量g1是对所述中间张量l1进行线性映射和层归一化处理后得到的张量与位置编码张量的和。
可选的,所述已训练的语音分离模型还包括语音信号刺激子网络;所述语音信号刺激子网络包括由b2个全局关注局部循环单元组成的堆栈和解码器,b2为正整数;
所述信号重建模块具体用于:
将每个人的语音特征以及所述编码特征输入由b2个全局关注局部循环单元组成的堆栈,进行b2次注意力特征提取,获得最后一个全局关注局部循环单元输出的用于分离所述混合波形信号的深度语音特征,其中每个全局关注局部循环单元的输入特征都包括每个人的语音特征,并且每相邻两个全局关注局部循环单元中,前一个全局关注局部循环单元的输出为后一个全局关注局部循环单元的输入;
将所述深度语音特征经过所述解码器进行信号重建,输出每个人的重建语音信号。
可选的,每一次进行注意力特征提取时,所述全局关注局部循环单元用于执行下列步骤:
对接收到的输入特征中的每段局部序列的段内短期依赖性进行建模,输出中间张量l2;将对所述中间张量l2进行线性映射和层归一化处理后得到的张量与位置编码张量的和,作为所述全局关注局部循环单元的中间张量g2;
根据所述中间向量g2以及每个人的语音特征进行注意力特征提取,获得所述全局关注局部循环单元的输出特征。
可选的,所述信号重建模块具体用于:
基于查询向量与每个人的语音特征之间的点积,获得在说话人语音特征序列上产生注意力分布特征,其中第一个全局关注局部循环单元对应的查询向量是根据所述编码特征以及段内位置信息得到的,其他全局关注局部循环单元对应的查询向量是根据上一个全局关注局部循环单元的输出特征以及段内位置信息得到的;
根据所述注意力分布特征对每个人的语音特征进行加权求和,获得引导向量;
根据所述引导向量对所述中间向量g2进行调制后,根据调制后的中间向量g2以及所述引导向量之间的相似度,获得双重注意力分布特征;
基于所述双重注意力特征对调制后的中间向量g2的值进行加权求和,获得所述全局关注局部循环单元的输出特征。
可选的,所述装置还包括模型训练模块:
所述已训练的语音分离模型是由所述模型训练模块通过下列方式训练得到的:
从所述训练样本数据集中选取一个正源语音样本和多个负源语音样本,其中所述正源语音样本为目标说话人的语音样本,所述负源语音样本为除所述目标说话人之外的其他说话人的语音样本;
将所述正源语音样本和多个负源语音样本输入未训练的语音分离模型,经由所述未训练的语音分离模型中的通用子网络对所述正源语音样本和多个负源语音样本进行混合,得到包含多个目标源的混合语音样本;
将所述混合语音样本进行特征提取,获得所述通用子网络输出的每个人的语音样本之间的通用样本特征;
基于所述说话人知识子网络,对所述通用样本特征进行特征提取,获得所述说话人知识子网络输出的每个人的嵌入样本特征;
基于所述语音信号刺激子网络,对每个人的嵌入样本特征进行注意力特征提取和信号重建后,获得所述语音信号刺激子网络输出的每个人的重建语音样本;
基于每个人的重建语音样本,通过自监督学习的方式对所述未训练的语音分离模型中的网络参数进行多次调整,获得所述已训练的语音分离模型。
可选的,所述通用子网络还包括随机混合器;
所述模型训练模块具体用于:
在目标信噪比条件下,基于所述随机混合器将所述正源语音样本和多个负源语音样本进行随机混合,获得所述随机混合器输出的所述混合语音样本。
本申请实施例提供的一种电子设备,包括处理器和存储器,其中,所述存储器存储有程序代码,当所述程序代码被所述处理器执行时,使得所述处理器执行上述任意一种多人的语音分离方法的步骤。
本申请实施例提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述任意一种多人的语音分离方法的步骤。
本申请实施例提供一种计算机可读存储介质,其包括程序代码,当所述程序产品在电子设备上运行时,所述程序代码用于使所述电子设备执行上述任意一种多人的语音分离方法的步骤。
本申请有益效果如下:
本申请实施例提供的语音分离方法、装置、电子设备和存储介质,由于本申请实施例在进行语音分离时,直接通过对混合波形信号进行特征提取来获取通用的编码特征,进而基于该编码特征学习各个说话人的表征,分离得到各个说话人的语音特征,进行说话人验证;并基于通用特征与各个说话人的语音特征来对进行语音分离和信号重建,以获取各个说话人的重建语音信号。由于本申请实施例中的语音分离方法不需要经过复杂的前处理流程,而是基于通用的编码特征执行多任务,紧凑、简洁且没有复杂的前处理流程,例如不需要k-means均值聚类、sad、分段、干扰检测器和说话人线下注册语音,提高了语音分离的准确性和效率。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例中的一种应用场景的一个可选的示意图;
图2为本申请实施例中的一种多人的语音分离方法的流程示意图;
图3为本申请实施例中的一种语音分离模型的结构示意图;
图4为本申请实施例中的一种全局关注局部循环单元的组成结构示意图;
图5为本申请实施例中的一种信息交互方法的示意图;
图6为本申请实施例中的一种语音分离模型的训练方法的流程示意图;
图7为本申请实施例中的另一种语音分离模型的结构示意图;
图8为本申请实施例中的一种实验结果的示意图;
图9为本申请实施例中的一个基于语音分离模型的多个说话人语音分离方法的流程示意图;
图10为本申请实施例中的一种语音分离装置的组成结构示意图;
图11为应用本申请实施例的一种电子设备的一个硬件组成结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请技术方案的一部分实施例,而不是全部的实施例。基于本申请文件中记载的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请技术方案保护的范围。
下面对本申请实施例中涉及的部分概念进行介绍。
鸡尾酒会效应:是指人的一种听力选择能力,在这种情况下,注意力集中在某一个人的谈话之中而忽略背景中其他的对话或噪音。该效应揭示了人类听觉系统中令人惊奇的能力,即本申请实施例可以在噪声中谈话。鸡尾酒会现象是图形-背景现象的听觉版本。这里的"图形"是本申请实施例所注意或引起本申请实施例注意的声音,"背景"是其他的声音。
语音分离模型:是本申请实施例中新提出的一种来模拟鸡尾酒会效应的tune-in模型。其中tune-in表示“trainingundernegativeenvironmentwithinterference”,即在负面带干扰环境下训练模型的方法,它同时学习说话人知识和语音信号刺激这两个独立空间,在这两个空间之间,信息通过新颖的交叉和双重注意机制相互投射,从而模仿了人类的鸡尾酒会效应中的自下而上和自上而下的过程。
全局关注局部循环单元:是一种具有新型的全局关注和局部循环的元胞结构,本申请实施例中所列举的一种注意力单元。本申请实施例中的通用空间、说话人知识空间和语音信号刺激空间中的galr单元构成了堆栈的基础部分。该单元由两个主要层组成:执行段内处理的局部循环层,以及执行段间处理的全局关注层。
自监督学习(self-supervisedlearning)方法:可以被看作是机器学习的一种“理想状态”,模型直接从无标签数据中自行学习,无需标注数据。本申请实施例中的语音分离模型就是采用自监督学习的方式训练得到的,输入的是一堆无监督的数据,但是通过数据本身的结构或者特性,人为构造标签出来。有了标签之后,就可以类似监督学习一样进行训练。
泛化性:一个假设能够正确分类训练集之外数据(即新的,未知数据)的能力成为该假设的泛化性。在本申请实施例中所提出的语音分离模型可以在严重干扰的情况下学习到具有实质性的判别性和可泛化的深度说话人表征。
pit(permutationinvarianttraining,置换不变训练):其核心工作是提出一种通过最小化分离误差解决标签排列问题的排列不变训练技术。它训练一个简单的多输出神经网络,用置换不变训练准则估计每个说话人的一个掩码。计算每个可能的训练目标分配到混合估计的重建损失,然后使用最小化损失的排列进行训练。在本申请实施例中,训练语音分离模型时,使用句子级别的置换不变训练(utterance-levelpermutationinvarianttraining,u-pit)的“自动驾驶(auto-pilot)”信号重建开始以si-snr损失作为speech-stimuli空间中的目标lsp。
张量:是机器学习的基础。它的核心是一个数据容器,多数情况下,它包含数字,有时候它也包含字符串,但这种情况比较少。因此把它想象成一个数字的水桶。0维张量是标量,1维张量是向量,2维张量是矩阵,……。
batchsize:批大小。在深度学习中,一般采用sgd(随机梯度下降)训练,即每次训练在训练集中取batchsize个样本训练,也就是一次训练所选取的样本数。batchsize的大小影响模型的优化程度和速度。同时其直接影响到gpu内存的使用情况,假如gpu内存不大,该数值最好设置小一点。batchsize的大小决定了深度学习训练过程中的完成每个epoch(指一代训练)所需的时间和每次迭代(iteration)之间梯度的平滑程度。1个iteration等于使用batchsize个样本训练一次;而1个epoch等于使用训练集中的全部样本训练一次,通俗的讲epoch的值就是整个数据集被轮几次。
本申请实施例涉及人工智能(artificialintelligence,ai)和机器学习技术,基于人工智能中的计算机视觉技术和机器学习(machinelearning,ml)而设计。
人工智能是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。
人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能技术主要包括计算机视觉技术、自然语言处理技术、以及机器学习/深度学习等几大方向。随着人工智能技术研究和进步,人工智能在多个领域展开研究和应用,例如常见的智能家居、智能客服、虚拟助理、智能音箱、智能营销、无人驾驶、自动驾驶、机器人、智能医疗等,相信随着技术的发展,人工智能将在更多的领域得到应用,并发挥越来越重要的价值。
机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。
机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习等技术。
在本申请实施例中提出的语音分离方法可分为两部分,包括训练部分和应用部分;其中,训练部分就涉及到机器学习这一技术领域,在训练部分中,通过机器学习这一技术训练语音分离模型,使得训练样本中目标说话人语音信号和其他说话人的干扰信号的混合波形信号通过语音分离模型后,得到各个说话人干净的重建语音信号,并通过优化算法不断调整模型参数,得到已训练的语音分离模型;应用部分用于通过使用在训练部分训练得到的语音分离模型,从由多个说话人的语音信号混合得到的混合波形信号中分离出目标说话人的语音信号等。
下面对本申请实施例的设计思想进行简要介绍:
由于深度学习模型的最新发展,语音分离已经取得了显著进展。在几个基准数据集上,最先进的(stoa)语音分离性能已大大提高。另一方面,用于说话人的识别和验证任务的现代深度学习模型也在快速发展。但是,它们通常与上述鸡尾酒会问题或语音分离任务无关。相关技术中的说话人的识别和验证方法通常需要复杂的前处理流程,包括语音活动检测,分段和聚类模块,以将短片段分组以对应于一个说话人的身份。
此外,如果系统需要处理负面环境中受干扰的语音,那么它们还需要额外的干扰检测器和分类器模块,这会使处理流程更加复杂。在高度受干扰的场景中,标准说话人识别和验证系统的性能也会受到严重损害。并且,相关技术中普遍采用的强监督模型(例如多标签分类,回归和聚类)存在泛化性不足的缺点。
有鉴于此,本申请实施例提供了一种更为通用、开放和灵活的方法来模拟鸡尾酒会效应,在进行语音分离时,直接通过对混合波形信号进行特征提取来获取通用的编码特征,进而基于该编码特征学习各个说话人的表征,分离得到各个说话人的语音特征,进行说话人验证;并基于通用特征与各个说话人的语音特征来对进行语音分离和信号重建,以获取各个说话人的重建语音信号。由于本申请实施例中的语音分离方法不需要经过复杂的前处理流程,而是基于通用的编码特征执行多任务,紧凑、简洁且没有复杂的前处理流程,例如不需要k-means均值聚类、sad、分段、干扰检测器和说话人线下注册语音,提高了语音分离的准确性和效率。
以下结合说明书附图对本申请的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本申请,并不用于限定本申请,并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
如图1所示,其为本申请实施例的应用场景示意图。该应用场景图中包括两个终端设备110和一个服务器120,可通过终端设备110登录操作界面。终端设备110与服务器120之间可以通过通信网络进行通信。
在一种可选的实施方式中,通信网络是有线网络或无线网络。终端设备110以及服务器120可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
在本申请实施例中,终端设备110为用户使用的电子设备,该电子设备可以是个人计算机、手机、平板电脑、笔记本、电子书阅读器、智能家居等具有一定计算能力并且运行有即时通讯类软件及网站或者社交类软件及网站的计算机设备。各终端设备110通过无线网络与服务器120,服务器120可以是独立的物理服务器120,也可以是多个物理服务器120构成的服务器120集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn(contentdeliverynetwork,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器120。
其中,本申请实施例中的语音分离模型可以部署在终端设备上,也可以部署在服务器上。当语音分离模型部署在终端设备上时,即可由终端设备获取待分离的混合波形信号,对混合波形信号进行特征提取,获得混合波形信号的编码特征;通过对编码特征进行特征提取,从编码特征中分离出各个说话人的语音特征;基于各个说话人的语音特征以及编码特征之间的关系,对各个说话人的语音特征进行调整,并对调整后的语音特征进行信号重建,获得各个说话人的重建语音信号。当语音分离模型部署在服务器上时,终端设备可以获取待分离的混合波形信号,并将混合波形信号上传至服务器,由服务器对混合波形信号进行特征提取,获得混合波形信号的编码特征;通过对编码特征进行特征提取,从编码特征中分离出各个说话人的语音特征;基于各个说话人的语音特征以及编码特征之间的关系,对各个说话人的语音特征进行调整,并对调整后的语音特征进行信号重建,获得各个说话人的重建语音信号。之后,服务器可将各个说话人的重建语音信号返回给终端设备。本申请中,多人一般是指多个说话人,多人语音即包含多个说话人的语音。
需要说明的是,本申请实施例中的多人的语音分离方法可以应用到很多和语音相关的产品应用中,例如音视频会议系统、智能语音交互、智能语音助手、在线语音识别系统、车载语音交互系统等,可在复杂的具有高度可变性的真实声学环境中显著地改善人类听觉的可懂度以及机器自动语音识别系统的准确率,从而提升用户体验,提高用户粘性。
参阅图2所示,为本申请实施例提供的一种多人的语音分离方法的实施流程图,该方法的具体实施流程如下:
在步骤s21中:获取待分离的混合波形信号,混合波形信号包含多人的语音;
在步骤s22中:对混合波形信号进行特征提取,获得混合波形信号的编码特征;
在步骤s23中:通过对编码特征进行特征提取,从编码特征中分离出每个人的语音特征;
在步骤s24中:基于每个人的语音特征以及编码特征之间的关系,对每个人的语音特征进行调整,并对调整后的语音特征进行信号重建,获得每个人的重建语音信号。
由上述实施方式可知,本申请实施例在进行语音分离时,直接通过对混合波形信号进行特征提取来获取通用的编码特征,进而基于该编码特征学习各个说话人的表征,分离得到各个说话人的语音特征,进行说话人验证;并基于通用特征与各个说话人的语音特征来对进行语音分离和信号重建,以获取各个说话人的重建语音信号。由于本申请实施例中的语音分离方法不需要经过复杂的前处理流程,而是基于通用的编码特征执行多任务,紧凑、简洁且没有复杂的前处理流程,例如不需要k-means均值聚类、sad、分段、干扰检测器和说话人线下注册语音,提高了语音分离的准确性和效率。
进一步的,本申请实施例中的多人的语音分离方法也可结合人工智能技术来实现,其中,人工智能是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。
具体的实现步骤为:将混合波形信号输入已训练的语音分离模型,基于已训练的语音分离模型对混合波形信号进行特征提取,获得编码特征;基于已训练的语音分离模型,对编码特征进行特征提取,获得各个说话人的语音特征;基于已训练的语音分离模型,根据各个说话人的语音特征以及编码特征之间的关系,对各个说话人的语音特征进行调整,并对调整后的语音特征进行信号重建,获得已训练的语音分离模型输出的各个说话人的重建语音信号;其中,语音分离模型是根据训练样本数据集训练得到的,训练样本数据集中的训练样本包括多个说话人的多条语音样本。
参阅图3所示,其为本申请实施例中提供的一种语音分离模型的结构示意图。下文中主要是以tune-in来对该模型进行命名的。tune-in是本申请实施例提出的一种更为通用、开放和灵活的,用来模拟鸡尾酒会效应的自我监督注意力网络。其中tune-in表示“trainingundernegativeenvironmentwithinterference”,即在负面带干扰环境下训练模型的方法。也就是说本申请实施例中的语音分离模型是在负面带干扰的环境下训练得到的,因此可以在严重干扰的情况下,基于本申请实施例中提出的tune-in模型学习到具有实质性的判别性和可泛化的深度说话人表征。
如图3所示,整个语音分离模型具体包括三部分,对应图3所示的三个虚线框,分别为:msm(maskedspeechmodel,掩膜语音模型)genericspace(通用空间,又称通用子网络),speaker-knowledgespace(说话人知识空间,又称说话人知识子网络)和speech-stimulispace(语音信号刺激空间,又称语音信号刺激子网络)。
其中,通用子网络包括编码器(encoder)以及由b个全局关注局部循环单元(globally-attentiveandlocally-recurrent,galr)组成的堆栈;说话人知识子网络包括由b1个全局关注局部循环单元组成的堆栈和嵌入层(embedder);语音信号刺激子网络包括由b2个全局关注局部循环单元组成的堆栈和解码器(decoder)。b、b1和b2都为正整数。
在本申请实施例中,通用空间用于执行一项基本任务,即学习混合波形信号中目标信号(本文称为“正源”)和干扰信号(本文称为“负源”)具有的区分性的编码特征,也可称作通用特征。在接下来的下游空间(指说话人知识空间和语音信号刺激空间)中,将提取的编码特征转换为有针对性的表征,这些表征与本申请实施例分别希望在说话人知识空间和语音信号刺激空间中执行的不同特定任务相关。
下面对这三个空间分别进行详细介绍:
首先,本申请实施例中需要通过通用空间提取混合波形信号的编码特征,具体可分为以下步骤:
s1:将混合波形信号经由编码器转化为二维时间序列;
以包含有c个源的混合波形信号
s2:将二维时间序列分割为s段局部序列(即信号段),并将分割得到的s段局部序列打包形成三维输入张量,其中每相邻两个局部序列之间存在部分重叠,s为正整数;
具体的,可将二维时间序列
在本申请实施例中,段和段之间存在部分重叠时,可以保证段和段之间有一定的关联,使得段与段之间的过渡较平缓。
s3:将三维输入张量输入由b个全局关注局部循环单元组成的堆栈,进行b次特征提取,获得由最后一个全局关注局部循环单元输出的编码特征,其中每相邻两个全局关注局部循环单元中,前一个全局关注局部循环单元的输出为后一个全局关注局部循环单元的输入,且第一个全局关注局部循环单元的输入为三维输入张量,每个全局关注局部循环单元的输入特征和输出特征的形状相同。
如图3所示,将三维输入张量x传递给由b个统一的galr元胞结构(即galr单元)组成的堆栈。每个galr单元接收3维输入张量
可选的,本申请实施例采用了一种统一的galr单元作为注意力单元,以打破阻碍将注意力机制应用于超长序列的内存和计算方面的瓶颈。参阅图4所示,其为本申请实施例中所列举的一种全局关注局部循环单元的组成结构示意图。图4所示的全局关注局部循环单元(galrcell)由两个主要层组成:(1)执行段内处理的局部循环层(locallyrecurrentlayer),以及(2)执行段间处理的全局关注层(globallyattentivelayer)。
下面对这两个主要层分别进行详细介绍:
(1)locallyrecurrentlayer(局部循环层):用于对接收到的输入特征中的每段局部序列的段内短期依赖性进行建模,输出中间张量l。
在对每个段内的短期依赖性进行建模时,获得中间张量l时,主要是基于下述公式1实现的:
其中
此外,本申请实施例中不需要在s长度的序列重复k遍的全局关注层的计算。因此,本申请实施例中可先将局部循环层输出的中间张量
(2)globallyattentivelayer(全局关注层):用于基于多头自我注意力机制,对全局关注局部循环单元的中间张量g中的每段局部序列进行段间处理;将基于多头自我注意力机制处理得到的张量进行线性映射后拼接得到三维张量,作为全局关注局部循环单元的输出特征。
通过上述计算后,至此,在中间张量g(b)上应用多头自注意力层在运行时内存占用以及计算复杂度方面变得可行。在本申请实施例中,多头自注意力层可以应用transformer模型,在此不再赘述。最后,将自注意力层输出
需要说明的是,本申请实施例中跟声学模型建模不一样,语音分离任务除了需要对紧凑的上下文(例如音素、音节、单词)进行建模之外,还需要遍历更大范围的、更宽松的、即兴发挥的上下文。关注层更容易学习远程依赖关系,因为它在输入和输出序列中位置的任何组合之间的距离都较短。因此,在本申请实施例中在全局建模时选择基于注意力机制的关注层而非相关技术中所采用的循环层或卷积层。
然而,与递归和卷积层不同,常规的自注意力机制仍然不适合应用于语音分离任务。因为与图像和语言处理相比,语音分离任务涉及到很长的语音信号序列,因此,运行时内存消耗成为瓶颈。就计算复杂度而言,序列分离中的大多数情况是序列长度大于表示维度,这时自注意力层也比循环层慢。相反,galr中通过超参数k可以控制由本地循环层建模的本地信息的粒度。因此,galr的全局关注层需要处理的序列长度s按系数k的比例缩减,从而大大减轻了运行时间内存的消耗。
需要说明的是,本申请实施例中所提出的galr结构,可以突破在处理非常长序列的任务上自我注意机制的内存和计算瓶颈。但是,图4所示的galr结构仅是在本申请实施例的一个实例中所列举的一种元胞结构,不代表本申请实施例的tune-in框架必须采用该galr结构,还可以采用其它的网络结构构造tune-in中内部元胞,例如dprnn(dual-pathrecurrentneuralnetworks,双向递归神经网络)中由bi-lstm(或bi-lstm加unidirectional-lstm)构造的dual-path的blocks等。在此不做具体限定。
在本申请实施例中,通过通用空间提取混合波形信号的编码特征之后,需要将编码特征分别输入说话人知识空间和语音信号刺激空间,下面分别对这两个空间的处理过程进行详细介绍:
可选的,在基于说话人知识空间分离得到各个说话人的语音特征时,具体可分为以下几个步骤:
s1:将编码特征输入由b1个全局关注局部循环单元组成的堆栈,进行b1次特征提取,其中每相邻两个全局关注局部循环单元中,前一个全局关注局部循环单元的输出为后一个全局关注局部循环单元的输入,且第一个全局关注局部循环单元的输入为编码特征,每个全局关注局部循环单元的输入特征和输出特征的形状相同;
也就是说,输入说话人知识空间的第一个全局关注局部循环单元的输入特征为
可选的,在说话人知识空间中的全局关注局部循环单元的结构也可如图4所示,具体分为局部循环层和全局关注层:
其中,局部循环层用于对接收到的输入特征中的每段局部序列的段内短期依赖性进行建模,输出中间张量l1;可选的,l1的计算公式同公式1,在此不再重复赘述。
之后,通过计算对中间张量l1进行线性映射和层归一化处理后得到的张量与位置编码张量的和,获得全局关注局部循环单元的中间张量g1,计算过程同上述通用空间中计算galr单元的中间张量g(b)的过程类似,在此不再重复赘述。
同样地,全局关注层用于基于多头自我注意力机制,对全局关注局部循环单元的中间张量g1中的每段局部序列进行段间处理;将基于多头自我注意力机制处理得到的张量进行线性映射后拼接得到三维张量,作为全局关注局部循环单元的输出特征。
在本申请实施例中,说话人知识空间中的第一个全局关注局部循环单元接收到的输入特征即为通用空间输出的编码特征
s2:将最后一个全局关注局部循环单元的输出特征输入嵌入层,经过嵌入层进行投射及合并处理,获得各个说话人的语音特征。
在本申请实施例中,将最后一个该空间的galr单元的输出
在本申请实施例中,语音信号刺激空间的主要任务为根据各个说话人的语音特征以及混合波形信号的编码特征之间的关系,学习用于分离混合波形信号的深度语音表征,进而进行信号重建,以得到各个说话人的重建语音信号。下面对基于语音信号刺激空间分离得到各个说话人的重建语音信号的过程进行详细介绍,具体分为以下步骤:
s1:将各个说话人的语音特征以及编码特征输入由b2个全局关注局部循环单元组成的堆栈,进行b2次注意力特征提取,获得最后一个全局关注局部循环单元输出的用于分离混合波形信号的深度语音特征,其中每个全局关注局部循环单元的输入特征都包括各个说话人的语音特征,并且每相邻两个全局关注局部循环单元中,前一个全局关注局部循环单元的输出为后一个全局关注局部循环单元的输入;
在本申请实施例中,语音信号刺激空间中的第一个全局关注局部循环单元接收到的输入特征包括通用空间输出的
需要注意的是,在基于语音信号刺激空间分离得到各个说话人的重建语音信号时,该空间的输入特征除了通用空间输出的编码特征之外,还包括各个说话人的语音特征,因而在进行注意力特征提取的过程中,涉及到了语音信号刺激空间与说话人知识空间的信息交互。也就是说,在语音信号刺激空间中的全局关注局部循环单元进行注意力特征提取的过程与上述所列举的两个空间中的处理过程并不完全相同。具体的,实现语音信号刺激空间与说话人知识空间的信息交互的方式有很多种,在下文中将会举例说明。
s2:将深度语音特征经过解码器进行信号重建,输出各个说话人的重建语音信号。
在本申请实施例中,语音信号刺激空间中最后一个galr单元的输出
可选的,每一次进行注意力特征提取时,语音信号刺激空间中的全局关注局部循环单元都用于执行下列步骤,以实现信息交互,具体的:
s1:通过局部循环层对接收到的输入特征中的每段局部序列的段内短期依赖性进行建模,输出中间张量l2;
s2:将对中间张量l2进行线性映射和层归一化处理后得到的张量与位置编码张量的和,作为全局关注局部循环单元的中间张量g2;
需要说明的是,计算中间张量l2的过程也可参考公式1,在此不再重复赘述。同理,计算中间张量g2的过程也同上述所列举的计算中间张量g和中间张量g1的过程类似,重复之处不再赘述。
s3:根据中间向量g2以及各个说话人的语音特征进行注意力特征提取,获得全局关注局部循环单元的输出特征。
需要说明的是,本申请实施例中,语音信号刺激空间中根据中间向量g2以及各个说话人的语音特征进行注意力特征提取,获得全局关注局部循环单元的输出特征的这一步骤,与通用空间和说话人知识空间中经由全局关注局部循环单元中的全局关注层来进行特征提取时存在不同,该过程涉及语音信号刺激空间与说话人知识空间的信息交互。
接下来,对实现语音信号刺激空间与说话人知识空间的信息交互的方式进行详细介绍:
为了实现tune-in架构中上层两个空间之间的信息交互,可以采用本申请实施例提出的新颖的交叉注意力(crossattention)和双重注意力(dualattention)机制,也可以采用传统的方法。下面对这两种方法各提供介绍说明。
方法一、交叉注意和双重注意机制。
在本申请实施例中,说话人知识空间和语音信号刺激空间之间,信息通过新颖的交叉和双重注意机制相互投射,从而模仿了人类的鸡尾酒会效应中的自下而上和自上而下的过程。
需要注意的是,本申请实施例中提出的注意力网络架构采用的新型的自下而上和自上而下的机制与相关技术中的自下而上和自上而下的机制根本上不同。本申请实施例采用了一种统一的注意力单元,以打破阻碍将注意力机制应用于超长序列的内存和计算方面的瓶颈。
具体的,来自语音信号刺激空间的自下而上查询,目的是从说话人知识空间检索最相关的信息,并过滤掉非显著的、嘈杂或多余的信息。为了实现这一点,在本申请实施例中采用交叉注意和双重注意机制,其中来自两个空间的信息仅通过查询进行通信。在本申请实施例中使用query(·),key(·)和value(·)表示投影函数,这些投影函数将相应的输入向量分别线性映射到查询、键和值向量。
在本申请实施例中,自下而上指通过交叉注意模块将查询向量投射到说话人知识的空间上。具体的,基于自下而上的查询向量与各个说话人的语音特征之间的点积,获得在说话人语音特征序列上产生注意力分布特征,其中第一个全局关注局部循环单元对应的查询向量是根据编码特征以及段内位置信息得到的,其他全局关注局部循环单元对应的查询向量是根据上一个全局关注局部循环单元的输出特征以及段内位置信息得到的。
在本申请实施例中,在语音信号刺激空间的第一个全局关注局部循环单元对应的查询向量
具体来说,以第一个全局关注局部循环单元的处理过程为例,通过计算
其中,
为了简化符号,在本申请实施例中省略了所有时间轴索引。在计算得到注意力分布特征之后,即可根据注意力分布特征对各个说话人的语音特征进行加权求和,获得引导向量。如公式3所示:
其中,引导向量
在本申请实施例中,自上而下的引导是从说话人知识空间中提出的。本申请实施例中通过双重注意模块将引导向量zj投射到语音信号刺激空间上。具体过程为:根据引导向量zj对中间向量g2进行调制后,根据调制后的中间向量g2以及引导向量zj之间的相似度,获得双重注意力分布特征,具体参见公式4;基于双重注意力特征对调制后的中间向量g2的值进行加权求和,获得全局关注局部循环单元的输出特征,具体参见公式5。
由于本申请实施例中的注意机制同时应用于语音信号刺激空间中的输入自注意向量
也就是说,对于语音信号刺激空间里的b2个galr单元,每个galr单元在处理时都会涉及一次交叉注意和双重注意。当然,也可只在第一个galr单元进行交叉注意和双重注意,后续的galr单元只需要进行双重注意即可,即交叉注意过程只处理一次,而双重注意过程处理b2次。该方式下,对于第一个galr单元,基于公式2和公式3实现交叉注意,得到引导向量zj;基于公式4和公式5实现双重注意,得到
在本申请实施例中,
下面结合图5对本申请实施例中所列举的基于交叉注意和双重注意机制的方式,实现说话人知识空间和语音信号刺激空间之间的信息交互过程进行详细介绍,其中图5主要是对语音信号刺激空间中的一个galr单元:
其中,msm通用空间中的最后一个galr单元的输出x(b+1)分别输入说话人知识空间和语音信号刺激空间。之后,说话人知识空间基于x(b+1)获取到各个说话人的语音特征yj,这里列举j=1或2,对应图5中的y1和y2。语音信号刺激空间基于x(b+1)获取到galr单元的中间向量
然后,通过双重注意模块将引导向量投射到语音信号刺激空间上,实现自上而下的引导,最终获得galr单元的输出
之后,重复上述过程,将语音信号刺激空间中的最后一个galr单元的输出特征作为深度语音特征,然后经过解码器进行信号重建后,即可获得各个说话人的重建语音信号。
由上述内容可知本申请实施例提出的注意力网络架构采用了新型的自下而上和自上而下的机制。在本申请实施例中,通过分别学习和保持说话人知识空间和语音信号刺激空间,然后在两个空间之间利用注意力机制进行信息交换,模仿了人类神经系统的自下而上和自上而下的过程。另外,tune-in中构建的结构打破了常规方法的内存和计算瓶颈,使训练效率大大提高。在本申请实施例中揭示,可以在严重干扰的情况下本申请实施例提出的tune-in框架学习到具有实质性的判别性和可泛化的深度说话人表征。
除了上述实施例中所列举的交叉注意和双重注意机制之外,还可采用其它传统已有的方法来实现信息的交互,比如film(feature-wiselinearmodulation,特征方面的线性调制)方法,下面对film方法进行详细介绍:
方式二、通过在tune-in框架上应用已有的film算法在galr单元输出的信息上,具体是基于公式6至公式8实现的:
attn_d=softmax(query(g(b))t·key(g(b)));公式6
其中,g(b)即为语音信号刺激空间中的galr单元的中间向量g2,b=1,…,b2,在基于g(b)计算得到注意力分布attn_d之后,即可基于attn_d计算得到
需要说明的是,除了上述实施例中所列举的film方法之外,还可采用其它传统的方法,例如通过线性组合、乘法或串联的方式将说话人的嵌入表征和语音特征融合到相同的向量空间中,在此不做具体限定。
下面对本申请实施例中的语音分离模型的训练过程进行详细介绍:
首先先介绍本申请实施例中的训练过程中所采用的训练样本数据集:
在本申请实施例中所采用的数据集为一种大规模的公开数据集librispeech。其中librispeech是衡量语音识别技术的主流的开源数据集,错词率是衡量语音识别技术水平的核心指标,是由n=2484个说话人组成的982.1小时语料库。本申请将该语料库分为了三个数据集:训练集,验证集和测试集。
其中,训练集包括来自2411个说话人的12055句话语(划分为每人5句15秒的语音);验证集包括来自相同2411个说话人的另外7233话语(划分为每人收录3句15秒的语音);测试集包含来自其余73个说话人的4380语音(划分为每人60句4秒的语音)。
此外,本申请实施例中也使用了另一个基准数据集wsj0-2mix,用于与最新的语音分离系统进行比较。wsj0-2mix包括了由来自101个说话人的20000句话语组成的30小时训练集,由来自相同的101个说话人的5000句话语组成的10小时验证集,以及由来自不同的18个说话人的3000句话语组成的5小时测试数据。
参阅图6所示,其为本申请实施例中提供的一种基于语音分离模型训练方法的流程示意图。该方法的具体实施流程如下:
s61:从训练样本数据集中选取一个正源语音样本和多个负源语音样本;
其中,训练样本数据集可以是上述实施例中所列举的基于librispeech或wsj0-2mix所划分得到的训练集。
s62:将正源语音样本和多个负源语音样本输入未训练的语音分离模型,经由未训练的语音分离模型中的通用子网络对正源语音样本和多个负源语音样本进行混合,得到包含多个目标源的混合语音样本;
s63:将混合语音样本进行特征提取,获得通用子网络输出的每个人的语音样本之间的通用样本特征;
s64:基于说话人知识子网络,对通用样本特征进行特征提取,获得说话人知识子网络输出的每个人的嵌入样本特征;
s65:基于语音信号刺激子网络,对每个人的嵌入样本特征进行注意力特征提取和信号重建后,获得语音信号刺激子网络输出的每个人的重建语音样本;
其中,步骤s63至步骤s65的实现方式同上述所列举的语音分离模型的使用过程类似,在此不再重复赘述。
s66:基于每个人的重建语音样本,通过自监督学习的方式对未训练的语音分离模型中的网络参数进行多次调整,获得已训练的语音分离模型。
需要说明的是,在训练语音分离模型的过程中,通用空间还可包括:随机混合器,用于在目标信噪比条件下,将正源语音样本和多个负源语音样本进行随机混合,获得随机混合器输出的混合语音样本。
参阅图7所示,其为本申请实施例中的另一种语音分离模型的结构示意图。该图中的通用空间中除了编码器和b个全局关注局部循环单元之外,还包括随机混合器(randommixer)。
本申请实施例中提出的网络会执行一种称为“掩膜语音模型”(maskedspeechmodel,msm)的自监督训练,该训练通过将正源语音样本与干扰信号(即负源语音样本)随机混合来掩盖语音,即图7所示的randommixer。本申请实施例提出的msm本质上是在模拟现实世界中的“鸡尾酒会”问题。为了尽量模拟在现实世界中的多样性,对于每个训练epoch,randommixer都会从n个说话人训练语料库中随机抽取c个说话人的说话样本,其中一个说话人的样本作为正源语音样本,而用剩余的(c-1)个说话人的样本作为负源语音样本。在给定的信噪比(signal-to-interferenceratio,sir)条件下,例如,从0到5db随机采样,在随机起始位置处将正源语音样本与负源语音样本混合。从而,在每个batch批次中,都有一个
具体的,在每个训练epoch中,通过使用与随机开始位置处的同一训练集不同的随机言语掩盖训练集中的每个干净话语,在线生成持续4秒的混合波形信号,混合信噪比是0至5db。如果连续10个训练epoch中都没有出现更低的验证损失,则判断训练已经收敛。而在测试中,在本申请实施例中,会预先随机把测试集中的样本以0至5db的信噪比混合。
下面对本申请实施例中关于训练损失的部分进行详细介绍:
至此,本申请实施例在说话人知识空间中学习到了紧凑的矢量分布zj(同语音分离模型使用部分中引导向量),继而计算表示潜在目标说话人的特征向量
本申请实施例同时在语音信号刺激空间中执行信号重建,并在说话人知识空间中进行说话人预测。如果得到了一个空间中针对目标源的说话人输出排列,则也能确定另一空间中的对应说话人排列。损失函数lsp+λlcos如下列公式9所示:
其中,α为可学习尺度,β表示偏差,和λ都是预设值,
如上面的公式9所示,本申请实施例从使用句子级别的置换不变训练(u-pit)的“自动驾驶(auto-pilot)”信号重建开始,以si-snr损失作为语音信号刺激空间中的目标lsp,直到紧凑的说话人矢量e达到相对稳定的状态,以此训练出潜在说话人表征。接下来,本申请实施例使用由说话人知识空间确定的说话人输出排列来“引导(steering)”信号重建。在“引导”阶段,信号重建变成无需pit,从而免除了繁重的计算负担。
另外,本申请实施例希望学习具有可分离的类间差异和紧凑的类内变异的深度表征。如上述公式9所示,损失lcos是具有可学习尺度α和偏差β的余弦相似度损失,它奖励深度表征接近相应的潜在目标说话人表征。此外,本申请实施例还添加了归一化损失,如公式10所示:
以及,用于计算每个输出深度表征和所有训练潜在目标说话人表征之间的整体余弦相似度,以及正则化损失,如公式11所示:
其中,公式11用于避免训练得到全零的简单解,其中γ是其加权因子。
需要说明的是,本申请实施例不具体限定损失函数的数学定义。例如上述所列举的在计算损失时,采用了余弦距离(或类似欧几里得距离)来计算lcos,使学习到的深度表征接近相应的潜在目标说话人表征,可以替代为采用其它类型的损失函数,包括但不限于采用contrastive(对比)损失,triplet(三元组)损失,sphereface(球面)和cosface(边缘余弦)等损失函数。同理,为重建信号采用的sisnr损失函数,也可以根据实际应用目标调整为其它类型的重建损失函数,在此不做具体限定。
下面列举本申请实施例中一种可选的语音分离模型的参数和结构设置:
为了进行公平比较,本申请实施例中的encoder和decoder的结构以及模型的超参数设置与相关技术中的语音分离模型dprnn的设置相同,并未针对本申请实施例中建议的模型进行微调(通过微调可以预期进一步的性能改进)。另外,在本申请实施例中,使用了6个连续的galr单元,其中用于msm通用空间的galr单元有b=4个,用于语音信号刺激空间的galr单元有b1=2个,用于说话人知识空间的galr单元有b2=2个。与在wsj0-2mix中得到最顶尖结果且模型尺寸较之前的模型大幅缩少的dprnn相比,tune-in模型可再减少7.6%的整体模型尺寸,而且还会减少13.8%的运行内存和21.4%的运算子。
至于其他超参数的设定,在本申请实施例中,把深度表征的维度,信号段大小和减少后的信号段分别设置为d=128,k=128,q=16。在本申请实施例中,根据经验将γ=3,λ=10,ε=0.05和学习率μ设置为初始值0.001,并在每两个训练epoch衰减0.96,优化使用adam算法。其中,adam是一种可以替代传统随机梯度下降过程的一阶优化算法,它能基于训练数据迭代地更新神经网络权重。
需要注意的而是,本申请实施例的模型大大减少了运行时内存,因此可以进行更有效的训练。它在统一框架中同时执行多任务,紧凑、简洁且没有复杂的前处理流程。本申请实施例的模型也是当前所有文献报告中最小的。跟相关技术中的最轻型和最先进的dprnn模型相比,模型大小减少了7.6%,并且在更低资源消耗的条件下(运行时内存减少13.8%,计算操作减少21.4%),获得了可比或更高的si-snri(si-snr改善)分数。
下面结合实验结果来对本申请实施例中所列举的语音分离模型的性能进行总结。具体分为两个方面:说话人验证功能以及语音分离效能。
其中,第一方面为说话人验证性能,该部分主要是基于说话人知识空间的输出特征来进行验证的,具体是指判断一句话是不是某个人说的。
在本申请实施例中进行了说话人验证(sv)的实验,以验证在本申请实施例中所学到的深度说话人表征的判别力和泛化能力。基于sincnet(一种可解释的神经网络结构,用于直接处理语音时序信号)的标准sv模型实验中被用作在本申请实施例中的参考sv系统。首先,在本申请实施例中第一个参考模型,标注为“sincnet-clean”,是在干净的librispeech训练集中进行了训练;而另一个参考模型,标注为“sincnet-masked”,在与在本申请实施例中提出的系统一样的在线上混合的librispeech训练集上进行了训练。
参阅图8所示,其为本申请实施例中的一种实验结果的示意图,具体是指本申请实施例中提出的tune-in模型在说话人验证(sv)的实验中得到的roc曲线性能跟参照系统sincnet的比较的实验结果。
在图8中绘制了不同模型的roc(receiveroperatingcharacteristic,受试者操作特征)曲线。蓝线(标记有正方形)表示标准sv系统sincnet-clean对干净测试数据的标准性能,并且可以用作最佳环境中的参考性能。橙线(标记有三角形)表示标准sv系统sincnet-clean在强干扰测试数据下说话人验证的性能,绿线(标记有圆形)表示sv系统sincnet-masked在强干扰测试数据下说话人验证的性能,红线(标记有五角星)“tune-ince_test_on_masked”表示的是本申请实施例中提出的tune-ince模型在强干扰条件下(即0-5db信噪比的情况下)说话人验证的性能。它实现了0.061的eer(equalerrorrate,等误差率)和高达0.980的auc(areaunderthecurve,曲线下面积或曲线面积),并且其roc线接近上限——高性能标准sv系统对干净数据的结果。最后紫线(无标记)“tune-id_test_on_masked”表示的是本申请实施例中提出的tune-id模型在强干扰条件下(即0-5db信噪比的情况下)说话人验证的性能。
其中,roc空间将假正例率(falsepositiverate,简称fpr)定义为x轴,真正例率(truepositiverate,简称tpr)定义为y轴。其中,tpr指在所有实际为正例的样本中,被正确地判断为正例之比率。fpr指在所有实际为反例的样本中,被错误地判断为正例之比率。
在本申请实施例中,第二方面为语音分离效能,该部分主要是基于语音信号刺激空间的输出特征来进行实验的。
本申请实施例评估了用于语音分离任务的自监督tune-in模型。在本申请实施例中的tune-in模型和最新的dprnn模型都具有相同的设置,并且encoder窗口大小同样设置为8样本以进行公平比较。如下表所示,所有系统均根据sdri(信噪比改善)和si-snri(si-snr改善)进行了评估。训练“tune-inautopilot(调谐导航/调谐自动驾驶仪)”模型时无需进行交叉和双注意力机制的消融研究。“tune-inonline(在线收听)”模型可以在线学习说话人的深度表征和引导向量,并同时进行语音分离;因此,附加的在线学习深度表征任务带来了附加的1m模型参数大小。如上文中所述,“tune-inoffline(离线收听)”模型从目标说话人那里收集了大约16s的注册语音(来自与在线相同的有干扰的环境),因此说话人的表征可以离线计算并在在线时无需计算。
参阅表1所示,其为本申请实施例中所列举的一种与常规分离系统的性能比较结果。
表1
其中,表1分别介绍了在wsj0-2mix数据集下的几个传统的模型tdaa(top-downauditoryattention,自上而下的听觉注意)、bilstm-tasnet(双向长短期记忆力网络-时域音频分离网络)、conv-tasnet(全卷积时域音频分离网络)和dprnn,与本申请实施例中提出的tune-in(具体包括tune-inautopilot、tune-inoffline、tune-inonline)的比较结果,具体分为模型参数parameters的比较,以及si-snri和sdri的比较。此外,表1还介绍了在librispeech数据集下的传统模型dprnn与本申请实施例中提出的tune-in(具体包括tune-inautopilot、tune-inoffline、tune-inonline)比较结果。
通过上述内容可知,本申请实施例对比揭示了相关技术中普遍采用的强监督模型(例如多标签分类,回归和聚类)的泛化性不足的缺点。不同的是,本申请实施例利用最近的自我监督学习进展,以获得更具判别力和可概括性的表征,与基于标准sincnet的sv系统相比,可提供更好的说话人验证性能。实验证明,即使在严重干扰的情况下,仍可以通过本申请实施例的自我监督学习学习得到具有区别性和概括性的说话人表示。本申请实施例的实验结果验证了这种看似矛盾的现象,与标准的说话人验证方法相比,本申请实施例学习到的说话人嵌入表征具有更高的判别力。同时,和当前最先进的基准比较系统dprnn模型相比,在线和离线测试模式下,tune-in均可在si-snri方面实现更高的语音分离性能。
此外,需要说明的是,仅为了比较的目的,tune-in的框架图中encoder和decoder采用了跟dprnn一致的模型结构和网络配置。但tune-in框架支持其它网络类型的encoder和decoder模型结构,例如实现傅立叶变换的encoder和实现反傅立叶变换的decoder,包括支持处理输入时域波形的信号和输入频域的信号类型的encoder。本申请实施例不具体限定深度神经网络的模型类型和拓扑结构,可以替换为各种其它有效的新型的模型结构。此外,本申请实施例中深度神经网络采用的网络结构和超参配置,可以结合替代方案替代为其它优化的网络结构和超参配置,例如闸控卷积神经网络、时延网络等。可以根据实际应用对模型内存占用的限制和对字错误率的要求,对本申请实施例中列举的深度神经网络的拓扑结构加以拓展或简化。
参阅图9所示,其为本申请实施例中提供的一种基于语音分离模型的多个说话人语音分离方法的流程示意图。该方法的具体实施流程如下:
步骤s900:获取包含多个说话人语音的待分离的混合波形信号;
步骤s901:将混合波形信号输入已训练的语音分离模型中的通用子网络,基于通用子网络中的编码器将该混合波形信号转化为二维时间序列;
步骤s902:将二维时间序列分割为s段局部序列,并将分割得到的s段局部序列打包形成三维输入张量;
步骤s903:将三维输入张量输入由b个全局关注局部循环单元组成的堆栈,进行b次特征提取,获得由最后一个全局关注局部循环单元输出的编码特征;
步骤s904:将编码特征分别输入该语音分离模型中的说话人知识子网络和语音信号刺激子网络;
步骤s905:将编码特征输入说话人知识子网络中的由b1个全局关注局部循环单元组成的堆栈,进行b1次特征提取;
步骤s906:将最后一个全局关注局部循环单元的输出特征输入嵌入层,经过嵌入层进行投射及合并处理,获得各个说话人的语音特征;
步骤s907:将各个说话人的语音特征以及编码特征输入语音信号刺激子网络中的由b2个全局关注局部循环单元组成的堆栈,进行b2次注意力特征提取,获得最后一个全局关注局部循环单元输出的用于分离混合波形信号的深度语音特征;
步骤s908:将深度语音特征经过解码器进行信号重建,输出各个说话人的重建语音信号。
基于相同的发明构思,本申请实施例还提供一种多人的语音分离装置。如图10所示,其为本申请实施例中的一种多人的语音分离装置的结构示意图,其中,语音分离装置1000可以包括:
信号获取模块1001,用于获取待分离的混合波形信号,混合波形信号包含多人的语音;
特征提取模块1002,用于对混合波形信号进行特征提取,获得混合波形信号的编码特征;
知识表征模块1003,用于通过对编码特征进行特征提取,从编码特征中分离出每个人的语音特征;
信号重建模块1004,用于基于每个人的语音特征以及编码特征之间的关系,对每个人的语音特征进行调整,并对调整后的语音特征进行信号重建,获得每个人的重建语音信号。
可选的,特征提取模块1002,具体用于将混合波形信号输入已训练的语音分离模型,基于已训练的语音分离模型对混合波形信号进行特征提取,获得编码特征;
知识表征模块1003,具体用于基于已训练的语音分离模型,对编码特征进行特征提取,获得每个人的语音特征;
信号重建模块1004,具体用于基于已训练的语音分离模型,根据每个人的语音特征以及编码特征之间的关系,对每个人的语音特征进行调整,并对调整后的语音特征进行信号重建,获得已训练的语音分离模型输出的每个人的重建语音信号;
其中,已训练的语音分离模型是根据训练样本数据集训练得到的,训练样本数据集中的训练样本包括多人的多条语音样本。
可选的,已训练的语音分离模型包括通用子网络;通用子网络包括编码器以及由b个全局关注局部循环单元组成的堆栈,b为正整数;
特征提取模块1002具体用于:
将混合波形信号经由编码器转化为二维时间序列;
将二维时间序列分割为s段局部序列,并将分割得到的s段局部序列打包形成三维输入张量,其中每相邻两个局部序列之间存在部分重叠,s为正整数;
将三维输入张量输入由b个全局关注局部循环单元组成的堆栈,进行b次特征提取,获得由最后一个全局关注局部循环单元输出的编码特征,其中每相邻两个全局关注局部循环单元中,前一个全局关注局部循环单元的输出为后一个全局关注局部循环单元的输入,且第一个全局关注局部循环单元的输入为三维输入张量,每个全局关注局部循环单元的输入特征和输出特征的形状相同。
可选的,全局关注局部循环单元包括局部循环层和全局关注层;
局部循环层用于对接收到的输入特征中的每段局部序列的段内短期依赖性进行建模,输出中间张量l;
全局关注层用于基于多头自我注意力机制,对全局关注局部循环单元的中间张量g中的每段局部序列进行段间处理;将基于多头自我注意力机制处理得到的张量进行线性映射后拼接得到三维张量,作为全局关注局部循环单元的输出特征,其中中间张量g是对中间张量l进行线性映射和层归一化处理后得到的张量与位置编码张量的和。
可选的,已训练的语音分离模型还包括说话人知识子网络;说话人知识子网络包括由b1个全局关注局部循环单元组成的堆栈和嵌入层,b1为正整数;
知识表征模块1003具体用于:
将编码特征输入由b1个全局关注局部循环单元组成的堆栈,进行b1次特征提取,其中每相邻两个全局关注局部循环单元中,前一个全局关注局部循环单元的输出为后一个全局关注局部循环单元的输入,且第一个全局关注局部循环单元的输入为编码特征,每个全局关注局部循环单元的输入特征和输出特征的形状相同;
将最后一个全局关注局部循环单元的输出特征输入嵌入层,经过嵌入层进行投射及合并处理,获得每个人的语音特征。
可选的,全局关注局部循环单元包括局部循环层和全局关注层;
局部循环层用于对接收到的输入特征中的每段局部序列的段内短期依赖性进行建模,输出中间张量l1;
全局关注层用于基于多头自我注意力机制,对全局关注局部循环单元的中间张量g1中的每段局部序列进行段间处理;将基于多头自我注意力机制处理得到的张量进行线性映射后拼接得到三维张量,作为全局关注局部循环单元的输出特征,其中中间张量g1是对中间张量l1进行线性映射和层归一化处理后得到的张量与位置编码张量的和。
可选的,已训练的语音分离模型还包括语音信号刺激子网络;语音信号刺激子网络包括由b2个全局关注局部循环单元组成的堆栈和解码器,b2为正整数;
信号重建模块1004具体用于:
将每个人的语音特征以及编码特征输入由b2个全局关注局部循环单元组成的堆栈,进行b2次注意力特征提取,获得最后一个全局关注局部循环单元输出的用于分离混合波形信号的深度语音特征,其中每个全局关注局部循环单元的输入特征都包括每个人的语音特征,并且每相邻两个全局关注局部循环单元中,前一个全局关注局部循环单元的输出为后一个全局关注局部循环单元的输入;
将深度语音特征经过解码器进行信号重建,输出每个人的重建语音信号。
可选的,每一次进行注意力特征提取时,全局关注局部循环单元用于执行下列步骤:
对接收到的输入特征中的每段局部序列的段内短期依赖性进行建模,输出中间张量l2;将对中间张量l2进行线性映射和层归一化处理后得到的张量与位置编码张量的和,作为全局关注局部循环单元的中间张量g2;
根据中间向量g2以及每个人的语音特征进行注意力特征提取,获得全局关注局部循环单元的输出特征。
可选的,信号重建模块1004具体用于:
基于查询向量与每个人的语音特征之间的点积,获得在说话人语音特征序列上产生注意力分布特征,其中第一个全局关注局部循环单元对应的查询向量是根据编码特征以及段内位置信息得到的,其他全局关注局部循环单元对应的查询向量是根据上一个全局关注局部循环单元的输出特征以及段内位置信息得到的;
根据注意力分布特征对每个人的语音特征进行加权求和,获得引导向量;
根据引导向量对中间向量g2进行调制后,根据调制后的中间向量g2以及引导向量之间的相似度,获得双重注意力分布特征;
基于双重注意力特征对调制后的中间向量g2的值进行加权求和,获得全局关注局部循环单元的输出特征。
可选的,装置还包括模型训练模块1005:
已训练的语音分离模型是由模型训练模块1005通过下列方式训练得到的:
从训练样本数据集中选取一个正源语音样本和多个负源语音样本,其中正源语音样本为目标说话人的语音样本,负源语音样本为除目标说话人之外的其他说话人的语音样本;
将正源语音样本和多个负源语音样本输入未训练的语音分离模型,经由未训练的语音分离模型中的通用子网络对正源语音样本和多个负源语音样本进行混合,得到包含多个目标源的混合语音样本;
将混合语音样本进行特征提取,获得通用子网络输出的每个人的语音样本之间的通用样本特征;
基于说话人知识子网络,对通用样本特征进行特征提取,获得说话人知识子网络输出的每个人的嵌入样本特征;
基于语音信号刺激子网络,对每个人的嵌入样本特征进行注意力特征提取和信号重建后,获得语音信号刺激子网络输出的每个人的重建语音样本;
基于每个人的重建语音样本,通过自监督学习的方式对未训练的语音分离模型中的网络参数进行多次调整,获得已训练的语音分离模型。
可选的,通用子网络还包括随机混合器;
模型训练模块1005具体用于:
在目标信噪比条件下,基于随机混合器将正源语音样本和多个负源语音样本进行随机混合,获得随机混合器输出的混合语音样本。
为了描述的方便,以上各部分按照功能划分为各模块(或单元)分别描述。当然,在实施本申请时可以把各模块(或单元)的功能在同一个或多个软件或硬件中实现。
在介绍了本申请示例性实施方式的语音分离方法和装置之后,接下来,介绍根据本申请的另一示例性实施方式的电子设备。
所属技术领域的技术人员能够理解,本申请的各个方面可以实现为系统、方法或程序产品。因此,本申请的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
与上述方法实施例基于同一发明构思,本申请实施例中还提供了一种电子设备。该电子设备可以用于对多媒体内容进行修图识别。在一种实施例中,该电子设备可以是服务器,如图1所示的服务器120,也可以是其他电子设备,如图1所示的终端设备110。在该实施例中,电子设备的结构可以如图11所示,包括存储器1101,通讯模块1103以及一个或多个处理器1102。
存储器1101,用于存储处理器1102执行的计算机程序。存储器1101可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统,以及运行即时通讯功能所需的程序等;存储数据区可存储各种即时通讯信息和操作指令集等。
存储器1101可以是易失性存储器(volatilememory),例如随机存取存储器(random-accessmemory,ram);存储器1101也可以是非易失性存储器(non-volatilememory),例如只读存储器,快闪存储器(flashmemory),硬盘(harddiskdrive,hdd)或固态硬盘(solid-statedrive,ssd);或者存储器1101是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器1101可以是上述存储器的组合。
处理器1102,可以包括一个或多个中央处理单元(centralprocessingunit,cpu)或者为数字处理单元等等。处理器1102,用于调用存储器1101中存储的计算机程序时实现上述多人的语音分离方法。
通讯模块1103用于与终端设备和其他服务器进行通信。
本申请实施例中不限定上述存储器1101、通讯模块1103和处理器1102之间的具体连接介质。本公开实施例在图11中以存储器1101和处理器1102之间通过总线1104连接,总线1104在图11中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线1104可以分为地址总线、数据总线、控制总线等。为便于表示,图11中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器1101中存储有计算机存储介质,计算机存储介质中存储有计算机可执行指令,计算机可执行指令用于实现本申请实施例的多人的语音分离方法。处理器1102用于执行上述的多人的语音分离方法。
本申请的实施例还提供了一种计算机存储介质,计算机存储介质中存储有计算机可执行指令,计算机可执行指令用于实现本申请任一实施例所记载的多人的语音分离方法。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请实施例上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请实施例各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
在一些可选的实施方式中,本申请实施例还提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述任意一种多人的语音分离方法的步骤。例如,计算机设备可以执行如图2中所示的步骤。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本申请的实施方式的程序产品可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在计算装置上运行。然而,本申请的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被命令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由命令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算装置上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算装置上部分在远程计算装置上执行、或者完全在远程计算装置或服务器上执行。在涉及远程计算装置的情形中,远程计算装置可以通过任意种类的网络包括局域网(lan)或广域网(wan)连接到用户计算装置,或者,可以连接到外部计算装置(例如利用因特网服务提供商来通过因特网连接)。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除