掌桥专利:专业的专利平台
掌桥专利
首页

语音识别方法、装置、电子设备及存储介质

文献发布时间:2024-04-18 19:58:30


语音识别方法、装置、电子设备及存储介质

技术领域

本申请实施例涉及互联网领域,涉及但不限于一种语音识别方法、装置、电子设备及存储介质。

背景技术

语音识别技术是一种将给定音频识别为对应文字的计算机技术。现代语音识别技术大量选用神经网络作为主要结构。在神经网络训练中,CTC是一种常见的训练损失。在使用CTC的语音识别系统中,常见的是一种编码器-解码器结构。即,编码器的输出h除了用于预测CTC的后验概率y以外,还往往作为一个解码器网络的训练和解码。

在语音识别的推理过程(即解码器的解码过程)中,计算量或实时率是语音识别系统的重要指标。相关技术中,编码器的输出h均全部输入解码器进行训练和解码。但是,对许多语音识别系统来讲,语音识别系统的计算量或实时率与编码器输出h的帧数有极高的相关关系。因此,相关技术中的语音识别方法,解码计算量大且解码效率较低,从而导致语音识别效率低下。

发明内容

本申请实施例提供一种语音识别方法、装置、电子设备及存储介质,至少能够应用于人工智能领域和语音识别领域,能够降低语音识别过程中的解码计算量,提高解码效率,从而提高语音识别效率。

本申请实施例的技术方案是这样实现的:

本申请实施例提供一种语音识别方法,包括:对待识别语音进行向量化处理,得到音频特征向量;对所述音频特征向量进行向量编码处理,得到音频编码向量;基于预设词表,对所述音频编码向量进行分类处理,得到所述待识别语音中的每一语音帧对应于所述预设词表中的每一预测字符的预测概率分布;基于所述预测概率分布,对所述音频编码向量进行剪枝处理,得到剪枝处理后的音频编码向量;其中,所述剪枝处理是指对至少一个语音帧在所述音频编码向量中对应的音频编码元素进行剔除处理;基于所述剪枝处理后的音频编码向量对所述待识别语音进行语音识别,得到语音识别结果。

本申请实施例提供一种语音识别装置,所述装置包括:向量化处理模块,用于对待识别语音进行向量化处理,得到音频特征向量;向量编码模块,用于对所述音频特征向量进行向量编码处理,得到音频编码向量;分类处理模块,用于基于预设词表,对所述音频编码向量进行分类处理,得到所述待识别语音中的每一语音帧对应于所述预设词表中的每一预测字符的预测概率分布;剪枝处理模块,用于基于所述预测概率分布,对所述音频编码向量进行剪枝处理,得到剪枝处理后的音频编码向量;其中,所述剪枝处理是指对至少一个语音帧在所述音频编码向量中对应的音频编码元素进行剔除处理;语音识别模块,用于基于所述剪枝处理后的音频编码向量对所述待识别语音进行语音识别,得到语音识别结果。

在一些实施例中,所述预设词表包括多个非空字符和一个空字符;所述分类处理模块还用于:基于所述预设词表中的非空字符和空字符,确定每一所述语音帧对应于每一非空字符和所述空字符的预测概率,形成所述预测概率分布。

在一些实施例中,所述剪枝处理模块还用于:基于所述预测概率分布,确定每一所述语音帧具有最大预测概率的预测字符;所述预测字符包括多个非空字符和一个空字符;将预测字符为空字符的语音帧,确定为目标语音帧;对所述目标语音帧在所述音频编码向量中对应的音频编码元素进行剔除处理,得到所述剪枝处理后的音频编码向量。

在一些实施例中,所述剪枝处理模块还用于:按照所述音频编码向量中的音频编码元素逆序排列的顺序,依次剔除所述目标语音帧在所述音频编码向量中对应的音频编码元素,得到所述剪枝处理后的音频编码向量。

在一些实施例中,所述装置还包括:第一确定模块,用于将停止所述剪枝处理时,所述目标语音帧在所述音频编码向量中对应的音频编码元素确定为目标音频编码元素;第二确定模块,用于按照所述音频编码向量中的音频编码元素正序排列的顺序,从所述目标音频编码元素开始,将预设数量的音频编码元素确定为边界音频编码元素;控制模块,用于禁止对所述边界音频编码元素进行剔除处理。

在一些实施例中,所述预测字符包括多个非空字符和一个空字符;所述剪枝处理模块还用于:基于所述预测概率分布,获取每一所述语音帧对应于所述空字符的空字符预测概率;将所述空字符预测概率大于概率阈值的语音帧在所述音频编码向量中对应的音频编码元素,确定为待剔除音频编码元素;按照所述音频编码向量中的音频编码元素逆序排列的顺序,依次剔除所述待剔除音频编码元素,得到所述剪枝处理后的音频编码向量。

在一些实施例中,所述预测字符包括多个非空字符和一个空字符;所述剪枝处理模块还用于:基于所述预测概率分布,确定每一所述语音帧具有最大预测概率的预测字符、每一所述语音帧对应于所述空字符的空字符预测概率;将预测字符为空字符、且所述空字符预测概率大于概率阈值的语音帧,确定为待剪枝语音帧;按照所述音频编码向量中的音频编码元素逆序排列的顺序,依次对所述待剪枝语音帧在所述音频编码向量中对应的音频编码元素进行剔除处理,得到所述剪枝处理后的音频编码向量。

在一些实施例中,所述待识别语音为单通道音频,所述单通道音频通过一维波形表示;所述向量化处理模块还用于:对每一语音帧在所述一维波形中对应的子波形进行音频特征提取,得到每一语音帧对应的定长向量;其中,全部语音帧对应的定长向量构成所述音频特征向量,所述音频特征向量为一个二维矩阵。

在一些实施例中,所述语音识别方法通过语音识别模型实现;所述装置还包括模型训练装置,所述模型训练装置用于:将样本数据输入至语音识别模型中;所述样本数据包括样本语音的样本音频特征向量和标签序列;通过所述语音识别模型的编码器对样本音频特征向量进行向量编码处理,得到样本音频编码向量;通过所述语音识别模型的分类器对所述样本音频编码向量进行分类处理,得到所述样本语音中的每一样本语音帧对应于所述预设词表中的每一预测字符的样本预测概率分布;将所述样本预测概率分布输入至CTC损失模型中,得到CTC损失结果;将所述样本音频编码向量和所述标签序列输入至解码器中,得到样本预测序列;基于所述样本预测序列和所述标签序列,确定交叉熵损失结果;基于所述CTC损失结果和所述交叉熵损失结果,对所述语音识别模型中的参数进行修正,得到训练后的语音识别模型。

在一些实施例中,所述模型训练装置还用于:获取所述CTC损失结果对应的CTC损失权重和所述交叉熵损失结果对应的交叉熵损失权重;基于所述CTC损失权重和所述交叉熵损失权重,对所述CTC损失结果和所述交叉熵损失结果进行加权计算,得到加权损失结果;基于所述加权损失结果,对所述语音识别模型中的参数进行修正,得到训练后的语音识别模型。

