HI,欢迎来到起点商标网!
24小时服务QQ:2880605093

语音识别模型的训练方法、装置、电子设备及存储介质与流程

2021-01-28 15:01:41|285|起点商标网
语音识别模型的训练方法、装置、电子设备及存储介质与流程

本公开涉及人工智能领域,具体涉及一种语音识别模型的训练方法、装置、电子设备及存储介质。



背景技术:

随着人工智能技术的发展,通过训练语音识别模型以应用于各种语音识别相关的场景(例如:语音转写、智能语音助手等)服务用户有着重要的应用价值。现在技术中,语音识别模型多基于大量的有监督语音数据进行训练。而有监督数据的标注往往需要耗费大量的人力资源与物力资源,有监督数据的体量始终受到限制,从而导致训练出的语音识别模型的泛用性低。



技术实现要素:

本公开的一个目的在于提出一种语音识别模型的训练方法、装置、电子设备及存储介质,能够提高语音识别模型的泛用性。

根据本公开实施例的一方面,公开了一种语音识别模型的训练方法,所述语音识别模型包括编码器以及解码器,其中,所述编码器将语音数据降采样后进行掩码处理并编码为重构声学特征,所述解码器将所述重构声学特征解码为标签序列,所述方法包括:

基于无监督的第一语音数据对编码器的参数进行更新,得到预训练后的编码器;

将有监督的第二语音数据输入目标语音识别模型,得到所述目标语音识别模型中解码器输出的目标标签序列,其中,所述目标语音识别模型中编码器为所述预训练后的编码器;

基于所述第二语音数据以及所述目标标签序列,获取所述目标语音识别模型的注意力损失函数,以及与所述目标语音识别模型中解码器共享所述目标语音识别模型中编码器的连续时间分类ctc损失函数;

基于所述注意力损失函数以及所述ctc损失函数对所述目标语音识别模型的参数进行更新,得到训练完成的目标语音识别模型。

根据本公开实施例的一方面,公开了一种语音识别模型的训练装置,所述装置包括:

第一更新模块210,配置为基于无监督的第一语音数据对编码器的参数进行更新,得到预训练后的编码器;

输入模块220,配置为将有监督的第二语音数据输入目标语音识别模型,得到所述目标语音识别模型中解码器输出的目标标签序列,其中,所述目标语音识别模型中编码器为所述预训练后的编码器;

获取模块230,配置为基于所述第二语音数据以及所述目标标签序列,获取所述目标语音识别模型的注意力损失函数,以及与所述目标语音识别模型中解码器共享所述目标语音识别模型中编码器的连续时间分类ctc损失函数;

第二更新模块240,配置为基于所述注意力损失函数以及所述ctc损失函数对所述目标语音识别模型的参数进行更新,得到训练完成的目标语音识别模型。

在本公开的一示例性实施例中,所述装置配置为:

获取所述语音数据对应的语音帧序列;

对所述语音帧序列进行降采样,得到降采样后的语音帧序列;

对所述降采样后的语音帧序列进行掩码处理,得到掩码后的语音帧序列;

基于自注意力层将所述掩码后的语音帧序列编码为所述重构声学特征。

在本公开的一示例性实施例中,所述装置配置为:

根据预设选取比例从所述降采样后的语音帧序列中随机选取出各待掩码的语音帧;

针对每一所述待掩码的语音帧,以第一概率将所述待掩码的语音帧转换为0向量,以第二概率将所述待掩码的语音帧转换为随机帧,以第三概率保持所述待掩码的语音帧不变,其中,所述第一概率、所述第二概率以及所述第三概率之和为1。

在本公开的一示例性实施例中,所述装置配置为:

根据预设选取比例从所述降采样后的语音帧序列中随机选取出各待掩码的语音帧组,每一所述语音帧组由连续的至少两个语音帧组成;

针对每一所述待掩码的语音帧组,以第一概率将所述待掩码的语音帧组中的语音帧转换为0向量,以第二概率将所述待掩码的语音帧组中的语音帧转换为随机帧,以第三概率保持所述待掩码的语音帧组不变,其中,所述第一概率、所述第二概率以及所述第三概率之和为1。

在本公开的一示例性实施例中,所述装置配置为:

获取所述重构声学特征;

基于掩码多头注意力层清除与输入序列的非法连接,并基于所述输入序列将所述重构声学特征解码为所述标签序列。

在本公开的一示例性实施例中,所述装置配置为:

