本公开的实施例涉及计算机技术领域,具体涉及用于训练语音处理模型的方法和装置。
背景技术:
声纹识别,又称说话人识别,包括说话人辨认和说话人确认。声纹识别就是把声信号转换成电信号,再用计算机识别。不同的任务和应用会使用不同的声纹识别技术。例如,缩小刑侦范围时可能需要辨认技术,而银行交易时则需要确认技术。
由于语音获取方便自然,语音识别成本较低,而且可以远程采集语音进行识别。因此,利用语音进行声纹识别越来越受到开发者的重视。声纹识别也逐渐开始应用于各种领域中。
目前的声纹识别算法主要解决两个主要问题:特征提取和模式识别。特征提取主要是指从说话人的语音中提取声学和语言特征等可以表征说话人身份的特征。模式识别主要是指根据提取的说话人的特征进行说话人识别或匹配的过程。现有的基于机器学习的声纹识别算法中用于进行特征提取的模型(如embedding模型等)的训练和用于模式识别的模型(如根据embedding利用概率线性判别分析plda或cosine进行打分的模型等)是完全分开的。
技术实现要素:
本公开的实施例提出了用于训练语音处理模型的方法和装置、说话人识别方法和装置、语音处理方法和装置。
第一方面,本公开的实施例提供了一种用于训练语音处理模型的方法,该方法包括:获取初始第一语音处理模型和端到端的初始第二语音处理模型,其中,初始第一语音处理模型和初始第二语音处理模型包括相同的特征提取网络,初始第二语音处理模型还包括分类网络,特征提取网络用于提取语音的特征向量,分类网络用于根据语音的特征向量确认说话人是否为目标人;利用交替训练的方法训练初始第一语音处理模型和初始第二语音处理模型,以及将训练完成的初始第二语音处理模型确定为待用语音处理模型。
在一些实施例中,分类网络利用概率线性判别分析算法实现。
在一些实施例中,特征提取网络基于x-vectors构建。
在一些实施例中,分类网络使用对数似然比计算语音之间的相似度,其中,语音之间的相似度用于表征两个语音属于同一说话人的概率。
在一些实施例中,分类网络包括用于对语音的特征向量进行降维的降维层、用于根据降维层的输出计算对数似然比的打分层、用于根据打分层的输出进行分类的分类层。
在一些实施例中,降维层利用线性判别分析算法实现。
在一些实施例中,特征提取网络包括基于时延神经网络构建的第一子网络、统计池化层、第二子网络,其中,第一子网络用于提取语音的帧级别的特征向量,统计池化层用于统计分析第一子网络的输出结果,第二子网络用于根据统计池化层的输出结果提取语音的句子级别的特征向量。
在一些实施例中,上述方法还包括:存储训练完成的初始第一语音处理模型包括的特征提取网络。
第二方面,本公开的实施例提供了一种用于训练语音处理模型的装置,该装置包括:初始模型获取单元,被配置成获取初始第一语音处理模型和端到端的初始第二语音处理模型,其中,初始第一语音处理模型和初始第二语音处理模型包括相同的特征提取网络,初始第二语音处理模型还包括分类网络,特征提取网络用于提取语音的特征向量,分类网络用于根据语音的特征向量确认说话人是否为目标人;训练单元,被配置成利用交替训练的方法训练初始第一语音处理模型和初始第二语音处理模型,以及将训练完成的初始第二语音处理模型确定为待用语音处理模型。
在一些实施例中,分类网络利用概率线性判别分析算法实现。
在一些实施例中,特征提取网络基于x-vectors构建。
在一些实施例中,分类网络使用对数似然比计算语音之间的相似度,其中,语音之间的相似度用于表征两个语音属于同一说话人的概率。
在一些实施例中,分类网络包括用于对语音的特征向量进行降维的降维层、用于根据降维层的输出计算对数似然比的打分层、用于根据打分层的输出进行分类的分类层。
在一些实施例中,降维层利用线性判别分析算法实现。
在一些实施例中,特征提取网络包括基于时延神经网络构建的第一子网络、统计池化层、第二子网络,其中,第一子网络用于提取语音的帧级别的特征向量,统计池化层用于统计分析第一子网络的输出结果,第二子网络用于根据统计池化层的输出结果提取语音的句子级别的特征向量。
在一些实施例中,上述装置还包括:存储单元,被配置成存储训练完成的初始第一语音处理模型包括的特征提取网络。
第三方面,本公开的实施例提供了一种说话人识别方法,该方法包括:获取待识别语音;利用预先训练的说话人识别模型根据待识别语音,确认待识别语音的说话人是否为目标人,其中,说话人识别模型基于如第一方面中任一实现方式描述的方法生成的待用语音处理模型得到;响应于确定待识别语音的说话人不是目标人,生成用于提示待识别语音的说话人不是目标人的提示信息以及提示。
第四方面,本公开的实施例提供了一种说话人识别装置,该装置包括:待识别语音获取单元,被配置成获取待识别语音;确认单元,被配置成利用预先训练的说话人识别模型根据待识别语音,确认待识别语音的说话人是否为目标人,其中,说话人识别模型基于如第一方面中任一实现方式描述的方法生成的待用语音处理模型得到;提示单元,被配置成响应于确定待识别语音的说话人不是目标人,生成用于提示待识别语音的说话人不是目标人的提示信息以及提示。
第五方面,本公开的实施例提供了一种语音处理方法,该方法包括:获取待处理语音;利用预先训练的特征提取网络提取待处理语音的特征向量,其中,特征提取网络利用如第一方面中的一个实现方式生成;根据待处理语音的特征向量进行语音识别和/或语音合成。
第六方面,本公开的实施例提供了一种语音处理装置,该装置包括:待处理语音获取单元,被配置成获取待处理语音;提取单元,被配置成利用预先训练的特征提取网络提取待处理语音的特征向量,其中,特征提取网络利用如第一方面中的一个实现方式生成;处理单元,被配置成根据待处理语音的特征向量进行语音识别和/或语音合成。
第七方面,本公开的实施例提供了一种电子设备,该电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如第一方面中任一实现方式描述的方法。
第八方面,本公开的实施例提供了一种计算机可读介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面中任一实现方式描述的方法。
本公开的实施例提供的用于训练语音处理模型的方法和装置,通过获取包括相同的特征提取网络的初始第一语音处理模型和初始第二语音处理模型,并使用交替训练的方法训练初始第一语音处理模型和初始第二语音处理模型,可以使得在两个模型的学习过程中共享特征提取网络学习到的知识来改进两个模型在各自任务上的性能和泛化能力,从而得到具有较好性能的、端到端的第二语音处理模型,同时又可以使用训练得到的特征提取网络所提取的特征作为说话人的身份表征应用于其他语音处理任务中。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本公开的其它特征、目的和优点将会变得更明显:
图1是本公开的一个实施例可以应用于其中的示例性系统架构图;
图2是根据本公开的用于训练语音处理模型的方法的一个实施例的流程图;
图3是根据本公开的实施例的初始第一语音处理模型和初始第二语音处理模型的一个示意性的网络结构;
图4是根据本公开的说话人识别方法的一个实施例的流程图;
图5是根据本公开的语音处理方法的一个实施例的流程图;
图6是根据本公开的用于训练语音处理模型的装置的一个实施例的结构示意图;
图7是根据本公开的说话人识别装置的一个实施例的结构示意图;
图8是根据本公开的语音处理装置的一个实施例的结构示意图;
图9是适于用来实现本公开的实施例的电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本公开作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
图1示出了可以应用本公开的用于训练语音处理模型的方法或用于训练语音处理模型的装置的实施例的示例性架构100。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种客户端应用。例如网页浏览器类应用、购物类应用、搜索类应用、即时通信工具、社交平台软件、信息流类应用等等。
终端设备101、102、103可以是硬件,也可以是软件。当终端设备101、102、103为硬件时,可以是具各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、膝上型便携计算机和台式计算机等等。当终端设备101、102、103为软件时,可以安装在上述所列举的电子设备中。其可以实现成多个软件或软件模块(例如用来提供分布式服务的多个软件或软件模块),也可以实现成单个软件或软件模块。在此不做具体限定。
服务器105可以是提供各种服务的服务器,例如可以是为终端设备101、102、103上安装的客户端应用提供后端支持的服务器。服务器105可以从终端设备101、102、103获取大量用户的语音作为训练数据,以训练得到语音处理模型。
需要说明的是,上述训练数据也可以直接存储在服务器105的本地,服务器105可以直接提取本地所存储的训练数据以训练得到语音处理模型,此时,可以不存在终端设备101、102、103和网络104。
需要说明的是,本公开的实施例所提供的用于训练语音处理模型的方法一般由服务器105执行,相应地,用于训练语音处理模型的装置一般设置于服务器105中。
还需要指出的是,终端设备101、102、103也可以利用训练数据完成语音处理模型。此时,用于训练语音处理模型的方法也可以由终端设备101、102、103执行,相应地,用于训练语音处理模型的装置也可以设置于终端设备101、102、103中。此时,示例性系统架构100可以不存在服务器105和网络104。
需要说明的是,服务器105可以是硬件,也可以是软件。当服务器105为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器105为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务的多个软件或软件模块),也可以实现成单个软件或软件模块。在此不做具体限定。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,其示出了根据本公开的用于训练语音处理模型的方法的一个实施例的流程200。该用于训练语音处理模型的方法包括以下步骤:
步骤201,获取初始第一语音处理模型和端到端的初始第二语音处理模型。
在本实施例中,第一语音处理模型和第二语音处理模型都可以用于进行语音处理。特征提取网络可以用于提取语音的特征向量,得到语音的特征的embedding表示,而且提取的特征向量可以作为对应语音的说话人的身份向量用来表示该说话人的身份。
第二语音处理模型还可以包括后端的分类网络,分类网络用于根据语音的特征向量确认说话人是否为目标人。此时,第二语音处理模型可以先利用其包括的特征提取网络得到输入的语音的特征的embedding表示和目标说话人的语音的特征的embedding表示,然后可以根据输入的语音的说话人对应的embedding表示和目标说话人对应的embedding表示确认输入的语音的说话人是否是目标说话人。其中,目标说话人可以是根据实际的应用需求预先指定的说话人。
初始第一语音处理模型和初始第二语音处理模型可以分别参考现有的各种语音处理模型的网络结构,同时根据实际的应用需求和应用场景进行构建。例如,可以利用各种神经网络框架(如keras、tensorflow等等)通过修改现有的语音处理模型的网络结构得到。
作为示例,特征提取网络可以基于dnn(deepneuralnetworks,深度神经网络)、i-vectors等构建。分类网络可以基于现有的各种分类器(如k-近邻分类器、朴素贝叶斯分类器、支持向量机、决策树算法等等)构建。
在本实施例中,用于训练语音处理模型的方法的执行主体(如图1所示的服务器105)可以利用上述方法构建初始第一语音处理模型和初始第二语音处理模型,也可以从其它存储设备获取预先搭建好的初始第一语音处理模型和初始第二语音处理模型。
需要说明的是,初始第一语音处理模型可以是只包括特征提取网络以用于提取语音的特征向量,也可以在包括特征提取网络之外,还包括其他网络结构以实现其它语音处理功能。例如,初始第一语音处理模型除了特征提取网络之外,还可以包括全连接层等网络层对特征提取网络提取的特征向量进一步处理以得到语音处理结果。
同样地,初始第二语音处理模型可以是只包括特征提取网络和分类网络,也可以在包括特征提取网络和分类网络之外,还包括其他网络结构以实现其它语音处理功能。例如,初始第二语音处理模型除了特征提取网络和分类网络之外,还可以包括输出层等网络层对分类网络的输出结果进一步处理以得到最终语音处理结果。
步骤202,利用交替训练的方法训练初始第一语音处理模型和初始第二语音处理模型,以及将训练完成的初始第二语音处理模型确定为待用语音处理模型。
在本实施例中,交替训练可以视为一种多任务学习的模型训练方法。在针对初始第一语音处理模型和初始第二语音处理模型的交替训练过程中,由于初始第一语音处理模型和初始第二语音处理模型具有相同的特征提取网络,因此,可以利用这一点的相关性通过在学习过程中共享特征提取网络学习到的知识来改进两个模型在各自任务上的性能和泛化能力。
当然,在训练初始第一语音处理模型和初始第二语音处理模型之前,还需要准备训练数据。具体地,可以获取大量说话人的语音数据,以及初始第二语音处理模型对应的目标说话人的大量语音数据形成训练数据。其中,训练数据中的语音数据可以是音频,也可以是对音频进行变换后得到的语音特征。例如,语音特征包括但不限于梅尔谱,mfcc特征,fbank特征,plp特征,cqcc特征,pitch特征等等。
作为示例,可以通过如下步骤实现初始第一语音处理模型和初始第二语音处理模型的交替训练:
步骤一,利用训练数据只训练初始第一语音处理模型,直至针对初始第一语音处理模型预设的损失函数的值满足要求(如小于预设值),停止训练。
在本步骤中,可以从训练数据中选取语音数据作为初始第一语音处理模型的输入,与输入的语音数据对应的说话人的身份表示作为期望输出,训练第一语音处理模型。其中,可以以初始第一语音处理模型对应的说话人集合包括的说话人的数目为维数,使用one-hot编码方式形成说话人集合中的每个说话人分别对应的身份表示。
步骤二,使用步骤一停止训练时初始第一语音处理模型包括的特征提取网络的网络参数更新初始第二语音处理模型包括的特征提取网络的网络参数,然后利用训练数据只对更新网络参数后的初始第二语音处理模型进行训练,直至针对初始第二语音处理模型预设的损失函数满足要求,停止训练。
在本步骤中,在训练初始第二语音处理模型时,可以使用tripletloss作为损失函数。此时,可以从训练数据中选取目标说话人的语音数据和非目标说话人的语音数据形成语音对,同时从训练数据中选取目标说话人的两个语音数据形成语音对。然后,可以利用初始第二语音处理模型分别对两个语音对的中间处理结果计算这两个语音对之间的tripletloss。
步骤三,使用步骤二停止训练时初始第二语音处理模型包括的特征提取网络的网络参数更新初始第一语音处理模型包括的特征提取网络的网络参数,然后使用最新的初始第一语音处理模型作为初始第一语音处理模型重复执行上述步骤一到步骤三,直至初始第一语音处理模型对应的损失函数小于指定值,可以确定针对初始第一语音处理模型训练完成。
步骤四,使用训练得到的第一语音处理模型包括的特征提取网络的网络参数更新初始第二语音处理模型包括的特征提取网络的网络参数并固定特征提取网络的网络参数,然后利用训练数据继续训练初始第二语音处理模型,且只学习除特征提取网络之外的其它网络层的网络参数,直至满足指定停止条件,可以确定针对初始第二语音处理模型训练完成,并将最新的初始第二语音处理模型确定为待用语音处理模型,之后就可以使用训练好的待用语音处理模型完成各种语音处理任务。
由于初始第一语音处理模型和初始第二语音处理模型各自的学习任务之间具有一定的相关性,所以使用交替训练的方法可以提高训练得到的第一语音处理模型和第二语音处理模型的泛化能力,而且这种训练方式在一定程度上还可以避免出现过拟合的情况。
在本实施例的一些可选的实现方式中,在训练完成之后,可以进一步存储训练完成的初始第一语音处理模型包括的特征提取网络。之后,可以利用特征提取网络得到任意说话人的语音数据的embedding表示,进而可以利用任意说话人的embedding表示作为任意说话人的一个维度的特征应用于各种语音处理任务中,有助于提升这些语音处理任务的性能。
在本实施例的一些可选的实现方式中,上述分类网络可以利用概率线性判别分析算法实现。其中,概率线性判别分析(plda,probabilisticlineardiscriminantanalysis)是一种信道补偿算法,又称概率形式的lda(lineardiscriminantanalysis,线性判别分析)算法。plda目前应用在如声纹识别等模式识别任务中实现后端打分过程,打分的分值通常表示输入的语音的说话人属于目标说话人的可能性。
plda的设计思想与tripletloss在训练过程中产生的约束类似,目的是希望在映射后的向量空间中,相同说话人的embedding越相似越好,同时不同说话人的embedding差别越大越好。
上述分类网络可以利用现有的各种plda算法实现,此时,通过与初始第一语音处理模型的交替训练,从而可以利用分类网络的训练过程指导初始第一语音处理模型的特征提取网络实现的映射,同时第一语音处理模型的特征提取网络又可以应用于第二语音处理模型以优化并加速训练过程,从而可以得到具有更佳的性能的端到端的第二语音处理模型。
在本实施例的一些可选的实现方式中,初始第一语音处理模型和初始第二语音处理模型包括的特征提取网络可以基于x-vectors构建。
x-vectors是声纹识别领域的一种实现特征提取的基线模型框架。x-vectors可接受任意长度的输入,并将其转化为固定长度的特征表达(即embedding表示)。
由于基于x-vectors构建的模型的可泛化能力较强,得到的embedding表示还可以应用于语音处理领域中的其它各种任务中以提升这些任务的处理系统的性能。因此,使用基于x-vectors构建的特征提取网络形成的初始第一语音处理模型和初始第二语音处理模型交替训练,可以更好地提升训练得到的第二语音处理模型的泛化能力,同时也可以进一步提升自身得到的embedding的表征能力。
可选地,初始第一语音处理模型可以基于x-vectors构建,同时,初始第二语音处理模型基于概率线性判别分析算法构建,并利用交替训练的方法训练初始第一语音处理模型和初始第二语音处理模型,可以结合端到端的第二语音处理模型将特征提取与利用plda进行打分的后端分类过程联合优化,以及基于x-vectors的模型的可泛化能力强的优点,从而训练得到稳定性较高、泛化能力也较强的、端到端的融合x-vectors和plda的第二语音处理模型。
继续参见图3,图3是根据本实施例的初始第一语音处理模型和初始第二语音处理模型的一个示意性的网络结构300。如图3中所示,初始第一语音处理模型301包括第一子网络302、统计池化层和第二子网络303。
其中,第一子网络302可以包括一个或多个网络层用于提取语音的帧级别的特征向量。例如,第一子网络302可以使用时延神经网络(tdnn,time-delayneuralnetworks)结构来提取输入语音数据的序列帧级别的特征表达。
第二子网络303可以包括一个或多个网络层用于根据统计池化层的输出结果提取语音的句子级别的特征向量。统计池化层可以用于统计分析第一子网络302的输出结果,以输入第二子网络303得到句子级别的特征表达。即利用统计池化层将输入语音数据的帧级别的特征表示映射到句子级别的特征表示。其中,统计池化层所做的统计分析类型可以由技术人员根据实际的应用需求设置。例如,统计池化层可以将第一子网络302输出的各帧的特征表示取均值和标准差。
一般地,可以使用第二子网络303中的第一个网络层的输出作为输入语音数据的特征提取结果。此时,特征提取网络304可以包括第一子网络、统计池化层和第二子网络的一个网络层。
从图中还可以看出,初始第一语音处理模型301和初始第二语音处理模型306包括相同的特征提取网络304。初始第二语音处理模型306还包括分类网络305。其中,分类网络305可以包括降维层、打分层和分类层。
降维层可以用于对特征提取网络304输出的特征向量进行降维处理。可选地,降维层可以利用线性判别分析算法lda实现。
打分层可以用于根据降维层输出的经过降维处理后的特征向量进行预设打分计算得到打分结果。其中,打分层对特征向量所执行的打分计算可以由技术人员根据实际的应用需求进行设置。例如,可以计算输入语音数据的说话人对应在降维层输出的特征向量与目标说话人对应在降维层输出的特征向量之间的似然比,计算的似然比可以表征即输入语音数据的说话人为目标说话人和输入语音数据的说话人不是目标说话人似然的比值。此时,得到的似然比即可作为打分结果。
可选地,打分层可以使用对数似然比计算语音之间的相似度。此时,语音之间的相似度可以用于表征两个语音属于同一说话人的概率,即输入语音数据对应的说话人为目标说话人的概率。
作为示例,打分层的处理过程可以通过如下公式(1)表示:
其中,sij为打分层输出的打分结果。wt为打分层要学习的网络参数。vec()操作表示将矩阵的列作为列向量进行表示。ωi和ωj分别为输入语音数据对应的说话人对应的特征向量表示。
分类层可以用于根据打分层的打分结果进行分类,即确认输入语音数据的说话人是否为目标人。例如,分类层可以判断打分结果与预设阈值之间的大小关系。若打分结果大于预设阈值,可以认为输入的语音数据对应的说话人为目标说话人。若打分结果不大于预设阈值,可以认为输入的语音数据对应的说话人不是目标说话人。分类层可以使用各种分类器实现。
另外,需要说明的是,图3所示出的仅仅是初始第一语音处理模型和初始第二语音处理模型的一个示例性的网络结构。根据不同的应用需求或应用场景,技术人员可以灵活调整初始第一语音处理模型和初始第二语音处理模型的网络结构。
现有技术中,基于i-vectors构建的特征提取网络和后端打分模型通常是完全分开独立训练的。在一些端到端的声纹识别系统中,模型的训练效果非常依赖于训练数据的好坏,需要大量的说话人,同时对说话环境比较敏感,导致训练成本较高,并且得到的声纹识别系统的可泛化能力较弱,无法应用于其他语音任务中。
本公开的上述实施例提供的方法通过设置基于x-vectors构建的初始第一语音处理模型,以及设置联合x-vectors和后端plda实现打分的分类网络的端到端的初始第二语音处理模型,并使用交替训练的方法训练初始第一语音处理模型和初始第二语音处理模型,以使两个模型在训练过程中学习到的知识可以互相指导对方的下一步训练方向,实现x-vectors和基于后端plda的分类网络的联合优化,从而得到端到端的待用语音处理模型。同时,可以提升其中的特征提取网络的可泛化能力,进而可以将得到的embedding表示应用于其他各种语音处理任务中。
进一步参考图4,其示出了说话人识别方法的一个实施例的流程400。该说话人识别方法的流程400,包括以下步骤:
步骤401,获取待识别语音。
在本实施例中,待识别语音可以是各种内容的语音。例如,待识别语音可以是说话人任意的一段语音,也可以是说话人针对指定内容的语音。
说话人识别方法的执行主体(如移动终端等)可以从本地或其它存储设备获取待识别语音,也可以利用其本身的录音装置(如录音功能模块)录制用户语音作为待识别语音。
步骤402,利用预先训练的说话人识别模型根据待识别语音,确认待识别语音的说话人是否为目标人。
在本实施例中,目标人可以指预先指定的说话人。说话人识别模型可以基于如图2对应实施例所示的方法得到的端到端的待用语音处理模型得到。具体地,说话人识别模型可以为利用图2对应实施例所示的方法得到的端到端的待用语音处理模型所包括的用于进行说话人识别的部分。应当可以理解,在上述待用语音处理模型为说话人识别模型时,本实施例中的说话人识别模型即可以直接采用利用图2对应实施例所示的方法得到的待用语音处理模型。说话人识别模型的具体训练过程可以参考具体可以参考图2对应实施例中的相关说明,在此不再赘述。
步骤403,响应于确定待识别语音的说话人不是目标人,生成用于提示待识别语音的说话人不是目标人的提示信息以及提示。
在本实施例中,若确定待识别语音的说话人不是目标人,可以生成提示信息进行提示。例如,在身份验证等应用场景中,若当前说话人不是目标人,可以向当前说话人提示身份验证失败等信息。
本公开的上述实施例提供的说话人识别方法利用预先训练的端到端的说话人识别模型可以根据说话人的语音直接得到确认结果,即确认输入的语音的说话人是否是目标人,从而快速地进行身份验证。
进一步参考图5,其示出了语音处理方法的一个实施例的流程500。该语音处理方法的流程500,包括以下步骤:
步骤501,获取待处理语音。
在本实施例中,待处理语音可以是各种内容的语音。例如,待处理语音可以是说话人的任意一段语音,也可以是说话人针对指定内容的语音。
语音处理方法的执行主体(如移动终端等)可以从本地或其它存储设备获取待处理语音,也可以利用其本身的录音装置(如录音功能模块)录制用户语音作为待处理语音。
步骤502,利用预先训练的特征提取网络提取待处理语音的特征向量。
在本实施例中,特征提取网络可以从利用图2对应实施例所示的方法得到的第一语音处理模型中得到,具体可以参考图2对应实施例中的相关说明,在此不再赘述。利用特征提取网络可以得到待处理语音的embedding表示。
步骤503,根据待处理语音的特征向量进行语音识别和/或语音合成。
在本实施例中,在得到待处理语音的特征向量之后,可以使用得到的特征向量作为待处理语音的说话人的身份特征的一个表示维度,以应用于具体的语音识别和/或语音合成的任务中,辅助提升语音识别和/或语音合成任务的处理性能。例如,可以使用得到的特征向量作为特征实现具有待处理语音的说话人音色的音色转换任务。、本公开的上述实施例提供的方法通过预先训练的特征提取网络对任意说话人的语音进行embedding表示,进而将得到的embedding表示作为身份向量应用于各种语音识别或语音合成的任务中,辅助提升语音识别和/或语音合成任务的处理性能。
进一步参考图6,作为对上述各图所示方法的实现,本公开提供了用于训练语音处理模型的装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图6所示,本实施例提供的用于训练语音处理模型的装置600包括初始模型获取单元601和训练单元602。其中,初始模型获取单元601被配置成获取初始第一语音处理模型和端到端的初始第二语音处理模型,其中,初始第一语音处理模型和初始第二语音处理模型包括相同的特征提取网络,初始第二语音处理模型还包括分类网络,特征提取网络用于提取语音的特征向量,分类网络用于根据语音的特征向量确认说话人是否为目标人;训练单元602被配置成利用交替训练的方法训练初始第一语音处理模型和初始第二语音处理模型,以及将训练完成的初始第二语音处理模型确定为待用语音处理模型。
在本实施例中,用于训练语音处理模型的装置600中:初始模型获取单元601和训练单元602的具体处理及其所带来的技术效果可分别参考图2对应实施例中的相关说明,在此不再赘述。
在本实施例的一些可选的实现方式中,分类网络利用概率线性判别分析算法实现。
在本实施例的一些可选的实现方式中,特征提取网络基于x-vectors构建。
在本实施例的一些可选的实现方式中,分类网络使用对数似然比计算语音之间的相似度,其中,语音之间的相似度用于表征两个语音属于同一说话人的概率。
在本实施例的一些可选的实现方式中,分类网络包括用于对语音的特征向量进行降维的降维层、用于根据降维层的输出计算对数似然比的打分层、用于根据打分层的输出进行分类的分类层。
在本实施例的一些可选的实现方式中,降维层利用线性判别分析算法实现。
在本实施例的一些可选的实现方式中,特征提取网络包括基于时延神经网络构建的第一子网络、统计池化层、第二子网络,其中,第一子网络用于提取语音的帧级别的特征向量,统计池化层用于统计分析第一子网络的输出结果,第二子网络用于根据统计池化层的输出结果提取语音的句子级别的特征向量。
在本实施例的一些可选的实现方式中,上述用于训练语音处理模型的装置还包括:存储单元(图中未示出)被配置成存储训练完成的初始第一语音处理模型包括的特征提取网络。
本公开的上述实施例提供的装置,通过初始模型获取单元获取初始第一语音处理模型和端到端的初始第二语音处理模型,其中,初始第一语音处理模型和初始第二语音处理模型包括相同的特征提取网络,初始第二语音处理模型还包括分类网络,特征提取网络用于提取语音的特征向量,分类网络用于根据语音的特征向量确认说话人是否为目标人;训练单元利用交替训练的方法训练初始第一语音处理模型和初始第二语音处理模型,以及将训练完成的初始第二语音处理模型确定为第二语音处理模型。由此,使两个模型在训练过程中学习到的知识可以互相指导对方的下一步训练方向,从而可以得到具有较好性能的、端到端的待用语音处理模型。
进一步参考图7,作为对上述各图所示方法的实现,本公开提供了说话人识别装置的一个实施例,该装置实施例与图4所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图7所示,本实施例提供的说话人识别装置700包括待识别语音获取单元701、确认单元702和提示单元703。其中,待识别语音获取单元701被配置成获取待识别语音;确认单元702被配置成利用预先训练的说话人识别模型根据待识别语音,确认待识别语音的说话人是否为目标人,其中,说话人识别模型基于如图2对应实施例的方法生成的待用语音处理模型得到;提示单元703被配置成响应于确定待识别语音的说话人不是目标人,生成用于提示待识别语音的说话人不是目标人的提示信息以及提示。
在本实施例中,说话人识别装置700中:待识别语音获取单元701、确认单元702和提示单元703的具体处理及其所带来的技术效果可分别参考图4对应实施例中的相关说明,在此不再赘述。
本公开的上述实施例提供的装置,通过待识别语音获取单元获取待识别语音;确认单元利用预先训练的说话人识别模型根据待识别语音,确认待识别语音的说话人是否为目标人,其中,说话人识别模型基于如第一方面中任一实现方式描述的方法生成的待用语音处理模型得到;提示单元响应于确定待识别语音的说话人不是目标人,生成用于提示待识别语音的说话人不是目标人的提示信息以及提示。由此,可以利用端到端的说话人识别模型快速地进行身份验证。
进一步参考图8,作为对上述各图所示方法的实现,本公开提供了语音处理装置的一个实施例,该装置实施例与图5所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图8所示,本实施例提供的语音处理装置800包括待处理语音获取单元801、提取单元802和处理单元803。其中,待处理语音获取单元801被配置成获取待处理语音;提取单元802被配置成利用预先训练的特征提取网络提取待处理语音的特征向量,其中,特征提取网络利用如图2对应实施例所示的方法生成;处理单元803被配置成根据待处理语音的特征向量进行语音识别和/或语音合成。
在本实施例中,语音处理800中:待处理语音获取单元801、提取单元802和处理单元803的具体处理及其所带来的技术效果可分别参考图5对应实施例中的相关说明,在此不再赘述。
本公开的上述实施例提供的装置,通过待处理语音获取单元获取待处理语音;提取单元利用预先训练的特征提取网络提取待处理语音的特征向量,其中,特征提取网络利用如第一方面中的一个实现方式生成;处理单元根据待处理语音的特征向量进行语音识别和/或语音合成。由此,可以利用特征提取网络得到的任意说话人的语音的embedding表示作为身份向量应用于各种语音识别或语音合成的任务中,辅助提升语音识别和/或语音合成任务的处理性能。
下面参考图9,其示出了适于用来实现本公开的实施例的电子设备(例如图1中的服务器)900的结构示意图。图9示出的服务器仅仅是一个示例,不应对本公开的实施例的功能和使用范围带来任何限制。
如图9所示,电子设备900可以包括处理装置(例如中央处理器、图形处理器等)901,其可以根据存储在只读存储器(rom)902中的程序或者从存储装置908加载到随机访问存储器(ram)903中的程序而执行各种适当的动作和处理。在ram903中,还存储有电子设备900操作所需的各种程序和数据。处理装置901、rom902以及ram903通过总线904彼此相连。输入/输出(i/o)接口905也连接至总线904。
通常,以下装置可以连接至i/o接口905:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置906;包括例如液晶显示器(lcd)、扬声器、振动器等的输出装置907;包括例如磁带、硬盘等的存储装置908;以及通信装置909。通信装置909可以允许电子设备900与其他设备进行无线或有线通信以交换数据。虽然图9示出了具有各种装置的电子设备900,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。图9中示出的每个方框可以代表一个装置,也可以根据需要代表多个装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置909从网络上被下载和安装,或者从存储装置908被安装,或者从rom902被安装。在该计算机程序被处理装置901执行时,执行本公开的实施例的方法中限定的上述功能。
需要说明的是,本公开的实施例所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开的实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开的实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取初始第一语音处理模型和端到端的初始第二语音处理模型,其中,初始第一语音处理模型和初始第二语音处理模型包括相同的特征提取网络,初始第二语音处理模型还包括分类网络,特征提取网络用于提取语音的特征向量,分类网络用于根据语音的特征向量确认说话人是否为目标人;利用交替训练的方法训练初始第一语音处理模型和初始第二语音处理模型,以及将训练完成的初始第二语音处理模型确定为待用语音处理模型。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的实施例的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c ,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开的实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括初始模型获取单元和训练单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,训练单元还可以被描述为“利用交替训练的方法训练所述初始第一语音处理模型和初始第二语音处理模型的单元”。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开的实施例中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开的实施例中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
1.一种用于训练语音处理模型的方法,包括:
获取初始第一语音处理模型和端到端的初始第二语音处理模型,其中,所述初始第一语音处理模型和初始第二语音处理模型包括相同的特征提取网络,所述初始第二语音处理模型还包括分类网络,特征提取网络用于提取语音的特征向量,分类网络用于根据语音的特征向量确认说话人是否为目标人;
利用交替训练的方法训练所述初始第一语音处理模型和初始第二语音处理模型,以及将训练完成的初始第二语音处理模型确定为待用语音处理模型。
2.根据权利要求1所述的方法,其中,所述分类网络利用概率线性判别分析算法实现。
3.根据权利要求1所述的方法,其中,所述特征提取网络基于x-vectors构建。
4.根据权利要求2所述的方法,其中,所述分类网络使用对数似然比计算语音之间的相似度,其中,所述语音之间的相似度用于表征两个语音属于同一说话人的概率。
5.根据权利要求4所述的方法,其中,所述分类网络包括用于对语音的特征向量进行降维的降维层、用于根据所述降维层的输出计算对数似然比的打分层、用于根据打分层的输出进行分类的分类层。
6.根据权利要求5所述的方法,其中,所述降维层利用线性判别分析算法实现。
7.根据权利要求3所述的方法,其中,所述特征提取网络包括基于时延神经网络构建的第一子网络、统计池化层、第二子网络,其中,所述第一子网络用于提取语音的帧级别的特征向量,所述统计池化层用于统计分析所述第一子网络的输出结果,所述第二子网络用于根据所述统计池化层的输出结果提取语音的句子级别的特征向量。
8.根据权利要求1-7之一所述的方法,其中,所述方法还包括:
存储训练完成的初始第一语音处理模型包括的特征提取网络。
9.一种说话人识别方法,包括:
获取待识别语音;
利用预先训练的说话人识别模型根据所述待识别语音,确认所述待识别语音的说话人是否为目标人,其中,所述说话人识别模型基于如权利要求1-7之一所述的方法生成的待用语音处理模型得到;
响应于确定所述待识别语音的说话人不是目标人,生成用于提示所述待识别语音的说话人不是目标人的提示信息以及提示。
10.一种语音处理方法,包括:
获取待处理语音;
利用预先训练的特征提取网络提取所述待处理语音的特征向量,其中,所述特征提取网络利用如权利要求8所述的方法生成;
根据所述待处理语音的特征向量进行语音识别和/或语音合成。
11.一种用于训练语音处理模型的装置,包括:
初始模型获取单元,被配置成获取初始第一语音处理模型和端到端的初始第二语音处理模型,其中,所述初始第一语音处理模型和初始第二语音处理模型包括相同的特征提取网络,所述初始第二语音处理模型还包括分类网络,特征提取网络用于提取语音的特征向量,分类网络用于根据语音的特征向量确认说话人是否为目标人;
训练单元,被配置成利用交替训练的方法训练所述初始第一语音处理模型和初始第二语音处理模型,以及将训练完成的初始第二语音处理模型确定为待用语音处理模型。
12.一种说话人识别装置,包括:
待识别语音获取单元,被配置成获取待识别语音;
确认单元,被配置成利用预先训练的说话人识别模型根据所述待识别语音,确认所述待识别语音的说话人是否为目标人,其中,所述说话人识别模型基于如权利要求1-7之一所述的方法生成的待用语音处理模型得到;
提示单元,被配置成响应于确定所述待识别语音的说话人不是目标人,生成用于提示所述待识别语音的说话人不是目标人的提示信息以及提示。
13.一种语音处理装置,包括:
待处理语音获取单元,被配置成获取待处理语音;
提取单元,被配置成利用预先训练的特征提取网络提取所述待处理语音的特征向量,其中,所述特征提取网络利用如权利要求8所述的方法生成;
处理单元,被配置成根据所述待处理语音的特征向量进行语音识别和/或语音合成。
14.一种电子设备,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-10中任一所述的方法。
15.一种计算机可读介质,其上存储有计算机程序,其中,该程序被处理器执行时实现如权利要求1-10中任一所述的方法。
技术总结