用于确定声音特性的系统和方法与流程
2021-01-28 17:01:19|376|起点商标网
本申请一般涉及用于确定声音特性的系统和方法。
背景技术:
:许多应用是基于人声特性开发的。例如,可以根据用户的声音来认证用户。为此,已经提出了诸如深度学习的机器学习算法来训练计算机系统识别人声。深度学习,也称为深度神经网络(dnn),是人工智能中机器学习的一个子集,它具有能够从非结构化数据(可以为标记的或无标记的)中学习的网络。这样的机器学习算法通常涉及尝试将主体(例如,说话者)分配到类别(例如,身份)中。为了提高基于人声确定声音特性的计算机系统的性能,期望最大化类别间的差异并且最小化类别内的差异。即,在算法的输出中,每个类别中的主体应尽可能相似,而不同类别中的主体应尽可能不同。技术实现要素:本文的各种实施例包括但不限于用于确定声音特性的系统、方法和非暂时性计算机可读介质。根据一些实施例,用于确定声音特性的方法包括:获得说话者的语音数据;将所述语音数据输入到至少通过联合地最小化第一损失函数和第二损失函数而训练的模型中,其中,所述第一损失函数包括基于非采样的损失函数,所述第二函数包括具有非单位多元协方差矩阵(non-unitmulti-variantcovariancematrix)的高斯混合损失(gaussianmixtureloss)函数;以及从经训练模型中获得所述说话者的一个或多个声音特性。在一些实施例中,通过最小化所述第一损失函数来训练所述模型,优化说话者分类;以及通过最小化所述第二损失函数来训练模型,优化说话者聚类。在一些实施例中,所述非单位多元协方差矩阵包括标准偏差对角矩阵。在一些实施例中,所述具有非单位多元协方差矩阵的高斯混合损失函数包括大间隔高斯混合损失函数。在一些实施例中,所述基于非采样的损失函数包括附加性间隔软最大损失(additivemarginsoftmaxloss)函数。在一些实施例中,所述第一损失函数充当所述第二损失函数的调节器;以及所述第二损失函数充当所述第一损失函数的调节器。在一些实施例中,所述方法还包括:获得一个或多个说话者中的每个说话者的一个或多个声音特性;获得候选用户的一个或多个声音特性;将所述候选用户的一个或多个声音特性与所述一个或多个说话者中的每个说话者的一个或多个特性进行比较;以及至少基于所述比较来识别所述候选用户是否是所述一个或多个说话者中的任何说话者。在一些实施例中,所述方法还包括:获得候选用户的一个或多个声音特性;将所述候选用户的一个或多个声音特性与所述说话者的一个或多个特性进行比较;以及至少基于所述比较来验证所述候选用户是否是所述说话者。在一些实施例中,将所述候选用户的一个或多个声音特性与所述一个或多个说话者中的每个说话者的一个或多个声音特性进行比较包括:将表示所述候选用户的一个或多个声音特性的向量和表示所述一个或多个说话者中的每个说话者的一个或多个特征的不同向量之间的距离与阈值进行比较。在一些实施例中,获得所述说话者的语音数据包括,获得与所述语音数据相对应的声谱图,以及获得与所述声谱图相对应的多个特征向量;以及将所述语音数据输入到所述经训练模型中包括,将所述多个特征向量输入到所述经训练模型中。在一些实施例中,所述经训练模型包括:第一卷积层,被配置为接收所述多个特征向量作为所述第一卷积层的输入;第一池化层,被配置为接收所述第一卷积层的输出作为所述第一池化层的输入;多个残差网络层,被配置为接收所述第一池化层的输出作为所述多个残差网络层的输入;第二卷积层,被配置为接收所述多个残差网络层的输出作为所述第二卷积层的输入;第二池化层,被配置为接收所述第二卷积层的输出作为所述第二池化层的输入;以及嵌入层,被配置为接收所述第二池化层的输出作为所述嵌入层的输入,并输出表示所述说话者的一个或多个声音特性的向量。在一些实施例中,最小化所述第一损失函数包括,至少对于所述嵌入层,最小化基于非采样的损失函数,以优化类别间分类误差;以及最小化所述第二损失函数包括,至少对于所述嵌入层,最小化具有非单位多元协方差矩阵的高斯混合损失函数,以减少类别内变化。在一些实施例中,最小化所述第一损失函数包括将间隔从零线性增加到用于退火的目标间隔值。根据其他实施例,一种用于确定声音特性的系统,包括:一个或多个处理器以及耦接到所述一个或多个处理器且其上存储有指令的一个或多个计算机可读存储器,所述指令可由所述一个或多个处理器执行以执行前述实施例中任一个所述的方法。根据其他实施例,一种非暂时性计算机可读存储介质,配置有可由一个或多个处理器执行以促使所述一个或多个处理器执行前述实施例中任一个所述的方法的指令。根据其他实施例,一种用于确定声音特性的装置,包括用于执行前述实施例中任一个所述的方法的多个模块。根据一些实施例,一种用于确定声音特性的系统包括一个或多个处理器以及存储有指令的一个或多个非暂时性计算机可读存储介质,所述指令可由所述一个或多个处理器执行以促使所述一个或多个处理器执行包括以下的操作:获得说话者的语音数据;将所述语音数据输入到至少通过联合地最小化第一损失函数和第二损失函数而训练的模型中,其中,所述第一损失函数包括基于非采样的损失函数,所述第二函数包括具有非单位多元协方差矩阵的高斯混合损失函数;以及从经训练模型中获得所述说话者的一个或多个声音特性。根据其他实施例,一种非暂时性计算机可读存储介质,配置有可由一个或多个处理器执行以促使所述一个或多个处理器执行包括以下的操作的指令:获得说话者的语音数据;将所述语音数据输入到至少通过联合地最小化第一损失函数和第二损失函数而训练的模型中,其中,所述第一损失函数包括基于非采样的损失函数,所述第二函数包括具有非单位多元协方差矩阵的高斯混合损失函数;以及从经训练模型中获得所述说话者的一个或多个声音特性。根据其他实施例,一种用于确定声音特性的装置,包括第一获得模块,用于获得说话者的语音数据;输入模块,用于将所述语音数据输入到至少通过联合地最小化第一损失函数和第二损失函数而训练的模型中,其中,所述第一损失函数包括基于非采样的损失函数,所述第二函数包括具有非单位多元协方差矩阵的高斯混合损失函数;以及第二获得模块,用于从经训练模型中获得所述说话者的一个或多个声音特性。本文公开的实施例具有一个或多个技术效果。在一些实施例中,分别优化类别间的可分离性和类别内的可变性的两个损失函数被联合采用。在一个实施例中,采用基于非采样的损失函数来优化类别间的可分离性,并且采用具有非单位多元协方差矩阵的高斯混合损失来减少类别内的变化。这种组合不仅提高了使用基于间隔(margin)的方法进行分类的泛化能力,而且还显著降低了类别内的可变性。在一个实施例中,与单独对类别可分离性或类别内的可变性的优化相比,对类别间的可分离性和类别内的可变性两者的优化实现更好的性能(例如,更快和更好的收敛)。在一个实施例中,提供了端到端架构以通过最小化两个损失函数来训练所公开的模型。在一些实施例中,利用联合优化,学习的嵌入从可变长度语音片段中捕获片段级声学表示,以区分说话者并复制说话者集群的密度。在一些实施例中,分类和聚类的联合优化有助于对说话者的验证和识别。在一个实施例中,可以实现针对相同类别的主体的更大的相似性和针对不同类别的主体的更大的差异,使得所确定的声音特性更加准确。在一个实施例中,针对类别内可变性的优化通过适应说话者嵌入以多种形状和模式分布的可能性,改善了确定声音特性的处理。在一个实施例中,为了优化类别间的可分离性,提供了一种退火(annealing)方法来稳定地训练附加性间隔softmax损失。本文公开的系统、方法和非暂时性计算机可读介质的这些和其他特征,相关结构要素的操作方法和功能以及各部分的结合,以及批量生产的经济考量,在结合附图来考虑下文的描述和附加的权利要求时将变得更加明显,所有这些均形成了本文的一部分,其中,相同的附图标记在各个附图中表示相应的部分。然而,应该明确地理解,附图仅是出于说明和描述的目的,而并非旨在进行限制。附图说明图1示出了根据一些实施例的用于确定声音特性的系统。图2a示出了根据一些实施例的用于获得特征向量的方法。图2b示出了根据一些实施例的用于训练用于确定声音特性的模型的方法。图2c示出了根据一些实施例的等错误率(eer)的评估。图3示出了根据一些实施例的用于确定声音特性的方法。图4示出了根据一些实施例的用于确定声音特性计算机系统的框图。图5示出了可以实现本文描述的任何实施例的计算机系统的框图。具体实施方式声音特性作为个人特点具有各种应用潜力。声音特性可以包括以下中的一个或多个:音量、音高、语调(升调或降调)、声调、持续时间、语速、响度等。每个人可能具有区别于其他人的一个或多个独特的声音特性。在一个示例中,在给定已记录的说话者的声音特性和一些语音表述作为试验的情况下,说话者验证可以认证说话者身份。说话者验证输出接受或拒绝未识别的语音表述与说话者相关联的二元决策。在另一应用示例中,说话者识别与说话者验证的不同之处在于,必须根据语音表述来识别说话者,并且其输出是来自一组说话者的说话者身份。声音特性可能基于语音,也可能不基于语音。因此,说话者验证和说话者识别系统可以进一步分类为文本独立型或文本依赖型。与文本依赖型系统相比,文本独立型系统不会将表述内容固定为某些词汇短语。在一个示例中,对于文本依赖型系统,所有用户都必须说出相同的预设短语才能基于他们的声音被识别;但是对于文本独立型系统,用户可以说出不同的短语或发出不同的声音,而仍然可以被识别。已经提出了各种方法来使用深度学习获得实值的、紧凑的低维向量以表示说话者特性。深度学习是人工智能机器学习的一个子集,它具有能够从非结构化或无标记数据中学习的网络。深度学习可以是有监督的、半监督的或无监督的。近期的工作试图结合各种损失(loss)函数,例如,三元组损失、中心损失和对比损失,以训练说话者嵌入(通过深度学习得到的一组高级特征表示)。例如,可以将损失函数应用于属于其相关联的说话者的语音表述的正样本和与说话者不相关联的语音表述的负样本。又例如,中心损失可以被测量作为说话者嵌入与其中心之间的欧几里得(euclidean)损失。还需要进行改进以增强声音特性的适用性。本文描述的实施例提供用于确定声音特性的方法、系统和装置。可以联合采用分别优化类别间的可分离性和类别内的可变性的两种损失函数。在一些施例中,为了减小分类误差,采用基于非采样的损失函数来优化类别间的可分离性,并且采用具有非单位多元协方差矩阵的高斯混合损失来减少类别内的变化。所确定的声音特性可以被提供用于用户验证、用户识别或其他应用。图1示出了根据一些实施例的用于确定声音特性的系统100。以下呈现的系统100的组件旨在是说明性的。取决于实施方式,系统100可以包括附加的、更少的或替代的步骤。在一些实施例中,系统100可以包括计算系统102、计算设备104和计算设备106。应当理解,尽管图1中示出了三个计算设备,系统100中可以包括任意数量的计算设备。计算系统102可以实现在一个或多个网络(例如企业网络)、一个或多个端点、一个或多个服务器(例如服务器130)、或者一个或多个云中。服务器130可以包括对网络中的集中式资源或服务的访问进行管理的硬件或软件。云可以包括分布在网络上的服务器和其他设备的集群。在一些实施例中,计算系统102可以包括第一获得组件112、输入组件114和第二获得组件116。计算系统102可以包括一个或多个处理器(例如数字处理器、模拟处理器、设计用于处理信息的数字电路、中央处理器、图形处理单元、微控制器或微处理器、设计用于处理信息的模拟电路、状态机和/或其他用于电子化处理信息的机制)和一个或多个存储器(例如永久存储器、临时存储器、非暂时性计算机可读存储介质)。所述一个或多个存储器可以配置有可由一个或多个处理器执行的指令。处理器可以被配置为通过解释存储在存储器中的机器可读指令来执行各种操作。计算系统102可以安装有适当的软件(例如平台程序等)和/或硬件(例如电线,无线连接等)以访问系统100的其他设备。在一些实施例中,计算设备104和106可以在诸如移动电话、平板电脑、服务器、台式计算机和膝上型计算机之类的各种设备上实现,或者实现为诸如移动电话、平板电脑、服务器、台式计算机和膝上型计算机之类的各种设备。计算系统102可以与计算设备104和106以及其他计算设备通信。设备间通信可能通过本地网络(例如lan)、通过直接通信(例如蓝牙tm、射频、红外)等在互联网上发生。在一个实施例中,计算设备104或106可以包括麦克风或配置为记录语音数据(例如人声)的替代设备,或与此类设备相关联。用户可以在麦克风的检测范围内讲话以进行音频捕获。在一些实施例中,系统100可以包括声音特性确定平台。例如,计算系统102和/或其他计算设备可以实现声音特性确定平台。声音特性确定平台可以训练用于确定声音特性的模型并实现其应用。例如,平台可以通过通信122从例如计算设备104的各种源获得训练数据。计算设备104可能已经记录或存储了一个或多个说话者的语音数据。该平台可以利用训练数据来训练机器学习模型以获得经训练模型。经训练模型可以部署在远程服务器、云、客户端侧设备等中。例如,计算设备106可以安装有用于通过通信124调用部署在计算设备106或服务器130中的经训练模型的软件应用、web应用、应用程序接口(api)或其他合适的接口。计算设备104和106可各自与一个或多个用户相关联。在一些实施例中,用户140可以与计算设备106交互,通过该计算设备调用经训练模型。例如,通过对耦接到计算设备104的麦克风讲话,用户140可以向计算设备106提供语音数据(例如,声音126),计算设备106将语音数据输入到经训练模型中以验证用户140、识别用户140或基于声音特性执行另一应用。虽然在图1中,计算系统102是作为单一实体被示出的,但这仅是为了便于参考而不旨在作为限制。本文描述的计算系统102的一个或多个组件或一个或多个功能可以在单个计算设备或多个计算设备中实现。例如,计算系统102可以合并计算设备106,反之亦然。即,第一获得组件112、输入组件114和第二获得组件116中的每一个可以在计算系统102或计算设备106中实现。类似地,计算系统102可以耦接到一个或多个其他计算设备并与之关联,该计算设备能够实现计算系统102的部分组件或功能。计算设备106可以包括一个或多个处理器以及耦接到处理器的一个或多个存储器,该存储器配置有可由一个或多个处理器执行的指令,以使一个或多个处理器执行本文所述的各个步骤。系统100的各种组件可以被配置为执行用于确定声音特性的步骤。在一些实施例中,第一获得组件112可以被配置为获得说话者的语音数据。在一些实施例中,为了获得说话者的语音数据,第一获得组件112可以被配置为获得与语音数据相对应的声谱图,并获得与该声谱图相对应的多个特征向量。参考图2a,图2a示出了根据一些实施例的用于获得特征向量的方法。该方法可以由计算设备106和/或计算系统102执行。在一些实施例中,音频序列201可以表示由计算设备106捕获的说话者(例如,用户140)的语音数据的示例。在x轴方向的连续时间序列中,音频序列201标记有语音单词、停顿(pau)或无声(sil)的相应的块。图中的竖虚线可以标记各种图示上的相同的时间戳,并指示它们之间的对应关系。取决于应用,可以要求或可以不要求音频序列201包含某些文本依赖型的触发短语。在一些实施例中,通过将单词分解成语言单元,使用音频序列202作为音频序列201的替代表示。语言单元可能有许多分类和定义,例如音位、音位部分、三音素、单词和n元组。所示的语言单位仅是示例。在一个示例中,音位是一组在一门语言中具有唯一的含义或功能的语音,并且可以是一门语言的音系学中最小的有意义的对比单元。音位的数量可能因不同的语言而异,大多数语言具有20-40个音位。在一个示例中,“hello”可以分为语言单元/音位:“hh”、“ah”、“l”和“ow”。在一些实施例中,谱203可以表示语音数据(例如,音频序列201)。音频可能有各种不同的表示形式。在一个示例中,谱203可以示出所捕获的声音相对于时间的振幅。在一些实施例中,可以至少基于谱203来获得声谱图204。声谱图204可以是语音数据的频率相对于时间的表示。在一个实施例中,可将傅立叶变换应用于谱203以获得声谱图204。在声谱图204中,振幅信息以灰度显示为暗区和亮区。亮区可以指示在相应的时间、相应的频率处没有捕获到任何声音(例如停顿、无声),而暗区可以指示存在声音。基于暗图案和亮图案在x轴方向上的变化,可以确定语言单元(例如,单词、音素)之间的边界。此外,两条虚线之间的y轴方向上的暗区图案可以指示在相应时间段捕获的各种频率,并且可以提供(携带声音身份的)共振峰和音渡的信息,以帮助确定相应的音素。在一些实施例中,可以至少基于声谱图204来获得特征序列205。在一个实施例中,可将倒频谱分析应用于声谱图204以获得特征序列205。例如,时间帧可以沿x轴移动并逐帧采样声谱图204。这样,语音数据可以被转换为一系列特征向量,在图中显示为矩形块。在一个实施例中,可以在宽度为25ms、步长为10ms、1024个点的fft(快速傅立叶变换)的滑动汉明窗内生成短时声谱图。可以沿频率轴执行均值和方差归一化。可以从每段话语中随机采样300帧的音频语音数据进行训练,以覆盖3.015秒的语音并给出大小为300×512的声谱图,即时间维度上300和频率维度上512的特征。本领域技术人员将理解应用其他技术以获得特征向量。这些特征向量可用于训练模型或传递给经训练模型以实现各种应用。参考图2b,图2b示出了根据一些实施例的用于训练用于确定声音特性的模型的方法。在一些实施例中,如图所示,模型可以是包括多个层的深度学习模型。作为机器学习的子集,深度学习可以利用人工神经网络的层次结构级别来执行机器学习的处理。深度学习系统的分层功能使机器可以使用非线性方法来处理数据。人工神经网络是像人的大脑一样建立起来的,其中的神经元节点像网络一样连接在一起。人工神经网络基于被称为人工神经元(由各个层中的圆圈表示,例如此图中的层207和208)的互相连接的单元或节点的集合,它们宽泛地模拟了生物脑中的神经元。每个连接都像生物大脑中的突触一样,可以将信号传输到其他神经元。接收信号的人工神经元随后对其进行处理,并可以向与其连接的其他神经元发出信号。连接处的信号可以是实数,并且每个神经元的输出可以通过对其输入之和的某种非线性函数来计算。这些连接称为边缘(由连接线表示,例如该图中的层207和208之间的连接线)。神经元和边缘通常具有随着学习的进行而调整的权重。权重增加或减小连接处信号的强度。神经元可以具有阈值,使得仅当总信号超过该阈值时才发送信号。神经元被聚集成层。由于每一层包括多个神经元,因此相邻的层通过具有相关权重的各种神经元之间的连接相连。不同的层可以对其输入执行不同的变换。信号从第一层(输入层)出发,可能在遍历这些层一次或多次之后,到达最后一层(输出层)。在一些实施例中,作为对图2b的概述,dnn可以用作特征提取器,以将倒频谱声学特征(例如,特征序列205)作为其输入,使用几个帧级正向或卷积操作的层,然后在池化层之后,输出被称为嵌入向量的音段级表示。将分类和聚类损失的结合用于训练嵌入向量。通过嵌入向量,可以使用具有从嵌入向量到说话者id的投影的软最大(softmax)分类器来区分不同的说话者。另外,退火(annealing)方案利用分类损失中的间隔来提高经训练的嵌入向量的泛化能力,并使训练处理更加稳定。由于不同的说话者可能会导致具有不同平均值和标准差的不同高斯分布,从而反映出人声的独特性,因此经训练的嵌入向量可能会以具有多种形状和模式的高斯混合分布。为了使经训练的嵌入向量趋向于这种分布,应用了聚类损失。下面描述模型的更多细节。在一些实施例中,经训练的或未训练的模型可包括从一个神经元层输出到下一神经元层的多个神经元层,从而形成dnn。多个神经元层可以包括例如resnet-34(34层残差网络)架构、resnet-50架构等。例如,所述多个层可以包括:第一卷积层206a,被配置为接收多个特征向量(例如,特征序列205)作为第一卷积层206a的输入;第一池化层206b,被配置为接收第一卷积层206a的输出作为第一池化层206b的输入;多个残差网络层206c,被配置为接收第一池化层206b的输出作为所述多个残差网络层206c的输入;第二卷积层206d,被配置为接收多个残差网络层206c的输出作为第二卷积层206d的输入;第二池化层207,被配置为接收第二卷积层206d的输出作为第二池化层207的输入;嵌入层208,被配置为接收第二池化层207的输出作为嵌入层208的输入,并输出表示说话者的一个或多个声音特性的向量。第一卷积层206a可以是输入层,嵌入层208可以是输出层。第一卷积层206a、第一池化层206b、多个残差网络层206c和第二卷积层206d可以称为共享网络206。嵌入向量是离散变量到连续数字向量的映射。在一些实施例中,通过嵌入层208,语音数据输入的单词或短语可以被映射到实数向量。因此,模型从每个单词具有很多维的空间转换为具有维度低得多的连续向量空间。在一些实施例中,可以使用如表1所示的resnet-34(34层残差网络)架构。在表1中,conv1可以对应于第一卷积层206a,pool1可以对应于第一池化层206b,rest_block1到rest_block4可以对应于多个残差网络层206c,conv2可以对应于第二卷积层206d,并且pool1可以对应于第二池化层207。对于每个卷积运算符的输出,在计算整流线性单位(relu)激活之前,应用了表1中未示出的批量归一化。resnet-34的参数可以被初始化。嵌入向量的大小可以被设置为512,并且512通道参数relu(prelu)激活可以被用作特征嵌入向量。将prelu用作非线性激活函数的优点是可以避免取消像relu这样的嵌入向量空间的负维度中的相关性,并增强嵌入特征的鲁棒性。层名称配置输出大小conv1(7×7,64),步长264×148×254pool13×3,最大池,步长264×73×126res_block1[(3×3,64)2]×364×73×126res_block2[(3×3,128)2]×4128×37×63res_block3[(3×3,256)2]×6256×19×32res_block4[(3×3,512)2]×3512×10×16conv2(1×9,512)512×10×8pool2自适应平均池512×1×1嵌入层512×512,prelu512→512分类层512×c,c=5994512→5994表1.resnet-34架构。三重输出大小以(通道×时序×频率)的形式表示。[(3×3,64)2]×3表示3个残差块,每个残差块包含2个卷积运算符,每个卷积运算符有大小为3×3的内核和64个过滤器,其他类似。对于的第一个块,在输入和输出之间有不同数量的过滤器,需要使用内核大小为1×1的一次卷积进行捷径连接。在一些实施例中,如果模型是未训练的,则可以至少通过联合地最小化第一损失函数和第二损失函数来训练模型。例如,特征序列205可以被馈送到未训练的模型,以通过最小化两个损失函数来训练各层(例如从输入层到输出层)。最小化损失函数是一种评估特定算法对给定数据进行建模的成果的方法。如果预测与实际结果相差太大,则损失函数会输出很大的数值。逐渐地,借助一些优化函数,损失函数学会了减少预测误差。下面介绍第一损失函数(209a,用于分类)。在一些实施例中,第一损失函数(例如,下面的等式(3))可以是基于非采样的损失函数。通过最小化第一损失函数来训练模型可以优化说话者分类。用于分类的损失函数可以是计算上可行的损失函数,其表示为识别特定观察结果(例如语音数据输入)属于哪个类别(例如说话者身份类别)中的预测的不准确性而付出的代价。通常涉及标记数据集的学习处理的目标是最大程度地降低预期风险。在一个实施例中,基于非采样的损失函数包括附加性间隔softmax损失函数。softmax函数采用n维的实数向量,并将其转换为范围为(0,1)的实数向量,其总和为1。softmax函数可用于基于神经网络的分类器的最后一层中。可以在对数丢失或交叉熵机制下训练此类网络,从而给出多项式逻辑回归的非线性变体。与用决策边界线分隔两个不同类别的初始softmax相比,附加性间隔softmax用决策间隔(例如,角度区域)分隔两个不同类别。在一些实施例中,至少对于嵌入层而言,使第一损失函数最小化包括使基于非采样的损失函数最小化以优化类别间分类误差。即,将一类与另一类混合的误差被最小化。通过分类误差优化,可以使类别之间的距离更远(例如,209a的类别spk1(说话者1)和类别spk3(说话者3)相距较远)并且更容易彼此区分,从而减少了在应用中混淆的可能性。在一个实施例中,使第一损失函数最小化而训练了多个神经元层(例如,从第一卷积层206a到嵌入层208)。这提供了一个训练模型的端到端框架,而不是在一个模型下训练第一卷积层206a到嵌入层208,并在另一个模型下训练嵌入层208以优化分类或聚类。用于分类的softmax损失函数公式如下其中n和c分别是批量大小和类别号。是第i个样本的具有d维嵌入的d+1维实数向量,并且附加有标量1。是类别j的权重向量。内积可以等效地用角度形式表示为其中是wj和xi之间的角度。角度softmax在角θ上引入了乘性间隔m。角度softmax首先约束权重向量wj具有单位范数,即在wj(||wj,i<d||=1,wj,d=0)中标准化权重并将偏差标量归零。所述内积变成它进一步应用如下的相乘性间隔,此处,m仅应用于正标签yi。对于xi及其相应的标签yi之间在范围内的角选择大于1.0的m会减小角距离在训练处理中将m从1.0逐渐退火到更大的值时,可以迫使针对相应的标签yi学习的嵌入向量xi与从softmax训练出的相比更具区别性。代替公式(2)中使用相乘性间隔m,附加性间隔softmax在角度空间中使用附加性间隔。此外,嵌入向量xi被归一化为1(||xi||=1),然后通过超参数s重新缩放。所述损失函数如下ψ(θ)有两种定义形式。一种被定义为cosθ-m,以用于附加性余弦间隔softmax,即cosams。第二种是cos(θ+m),用于附加性角间隔softmax,即arcams。增加m将导致等式(3)中的后验概率减少,因为余弦函数单调递减,因此强制xi更具区别性。另外,可以将s视为用于退火的温度参数。与使用s=1相比,使用大s使后验概率更锐利。在一些实施例中,第一损失函数包括附加性间隔softmax损失函数(等式3)。使用区别性损失函数(例如大间隔)来训练模型,可能会出现局部最优或发散。当前解决此问题的方法是从预先训练的具有softmax损失的模型开始,但这可能很耗时。在一些实施例中,下面介绍用于使用附加性间隔softmax损失来训练模型的退火方法。在一个实施例中,最小化第一损失函数包括将间隔从零线性增加到用于退火的目标间隔值。训练处理稳定为向间隔m的一个渐进过渡。间隔m可以从0线性增加到目标间隔值,如m=min(mmax,minc×t),其中t≥0是时元(epoch)步长。为了保证arcams损失的数值稳定性,如果sin(θ+m)>0(即在笛卡尔坐标系的上象限中),可以将其配置为ψ(θ)=cos(θ+m),否则将其配置为ψ(θ)=cos(θ)。下面介绍第二损失函数(209b,用于聚类)。在一些实施例中,第二函数可以是具有非单位多元协方差矩阵的高斯混合损失函数。在一个实施例中,非单位多元协方差矩阵包括标准偏差对角矩阵。协方差矩阵是这样一个矩阵,其在i,j位置的元素是随机向量的第i个和第j个元素之间的协方差。在一些实施例中,通过使第二损失函数最小化来训练模型可以优化说话者聚类。聚类的目的是在无监督或不了解聚类的性质的情况下,将相似的数据点分组在一起。在一些实施例中,用于聚类的损失函数可以是无监督表征学习损失和面向聚类的损失的线性组合。有关更多详细信息,请参见公式(6)至(8)。在一些实施例中,至少对于嵌入层而言,最小化第二损失函数包括利用非单位多元协方差矩阵最小化高斯混合损失函数以减少类别内差异。对于高斯混合损失函数,每个聚类根据不同的高斯分布建模。每个数据点可以由任何分布以相应的概率生成。通过聚类变化损失优化,相同类别中的单元彼此更相似(例如209b的类spk1的大小较小,并且反映了其各个单元之间的强烈相似性)。在一个实施例中,具有非单位多元协方差矩阵的高斯混合损失函数包括大间隔高斯混合损失函数。在一个实施例中,使第二损失函数最小化而训练了多个神经元层(例如,从第一卷积层206a到嵌入层208)。这提供了一个训练模型的端到端框架,而不是在一个模型下训练第一卷积层206a到嵌入层208,并在另一个模型下训练嵌入层208以优化分类或聚类。在一些实施例中,假设在训练集上提取的嵌入向量xi按高斯密度混合分布。每个高斯分量k具有其均值μk与协方差σk,以及先验概率πk。如果有c这样的高斯分量,则损失被定义为测量xi属于聚类k这一假设的接近性以及高斯混合模型的后验概率。该后验概率表示为汇总所有观察结果可得:对于yi和c的说话者idxi对应于作为分类任务的分类编号。那么,在嵌入空间中更加注重区分能力。但是,优化上述损失不能确保获得的嵌入向量xi拟合高斯分布的混合。因此,在一些实施例中,可以通过如下引入似然函数来添加明确驱动嵌入向量向高斯密度分布的混合的正则化项。增加这种可能性可以驱动提取的嵌入向量xi朝向其相应的高斯分布。在一些实施例中,高斯混合损失可以被定义为其中λ是非负加权系数。为了简单起见,先验概率可以是对角协方差矩阵。然后变为以下形式,其中常数项被删除。在一些实施例中,为了优化损失使用随机梯度下降(sgd)算法更新高斯混合分量的所有参数,包括μk和∑k,以及嵌入向量xi。在等式(7)中应用对角协方差可能会有数值困难,因为协方差矩阵∑k需要为半正定矩阵。在一些实施例中,定义代替∑k,标准偏差对角矩阵λk是要学习的参数。λk被初始化为单位矩阵。在一些实施例中,当给出高斯分量标识时,应用间隔来提高所学习到的嵌入向量xi的泛化能力是有益的。为此,距离针对正样本被提高了标量1+αi,其中间隔α大于零。新的损失函数,大间隔高斯混合,定义如下其中icond是一个指标函数,如果满足cond,则icond等于1,否则icond等于0。对于说话者识别,损失更泛化。在一些实施例中,第二损失函数包括具有非单位多元协方差矩阵的高斯混合损失函数(等式8)。在一些实施例中,第一损失函数充当第二损失函数的调节器,并且第二损失函数充当第一损失函数的调节器。正则化器允许在优化过程中对层参数或层活动施加惩罚。这些惩罚并入由网络所优化的损失函数中。训练嵌入向量时,这两个损失函数互相帮助实现稳定和快速的收敛。在一些实施例中,积分损失函数是分类损失和聚类损失的组合,表示为等式(3)和等式(8)的相加,例如如下所示等式(9)可针对损失使用mmax=0.2、minc=0.035、s=30,并针对损失使用mmax=0.25、minc=0.045、s=30。对于损失,令α=0.01,λ=0.01。在一些实施例中,两个度量可以用于模型评估。第一个度量是等错误率(eer),其被定义为未命中概率pmiss等于虚警概率pfa时的比率,第二个度量是最小检测成本函数(mindcf),其被定义为其中cmiss和cfa分别是pmiss和pfa的成本权重,ptar是目标概率。由于pmiss和pfa是阈值的函数,中的最小值是在所有可能的阈值上计算的。例如,cmiss=1.0,cfa=1.0,并且ptar=0.01。在一些实施例中,对于训练和测试,使用动量sgd来优化模型,其中动量为0.9,权重衰减为5×10-4。最小批量为64。在每个时元的开始,训练样本都会被随机排序。包括和的附加性间隔softmax损失的初始学习率为0.1。对于附加性间隔softmax损失和学习率设置为0.01。学习率每6个时元下降0.1。在12个时元之后,训练终止,以避免当验证集上的等错误率(eer)增大时过拟合。在测试过程中,使用了全长的话语,并在表1中使用自适应平均池提取了嵌入向量。作为端到端深度说话者嵌入模型,当评估性能时,使用余弦距离作为后端评分。在一些实施例中,将分类和聚类相结合可改善模型训练的收敛性。参照图2c,图2c中的曲线图示出了使用不同方法相对于验证集合上的训练时元的eer变化。图2c示出了在一些实施例中,尽管最终是收敛的,但是附加性间隔softmax损失可能在其训练开始时具有eer的波动。它需要具有较小的学习率,但是会导致较低的收敛率。另一方面,将附加性间隔softmax损失与大间隔高斯混合损失相结合,与单独使用附加性间隔softmax损失相比,可实现更快的收敛且更稳定。对于后者,它使用0.1的学习率,该学习率导致在训练的早期阶段eer性能的波动。使用大学习率可能对所提出的方法有利,因为有可能避开局部最优鞍点并在稍后阶段更接近全局最优。再次参考图1,输入组件114可以被配置为至少通过联合地最小化第一损失函数和第二损失函数来将语音数据输入到训练的模型中。训练处理可以例如是如上所述的。在一些实施例中,输入组件114可以被配置为将多个特征向量输入到训练模型中。经训练模型可以包括层206a至208,但是具有相关的参数,例如经训练和固定的权重。经训练模型可能已针对分类和聚类进行了优化。在一些实施例中,经训练模型可以输出说话者的一个或多个声音特性。第二获得组件116可以被配置为从经训练模型中获得说话者的一个或多个声音特性。一个或多个声音特性可以由来自模型的嵌入层输出表示。在一些实施例中,一个或多个声音特性可以用于许多任务,例如说话者识别、验证和聚类。在一个实施例中,计算系统102可以被配置为对一个或多个说话者执行上述步骤,并获得针对一个或多个说话者中的每个说话者的一个或多个声音特性。可以存储一个或多个说话者的声音特性以用于用户识别、验证、聚类等。在用户识别的一个实施例中,计算系统102可以被配置为针对候选用户执行上述步骤以获得候选用户(例如,用户140)的一个或多个声音特性,将候选用户的一个或多个声音特性与一个或多个说话者中的每个说话者的一个或多个特性进行比较,并至少基于比较确定候选用户是否是一个或多个说话者中的任何一个说话者。例如,员工在公司安全门口讲话的语音数据可用于识别员工的身份并记录员工的工作时间。在用户验证的一个实施例中,计算系统102可以被配置为针对候选用户执行上述步骤以获得候选用户的一个或多个声音特性,将候选用户的一个或多个声音特性与说话者的一个或多个特性进行比较,并且至少基于比较来验证候选用户是否是说话者。例如,用户对移动电话讲话的语音数据可以用于认证用户。如果移动电话验证用户是移动电话的真实所有者,则移动电话可以为用户解锁某些功能。在一些实施例中,为了将候选用户的一个或多个声音特性与一个或多个说话者中的每个说话者的一个或多个特性进行比较,计算系统102可以被配置将表示候选用户的一个或多个声音特性的向量和表示一个或多个说话者中的每个说话者的一个或多个特性的不同向量之间的距离与阈值进行比较。如果该距离在用于候选用户与一个或多个说话者中的说话者a之间的比较的阈值之内,则指示该候选用户很可能是说话者a。如果该距离不在用于候选用户与一个或多个说话者中的说话者a之间的比较的阈值之内,则指示该候选用户不太可能是说话者a。图3示出了根据一些实施例的用于确定声音特性的方法300的流程图。方法300可以由用于确定声音特性的设备、装置或系统执行。方法300可以由图1至图2c的示出的环境或系统的一个或多个组件执行,例如,由计算机系统102执行。以下示出的方法300的操作旨在是说明性的。取决于实施方式,方法300可以包括以各种顺序或并行执行的附加的、更少的或替代的步骤。框310包括获得说话者的语音数据。框320包括将语音数据输入到至少通过联合地最小化第一损失函数和第二损失函数而训练的模型中,其中,第一损失函数包括基于非采样的损失函数,第二函数包括具有非单位多元协方差矩阵的高斯混合损失函数。在一些实施例中,获得说话者的语音数据包括:获得与语音数据对应的声谱图;以及获得与该声谱图相对应的多个特征向量;将语音数据输入到训练模型中包括:将多个特征向量输入到经训练模型中。在一些实施例中,第一损失函数充当第二损失函数的调节器;并且第二损失函数充当第一损失函数的调节器。在一些实施例中,通过最小化第一损失函数来训练模型,优化说话者分类;并且通过最小化第二损失函数来训练模型,优化说话者聚类。在一个实施例中,非单位多元协方差矩阵包括标准偏差对角矩阵。在一个实施例中,具有非单位多元协方差矩阵的高斯混合损失函数包括大间隔高斯混合损失函数。在一个实施例中,基于非采样的损失函数包括附加性间隔softmax损失函数。在一些实施例中,经训练模型包括:第一卷积层,被配置为接收多个特征向量作为第一卷积层的输入;以及第一池化层,被配置为接收第一卷积层的输出作为第一池化层的输入;多个残差网络层,被配置为接收第一池化层的输出作为多个残差网络层的输入;第二卷积层,被配置为接收多个残差网络层的输出作为第二卷积层的输入;第二池化层,被配置为接收第二卷积层的输出作为第二池化层的输入;嵌入层,被配置为接收第二池化层的输出作为嵌入层的输入,并输出表示说话者的一个或多个声音特性的向量。在一些实施例中,最小化第一损失函数包括,至少对于嵌入层,最小化基于非采样的损失函数,以优化类别间分类误差;并且最小化第二损失函数包括,至少对于嵌入层,最小化具有非单位多元协方差矩阵的高斯混合损失函数,以减少类别内变化。在一些实施例中,最小化第一损失函数包括将间隔从零线性增加到用于退火的目标间隔值。框330包括从经训练模型获得说话者的一个或多个声音特性。在一些实施例中,方法300还包括:获得一个或多个说话者中的每个说话者的一个或多个声音特性;获得候选用户的一个或多个声音特性;将候选用户的一个或多个声音特性与一个或多个说话者中的每个说话者的一个或多个特征进行比较;至少基于所述比较来识别候选用户是否是一个或多个说话者中的任何说话者。可选地,方法300还包括:获得候选用户的一个或多个声音特性;比较候选用户的一个或多个语音特征与说话者的一个或多个特征;至少基于所述比较来验证候选用户是否是说话者。在一些实施例中,将候选用户的一个或多个声音特性与一个或多个说话者中的每个说话者的一个或多个特征进行比较包括:将表示候选用户的一个或多个声音特性的向量和表示一个或多个说话者中的每个说话者的一个或多个特征的不同向量之间的距离与阈值进行比较。图4示出了根据一些实施例的用于确定声音特性的计算机系统400的框图。以下示出的计算机系统400的组件旨在是说明性的。取决于实施方式,计算机系统400可以包括附加的、更少的或替代的组件。计算机系统400可以是计算系统102的一个或多个组件的实现的示例。方法300可以由计算机系统400实现。计算机系统400可以包括一个或多个处理器以及耦接到所述一个或多个处理器的一个或多个非暂时性计算机可读存储介质(例如一个或多个存储器),所述存储介质配置有可被一个或多个处理器执行的指令,以使系统或设备(例如处理器)执行上述方法,例如方法300。计算机系统400可以包括与所述指令(例如软件指令)相对应的各种单元/模块。在一些实施例中,计算系统400可以被称为用于确定声音特性的装置。该装置可以包括:第一获得模块410,用于获取说话者的语音数据;输入模块420,用于将语音数据输入到至少通过联合地最小化第一损失函数和第二损失函数来训练的模型中,其中第一损失函数包括基于非采样的损失函数,第二函数包括具有非单位多元协方差矩阵的高斯混合损失函数;第二获得模块430,用于从经训练模型中获得说话者的一个或多个声音特性。第一获得模块410可以对应于第一获得组件112。输入模块420可以对应于输入组件114。第二获得模块430可以对应于第二获取组件116。本文描述的技术可以由一个或多个专用计算设备来实现。该专用计算设备可以是台式计算机系统、服务器计算机系统、便携式计算机系统、手持式设备、网络设备或包含配置于硬件的逻辑和/或程序逻辑的任何设备或设备的组合,以实现所述技术的任何其他设备或设备组合。该专用计算设备可以被实现为个人计算机、膝上型计算机、蜂窝电话、照相电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏机、平板计算机、可穿戴设备或其组合。计算设备通常可以由操作系统软件控制和协调。常规的操作系统控制和调度用于执行的计算机进程,执行内存管理,提供文件系统,网络连接,i/o服务,并提供诸如图形用户界面(“gui”)等的用户界面功能。本文描述的各种系统、装置、存储介质、模块和单元可以在专用计算设备或一个或多个专用计算设备的一个或多个计算芯片中实现。在一些实施例中,本文描述的指令可以在专用计算设备上的虚拟机中实现。在被执行时,所述指令可以使专用计算设备执行本文描述的各种方法。所述虚拟机可以包括软件、硬件或其组合。图5示出了其中可以实现本文描述的实施例中的任何一个的计算机系统500的框图。可以在图1-4中所示的设备、装置或系统(例如计算系统102)的任何组件中实现计算机系统500。例如计算系统102。图1-4所示的方法中的一个或多个,例如方法300,可以由计算机系统500的一种或多种实现来执行。计算机系统500可以包括总线502或用于信息沟通的其他通信机制,与总线502耦接的用于处理信息的一个或多个硬件处理器504。硬件处理器504可以是例如一个或多个通用微处理器。计算机系统500还可包括耦接到总线502、用于存储可由处理器504执行的信息和指令的主存储器506,例如随机存取存储器(ram)、缓存和/或其他动态存储设备。主存储器506还可用于在执行可由处理器504执行的指令期间存储临时变量或其他中间信息。当将这些指令存储在处理器504可访问的存储介质中时,这些指令将计算机系统500渲染成专用于执行指令中指定的操作的专用机器。计算机系统500可以进一步包括只读存储器(rom)508或耦接到总线502的其他静态存储设备,用于存储用于处理器504的静态信息和指令。可以提供诸如磁盘、光盘或usb拇指驱动器(闪存驱动器)等的存储设备510,并将其耦接到总线502以存储信息和指令。计算机系统500可以使用定制的硬连线逻辑、一个或多个asic或fpga、固件和/或程序逻辑来实现本文所述的技术,这些逻辑与计算机系统结合使计算机系统500成为专用计算机,或对计算机系统500进行编程使其成为专用计算机。根据一个实施例,本文所述的操作、方法和处理由计算机系统500响应于处理器504执行包含在主存储器506中的一个或多个指令的一个或多个序列来执行。可以从诸如存储设备510之类的另一存储介质将这样的指令读入主存储器506。执行包含在主存储器506中的指令序列可以使处理器504执行本文所述的处理步骤。在替代实施例中,可以使用硬连线电路代替软件指令或与软件指令结合使用。主存储器506、rom508和/或存储设备510可以包括非暂时性存储介质。如本文中所使用的,术语“非暂时性介质”和类似术语是指存储有导致机器以特定方式运行的数据和/或指令的介质,所述介质不包括瞬时信号。这样的非暂时性介质可以包括非易失性介质和/或易失性介质。非易失性介质包括例如光盘或磁盘,例如存储设备510。易失性介质包括动态存储器,例如主存储器506。非暂时性介质的常见形式包括,例如软盘、柔性盘、硬盘、固态驱动器、磁带或任何其他磁性数据存储介质、cd-rom、任何其他光学数据存储介质、具有孔图案的任何物理介质、ram、prom和eprom、flash-eprom、nvram、任何其他存储芯片或盒式磁带及其网络版本。计算机系统500可以包括耦接到总线502的网络接口518。网络接口518可以提供耦接到与一个或多个本地网络连接的一个或多个网络链路的双向数据通信。例如,网络接口518可以是集成服务数字网络(isdn)卡、电缆调制解调器、卫星调制解调器或调制解调器,以向对应类型的电话线提供数据通信连接。作为另一示例,网络接口518可以是局域网(lan)卡,以提供到兼容lan(或与wan通信的wan组件)的数据通信连接。也可以实现无线链接。在任何这样的实现中,网络接口518可以发送和接收携带表示各种类型的信息的数字数据流的电信号、电磁信号或光信号。计算机系统500可以通过网络、网络链接和网络接口518发送消息并接收数据,包括程序代码。在互联网的示例中,服务器可以通过互联网、isp、局域网和网络接口518发送针对应用程序的被请求的代码。接收到的代码可以在被接收到时由处理器504执行,和/或被存储在存储设备510或其他非易失性存储器中,以供以后执行。前面各节中描述的每个处理、方法和算法都可以体现在由一个或多个包含计算机硬件的计算机系统或计算机处理器执行的代码模块中,或由这些代码模块完全或部分自动执行。所述处理和算法可以部分地或全部地在专用电路中实现。上述的各种特征和处理可以彼此独立地使用或者可以以各种方式组合。所有可能的组合和子组合均旨在落入本文的范围内。另外,在某些实施方式中,可以省略某些方法或处理框。本文所述的方法和处理也不限于任何特定的顺序,并且可以以适当的其他顺序执行与之相关的框或状态。例如,可以以不同于具体公开的顺序来执行所描述的框或状态,或者可以在单个框或状态中组合多个框或状态。框或状态的示例可以串行,并行或以其他方式执行。框或状态可以被添加到所公开的实施例或从所公开的实施例中去除。本文描述的系统和组件的示例可以被配置为与所描述的不同。例如,与所公开的实施例相比,可以添加、移除或重新布置元素。本文描述的方法的各种操作可以至少部分地由被临时配置(例如,通过软件)或永久地配置为执行相关操作的一个或多个处理器执行。无论是临时配置还是永久配置,这样的处理器都可以构成由处理器实现的引擎,该引擎运行以执行本文所述的一个或多个操作或功能。类似地,本文描述的方法可以至少部分地由处理器实现,其中一个或多个特定处理器是硬件的示例。例如,一种方法的至少一些操作可以由一个或多个处理器或由处理器实现的引擎执行。此外,一个或多个处理器还可在“云计算”环境中或作为“软件即服务”(saas)来支持相关操作的执行。例如,至少一些操作可以由一组计算机(作为包括处理器的机器的示例)执行,这些操作可以通过网络(例如互联网)和一个或多个适当的接口(例如应用程序接口(api))被访问。某些操作的执行可以分布在处理器之间,不仅可以驻留在单个计算机内,而且可以跨多个计算机部署。在一些实施例中,处理器或由处理器实现的引擎可以位于单一的地理位置中(例如,在家庭环境、办公室环境或服务器农场中)。在其他实施例中,处理器或由处理器实现的引擎可以分布在多个地理位置上。在全文中,多个实例可以实现被描述为单个实例的组件、操作或结构。尽管将一种或多种方法的单独操作示出并描述为独立的操作,但是可以同时执行一个或多个单独操作,并且不需要按照所示顺序执行操作。在配置中表示为独立组件的结构和功能可以实现为组合的结构或组件。类似地,呈现为单一组件的结构和功能可以实现为独立的组件。这些和其他变型、修改、添加和改进均在本文主题的范围内。尽管已经参考特定实施例描述了主题的概述,但是在不脱离本文的实施例的较宽范围的情况下,可以对这些实施例进行各种修改和改变。具体实施方式不应以限制性的意义来理解,并且各种实施例的范围仅由所附权利要求书以及这些权利要求书所有的等同的全部范围来限定。此外,在此使用的相关术语(诸如“第一”、“第二”、“第三”等)不表示任何顺序、高度或重要性,而是用于将一个元件与另一个元件区分开。此外,术语“一个”、“一种”和“多个”在本文中不表示数量限制,而是表示存在所提及的项目中的至少一个。当前第1页1 2 3 
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除
热门咨询
tips