将所述第一语音数据输入所述编码器,获取所述编码器将所述第一语音数据降采样后进行掩码处理所得到的掩码声学特征以及所述编码器编码所述掩码声学特征所得到的重构声学特征;

基于所述第一语音数据的掩码声学特征与所述第一语音数据的重构声学特征,确定所述编码器的损失函数;

基于所述编码器的损失函数对所述编码器的参数进行更新,得到更新后的编码器。

在本公开的一示例性实施例中,所述装置配置为:

获取预设的验证集中的验证语音数据;

将所述验证语音数据输入所述更新后的编码器,得到所述验证语音数据的掩码声学特征以及所述验证语音数据的重构声学特征;

若检测到所述验证语音数据的掩码声学特征与所述验证语音数据的重构声学特征之间的损失值触发预设损失值阈值,则停止所述预训练,得到所述预训练后的编码器。

在本公开的一示例性实施例中,所述装置配置为:

根据预先分别向所述注意力损失函数以及所述ctc损失函数分配的权重,对所述注意力损失函数以及所述ctc损失函数进行加权,得到联合损失函数;

根据所述联合损失函数对所述目标语音识别模型的参数进行更新。

在本公开的一示例性实施例中,所述装置配置为:根据所述联合损失函数对所述目标语音识别模型中编码器的参数以及所述目标语音识别模型中解码器的参数共同进行更新。

在本公开的一示例性实施例中,所述装置配置为:根据所述联合损失函数对所述目标语音识别模型中解码器的参数进行更新,其中,保持所述目标语音识别模型中编码器的参数不变。

在本公开的一示例性实施例中,所述装置配置为:将所述目标语音识别模型中编码器的参数从可更新参数列表中删除。

在本公开的一示例性实施例中,所述装置配置为:

获取预设的测试集中的测试语音数据;

基于所述测试语音数据对所述训练完成的目标语音识别模型中解码器进行测试,并根据测试结果确定是否对所述训练完成的目标语音识别模型再次训练。

根据本公开实施例的一方面,公开了一种语音识别模型的训练电子设备,包括:存储器,存储有计算机可读指令;处理器,读取存储器存储的计算机可读指令,以执行以上权利要求中的任一个所述的方法。

根据本公开实施例的一方面,公开了一种计算机可读存储介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行以上权利要求中的任一个所述的方法。

根据本公开实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的方法。

本公开实施例中,在训练语音识别模型的过程中,先无监督地预训练编码器,编码器预训练完成后再有监督地对包含有预训练后的编码器的整个语音识别模型进行训练。由于现实中的语音数据大多是无监督的,有监督的数据需要花费大量资源去标注,因此,通过这种方法,使得编码器能够高准确度地编码出无监督语音数据的重构声学特征,提高了对无监督数据的利用率,从而提高了语音识别模型的泛用性。

本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。

附图说明

通过参考附图详细描述其示例实施例,本公开的上述和其它目标、特征及优点将变得更加显而易见。

图1示出了根据本公开一个实施例的语音识别模型的训练方法的流程图。

图2示出了根据本公开一个实施例的对编码器进行预训练的示意图。

图3示出了根据本公开一个实施例的语音识别模型的训练以及测试的流程图。

图4示出了根据本公开一个实施例的语音识别模型的结构图。

图5示出了根据本公开一个实施例的语音识别模型的训练装置的框图。

图6示出了根据本公开一个实施例的语音识别模型的训练电子设备的硬件图。

具体实施方式

现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些示例实施方式使得本公开的描述将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。

此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多示例实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的示例实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、步骤等。在其它情况下,不详细示出或描述公知结构、方法、实现或者操作以避免喧宾夺主而使得本公开的各方面变得模糊。

附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

本公开实施例提出了一种语音识别模型的训练方法,涉及人工智能(artificialintelligence,ai)领域,更具体的,涉及人工智能领域中的机器学习(machinelearning,ml)。

其中,人工智能是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。

人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。

机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。

本公开实施例中,所训练的语音识别模型基于编码器-解码器这一结构端到端地进行语音识别。该编码器对输入的语音数据降采样后进行掩码处理进而编码为重构声学特征;该解码器将该重构声学特征解码为标签序列,从而根据该标签序列可以得到语音数据的识别结果。

本公开实施例中,在训练语音识别模型的过程中,先无监督地预训练编码器,编码器预训练完成后再有监督地对包含有预训练后的编码器的整个语音识别模型进行训练。由于现实中的语音数据大多是无监督的,有监督的数据需要花费大量资源去标注,因此,通过这种方法,使得编码器能够高准确度地编码出无监督语音数据的重构声学特征,提高了对无监督数据的利用率,从而提高了语音识别模型的泛用性。