在一些实施例中,所述模型训练装置还用于:对所述训练后的语音识别模型进行模型微调处理;其中,所述模型训练装置具体用于:将微调样本数据输入至所述训练后的语音识别模型中;所述微调样本数据包括微调样本语音的微调样本音频特征向量和微调标签序列;通过所述训练后的语音识别模型的编码器对微调样本音频特征向量进行向量编码处理,得到微调样本音频编码向量;通过所述训练后的语音识别模型的分类器对所述微调样本音频编码向量进行分类处理,得到所述微调样本语音中的每一微调样本语音帧对应于所述预设词表中的每一预测字符的微调样本预测概率分布;将所述微调样本预测概率分布输入至CTC损失模型中,得到微调CTC损失结果;基于所述微调样本预测概率分布,对所述微调样本音频编码向量进行剪枝处理,得到剪枝处理后的微调样本音频编码向量;将所述剪枝处理后的微调样本音频编码向量和所述微调标签序列输入至解码器中,得到微调微调样本预测序列;基于所述样本预测序列和所述微调标签序列,确定微调交叉熵损失结果;基于所述微调CTC损失结果和所述微调交叉熵损失结果,对所述训练后的语音识别模型中的参数进行修正,得到模型微调后的语音识别模型。

在一些实施例中,所述编码器为层级编码器,所述层级编码器由多个具有相同结构的神经网络构成;所述模型训练装置还用于:通过所述层级编码器的不同层级的神经网络,对所述样本音频特征向量进行向量编码处理,对应得到多个不同的样本音频编码向量;通过所述分类器分别对所述不同的样本音频编码向量进行分类处理,对应得到多个不同的样本预测概率分布;将所述多个不同的样本预测概率分布分别输入至所述CTC损失模型中,对应得到多个CTC损失结果;对所述多个CTC损失结果进行损失融合处理,得到融合损失结果;基于所述融合损失结果,对所述语音识别模型中的参数进行修正,得到训练后的语音识别模型。

本申请实施例提供一种电子设备,包括:存储器,用于存储可执行指令;处理器,用于执行所述存储器中存储的可执行指令时,实现上述的语音识别方法。

本申请实施例提供一种计算机程序产品,该计算机程序产品包括可执行指令,可执行指令存储在计算机可读存储介质中;其中,电子设备的处理器从计算机可读存储介质中读取可执行指令,并执行可执行指令时,实现上述的语音识别方法。

本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行所述可执行指令时,实现上述的语音识别方法。

本申请实施例具有以下有益效果:基于预设词表,对待识别语音的音频编码向量进行分类处理,得到待识别语音中的每一语音帧对应于预设词表中的每一预测字符的预测概率分布;并基于预测概率分布,对音频编码向量进行剪枝处理,得到剪枝处理后的音频编码向量;其中,剪枝处理是指对至少一个语音帧在音频编码向量中对应的音频编码元素进行剔除处理;从而基于剪枝处理后的音频编码向量对待识别语音进行语音识别,得到语音识别结果。如此,由于对音频编码向量进行剪枝处理,从而极大的减少了语音识别推理过程的音频编码向量的元素数量,降低语音识别过程中的解码计算量,提高解码效率,进而极大的提高语音识别效率。

附图说明

图1是本申请实施例提供的语音识别系统的一个可选的架构示意图;

图2是本申请实施例提供的电子设备的结构示意图;

图3是本申请实施例提供的语音识别方法的一个可选的流程示意图;

图4是本申请实施例提供的语音识别方法的另一个可选的流程示意图;

图5是本申请实施例提供的剪枝处理的实现流程示意图;

图6是本申请实施例提供的语音识别模型的训练方法模型预训练阶段的流程示意图;

图7是本申请实施例提供的对语音识别模型中的参数进行修正的实现流程示意图;

图8是本申请实施例提供的语音识别模型的训练方法微调阶段的流程示意图;

图9是本申请实施例提供的标准CTC的预测分布示意图;

图10是本申请实施例提供的BCTC的预测分布示意图;

图11是本申请实施例提供的预训练阶段的模型示意图;

图12是本申请实施例提供的AED框架的模型示意图;

图13是本申请实施例提供的NT系统的模型示意图。

具体实施方式

为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。

在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。除非另有定义,本申请实施例所使用的所有的技术和科学术语与属于本申请实施例的技术领域的技术人员通常理解的含义相同。本申请实施例所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。

本申请实施例提供一种语音识别方法,通过对基于联结主义的时序分类(CTC,Connec tionist Temporal Classification)损失函数予以调整,允许语音识别模型在编码器推理过程中实现特征层面的有效下采样,从而降低模型推理代价,且可以保持系统性能几乎不变。

本申请实施例提供的语音识别方法,首先,对待识别语音进行向量化处理,得到音频特征向量;并对音频特征向量进行向量编码处理,得到音频编码向量;然后,基于预设词表,对音频编码向量进行分类处理,得到待识别语音中的每一语音帧对应于预设词表中的每一预测字符的预测概率分布;再然后,基于预测概率分布,对音频编码向量进行剪枝处理,得到剪枝处理后的音频编码向量;其中,剪枝处理是指对至少一个语音帧在音频编码向量中对应的音频编码元素进行剔除处理;最后,基于剪枝处理后的音频编码向量对待识别语音进行语音识别,得到语音识别结果。如此,由于对音频编码向量进行剪枝处理,从而极大的减少了语音识别推理过程的音频编码向量的元素数量,降低语音识别过程中的解码计算量,提高解码效率,进而极大的提高语音识别效率。

这里,首先说明本申请实施例的语音识别设备的示例性应用,该语音识别设备是用于实现语音识别方法的电子设备。在一种实现方式中,本申请实施例提供的语音识别设备(即电子设备)可以实施为终端,也可以实施为服务器。在一种实现方式中,本申请实施例提供的语音识别设备可以实施为笔记本电脑,平板电脑,台式计算机,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备,智能机器人,智能家电和智能车载设备等任意的具备语音数据处理功能的终端;在另一种实现方式中,本申请实施例提供的语音识别设备还可以实施为服务器,其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(CDN,Content Delivery Network)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例中不做限制。下面,将说明语音识别设备实施为服务器时的示例性应用。

参见图1,图1是本申请实施例提供的语音识别系统的一个可选的架构示意图,本申请实施例以语音识别方法应用于任一即时通信应用为例进行说明。在即时通信应用中,提供语音识别功能,可以对用户输入的待识别语音进行语音识别,得到语音识别结果,该语音识别结果用于实现用户与好友之间的即时通信。本申请实施例中,语音识别系统中至少包括终端100、网络200和服务器300。其中,服务器300可以是即时通信应用的服务器。服务器300可以构成本申请实施例的语音识别设备。终端100通过网络200连接服务器300,网络200可以是广域网或者局域网,又或者是二者的组合。