本公开实施例中,训练完成的语音识别模型可以以端到端的工作方式,应用于各种语音识别任务相关的场景中。例如:转录语音文件、在直播中实时生成字幕、在法庭庭审中实时文字记录庭审对话、通过语音与智能设备交互、使用业务场景文本语料零代码自助训练语言模型。

在详细描述本公开实施例的实施过程之前,首先对本公开实施例涉及的部分概念进行简要解释。

无监督主要指的是未经人工事先分类监督。具体的,无监督的第一语音数据指的是没有被打上作为参考基准的人工标签的语音数据。例如:没有对应的人工转录文本的语音数据。该语音数据被输入语音识别模型后,语音识别模型会输出该语音数据的转录文本,但语音识别模型所输出的转录文本可能是正确的,也可能是错误的。由于不存在对应的人工转录文本,所以一般无法通过与人工转录文本的直接对比来衡量该语音识别模型所输出的转录文本的质量。

有监督主要指的是经过人工事先分类监督。具体的,有监督的第二语音数据指的是已被打上作为参考基准的人工标签的语音数据。在后续的描述中,该人工标签被描述为真实标签序列。可以理解的,由于有监督的数据至少在一定程度上需要人力的付出,因此,在现实应用中,有监督的数据的数量远远小于无监督的数据的数量。

重构声学特征指的是将语音数据的初始声学特征(例如:梅尔滤波器组特征,fbank特征)进行一系列处理后所得到的一般以向量表示的高级声学特征。

连续时间分类ctc(全称connectionisttemporalclassification)损失函数是一种以条件独立为假设,描述序列到序列之间所发生损失的损失函数。

图1示出了本公开一实施例的语音识别模型的训练方法,示例性地以服务器为该训练方法的执行主体对本公开实施例的实施过程进行描述。该语音识别模型包括编码器以及解码器,其中,该编码器将语音数据降采样后进行掩码处理并编码为重构声学特征,该解码器将该重构声学特征解码为标签序列。如图所示,该方法包括:

步骤s110、基于无监督的第一语音数据对编码器的参数进行更新,得到预训练后的编码器;

步骤s120、将有监督的第二语音数据输入目标语音识别模型,得到所述目标语音识别模型中解码器输出的目标标签序列,其中,所述目标语音识别模型中编码器为所述预训练后的编码器;

步骤s130、基于所述第二语音数据以及所述目标标签序列,获取所述目标语音识别模型的注意力损失函数,以及与所述目标语音识别模型中解码器共享所述目标语音识别模型中编码器的连续时间分类ctc损失函数;

步骤s140、基于所述注意力损失函数以及所述ctc损失函数对所述目标语音识别模型的参数进行更新,得到训练完成的目标语音识别模型。

首先对所训练语音识别模型内部的编码器的数据处理过程以及解码器的数据处理过程进行描述。

在一实施例中,将语音数据降采样后进行掩码处理并编码为重构声学特征,包括:

获取该语音数据对应的语音帧序列;

对该语音帧序列进行降采样,得到降采样后的语音帧序列;

对该降采样后的语音帧序列进行掩码处理,得到掩码后的语音帧序列;

基于自注意力层将该掩码后的语音帧序列编码为该重构声学特征。

该实施例中,编码器对所输入的语音数据进行降采样后再进行掩码处理,进而再编码为重构声学特征。

具体的,编码器对所输入的语音数据进行分帧,得到该语音数据对应的语音帧序列;对该语音帧序列进行降采样,降低该语音帧序列的序列长度,得到序列长度缩短了的降采样后的语音帧序列;在将该降采样后的语音帧序列输入自注意力层之前,对其进行掩码,转换其中部分帧,得到掩码后的语音帧序列;进而将该掩码后的语音帧序列输入自注意力层,根据该自注意力层以后后续网络层的处理,将该掩码后的语音帧序列编码为重构声学特征。

该实施例的优点在于,通过先对语音帧序列降采样再进行掩码这种方法,降低了声学谱图的平滑性,加快了编码器的处理效率。

在一实施例中,通过在编码器的自注意力层之前设置二维卷积层,利用二维语谱图的结构局部性对语音帧序列进行降采样。例如:设置2个二维卷积层,通过这2个二维卷积层对语音帧序列进行降采样后,该语音帧序列的序列长度缩短至原先的四分之一。

需要说明的是,该实施例只是示例性的说明,不应对本公开的功能和使用范围造成限制。

在一实施例中,对该降采样后的语音帧序列进行掩码处理,包括:

根据预设选取比例从该降采样后的语音帧序列中随机选取出各待掩码的语音帧;

针对每一该待掩码的语音帧,以第一概率将该待掩码的语音帧转换为0向量,以第二概率将该待掩码的语音帧转换为随机帧,以第三概率保持该待掩码的语音帧不变,其中,该第一概率、该第二概率以及该第三概率之和为1。

该实施例中,采用随机掩码的方式对单帧进行掩码。

具体的,编码器根据预设选取比例随机选取出可以互不相临的语音帧作为待掩码的语音帧;对每一待掩码的语音帧,以第一概率将其转换为0向量,以第二概率将其转换为随机帧,以第三概率保持其不变,第一概率加上第二概率加上第三概率等于1。

例如:编码器从降采样后的语音帧序列中随机选取出15%作为待掩码的语音帧,这些随机选取出的待掩码的语音帧通常互不相邻;针对每一待掩码的语音帧,再以80%的概率将其转换为0向量,以10%的概率将其转换为随机帧,以10%的概率保持其不变。

在一实施例中,对该降采样后的语音帧序列进行掩码处理,包括:

根据预设选取比例从该降采样后的语音帧序列中随机选取出各待掩码的语音帧组,每一该语音帧组由连续的至少两个语音帧组成;

针对每一该待掩码的语音帧组,以第一概率将该待掩码的语音帧组中的语音帧转换为0向量,以第二概率将该待掩码的语音帧组中的语音帧转换为随机帧,以第三概率保持该待掩码的语音帧组不变,其中,该第一概率、该第二概率以及该第三概率之和为1。

该实施例中,采用随机掩码的方式对连续的多帧进行掩码。

具体的,编码器将降采样后的语音帧序列划分为多个语音帧组,每个语音帧组由连续的多个语音帧组成;根据预设选取比例随机选取出待掩码的语音帧组;对每一待掩码的语音帧组,以第一概率将其内部的所有语音帧转换为0向量,以第二概率将其内部的所有语音帧转换为随机帧,以第三概率保持其不变,第一概率加上第二概率加上第三概率等于1。

例如:编码器将降采样后的语音帧序列平均划分为100个语音帧组,每个语音帧组由连续的4个语音帧组成——语音帧组1由语音帧1至语音帧4组成(语音帧组1表示的是第一个语音帧组,语音帧1表示的是语音数据的第一个语音帧),语音帧组2由语音帧5至语音帧8组成,以此类推;从这100个语音帧组中随机选取出15个语音帧组作为待掩码的语音帧组;针对每一待掩码的语音帧组,以80%的概率将其内部的4个语音帧均转换为0向量,以10%的概率将其内部的4个语音帧均转换为随机帧,以10%的概率保持其不变。

该实施例的优点在于,通过对连续的多帧进行掩码,避免了声学特征中单帧所具有的信息过于少而带来的局限性。

在一实施例中,将该重构声学特征解码为标签序列,包括:

获取该重构声学特征;

基于掩码多头注意力层清除与输入序列的非法连接,并基于该输入序列将该重构声学特征解码为该标签序列。

该实施例中,解码器基于掩码多头注意力层清除与输入序列的非法连接,进而基于该输入序列将重构声学特征解码为标签序列。具体的,可以通过一个二进制对角矩阵的点乘来清除与输入序列的非法连接,避免解码器在解码过程中获取到未来的信息。

需要说明的是,解码器在解码过程中除了基于掩码多头注意力层清除非法连接,其他结构组成与编码器的结构组成大致相似。该实施例只是示例性的说明,不应对本公开的功能和使用范围造成限制。

下面对训练语音识别模型的实施过程进行描述。

在一实施例中,基于无监督的第一语音数据对该编码器的参数进行更新,包括:

将该第一语音数据输入该编码器,获取该编码器将该第一语音数据降采样后进行掩码处理所得到的掩码声学特征以及该编码器编码该掩码声学特征所得到的重构声学特征;

基于该第一语音数据的掩码声学特征与该第一语音数据的重构声学特征,确定该编码器的损失函数;

基于该编码器的损失函数对该编码器的参数进行更新,得到更新后的编码器。

该实施例中,服务器无监督地对编码器进行预训练,预训练过程中根据掩码声学特征与重构声学特征确定编码器的损失函数,进而根据编码器的损失函数对编码器的参数进行更新。