本申请实施例中,在进行语音识别时,终端100通过即时通信应用的客户端接收用户的待识别语音;将待识别语音封装至语音识别请求中,终端100通过网络200将语音识别请求发送给服务器300。服务器300在接收到语音识别请求之后,响应于语音识别请求,对待识别语音进行向量化处理,得到音频特征向量;并对音频特征向量进行向量编码处理,得到音频编码向量;然后,基于预设词表,对音频编码向量进行分类处理,得到待识别语音中的每一语音帧对应于预设词表中的每一预测字符的预测概率分布;再然后,基于预测概率分布,对音频编码向量进行剪枝处理,得到剪枝处理后的音频编码向量;其中,剪枝处理是指对至少一个语音帧在音频编码向量中对应的音频编码元素进行剔除处理;最后,基于剪枝处理后的音频编码向量对待识别语音进行语音识别,得到语音识别结果。服务器300在得到语音识别结果之后,将语音识别结果发送给终端100,以使得终端100在当前界面上显示语音识别结果。

在另一些实施例中,语音识别设备还可以实施为终端,也就是说,以终端为执行主体实现本申请实施例的语音识别方法。在实现的过程中,终端通过即时通信应用的客户端采集到待识别语音。并且,终端对待识别语音进行向量化处理,得到音频特征向量;终端对音频特征向量进行向量编码处理,得到音频编码向量;终端基于预设词表,对音频编码向量进行分类处理,得到待识别语音中的每一语音帧对应于预设词表中的每一预测字符的预测概率分布;终端基于预测概率分布,对音频编码向量进行剪枝处理,得到剪枝处理后的音频编码向量;终端基于剪枝处理后的音频编码向量对待识别语音进行语音识别,得到语音识别结果。

本申请实施例所提供的语音识别方法还可以基于云平台并通过云技术来实现,例如,上述服务器300可以是云端服务器。通过云端服务器对待识别语音进行向量化处理,或者,通过云端服务器对音频特征向量进行向量编码处理,以及,通过云端服务器对音频编码向量进行分类处理,或者,通过云端服务器对音频编码向量进行剪枝处理,并基于剪枝处理后的音频编码向量对待识别语音进行语音识别。

在一些实施例中,还可以具有云端存储器,可以将预设词表、待识别语音的预测概率分布等信息存储至云端存储器中,或者,还可以将语音识别结果存储至云端存储器中。这样,在接收到语音识别请求时,可以从云端存储器中获取预设词表进行语音识别,从而提高语音识别效率。

这里需要说明的是,云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,其可以通过云计算来实现。

图2是本申请实施例提供的电子设备的结构示意图,图2所示的电子设备可以是语音识别设备,语音识别设备包括:至少一个处理器310、存储器350、至少一个网络接口320和用户接口330。语音识别设备中的各个组件通过总线系统340耦合在一起。可理解,总线系统340用于实现这些组件之间的连接通信。总线系统340除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统340。

处理器310可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。

用户接口330包括使得能够呈现媒体内容的一个或多个输出装置331,以及一个或多个输入装置332。

存储器350可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器350可选地包括在物理位置上远离处理器310的一个或多个存储设备。存储器350包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器350旨在包括任意适合类型的存储器。在一些实施例中,存储器350能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。

操作系统351,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;网络通信模块352,用于经由一个或多个(有线或无线)网络接口320到达其他计算设备,示例性的网络接口320包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;输入处理模块353,用于对一个或多个来自一个或多个输入装置332之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。

在一些实施例中,本申请实施例提供的装置可采用软件方式实现,图2示出了存储在存储器350中的一种语音识别装置354,该语音识别装置354可以是电子设备中的语音识别装置,其可以是程序和插件等形式的软件,包括以下软件模块:向量化处理模块3541、向量编码模块3542、分类处理模块3543、剪枝处理模块3544和语音识别模块3545,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。

在另一些实施例中,本申请实施例提供的装置可以采用硬件方式实现,作为示例,本申请实施例提供的装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的语音识别方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,ComplexProgrammable Logi c Device)、现场可编程门阵列(FPGA,Field-Programmable GateArray)或其他电子元件。

本申请各实施例提供的语音识别方法可以由电子设备来执行,其中,该电子设备可以是服务器也可以是终端,即本申请各实施例的语音识别方法可以通过服务器来执行,也可以通过终端来执行,或者也可以通过服务器与终端之间交互执行。

图3是本申请实施例提供的语音识别方法的一个可选的流程示意图,下面将结合图3示出的步骤进行说明,需要说明的是,图3中的语音识别方法是以服务器作为执行主体为例来说明的,如图3所示,方法包括以下步骤S101至步骤S105:

步骤S101,对待识别语音进行向量化处理,得到音频特征向量。

这里,待识别语音可以是采用任意一种语音采集方式采集得到的语音,例如,待识别语音可以是通过终端上的麦克风采集用户输入的实时语音,或者是通过网络下载的语音,或者是从视频中分离出来的语音,或者是通过语音合成技术合成的语音。

本申请实施例中,待识别语音可以是需要进行文本转换处理的语音,例如,可以通过对待识别语音进行识别得到语音识别结果,并以文本的形式输出语音识别结果;或者,待识别语音也可以是需要进行信息检索的语音,例如,可以通过对待识别语音进行识别得到语音识别结果,并对语音识别结果中的识别内容进行信息检索;或者,待识别语音也可以是需要进行信息编辑的语音,例如,待识别语音可以是制作视频的字幕语音,可以通过对待识别语音进行识别得到语音识别结果,并对语音识别结果中的识别内容进行字幕转换编辑。

本申请实施例中,待识别语音可以为单通道音频或者多通道音频,当待识别语音为多通道音频时,可以先将多通道音频转化为单通道音频之后,再采用本申请实施例的语音识别方法进行语音识别。在实现的过程中,单通道音频可以通过一维波形表示。

这里需要说明的是,单通道音频是指具有一个声音通道的音频,是指用一个传声器拾取声音,用一个扬声器进行放音的音频;多通道音频是指具有多个声音通道的音频。单通道音频是把来自不同方位的音频信号混合后统一由录音器材记录,再由一个音箱进行重放;多通道音频就是实现立体声的原理,在空间放置多个互成一定角度的扬声器,每个扬声器单独由一个声道提供信号。

待识别语音由多个语音帧构成,向量化处理是指对每一语音帧在一维波形中对应的子波形进行音频特征提取,从而得到每一语音帧对应的定长向量;其中,全部语音帧对应的定长向量构成音频特征向量,音频特征向量为一个二维矩阵。待识别语音中的语音帧的数量与音频特征向量中的定长向量的数量相同,全部语音帧的定长向量的维度相同。

本申请实施例中,在对子波形进行音频特征提取时,可以采用音频转化处理方式实现,即采用音频转化处理方式将音频转化为二维矩阵。这里,音频转化处理方式例如可以是通过卷积神经网络、梅尔频率倒谱系数(MFCC,Mel Frequency Cepstrum Coefficient)、FBAN K特征等方法实现。

步骤S102,对音频特征向量进行向量编码处理,得到音频编码向量。

这里,向量编码处理是指采用一定结构的神经网络(即编码器)对音频特征向量进行向量编码。本申请实施例对编码器的结构和网络参数不做限定。可以在模型训练阶段对编码器的网络参数进行训练,在语音识别过程中,可以直接采用训练好的编码器对音频特征向量进行向量编码处理。