具体的,服务器将无监督的第一语音数据输入编码器。编码器对该第一语音数据进行降采样再进行掩码,得到掩码声学特征;编码器进而基于自注意力层对该掩码声学特征进行编码得到重构声学特征。服务器根据该掩码声学特征与该重构声学特征之间的差异确定该编码器的损失函数,进而根据该编码器的损失函数对该编码器的参数进行更新,得到更新后的编码器。

图2示出了本公开一实施例的对编码器进行预训练的示意图。

该实施例中,无监督的第一语音数据的语音帧序列被表示为fbank特征,记该fbank特征为x=(x1,x2,...,xt),t为第一语音数据的语音帧序列的序列长度;该fbank特征经过降采样层的处理后,再使用为0向量的掩码帧对其中的xi、xj以及xk进行掩码处理,得到掩码声学特征,记该掩码声学特征为h=(h1,h2,..ht)。其中,该降采样层由两层卷积层组成。故得到:

h=mask(conv(conv(x)))

其中,函数mask代表掩码处理过程,函数conv代表卷积层处理过程。

该掩码声学特征h经过解码块的处理后,被解码为重构声学特征e=(e1,e2,...et)。故得到:

e=h+subblcok(h)

其中,函数subblock代表解码块处理过程。

故,得到预训练过程中编码器的损失函数:

当i=1时,求得图中所示的l1loss。

需要说明的是,该实施例只是示例性的说明,不应对本公开的功能和使用范围造成限制。

在一实施例中,在基于该编码器的损失函数对该编码器的参数进行更新之后,该方法还包括:

获取预设的验证集中的验证语音数据;

将该验证语音数据输入该更新后的编码器,得到该验证语音数据的掩码声学特征以及该验证语音数据的重构声学特征;

若检测到该验证语音数据的掩码声学特征与该验证语音数据的重构声学特征之间的损失值触发预设损失值阈值,则停止该预训练,得到该预训练后的编码器。

该实施例中,服务器在预训练编码器的过程中,根据早停原则确定预训练的停止时机。

具体的,每当基于第一语音数据对编码器的参数进行一次更新后,服务器使用预设的验证集对该编码器进行验证:将验证集中的验证语音数据输入该编码器,编码器对验证语音数据降采样后进行掩码从而得到验证语音数据的掩码声学特征,编码器对该掩码声学特征进行编码从而得到验证语音数据的重构声学特征;确定该掩码声学特征与该重构声学特征之间的损失值,若检测到该损失值触发预设的损失值阈值,则触发早停,停止该预训练。

该实施例的优点在于,通过早停原则确定预训练的停止时机,避免了预训练的过拟合的发生。

本公开实施例中,无监督预训练编码器得到预训练后的编码器后,再有监督地微调整个目标语音识别模型。其中,该目标语音识别模型中编码器为该预训练后的编码器。在微调之初,该目标语音识别模型中解码器为初始化状态。

具体的,编码器预训练完成后,服务器将预训练后的编码器的参数导入目标语音识别模型中,根据该预训练后的编码器的参数初始化目标语音识别模型的编码器,并随机初始化目标语音识别模型的解码器。初始化完成后,服务器将有监督的第二语音数据输入目标语音识别模型,得到目标语音识别模型中解码器输出的目标标签序列。

本公开实施例中,得到目标标签序列后,结合有监督的第二语音数据获取ctc损失函数以及注意力损失函数。其中,该ctc损失函数用于描述第二语音数据对齐为目标标签序列这一过程所发生的损失;该注意力损失函数用于描述目标语音识别模型中注意力机制所发生的损失。

具体的,该ctc损失函数与目标语音识别模型中解码器共享目标语音识别模型中编码器,该ctc损失函数对目标语音识别模型中解码器所输出的各个因子进行条件独立的假设。该注意力损失函数对目标语音识别模型中解码器所输出的各个因子进行损失评估时,会考虑当前因子的前面各个因子所造成的影响。

在一实施例中,目标语音识别模型中解码器输出目标标签序列后,服务器以第二语音数据的真实标签序列为参照,基于前向-后向算法条件独立地评估将第二语音数据对齐为该目标标签序列所发生的损失,得到ctc损失函数:

其中,x=(x1,x2,...xt)为以初始声学特征表示的第二语音数据的语音帧序列,t为第二语音数据的语音帧序列的序列长度;y=(y1,y2,..yu)为目标语音识别模型中解码器输出的目标标签序列,u为目标标签序列的序列长度。

在一实施例中,目标语音识别模型中解码器输出目标标签序列后,服务器以第二语音数据的真实标签序列为参照,根据该真实标签序列中的真实标签与该真实标签的前面各个真实标签之间的关系,评估整个目标语音识别模型由于注意力机制所发生的损失,得到注意力损失函数:

其中,为第u个真实标签;前面的(u-1)个真实标签;x=(x1,x2,...xt)为以初始声学特征表示的第二语音数据的语音帧序列,t为第二语音数据的语音帧序列的序列长度。

在一实施例中,基于该注意力损失函数以及该ctc损失函数对该目标语音识别模型的参数进行更新,包括:

根据预先分别向该注意力损失函数以及该ctc损失函数分配的权重,对该ctc损失函数以及该注意力损失函数进行加权,得到联合损失函数;

根据该联合损失函数对该目标语音识别模型的参数进行更新。

该实施例中,服务器预先分别向ctc损失函数以及注意力损失函数分配相应的权重,其中,权重的分配主要根据对训练过程的表现侧重进行确定。得到ctc损失函数以及注意力损失函数后,服务器根据该权重进行加权得到联合损失函数:

lj=αlctc+(1-α)lattention

其中,α为预先分配的权重,α大于等于0小于等于1;lctc为ctc损失函数;lattention为注意力损失函数。

进而服务器根据该联合损失函数lj对目标语音识别模型的参数进行更新。

在一实施例中,根据该联合损失函数对该目标语音识别模型的参数进行更新,包括:根据该联合损失函数对该目标语音识别模型中编码器的参数以及该目标语音识别模型中解码器的参数共同进行更新。

该实施例中,服务器根据联合损失函数对整个目标语音识别模型的参数进行更新。具体的,根据该联合损失函数对目标语音识别模型中解码器的参数进行更新的同时,也对目标语音识别模型中编码器的参数进行更新。

在一实施例中,根据该联合损失函数对该目标语音识别模型的参数进行更新,包括:根据该联合损失函数对该目标语音识别模型中解码器的参数进行更新,其中,保持该目标语音识别模型中编码器的参数不变。

该实施例中,服务器根据联合损失函数仅对目标语音识别模型中解码器的参数进行更新,在更新该解码器的参数的同时,保持目标语音识别模型中编码器的参数维持预训练所得到的参数。

该实施例的优点在于,通过在微调过程中保持编码器的参数维持在预训练的状态不变,充分利用了大量无监督数据的高级表示,避免了由于简单的初始化进而与随机初始化的解码器相结合的过程中丢失从无监督数据中所获得的信息。从而即使资源配置较低,这种方法也能够以高准确率进行语音识别。

在一实施例中,保持该目标语音识别模型中编码器的参数不变,包括:将该目标语音识别模型中编码器的参数从可更新参数列表中删除。

该实施例中,服务器通过设置可更新参数列表的方式对目标语音识别模型的参数进行更新。具体的,服务器将目标语音识别模型中需要进行更新的参数设于该可更新参数列表中;获取到联合损失函数后,根据该联合损失函数对该可更新参数列表中的各个参数进行更新。服务器将目标语音识别模型中编码器的参数从该可更新参数列表中删除,从而服务器在根据联合损失函数对目标语音识别模型的参数进行更新的过程中,能够保持目标语音识别模型中编码器的参数维持预训练后所得到的参数。

需要说明的是,该实施例只是示例性的说明,不应对本公开的功能和使用范围造成限制。

在一实施例中,该方法还包括:

获取预设的测试集中的测试语音数据;

基于该测试语音数据对该训练完成的目标语音识别模型中解码器进行测试,并根据测试结果确定是否对该训练完成的目标语音识别模型再次训练。

该实施例中,服务器得到训练完成的目标语音识别模型后,根据预设的测试集对该训练完成的目标语音识别模型中解码器进行测试打分,进而根据测试结果确定是否要再次训练。若分数达到预设分数阈值,则不再次训练该目标语音识别模型;若分数未达到该分数阈值,则再次训练该目标语音识别模型。

其中,该预设的测试集中的测试语音数据是训练过程中未曾使用过的。测试过程中,目标语音识别模型中解码器采用自回归式的解码,具体采用集束搜索,同时辅助以ctc解码和额外流程另训练的语言模型的二次打分。

该实施例的优点在于,通过使用测试集对训练完成的目标语音识别模型进行测试进而根据测试结果确定是否需要对目标语音识别模型进行再次训练,进一步提高了所训练完成的目标语音识别模型的泛用性。

图3示出了本公开一实施例的语音识别模型的训练以及测试的流程图。

该实施例中,对于语音识别模型的处理分为两个阶段:训练阶段以及测试阶段。