步骤S103,基于预设词表,对音频编码向量进行分类处理,得到待识别语音中的每一语音帧对应于预设词表中的每一预测字符的预测概率分布。

这里,预设词表中包括多个非空字符和一个空字符,每一非空字符对应一个不为空的字符,非空字符可以基于词表库中的全部字符来确定。举例来说,非空字符可以是字母A到Z中的任一字符,预设词表中可以包括A到Z对应的每一字符;或者,非空字符可以是中文汉字中的任意一个汉字,可以预先设置每一汉字对应的非空字符,形成预设词表。空字符是指空白内容对应的字符,即不包括任何字符信息的字符。

本申请实施例中,可以使用分类器,基于音频编码向量预测每一语音帧在预设词表下的分布,得到预测概率分布。这里,预测概率分布中包括每一语音帧在预设词表中的每一预测字符下的预测概率。在一种实现方式中,预测概率分布可以通过一个N乘M的表格来表示,在表格中,横向列表表示每一语音帧,共计M个语音帧;纵向列表表示预设词表中的每一预测字符,共计N个预测字符,M和N均为大于1的整数。在表格中的每一表格单元中,可以填入相应语音帧在相应预测字符下的预测概率。基于该N乘M的表格,即可直观的获取到待识别语音中的每一语音帧对应于预设词表中的每一预测字符的预测概率分布。

步骤S104,基于预测概率分布,对音频编码向量进行剪枝处理,得到剪枝处理后的音频编码向量;其中,剪枝处理是指对至少一个语音帧在音频编码向量中对应的音频编码元素进行剔除处理。

本申请实施例中,剪枝处理能够降低音频编码向量中的音频编码元素的数量,这样,在后续进行语音识别时,解码计算的数据量会降低,从而能够提高解码计算的计算效率,并减小计算开销。

本申请实施例中,由于空字符对应的语音帧是在语音识别过程中,不能识别到任何有效信息的语音帧,因此,在进行剪枝处理时,可以对空字符对应的语音帧的音频编码元素进行剔除处理。而通常在一段语音中,空字符对应的语音帧会大量存在,因此,对空字符对应的语音帧的音频编码元素进行剔除处理,能够极大的降低编码计算的数据量。

这里需要说明的是,本申请实施例中的剔除处理,是指将至少一个语音帧在音频编码向量中对应的音频编码元素从该音频编码向量中删除,也就是说,从音频编码向量中删除空字符对应的语音帧的音频编码元素。这样,所得到的剪枝处理后的音频编码向量中的音频编码元素的数量,小于待识别语音的原始的音频编码向量中的音频编码元素的数量。

在一些实施例中,可以基于预测概率分布,对音频编码向量进行剪枝处理,得到剪枝处理后的音频编码向量。在实现的过程中,可以通过分析预测概率分布的N乘M的表格,来确定出空字符对应的语音帧,例如,针对任一语音帧K,分析语音帧K对应于不同预测字符的预测概率,如果预测概率最大的预测字符为空字符,则可以确定出该语音帧K为不包括任何字符信息的空字符;或者,如果空字符对应的预测概率大于概率阈值,则可以确定出该语音帧K为不包括任何字符信息的空字符。

步骤S105,基于剪枝处理后的音频编码向量对待识别语音进行语音识别,得到语音识别结果。

本申请实施例中,在对音频编码向量进行剪枝处理,得到剪枝处理后的音频编码向量之后,该剪枝处理后的音频编码向量中的音频编码元素的数量,相对于原始的音频编码向量中的音频编码元素的数量会大幅降低,即剪枝处理后的音频编码向量中的音频编码元素的数量,远小于原始的音频编码向量中的音频编码元素的数量。

在进行语音识别时,可以是基于剪枝处理后的音频编码向量进行解码处理,从而解码得到语音识别结果。本申请实施例中,解码处理可以通过解码器来实现,本申请实施例对解码器的结构和网络参数不做限定。可以在模型训练阶段对解码器的网络参数进行训练,在语音识别过程中,可以直接采用训练好的解码器对剪枝处理后的音频编码向量进行解码处理。

本申请实施例提供的语音识别方法,基于预设词表,对待识别语音的音频编码向量进行分类处理,得到待识别语音中的每一语音帧对应于预设词表中的每一预测字符的预测概率分布;并基于预测概率分布,对音频编码向量进行剪枝处理,得到剪枝处理后的音频编码向量;其中,剪枝处理是指对至少一个语音帧在音频编码向量中对应的音频编码元素进行剔除处理;从而基于剪枝处理后的音频编码向量对待识别语音进行语音识别,得到语音识别结果。如此,由于对音频编码向量进行剪枝处理,从而极大的减少了语音识别推理过程的音频编码向量的元素数量,降低语音识别过程中的解码计算量,提高解码效率,进而极大的提高语音识别效率。

在一些实施例中,语音识别系统中至少包括终端和服务器,终端上可以安装有任意一种具备语音识别功能的应用。例如,终端上可以安装有即时通信应用,终端通过即时通信应用的客户端采集待识别语音,并采用本申请实施例提供的语音识别方法对待识别语音进行语音识别,得到语音识别结果,该语音识别结果用于即时通信应用中的实时通信。再例如,终端上可以安装有搜索应用,终端通过搜索应用的客户端采集待识别语音,并采用本申请实施例提供的语音识别方法对待识别语音进行语音识别,得到语音识别结果,该语音识别结果用于搜索应用中的实时搜索。下面,将以终端上安装的即时通信应用为例,对本申请实施例的语音识别方法进行说明。

图4是本申请实施例提供的语音识别方法的另一个可选的流程示意图,如图4所示,方法包括以下步骤S201至步骤S213:

步骤S201,终端通过即时通信应用的客户端采集用户输入的语音,该用户输入的语音构成待识别语音。

步骤S202,终端将待识别语音封装至语音识别请求中。

这里,语音识别请求用于请求对待识别语音进行识别,得到该待识别语音对应的文本,从而以文本的形式在即时通信应用中进行显示。

步骤S203,终端将语音识别请求发送给服务器。

步骤S204,服务器响应于语音识别请求,对待识别语音进行向量化处理,得到音频特征向量。

本申请实施例中,待识别语音为单通道音频,单通道音频通过一维波形表示。在进行向量化处理时,可以对每一语音帧在一维波形中对应的子波形进行音频特征提取,得到每一语音帧对应的定长向量;其中,全部语音帧对应的定长向量构成音频特征向量,音频特征向量为一个二维矩阵。

步骤S205,服务器对音频特征向量进行向量编码处理,得到音频编码向量。

这里,向量编码处理是指采用编码器对音频特征向量进行向量编码处理,得到音频编码向量。本申请实施例中,可以在模型训练阶段对编码器的网络参数进行训练,在语音识别过程中,可以直接采用训练好的编码器对音频特征向量进行向量编码处理。

步骤S206,服务器基于预设词表,对音频编码向量进行分类处理,得到待识别语音中的每一语音帧对应于预设词表中的每一预测字符的预测概率分布。

在一些实施例中,预设词表包括多个非空字符和一个空字符。步骤S206可以通过以下方式实现:基于预设词表中的非空字符和空字符,确定每一语音帧对应于每一非空字符和空字符的预测概率,形成预测概率分布。