训练阶段,对编码器进行随机初始化,将训练集中的无监督语音数据按照批量梯度下降原则输入到编码器中。根据编码器对所输入语音数据处理所得到的掩码声学特征与重构声学特征之间的差值确定该编码器的损失函数,进而根据该编码器损失函数对该编码器的参数进行更新。在这一过程中,采用早停原则,每次训练集中的所有无监督语音数据经过一次训练后,在预设的验证集上验证该编码器的损失值,一旦触发耐心范围内的验证集上的损失值,则停止预训练该编码器。然后将预训练后的编码器的参数导入目标语音识别模型中,根据预训练后的编码器的参数初始化目标语音识别模型的编码器,并随机初始化目标语音识别模型的解码器。将训练集中的有监督语音数据输入目标语音识别模型中对目标语音识别模型进行微调。微调过程中,在作为辅助函数的ctc损失函数以及注意力损失函数的共同作用下对目标语音识别模型的参数进行更新。与此同时,利用训练集数据的转录另训练一个基于循环神经网络的语言模型。

测试阶段,采用未在训练集中出现的测试集对训练完成的目标语音识别模型进行测试。测试过程中,目标语音识别模型自回归式地进行解码,同时辅助以ctc解码和该另训练得到的语言模型的二次打分。

需要说明的是,该实施例只是示例性的说明,不应对本公开的功能和使用范围造成限制。

图4示出了本公开一实施例的语音识别模型的结构图。

该实施例中,以初始声学特征表示的语音数据的语音帧序列x=(x1,x2,...,xt)输入编码器。经过编码器中由两层卷积层组成的降采样层后进行随机掩码,得到掩码声学特征h=(h1,h2,..ht)。在这两层卷积层中都应用了跨步长方法,将语音帧序列采样到原始长度的四分之一。在此之后,添加有一个线性投影层重塑特征的尺寸,以适应输入。其中,随机掩码遵循以下规则:随机选取15%进行掩蔽,对于选取中的每一帧以80%的概率将其转换为0向量,以10%的概率将其转换为随机帧,以10%的概率保持其不变。进一步地,加入正弦位置嵌入。其中,编码器由ne层编码器子模块组成,每一编码器子模块由两个子层组成:自注意力层以及前向反馈层。编码器的每个子层周围都有一个残余连接,然后是分层归一化步骤。

编码器输出的重构声学特征e=(e1,e2,...et)输入解码器,经过解码器的nd层解码器子模块的处理后,进一步经过线性层以及softmax函数的处理后,输出得到标签序列(y1,y2,y3,...,eos)。解码器中,在多头注意力层的下面增添有掩码多头注意力层,以清除与输入序列(sos,y1,y2,...yu)的非法连接,防止获取到未来的信息。其中,sos(全称startofsequence)为序列起始标识,eos(全称endofsequence)为序列结束标识。ctc损失函数与解码器共享编码器。其中,ctc损失函数的计算过程中,添加用于分隔各标签的空白符“—”,以避免可能出现的重复字符造成的混淆。

需要说明的是,该实施例只是示例性的说明,不应对本公开的功能和使用范围造成限制。

图5示出了根据本公开一实施例的语音识别模型的训练装置,所述装置包括:

第一更新模块210,配置为基于无监督的第一语音数据对编码器的参数进行更新,得到预训练后的编码器;

输入模块220,配置为将有监督的第二语音数据输入目标语音识别模型,得到所述目标语音识别模型中解码器输出的目标标签序列,其中,所述目标语音识别模型中编码器为所述预训练后的编码器;

获取模块230,配置为基于所述第二语音数据以及所述目标标签序列,获取所述目标语音识别模型的注意力损失函数,以及与所述目标语音识别模型中解码器共享所述目标语音识别模型中编码器的连续时间分类ctc损失函数;

第二更新模块240,配置为基于所述注意力损失函数以及所述ctc损失函数对所述目标语音识别模型的参数进行更新,得到训练完成的目标语音识别模型。

在本公开的一示例性实施例中,所述装置配置为:

获取所述语音数据对应的语音帧序列;

对所述语音帧序列进行降采样,得到降采样后的语音帧序列;

对所述降采样后的语音帧序列进行掩码处理,得到掩码后的语音帧序列;

基于自注意力层将所述掩码后的语音帧序列编码为所述重构声学特征。

在本公开的一示例性实施例中,所述装置配置为:

根据预设选取比例从所述降采样后的语音帧序列中随机选取出各待掩码的语音帧;

针对每一所述待掩码的语音帧,以第一概率将所述待掩码的语音帧转换为0向量,以第二概率将所述待掩码的语音帧转换为随机帧,以第三概率保持所述待掩码的语音帧不变,其中,所述第一概率、所述第二概率以及所述第三概率之和为1。

在本公开的一示例性实施例中,所述装置配置为:

根据预设选取比例从所述降采样后的语音帧序列中随机选取出各待掩码的语音帧组,每一所述语音帧组由连续的至少两个语音帧组成;

针对每一所述待掩码的语音帧组,以第一概率将所述待掩码的语音帧组中的语音帧转换为0向量,以第二概率将所述待掩码的语音帧组中的语音帧转换为随机帧,以第三概率保持所述待掩码的语音帧组不变,其中,所述第一概率、所述第二概率以及所述第三概率之和为1。

在本公开的一示例性实施例中,所述装置配置为:

获取所述重构声学特征;

基于掩码多头注意力层清除与输入序列的非法连接,并基于所述输入序列将所述重构声学特征解码为所述标签序列。

在本公开的一示例性实施例中,所述装置配置为:

将所述第一语音数据输入所述编码器,获取所述编码器将所述第一语音数据降采样后进行掩码处理所得到的掩码声学特征以及所述编码器编码所述掩码声学特征所得到的重构声学特征;

基于所述第一语音数据的掩码声学特征与所述第一语音数据的重构声学特征,确定所述编码器的损失函数;

基于所述编码器的损失函数对所述编码器的参数进行更新,得到更新后的编码器。

在本公开的一示例性实施例中,所述装置配置为:

获取预设的验证集中的验证语音数据;

将所述验证语音数据输入所述更新后的编码器,得到所述验证语音数据的掩码声学特征以及所述验证语音数据的重构声学特征;

若检测到所述验证语音数据的掩码声学特征与所述验证语音数据的重构声学特征之间的损失值触发预设损失值阈值,则停止所述预训练,得到所述预训练后的编码器。

在本公开的一示例性实施例中,所述装置配置为:

根据预先分别向所述注意力损失函数以及所述ctc损失函数分配的权重,对所述注意力损失函数以及所述ctc损失函数进行加权,得到联合损失函数;

根据所述联合损失函数对所述目标语音识别模型的参数进行更新。

在本公开的一示例性实施例中,所述装置配置为:根据所述联合损失函数对所述目标语音识别模型中编码器的参数以及所述目标语音识别模型中解码器的参数共同进行更新。

在本公开的一示例性实施例中,所述装置配置为:根据所述联合损失函数对所述目标语音识别模型中解码器的参数进行更新,其中,保持所述目标语音识别模型中编码器的参数不变。

在本公开的一示例性实施例中,所述装置配置为:将所述目标语音识别模型中编码器的参数从可更新参数列表中删除。

在本公开的一示例性实施例中,所述装置配置为:

获取预设的测试集中的测试语音数据;

基于所述测试语音数据对所述训练完成的目标语音识别模型中解码器进行测试,并根据测试结果确定是否对所述训练完成的目标语音识别模型再次训练。

下面参考图6来描述根据本公开实施例的训练电子设备30。图6显示的训练电子设备30仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

如图6所示,训练电子设备30以通用计算设备的形式表现。训练电子设备30的组件可以包括但不限于:上述至少一个处理单元310、上述至少一个存储单元320、连接不同系统组件(包括存储单元320和处理单元310)的总线330。

其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元310执行,使得所述处理单元310执行本说明书上述示例性方法的描述部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元310可以执行如图1中所示的各个步骤。

存储单元320可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)3201和/或高速缓存存储单元3202,还可以进一步包括只读存储单元(rom)3203。

存储单元320还可以包括具有一组(至少一个)程序模块3205的程序/实用工具3204,这样的程序模块3205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

总线330可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。

训练电子设备30也可以与一个或多个外部设备400(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该训练电子设备30交互的设备通信,和/或与使得该训练电子设备30能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口350进行。输入/输出(i/o)接口350与显示单元340相连。并且,训练电子设备30还可以通过网络适配器360与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器360通过总线330与训练电子设备30的其它模块通信。应当明白,尽管图中未示出,可以结合训练电子设备30使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。

通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。

在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行上述方法实施例部分描述的方法。

根据本公开的一个实施例,还提供了一种用于实现上述方法实施例中的方法的程序产品,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。

计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。

此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。

通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。

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

起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。

此文章来源于网络,如有侵权,请联系删除

tips