这里,可以采用一分类器对音频编码向量中的每一音频编码元素进行分类处理,确定每一音频编码元素对应于每一非空字符和空字符的预测概率,即确定每一语音帧对应于每一非空字符和空字符的预测概率。全部语音帧的预测概率构成预测概率分布。

步骤S207,服务器基于预测概率分布,对音频编码向量进行剪枝处理,得到剪枝处理后的音频编码向量;其中,剪枝处理是指对至少一个语音帧在音频编码向量中对应的音频编码元素进行剔除处理。

在一种实现方式中,参见图5,图5示出了步骤S207可以通过以下步骤S2071至步骤S2073实现:

步骤S2071,基于预测概率分布,确定每一语音帧具有最大预测概率的预测字符;预测字符包括多个非空字符和一个空字符。

这里,每一语音帧对应于预设词表中的每一预测字符均具有一预测概率,即每一语音帧对应有多个预测概率,可以从预测概率分布中获取每一语音帧中的最大预测概率对应的预测字符,该预测字符即为相应语音帧对应的预测出的字符。

步骤S2072,将预测字符为空字符的语音帧,确定为目标语音帧。

步骤S2073,对目标语音帧在音频编码向量中对应的音频编码元素进行剔除处理,得到剪枝处理后的音频编码向量。

这里,可以按照音频编码向量中的音频编码元素逆序排列的顺序,依次剔除目标语音帧在音频编码向量中对应的音频编码元素,得到剪枝处理后的音频编码向量。

音频编码向量中包括多个音频编码元素,音频编码元素按照相应的语音帧在待识别语音中的排列顺序依次排列。这里,可以定义音频编码向量中的多个音频编码元素从左往右的顺序为正序排列,音频编码向量中的多个音频编码元素从右往左的顺序为逆序排列。

本申请实施例中,是对预测字符为空字符的语音帧的音频编码元素进行剔除处理,从而得到剪枝处理后的音频编码向量。这样,对预测字符为空字符的语音帧的音频编码元素进行剔除处理,能够极大概率的剔除掉空字符对应的语音帧。

在另一种实现方式中,请继续参见图5,图5示出了步骤S207还可以通过以下步骤S2074至步骤S2076实现:

步骤S2074,基于预测概率分布,获取每一语音帧对应于空字符的空字符预测概率。

本申请实施例中,可以从预测概率分布对应的N乘M的表格中,获取预测字符为空字符的那一行的预测概率,从而得到每一语音帧对应于空字符的空字符预测概率。

步骤S2075,将空字符预测概率大于概率阈值的语音帧在音频编码向量中对应的音频编码元素,确定为待剔除音频编码元素。

这里,空字符预测概率大于概率阈值的语音帧是指该语音帧为空字符的概率较大,可以将这些语音帧确定为待剔除语音帧,相应的,将这些语音帧在音频编码向量中对应的音频编码元素,确定为待剔除音频编码元素。

步骤S2076,按照音频编码向量中的音频编码元素逆序排列的顺序,依次剔除待剔除音频编码元素,得到剪枝处理后的音频编码向量。

本申请实施例中,对空字符预测概率较大的(大于概率阈值)语音帧对应的音频编码元素进行剔除处理,能够极大概率的剔除掉空字符对应的语音帧。

在再一种实现方式中,请继续参见图5,图5示出了步骤S207还可以通过以下步骤S2077至步骤S2079实现:

步骤S2077,基于预测概率分布,确定每一语音帧具有最大预测概率的预测字符、每一语音帧对应于空字符的空字符预测概率。

步骤S2078,将预测字符为空字符、且空字符预测概率大于概率阈值的语音帧,确定为待剪枝语音帧。

步骤S2079,按照音频编码向量中的音频编码元素逆序排列的顺序,依次对待剪枝语音帧在音频编码向量中对应的音频编码元素进行剔除处理,得到剪枝处理后的音频编码向量。

本申请实施例中,对预测字符为空字符的语音帧的音频编码元素、且空字符预测概率较大的(大于概率阈值)语音帧对应的音频编码元素进行剔除处理,能够极大概率的剔除掉空字符对应的语音帧。

步骤S208,服务器将停止剪枝处理时,目标语音帧在音频编码向量中对应的音频编码元素确定为目标音频编码元素。

步骤S209,服务器按照音频编码向量中的音频编码元素正序排列的顺序,从目标音频编码元素开始,将预设数量的音频编码元素确定为边界音频编码元素。

步骤S210,服务器禁止对边界音频编码元素进行剔除处理。

本申请实施例中,在触发停止剪枝处理时的前几帧语音帧的音频编码元素不进行剔除处理,从而能够防止过度剪枝导致的边界上信息缺失。

步骤S211,服务器基于剪枝处理后的音频编码向量对待识别语音进行语音识别,得到语音识别结果。

步骤S212,服务器将语音识别结果发送给终端。

步骤S213,终端在当前界面上显示语音识别结果。

本申请实施例提供的语音识别方法,基于预设词表,对待识别语音的音频编码向量进行分类处理,得到待识别语音中的每一语音帧对应于预设词表中的每一预测字符的预测概率分布;并基于预测概率分布,对满足以下条件中的至少一个的语音帧的音频编码元素进行剔除处理:预测字符为空字符的语音帧对应的音频编码元素、空字符预测概率大于概率阈值的语音帧对应的音频编码元素;从而基于剪枝处理后的音频编码向量对待识别语音进行语音识别,得到语音识别结果。如此,由于对音频编码向量进行剪枝处理,从而极大的减少了语音识别推理过程的音频编码向量的元素数量,降低语音识别过程中的解码计算量,提高解码效率,并且由于在进行剪枝处理时,是将空字符对应的语音帧的音频编码元素进行剔除,因此,基于剪枝处理后的音频编码向量进行语音识别时,也不会影响语音识别的准确率。

在一些实施例中,语音识别方法可以通过语音识别模型实现,语音识别模型包括编码器、分类器、解码器。其中,编码器用于对待识别语音的音频特征向量进行向量编码处理,得到音频编码向量。分类器用于对音频编码向量进行分类处理,得到待识别语音中的每一语音帧对应于预设词表中的每一预测字符的预测概率分布。解码器用于实现语音识别的推理过程,即基于音频编码向量解码预测得到语音识别结果。

下面,将对本申请实施例的语音识别模型的训练过程进行说明。本申请实施例的语音识别模型的训练过程包括两个阶段,第一阶段为模型预训练阶段,用于基于样本数据对语音识别模型的初始参数进行预训练;第二阶段为模型微调阶段,用于对预训练后得到的语音识别模型中的参数进行微调更新。

图6是本申请实施例提供的语音识别模型的训练方法模型预训练阶段的流程示意图,语音识别模型的训练方法可以通过模型训练装置来执行。其中,模型训练装置可以是语音识别设备(即电子设备)中的装置,即模型训练装置可以是服务器也可以是终端;或者,也可以是独立于语音识别设备的另一设备,即模型训练装置是区别于上述用于实现语音识别方法的服务器和终端之外的其他电子设备。如图6所示,语音识别模型的预训练阶段包括以下步骤S301至步骤S307:

步骤S301,将样本数据输入至语音识别模型中;样本数据包括样本语音的样本音频特征向量和标签序列。

本申请实施例中,可以对样本语音进行向量化处理,得到样本音频特征向量。

样本语音可以为单通道音频,样本语音中包括多个样本语音帧。向量化处理是指对每一样本语音帧在一维波形中对应的子波形进行音频特征提取,从而得到每一样本语音帧对应的定长向量。

步骤S302,通过语音识别模型的编码器对样本音频特征向量进行向量编码处理,得到样本音频编码向量。

步骤S303,通过语音识别模型的分类器对样本音频编码向量进行分类处理,得到样本语音中的每一样本语音帧对应于预设词表中的每一预测字符的样本预测概率分布。

这里,样本预测概率分布中包括每一样本语音帧在预设词表中的每一预测字符下的样本预测概率。在一种实现方式中,样本预测概率分布可以通过一个N乘M的表格来表示,在表格中,横向列表表示每一样本语音帧,共计M个样本语音帧;纵向列表表示预设词表中的每一预测字符,共计N个预测字符,M和N均为大于1的整数。在表格中的每一表格单元中,可以填入相应样本语音帧在相应预测字符下的样本预测概率。基于该N乘M的表格,即可直观的获取到样本语音中的每一样本语音帧对应于预设词表中的每一预测字符的样本预测概率分布。

步骤S304,将样本预测概率分布输入至CTC损失模型中,得到CTC损失结果。

这里,CTC损失模型可以基于CTC损失函数计算样本预测概率分布的CTC损失结果。

步骤S305,将样本音频编码向量和标签序列输入至解码器中,得到样本预测序列。

这里,解码器对样本音频编码向量进行解码处理后,得到样本预测序列。

步骤S306,基于样本预测序列和标签序列,确定交叉熵损失结果。

这里,通过计算样本预测序列与标签序列之间的交叉熵损失值,得到交叉熵损失结果。其中,交叉熵损失值越小,表明样本预测序列与标签序列之间的差异越小;交叉熵损失值越大,表明样本预测序列与标签序列之间的差异越大。

步骤S307,基于CTC损失结果和交叉熵损失结果,对语音识别模型中的参数进行修正,得到训练后的语音识别模型。

在一些实施例中,参见图7,图7示出了步骤S307可以通过以下步骤S3071至步骤S3073实现:

步骤S3071,获取CTC损失结果对应的CTC损失权重和交叉熵损失结果对应的交叉熵损失权重。

本申请实施例中,CTC损失权重和交叉熵损失权重可以为预设的权重值。例如,可以设置CTC损失权重为30%,交叉熵损失权重为70%。

步骤S3072,基于CTC损失权重和交叉熵损失权重,对CTC损失结果和交叉熵损失结果进行加权计算,得到加权损失结果。

这里,可以基于CTC损失权重对CTC损失结果进行加权计算,得到加权计算后的CTC损失结果;基于交叉熵损失权重对交叉熵损失结果进行加权计算,得到加权计算后的交叉熵损失结果。之后,对加权计算后的CTC损失结果和加权计算后的交叉熵损失结果进行求和,得到加权损失结果。

步骤S3073,基于加权损失结果,对语音识别模型中的参数进行修正,得到训练后的语音识别模型。

本申请实施例提供的语音识别模型的训练方法,在模型预训练阶段,通过CTC损失结果和交叉熵损失结果,对语音识别模型中的参数进行修正,从而能够对语音识别模型进行准确的训练。

图8是本申请实施例提供的语音识别模型的训练方法微调阶段的流程示意图,语音识别模型微调阶段也可以通过模型训练装置来执行。如图8所示,语音识别模型的微调阶段包括以下步骤S401至步骤S408:

步骤S401,将微调样本数据输入至训练后的语音识别模型中;微调样本数据包括微调样本语音的微调样本音频特征向量和微调标签序列。

在一些实施例中,还可以在语音识别过程中对训练后的语音识别模型进行微调,也就是说,微调样本语音可以是待识别语音,微调标签序列可以是待识别语音对应的标签序列。这样,针对训练后的语音识别模型,可以在使用过程中进行不断的微调,从而逐步提高语音识别模型的识别准确率。

步骤S402,通过训练后的语音识别模型的编码器对微调样本音频特征向量进行向量编码处理,得到微调样本音频编码向量。

步骤S403,通过训练后的语音识别模型的分类器对微调样本音频编码向量进行分类处理,得到微调样本语音中的每一微调样本语音帧对应于预设词表中的每一预测字符的微调样本预测概率分布。

步骤S404,将微调样本预测概率分布输入至CTC损失模型中,得到微调CTC损失结果。

步骤S405,基于微调样本预测概率分布,对微调样本音频编码向量进行剪枝处理,得到剪枝处理后的微调样本音频编码向量。

本申请实施例中,会在微调阶段对微调样本音频编码向量进行剪枝处理,得到剪枝处理后的微调样本音频编码向量,从而减小微调样本音频编码向量中的微调样本音频编码元素的数量,进而提高后续语音识别过程的识别效率。

步骤S406,将剪枝处理后的微调样本音频编码向量和微调标签序列输入至解码器中,得到微调微调样本预测序列。

步骤S407,基于样本预测序列和微调标签序列,确定微调交叉熵损失结果。

步骤S408,基于微调CTC损失结果和微调交叉熵损失结果,对训练后的语音识别模型中的参数进行修正,得到模型微调后的语音识别模型。

在一些实施例中,语音识别模型中的编码器可以为层级编码器,层级编码器由多个具有相同结构的神经网络构成。在实现的过程中,上述步骤步骤S302至步骤S304可以分别通过以下方式实现:通过层级编码器的不同层级的神经网络,对样本音频特征向量进行向量编码处理,对应得到多个不同的样本音频编码向量;通过分类器分别对不同的样本音频编码向量进行分类处理,对应得到多个不同的样本预测概率分布;将多个不同的样本预测概率分布分别输入至CTC损失模型中,对应得到多个CTC损失结果。

本申请实施例中,在得到多个CTC损失结果之后,可以对多个CTC损失结果进行损失融合处理,得到融合损失结果;然后,基于融合损失结果,对语音识别模型中的参数进行修正,得到训练后的语音识别模型。

下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。

语音识别技术是一种将给定音频识别为对应文字的计算机技术。本申请实施例的待识别语音是指单通道音频,但显然多通道音频的识别一般也转化成单通道音频进行。对于输入的待识别语音,一般认为待识别语音为一个一维波形。使用一定方法可以将待识别语音转化为二维矩阵x=[x

一般的,语音识别系统使用一个固定的词表V。在CTC中还额外存在一个字符,其表示“空”的概念。使用一个分类器,基于h预测一个在词表V合并一个空字符的分布y=[y

同时,用于训练语音识别系统的数据都是有标注的。定义l=[l

CTC尝试基于给定的特征x,最大化标注序列l的后验概率,即最大化概率p(l|x)。但直接优化这一后验概率是困难的,因此需要一定的转化。设路径π=[π

其中,求和对象B

其中,中间的约等于符号体现了CTC中广泛应用的条件独立假设。

对于给定的x和l,枚举所有可能的路径并分别计算其路径概率再进行加和优化是不现实的,因为随着x和l的增长,可能的路径是指数爆炸的。但可以使用前向后向算法进行等效计算。

然而,相关技术中使用CTC的语音识别系统中,常见的是一种编码器-解码器结构。即,编码器的输出h除了用于预测CTC的后验概率y以外,还往往作为一个解码器网络的训练和解码。推理(解码)过程中的计算量或实时率是语音识别系统的重要指标。对许多系统来讲,语音识别系统的计算量或实时率与编码器输出h的帧数有极高的相关关系,即如果帧数越少,则解码计算量越低。在一般实践中,编码器的输出h均全部输入解码器进行训练和解码。一般由于T远大于U,可以试图降低编码器输出h的帧数来降低解码代价。降低h的帧数相当于降低了序列的长度,可以理解为一种下采样。

本申请实施例提供的语音识别方法,是AI lab端到端语音识别框架中使用的方案,能够降低模型推理代价,且可以保持系统性能几乎不变。

在优化CTC损失时,相关技术中所有的路径均被等效考虑。而在本申请实施例中,则更加关注那些更早结束非空预测的那些路径。例如,相较于序列AB,则更希望序列AB得到更多强调。通过这样,期待CTC预测分布y能将所有非空预测集中在较早的时间戳内。

在实现的过程中,可以定义函数τ=f(π)为路径中最后一个非空预测的时间戳,则修改对应的训练目标为以下公式(3):

其中,λ是一个大于零的超参数,λ的取值可以在预设范围内;举例来说,对于中文字符,λ的取值范围可以在10~50之间;对于英文字符,λ的取值范围可以在100~1000之间。该方法可以复用CTC中的前向后向算法计算训练目标,但不似标准CTC能够拥有梯度的闭式解。但是,由于前向后向算法均只是用加法和乘法,其梯度依旧可以使用朴素的链式求导法则获得。上述改动后的CTC称为贝叶斯CTC(BCTC,Bayesian CTC)。

以下给出一个BCTC和标准CTC比较的例子。如图9和图10所示,标准CTC的预测分布y中,非空预测在时间轴上随机散乱;而BCTC允许模型将非空预测主要集中在时间轴左侧。同时指出BCTC和CTC一样具有正确预测序列的能力。如图9和图10所示的两个分布中,不同线型表示不同的非空字符,图9和图10这两副图中非空字符序列是一致的。

下面,对贝叶斯CTC作为下采样的应用进行说明。

本申请实施例中,可以认为通过观察分布y,有能力定位h中重要信息。当分布y的后续若干帧均不预测非空字符,则认为h的后半部分是无意义的,是可以被删除的。基于此,本申请实施例提出一种二阶段方法对h进行下采样。

第一阶段为预训练阶段。预训练阶段的模型如图11所示。输入x被编码器111(Enc)编码后得到编码器输出h,再由分类器112(classifier)处理h得到分布y,并计算BCTC损失113;同时h和对应的标签序列l(即标注序列l)被输入基于注意力的解码器114(attent iondecoder),并计算交叉熵损失115。通过多任务学习的方式对上述模型进行训练,训练时BCTC权重和交叉熵损失权重可以根据任务的需要进行适当调整;举例来说,BCTC权重可以为30%,交叉熵损失权重为70%。

第二阶段为微调阶段。本申请实施例考虑两种端到端语音识别技术框架:基于注意力的编码器解码器(AED,Attention-based Encoder-Decoder)和Transducer(一种自回归模型)。

对于AED,其工作框架如图12所示。AED框架和一阶段训练的结构基本一致,但多出一个剪枝(trim)步骤121。在实现的过程中,基于已知的分布预测y,自右向左删除那些预测空字符且预测概率大于99%的帧所对应的h,直至出现某一帧不符合此条件而停止删除。为了防止过度剪枝导致的边界上信息缺失,本申请实施例在触发停止条件前5帧停止删除。经删除后的编码器111输出h变为h’,h’和标签序列l共同输入基于注意力的解码器114并计算交叉熵损失115。采用多任务学习的训练模式不变。注意到,对于AED模型,所有预训练时的可训练参数均可以保留至微调阶段复用。同时注意到,用于BCTC的h及y不涉及剪枝操作。

对于NT(Neural Transducer)系统,其工作框架如图13所示。NT系统与AED系统类似,将被剪枝处理131的编码器输出h’用于下游解码器训练,但由于NT系统和AED系统有所差别,NT系统的联合网络132(Joint network)和预测网络133(prediction network)需要随机初始化进行优化。NT系统计算Transducer损失134。BCTC损失113和Transducer损失134的优化比例可以为1:2。

在一些实施例中,还可以提供层级CTC(Intermediate CTC)的使用。例如,图11至图13中的编码器是由若干层相同结构的神经网络构成的。当使用层级CTC时,在编码器1/2层数的输出上依旧使用分类器预测一个分布并计算BCTC损失,计算于中间层的BCTC损失和计算于最后层的BCTC损失可以加权组成整体的BCTC损失,其中,中间层的BCTC损失可以占比30%,最后层的BCTC损失占比70%。

这里,在开源中文语音识别数据集AISHELL-1和AISHELL-2上验证了本申请实施例的方案,其结果如下表1所示。

表1

如表1所示,采用了BCTC二阶段训练方法的模型(实验2、3、5、6)和原始方案(实验1、4)具有相近的识别性能(词错误率CER,越低越好)。同时实验发现,使用了BCTC后的模型具有更低的实时率(越低越好),即计算量显著下降。对于NT模型,其解码的步数和编码器输出长度直接相关,其对应的解码步数也显著下降,体现了所提出方法的优越性。

可以理解的是,在本申请实施例中,涉及到用户信息的内容,例如,待识别语音、语音识别结果等信息,如果涉及与用户信息或企业信息相关的数据,当本申请实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。

下面继续说明本申请实施例提供的语音识别装置354实施为软件模块的示例性结构,在一些实施例中,如图2所示,语音识别装置354包括:向量化处理模块3541,用于对待识别语音进行向量化处理,得到音频特征向量;向量编码模块3542,用于对所述音频特征向量进行向量编码处理,得到音频编码向量;分类处理模块3543,用于基于预设词表,对所述音频编码向量进行分类处理,得到所述待识别语音中的每一语音帧对应于所述预设词表中的每一预测字符的预测概率分布;剪枝处理模块3544,用于基于所述预测概率分布,对所述音频编码向量进行剪枝处理,得到剪枝处理后的音频编码向量;其中,所述剪枝处理是指对至少一个语音帧在所述音频编码向量中对应的音频编码元素进行剔除处理;语音识别模块3545,用于基于所述剪枝处理后的音频编码向量对所述待识别语音进行语音识别,得到语音识别结果。

在一些实施例中,所述预设词表包括多个非空字符和一个空字符;所述分类处理模块还用于:基于所述预设词表中的非空字符和空字符,确定每一所述语音帧对应于每一非空字符和所述空字符的预测概率,形成所述预测概率分布。

在一些实施例中,所述剪枝处理模块还用于:基于所述预测概率分布,确定每一所述语音帧具有最大预测概率的预测字符;所述预测字符包括多个非空字符和一个空字符;将预测字符为空字符的语音帧,确定为目标语音帧;对所述目标语音帧在所述音频编码向量中对应的音频编码元素进行剔除处理,得到所述剪枝处理后的音频编码向量。

在一些实施例中,所述剪枝处理模块还用于:按照所述音频编码向量中的音频编码元素逆序排列的顺序,依次剔除所述目标语音帧在所述音频编码向量中对应的音频编码元素,得到所述剪枝处理后的音频编码向量。

在一些实施例中,所述装置还包括:第一确定模块,用于将停止所述剪枝处理时,所述目标语音帧在所述音频编码向量中对应的音频编码元素确定为目标音频编码元素;第二确定模块,用于按照所述音频编码向量中的音频编码元素正序排列的顺序,从所述目标音频编码元素开始,将预设数量的音频编码元素确定为边界音频编码元素;控制模块,用于禁止对所述边界音频编码元素进行剔除处理。

在一些实施例中,所述预测字符包括多个非空字符和一个空字符;所述剪枝处理模块还用于:基于所述预测概率分布,获取每一所述语音帧对应于所述空字符的空字符预测概率;将所述空字符预测概率大于概率阈值的语音帧在所述音频编码向量中对应的音频编码元素,确定为待剔除音频编码元素;按照所述音频编码向量中的音频编码元素逆序排列的顺序,依次剔除所述待剔除音频编码元素,得到所述剪枝处理后的音频编码向量。

在一些实施例中,所述预测字符包括多个非空字符和一个空字符;所述剪枝处理模块还用于:基于所述预测概率分布,确定每一所述语音帧具有最大预测概率的预测字符、每一所述语音帧对应于所述空字符的空字符预测概率;将预测字符为空字符、且所述空字符预测概率大于概率阈值的语音帧,确定为待剪枝语音帧;按照所述音频编码向量中的音频编码元素逆序排列的顺序,依次对所述待剪枝语音帧在所述音频编码向量中对应的音频编码元素进行剔除处理,得到所述剪枝处理后的音频编码向量。

在一些实施例中,所述待识别语音为单通道音频,所述单通道音频通过一维波形表示;所述向量化处理模块还用于:对每一语音帧在所述一维波形中对应的子波形进行音频特征提取,得到每一语音帧对应的定长向量;其中,全部语音帧对应的定长向量构成所述音频特征向量,所述音频特征向量为一个二维矩阵。

在一些实施例中,所述语音识别方法通过语音识别模型实现;所述装置还包括模型训练装置,所述模型训练装置用于:将样本数据输入至语音识别模型中;所述样本数据包括样本语音的样本音频特征向量和标签序列;通过所述语音识别模型的编码器对样本音频特征向量进行向量编码处理,得到样本音频编码向量;通过所述语音识别模型的分类器对所述样本音频编码向量进行分类处理,得到所述样本语音中的每一样本语音帧对应于所述预设词表中的每一预测字符的样本预测概率分布;将所述样本预测概率分布输入至CTC损失模型中,得到CTC损失结果;将所述样本音频编码向量和所述标签序列输入至解码器中,得到样本预测序列;基于所述样本预测序列和所述标签序列,确定交叉熵损失结果;基于所述CTC损失结果和所述交叉熵损失结果,对所述语音识别模型中的参数进行修正,得到训练后的语音识别模型。

在一些实施例中,所述模型训练装置还用于:获取所述CTC损失结果对应的CTC损失权重和所述交叉熵损失结果对应的交叉熵损失权重;基于所述CTC损失权重和所述交叉熵损失权重,对所述CTC损失结果和所述交叉熵损失结果进行加权计算,得到加权损失结果;基于所述加权损失结果,对所述语音识别模型中的参数进行修正,得到训练后的语音识别模型。

在一些实施例中,所述模型训练装置还用于:对所述训练后的语音识别模型进行模型微调处理;其中,所述模型训练装置具体用于:将微调样本数据输入至所述训练后的语音识别模型中;所述微调样本数据包括微调样本语音的微调样本音频特征向量和微调标签序列;通过所述训练后的语音识别模型的编码器对微调样本音频特征向量进行向量编码处理,得到微调样本音频编码向量;通过所述训练后的语音识别模型的分类器对所述微调样本音频编码向量进行分类处理,得到所述微调样本语音中的每一微调样本语音帧对应于所述预设词表中的每一预测字符的微调样本预测概率分布;将所述微调样本预测概率分布输入至CTC损失模型中,得到微调CTC损失结果;基于所述微调样本预测概率分布,对所述微调样本音频编码向量进行剪枝处理,得到剪枝处理后的微调样本音频编码向量;将所述剪枝处理后的微调样本音频编码向量和所述微调标签序列输入至解码器中,得到微调微调样本预测序列;基于所述样本预测序列和所述微调标签序列,确定微调交叉熵损失结果;基于所述微调CTC损失结果和所述微调交叉熵损失结果,对所述训练后的语音识别模型中的参数进行修正,得到模型微调后的语音识别模型。

在一些实施例中,所述编码器为层级编码器,所述层级编码器由多个具有相同结构的神经网络构成;所述模型训练装置还用于:通过所述层级编码器的不同层级的神经网络,对所述样本音频特征向量进行向量编码处理,对应得到多个不同的样本音频编码向量;通过所述分类器分别对所述不同的样本音频编码向量进行分类处理,对应得到多个不同的样本预测概率分布;将所述多个不同的样本预测概率分布分别输入至所述CTC损失模型中,对应得到多个CTC损失结果;对所述多个CTC损失结果进行损失融合处理,得到融合损失结果;基于所述融合损失结果,对所述语音识别模型中的参数进行修正,得到训练后的语音识别模型。

需要说明的是,本申请实施例装置的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果,因此不做赘述。对于本装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。

本申请实施例提供了一种计算机程序产品,该计算机程序产品包括可执行指令,该可执行指令是一种计算机指令;该可执行指令存储在计算机可读存储介质中。当电子设备的处理器从计算机可读存储介质读取该可执行指令,处理器执行该可执行指令时,使得该电子设备执行本申请实施例上述的方法。

本申请实施例提供一种存储有可执行指令的存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的方法,例如,如图3示出的方法。

在一些实施例中,存储介质可以是计算机可读存储介质,例如,铁电存储器(FRAM,Ferromagnetic Random Access Memory)、只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read Only Memory)、带电可擦可编程只读存储器(EEPR OM,Electrically Erasable Programmable Read Only Memory)、闪存、磁表面存储器、光盘、或光盘只读存储器(CD-ROM,Compact Disk-Read Only Memory)等存储器;也可以是包括上述存储器之一或任意组合的各种设备。

在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。

作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。作为示例,可执行指令可被部署为在一个电子设备上执行,或者在位于一个地点的多个电子设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个电子设备上执行。

以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。

技术分类

06120116501281