语音识别方法、装置、设备及存储介质转让专利

申请号 : CN202311423684.1

文献号 : CN117153152B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 马志强李永超方昕

申请人 : 科大讯飞股份有限公司

摘要 :

本申请公开了一种语音识别方法、装置、设备及存储介质,在对输入语音进行识别时,通过编码器对输入语音进行编码,得到音频编码向量,利用融合有大语言模型的解码器处理输入数据并解码得到识别文本。本申请在语音识别模型的解码器中融合大语言模型的网络结构,从而实现将大语言模型与语音识别模型的深度结合,借助大语言模型的建模能力提升语音识别模型中解码器的解码能力,进而提升语音识别效果。输入数据可以包括音频编码向量,或者可以包括音频编码向量和提示指令信息,该提示指令信息包括用于辅助对输入语音进行识别的辅助信息,从而为解码器提供更加丰富的参考信息,辅助进一步提升语音识别效果。

权利要求 :

1.一种语音识别方法,其特征在于,包括:

获取输入语音;

利用配置的编码器对所述输入语音进行编码,得到音频编码向量;

利用配置的解码器处理输入数据并解码得到所述输入语音对应的识别文本,所述输入数据包括所述音频编码向量,或所述输入数据包括所述音频编码向量和提示指令信息,所述提示指令信息包括用于辅助对输入语音进行识别的辅助信息;其中,所述解码器融合有大语言模型结构,以利用所述大语言模型结构对所述输入数据进行处理。

2.根据权利要求1所述的方法,其特征在于,所述解码器包括:大语言模型LLM模块和原始解码模块,所述LLM模块共有N层,所述原始解码模块共有M层;

所述输入数据具体包括所述音频编码向量和提示指令信息。

3.根据权利要求2所述的方法,其特征在于,所述LLM模块与所述原始解码模块按照自下而上依次连接;

所述LLM模块用于对所述输入数据中的所述提示指令信息进行编码,并将提示指令的编码向量传递给所述原始解码模块;

所述原始解码模块用于接收所述提示指令的编码向量,以及接收所述编码器传递的所述音频编码向量,基于所述提示指令的编码向量和所述音频编码向量进行解码,得到所述识别文本。

4.根据权利要求2所述的方法,其特征在于,P层所述LLM模块及M层所述原始解码模块按照自下而上依次连接,每一层所述原始解码模块内部包含自下而上依次连接的原始解码层及1层所述LLM模块,P层所述LLM模块的输出还通过残差连接传递到每一层所述原始解码模块内的所述LLM模块,N=P+M;

P层所述LLM模块用于对所述输入数据中的所述提示指令信息进行编码,并将提示指令的编码向量传递给所述原始解码模块;

所述原始解码模块用于接收所述提示指令的编码向量,以及接收所述编码器传递的所述音频编码向量,基于所述提示指令的编码向量和所述音频编码向量进行解码,得到所述识别文本。

5.根据权利要求1所述的方法,其特征在于,所述解码器采用大语言模型LLM模块作为主体结构;所述输入数据具体包括所述音频编码向量;

则所述利用解码器处理输入数据并解码得到所述输入语音对应的识别文本的过程,包括:将所述音频编码向量输入所述LLM模块,由所述LLM模块将所述音频编码向量作为隐式的提示指令信息,通过自回归解码方式得到所述输入语音对应的识别文本。

6.根据权利要求1所述的方法,其特征在于,所述提示指令信息包括:所述输入语音所属的领域信息、说话人信息、语种信息、主题信息中的任意一项或多项。

7.根据权利要求1所述的方法,其特征在于,所述提示指令信息还包括上下文信息;

在所述语音识别方法应用于听写场景时,所述上下文信息包括机器历史回复文本和/或用户的历史输入语音的识别文本;

在所述语音识别方法应用于转写场景时,所述上下文信息包括用户的历史输入语音的识别文本。

8.根据权利要求2所述的方法,其特征在于,所述编码器和所述解码器的训练过程,包括:有监督训练过程;

所述有监督训练过程包括:

获取训练语音及其标注文本,以及,获取提示指令信息;

将所述标注文本及所述提示指令信息组合为训练文本;

利用编码器对所述训练语音进行编码,得到音频编码向量;

利用解码器处理所述训练语音的音频编码向量及所述训练文本,并解码得到所述训练语音对应的识别文本;

基于所述解码器解码得到的识别文本及所述训练语音的标注文本计算损失函数,并按照所述损失函数更新所述编码器和所述解码器的参数。

9.根据权利要求8所述的方法,其特征在于,在所述有监督训练过程之前,还包括:无监督训练解码器过程,该过程包括:获取无监督文本及基于所述无监督文本生成的提示指令信息;

将所述无监督文本及所述提示指令信息组合为训练文本;

利用所述训练文本采用无监督训练方式,训练所述解码器。

10.根据权利要求5所述的方法,其特征在于,所述编码器和作为所述解码器的LLM模块的训练过程,包括:获取训练语音及其标注文本;

利用预训练后的编码器对所述训练语音进行编码,得到音频编码向量并输入所述LLM模块;

获取所述标注文本的嵌入向量,并输入所述LLM模块;

利用所述LLM模块联合所述训练语音的音频编码向量和所述标注文本的嵌入向量,通过自回归解码方式得到所述训练语音对应的识别文本;

基于所述LLM模块解码得到的识别文本及所述训练语音的标注文本计算损失函数,并按照所述损失函数更新所述编码器和所述LLM模块的参数。

11.根据权利要求10所述的方法,其特征在于,所述编码器的预训练过程,包括:采用所述训练语音及其标注文本训练一个初始语音识别模型,所述初始语音识别模型包括编码器和解码器,将训练后的初始语音识别模型中的编码器作为所述预训练后的编码器。

12.一种语音识别装置,其特征在于,包括:

语音获取单元,用于获取输入语音;

语音编码单元,用于利用配置的编码器对所述输入语音进行编码,得到音频编码向量;

解码单元,用于利用配置的解码器处理输入数据并解码得到所述输入语音对应的识别文本,所述输入数据包括所述音频编码向量,或所述输入数据包括所述音频编码向量和提示指令信息,所述提示指令信息包括用于辅助对输入语音进行识别的辅助信息;其中,所述解码器融合有大语言模型结构,以利用所述大语言模型结构对所述输入数据进行处理。

13.一种语音识别设备,其特征在于,包括:存储器和处理器;

所述存储器,用于存储程序;

所述处理器,用于执行所述程序,实现如权利要求1 11中任一项所述的语音识别方法~的各个步骤。

14.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1 11中任一项所述的语音识别方法的各个步骤。

~

说明书 :

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

技术领域

[0001] 本申请涉及语音识别技术领域,更具体的说,是涉及一种语音识别方法、装置、设备及存储介质。

背景技术

[0002] 自基于注意力机制的端到端机器翻译框架提出以来,端到端建模思路已成为机器翻译、手写识别、语音识别等序列建模任务中的研究热点。在语音识别任务中,端到端建模方法具有声学和语言联合建模的优点,理论上的潜力很大。
[0003] 大语言模型LLM,是一种人工智能模型,旨在理解和生成人类语言。通过在大量的文本数据上进行训练,可以执行广泛的任务,包括文本总结、翻译、情感分析等等。LLM的特点是规模庞大,包含数十亿甚至更多的参数,帮助模型学习语言数据中的复杂模式。大语言模型涌现的能力包括上下文学习、指令遵循和循序渐进的推理能力,随着ChatGPT的发布,LLM相关的研究和应用逐渐爆发,比如Google的PaLM模型、Meta的LLaMA模型等。
[0004] 目前将大语言模型与端到端的语音识别模型相结合的方案较少,仅有的结合方案一般是采用级联方案,具体是使用LLM能力对语音识别模型输出的nbest结果(语音识别模型对输入语音会解码出多条候选语音识别结果,该多条候选语音识别结果称之为nbest结果)进行重打分,根据LLM的打分结果对nbest结果进行重排序,得到最优的识别结果。
[0005] 上述采用级联方案将语音识别模型和LLM进行结合的方式,仅仅是浅层次的融合,LLM并不能影响语音识别模型的识别结果,其仅仅是对语音识别模型输出的多条识别结果进行打分,无法充分利用LLM的强大建模能力,对语音识别效果提升有限。

发明内容

[0006] 鉴于上述问题,提出了本申请以便提供一种语音识别方法、装置、设备及存储介质,以实现将LLM与语音识别模型的深层次结合,借助LLM来提升语音识别效果。具体方案如下:
[0007] 第一方面,提供了一种语音识别方法,包括:
[0008] 获取输入语音;
[0009] 利用配置的编码器对所述输入语音进行编码,得到音频编码向量;
[0010] 利用配置的解码器处理输入数据并解码得到所述输入语音对应的识别文本,所述输入数据包括所述音频编码向量,或所述输入数据包括所述音频编码向量和提示指令信息,所述提示指令信息包括用于辅助对输入语音进行识别的辅助信息;其中,所述解码器融合有大语言模型结构,以利用所述大语言模型结构对所述输入数据进行处理。
[0011] 优选地,所述解码器包括:大语言模型LLM模块和原始解码模块,所述LLM模块共有N层,所述原始解码模块共有M层;
[0012] 所述输入数据具体包括所述音频编码向量和提示指令信息。
[0013] 优选地,所述LLM模块与所述原始解码模块按照自下而上依次连接;
[0014] 所述LLM模块用于对所述输入数据中的所述提示指令信息进行编码,并将提示指令的编码向量传递给所述原始解码模块;
[0015] 所述原始解码模块用于接收所述提示指令的编码向量,以及接收所述编码器传递的所述音频编码向量,基于所述提示指令的编码向量和所述音频编码向量进行解码,得到所述识别文本。
[0016] 优选地,P层所述LLM模块及M层所述原始解码模块按照自下而上依次连接,每一层所述原始解码模块内部包含自下而上依次连接的原始解码层及1层所述LLM模块,P层所述LLM模块的输出还通过残差连接传递到每一层所述原始解码模块内的所述LLM模块,N=P+M;
[0017] P层所述LLM模块用于对所述输入数据中的所述提示指令信息进行编码,并将提示指令的编码向量传递给所述原始解码模块;
[0018] 所述原始解码模块用于接收所述提示指令的编码向量,以及接收所述编码器传递的所述音频编码向量,基于所述提示指令的编码向量和所述音频编码向量进行解码,得到所述识别文本。
[0019] 优选地,所述解码器采用大语言模型LLM模块作为主体结构;所述输入数据具体包括所述音频编码向量;
[0020] 则所述利用解码器处理输入数据并解码得到所述输入语音对应的识别文本的过程,包括:
[0021] 将所述音频编码向量输入所述LLM模块,由所述LLM模块将所述音频编码向量作为隐式的提示指令信息,通过自回归解码方式得到所述输入语音对应的识别文本。
[0022] 优选地,所述提示指令信息包括:
[0023] 所述输入语音所属的领域信息、说话人信息、语种信息、主题信息中的任意一项或多项。
[0024] 优选地,所述提示指令信息还包括上下文信息;
[0025] 在所述语音识别方法应用于听写场景时,所述上下文信息包括机器历史回复文本和/或用户的历史输入语音的识别文本;
[0026] 在所述语音识别方法应用于转写场景时,所述上下文信息包括用户的历史输入语音的识别文本。
[0027] 优选地,所述编码器和所述解码器的训练过程,包括:有监督训练过程;
[0028] 所述有监督训练过程包括:
[0029] 获取训练语音及其标注文本,以及,获取提示指令信息;
[0030] 将所述标注文本及所述提示指令信息组合为训练文本;
[0031] 利用编码器对所述训练语音进行编码,得到音频编码向量;
[0032] 利用解码器处理所述训练语音的音频编码向量及所述训练文本,并解码得到所述训练语音对应的识别文本;
[0033] 基于所述解码器解码得到的识别文本及所述训练语音的标注文本计算损失函数,并按照所述损失函数更新所述编码器和所述解码器的参数。
[0034] 优选地,在所述有监督训练过程之前,还包括:无监督训练解码器过程,该过程包括:
[0035] 获取无监督文本及基于所述无监督文本生成的提示指令信息;
[0036] 将所述无监督文本及所述提示指令信息组合为训练文本;
[0037] 利用所述训练文本采用无监督训练方式,训练所述解码器。
[0038] 优选地,所述编码器和作为所述解码器的LLM模块的训练过程,包括:
[0039] 获取训练语音及其标注文本;
[0040] 利用预训练后的编码器对所述训练语音进行编码,得到音频编码向量并输入所述LLM模块;
[0041] 获取所述标注文本的嵌入向量,并输入所述LLM模块;
[0042] 利用所述LLM模块联合所述训练语音的音频编码向量和所述标注文本的嵌入向量,通过自回归解码方式得到所述训练语音对应的识别文本;
[0043] 基于所述LLM模块解码得到的识别文本及所述训练语音的标注文本计算损失函数,并按照所述损失函数更新所述编码器和所述LLM模块的参数。
[0044] 优选地,所述编码器的预训练过程,包括:
[0045] 采用所述训练语音及其标注文本训练一个初始语音识别模型,所述初始语音识别模型包括编码器和解码器,将训练后的初始语音识别模型中的编码器作为所述预训练后的编码器。
[0046] 第二方面,提供了一种语音识别装置,包括:
[0047] 语音获取单元,用于获取输入语音;
[0048] 语音编码单元,用于利用配置的编码器对所述输入语音进行编码,得到音频编码向量;
[0049] 解码单元,用于利用配置的解码器处理输入数据并解码得到所述输入语音对应的识别文本,所述输入数据包括所述音频编码向量,或所述输入数据包括所述音频编码向量和提示指令信息,所述提示指令信息包括用于辅助对输入语音进行识别的辅助信息;其中,所述解码器融合有大语言模型结构,以利用所述大语言模型结构对所述输入数据进行处理。
[0050] 第三方面,提供了一种语音识别设备,包括:存储器和处理器;
[0051] 所述存储器,用于存储程序;
[0052] 所述处理器,用于执行所述程序,实现上述的语音识别方法的各个步骤。
[0053] 第四方面,提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现上述的语音识别方法的各个步骤。
[0054] 借由上述技术方案,本申请提供了一种在语音识别模型的解码器中融合大语言模型的网络结构,从而实现将大语言模型与语音识别模型的深度结合,借助大语言模型的建模能力提升语音识别模型中解码器的解码能力,进而提升语音识别效果。在应用本申请提供的融合有大语言模型的语音识别模型对输入语音进行识别时,首先通过编码器对输入语音进行编码,得到音频编码向量,进一步利用融合有大语言模型的解码器处理输入数据并解码得到识别文本。这里,输入数据可以包括音频编码向量,则通过解码器可以解码得到识别文本。除此之外,输入数据还可以包括音频编码向量和提示指令信息,该提示指令信息包括用于辅助对输入语音进行识别的辅助信息,示例如可以是说话人信息、上下文信息等。也即,在解码器解码得到识别文本时,除了可以参考输入语音的音频编码向量之外,还可以进一步考虑其它提示指令信息,从而为解码器提供更加丰富的参考信息,辅助进一步提升语音识别效果。

附图说明

[0055] 通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0056] 图1为本申请实施例提供的语音识别方法的一流程示意图;
[0057] 图2示例了一种可选结构的语音识别模型的训练过程示意图;
[0058] 图3示例了另一种可选结构的语音识别模型的训练过程示意图;
[0059] 图4示例了一种语音助手场景下提示指令信息prompt构建方式示意图;
[0060] 图5示例了又一种可选结构的语音识别模型的训练过程示意图;
[0061] 图6为本申请实施例提供的一种语音识别装置结构示意图;
[0062] 图7为本申请实施例提供的语音识别设备的结构示意图。

具体实施方式

[0063] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0064] 本申请提供了一种语音识别方案,可以适用于各种场景下的语音识别任务,示例如听写场景(可以理解为人机交互场景,即人和机器对话,比如手机语音助手场景下,人通过语音向手机发送一些控制指令等,由机器对用户旧语音进行识别),转写场景(可以理解为人与人之间对话的场景,通过机器对用户的语音进行识别)等。
[0065] 本申请方案可以基于具备数据处理能力的终端实现,该终端可以是手机、电脑、服务器、云端等。
[0066] 接下来,结合图1所述,本申请的语音识别方法可以包括如下步骤:
[0067] 步骤S100、获取输入语音。
[0068] 其中,输入语音为待识别的语音。在听写场景下,其可以是用户与机器进行多轮交互过程所输入的语音。在转写场景下,其可以是人与人间对话过程中输入的用户语音。
[0069] 步骤S110、利用配置的编码器对所述输入语音进行编码,得到音频编码向量。
[0070] 具体地,本申请的语音识别模型可以包括编码器和解码器两大模块。其中,编码器用于多输入语音进行编码,得到音频编码向量。
[0071] 本步骤中可以获取输入语音数据的语音特征序列X={x1,…,xm,…xk},其中xm表示语音特征序列中第m帧语音的特征向量,K为语音帧总数目。语音特征可以是PLP(Perceptual Linear Predict ive,感知线性预测)、MFCC(Mel‑scaleFrequency Cepstral Coefficients,梅尔倒谱系数)、FilterBank等语音特征。
[0072] 利用编码器对所述语音特征序列X进行编码,得到音频编码向量H:H={h1,…,hm,…hM}。
[0073] 本实施例中的编码器可以采用基于self‑attention网络的模型结构,其由N个block堆叠而成,N可以取值为12、16等数值,示例如可以是transformer、conformer等模型的编码器。除此之外,还可以采用其它结构的编码器。
[0074] 步骤S120、利用融合有大语言模型结构的解码器处理输入数据并解码得到识别文本,输入数据包括音频编码向量,或包括音频编码向量和提示指令信息。
[0075] 其中,所述提示指令信息包括用于辅助对输入语音进行识别的辅助信息,示例性的如:输入语音所属的领域信息、说话人信息、语种信息、主题信息等等。
[0076] 进一步可选的,提示指令信息还可以包括上下文信息。根据语音识别方法所应用的场景不同,该上下文信息的表现形式也可以不同。如:
[0077] 在语音识别方法应用于听写场景时,上下文信息可以包括机器历史回复文本和/或用户的历史输入语音的识别文本。这里的历史回复文本、历史输入语音具体可以是从当前时刻向前的n轮对话中:机器回复文本、用户输入语音,n取值可以是1或大于1的其它正整数。
[0078] 在语音识别方法应用于转写场景时,上下文信息可以包括用户的历史输入语音的识别文本。这里,用户的历史输入语音具体可以是从当前时刻向前的t时长内的输入语音,t取值可以根据实际情况而设定。
[0079] 由于本实施例中的解码器融合有大语言模型结构,可以利用大语言模型结构对输入数据进行处理,示例如:在输入数据同时包括音频编码向量和提示指令信息时,可以通过大语言模型对输入的提示指令信息进行编码,并联合输入的音频编码向量共同进行解码,得到识别文本。再比如,在输入数据仅包括音频编码向量时,则可以通过融合的大语言模型对音频编码向量进行逐级解码,最终得到识别文本。
[0080] 其中,所述解码器融合有大语言模型结构,以利用所述大语言模型结构对所述输入数据进行处理。
[0081] 本实施例中,通过在语音识别模型的解码器中融合大语言模型的网络结构,从而实现将大语言模型与语音识别模型的深度结合,借助大语言模型的建模能力提升语音识别模型中解码器的解码能力,进而提升语音识别效果。
[0082] 同时,本实施例中输入到解码器的输入数据可以是仅包含编码器输出的音频编码向量,则通过解码器解码可以得到识别文本。另一种情况下,输入数据还可以同时包括音频编码向量以及提示指令信息,该提示指令信息用于辅助对输入语音进行识别,解码器在解码过程中,除了可以参考输入语音的音频编码向量之外,还可以进一步参考其它提示指令信息,从而为解码器提供更加丰富的参考信息,辅助进一步提升语音识别效果。
[0083] 对于语音识别模型的解码器中融合大语言模型LLM的方式,可以有多种融合方案。本申请实施例提供几种可选的融合方案,接下来分别进行说明。
[0084] 第一种、
[0085] 解码器包括大语言模型LLM模块和原始解码模块。其中,LLM模块共有N层结构,原始解码模块共有M层结构。
[0086] LLM模块可以采用开源的大模型,如Llama模型,或者采用其它类型的大语言模型。LLM layer表示LLM模块的每一层,N表示层级数,以7B参数量的Llama为例,N取值可以是32层。
[0087] 原始解码模块可以有多种不同的结构,常见的如基于注意力机制的解码结构decoder block,层数为M,可以设置为6、12等数值。decoder block的结构可以参照图2所示,其包括self‑attention层和enc‑dec attention层。除此之外,原始解码模块还可以采用长短期记忆网络LSTM结构或其它可选的解码结构,本实施例不再穷举。此外,为了便于表述,下文以基于注意力机制的解码结构decoder block为例进行说明。
[0088] 在本实施例提供的解码器结构的基础上,输入至解码器的数据可以同时包括两方面,第一方面即编码器传递的输入语音的音频编码向量H,另一方面可以是额外输入的提示指令信息,该提示指令信息可以直接传递给解码器的LLM模块,由LLM模块对提示指令信息进行编码,之后配合原始解码模块对提示指令信息的编码向量和音频编码向量共同进行解码处理,得到识别文本。
[0089] 本实施例提供了解码器中LLM模块和原始解码模块的两种不同融合形式,分别参照图2和图3所示,图2和图3分别示例了两种不同融合方案下,语音识别模型的训练过程示意图。
[0090] 如图2,LLM模块和原始解码模块decoder block可以按照自下而上依次连接。
[0091] LLM模块用于对输入数据中的提示指令信息prompt进行编码,并将提示指令信息的编码向量传递给原始解码模块。
[0092] 原始解码模块用于接收提示指令信息的编码向量,以及接收编码器传递的音频编码向量,基于提示指令信息的编码向量和音频编码向量进行解码,得到识别文本。
[0093] 如图3提供了另一种LLM模块和原始解码模块的融合方式。M层的LLM模块中的P(P=N‑M)层LLM模块依次串联。剩余的M层LLM模块,分别设置在M层的原始解码模块中,也即每一层原始解码模块中设置1层LLM模块,原始解码模块中自下而上依次为原始解码层(如图3所示的self‑attention层和enc‑dec attention层)及1层LLM模块。
[0094] P层LLM模块的输出不仅传递给原始解码模块decoder block,还可以通过残差连接传递到每一层原始解码模块内部的LLM模块,实现LLM和decoder的深层融合。
[0095] P层所述LLM模块用于对输入数据中的提示指令信息进行编码,并将提示指令信息的编码向量传递给原始解码模块decoder block。
[0096] 原始解码模块decoder block用于接收提示指令信息的编码向量,以及接收编码器传递的音频编码向量,基于提示指令信息的编码向量和音频编码向量进行解码,得到识别文本。
[0097] 对于上述示例的第一种解码器结构,本实施例中提供了一种语音识别模型的训练方案,语音识别模型包括编码器和上述解码器。
[0098] 本实施例提供的训练方案可以包括有监督训练过程。
[0099] 首先,构建prompt文本训练数据。
[0100] 获取训练语音及其标注文本,以及获取提示指令信息。
[0101] 将标注文本及提示指令信息组合为prompt训练文本。
[0102] 具体地,训练文本的格式可以包括提示指令信息槽和标注文本槽,分别用于填充提示指令信息和标注文本。参照图2和图3所示,示例了一种训练文本的格式模板:
[0103] domain‑1 domain‑2 …domain‑i…domain‑n contexty0 ... yt。
[0104] 其中,为prompt信息标识符。domain‑i表示第i个辅助提示信息,其可以表示领域信息、说话人信息、语种信息、主题信息等,由于不同任务场景下的domain信息的数量可能不同,也即n的取值可以根据实际任务进行动态调整。context表示上下文信息。y0 ... yt表示标注文本序列。
[0105] 进一步地,利用编码器对所述训练语音进行编码,得到音频编码向量。利用解码器处理所述训练语音的音频编码向量及所述训练文本,并解码得到所述训练语音对应的识别文本。基于所述解码器解码得到的识别文本及所述训练语音的标注文本计算损失函数,并按照所述损失函数更新所述编码器和所述解码器的参数。具体可以选用CE loss作为损失函数或其它类型的损失函数。
[0106] 上述有监督训练过程,可以同时更新编码器和解码器的网络参数,其中LLM模块的参数量非常巨大,本申请可以采用LoRA对LLM模块进行微调finetune。通过上述有监督训练过程,可以将LLM的能力融合到encoder‑decoder结构的语音识别模型中。
[0107] 进一步地,本实施例中还可以在上述有监督训练过程之前增加无监督训练解码器过程,具体地:
[0108] 首先,获取无监督文本及基于所述无监督文本生成的提示指令信息。将所述无监督文本及所述提示指令信息组合为训练文本。
[0109] 这里的无监督文本可以是从网络或公开数据集中获取的海量的无监督文本,也可以是将平行训练数据中的标注文本作为无监督文本。
[0110] 在基于无监督文本生成提示指令信息时,可以采用多种方式来生成提示指令信息,示例如:将无监督文本送入预训练的模型,预测得到无监督文本所属的领域、主题等,作为提示指令信息。还可以从无监督文本所在原始文档中,获取该无监督文本的上下文信息,添加到提示指令信息中。
[0111] 将无监督文本和提示指令信息组合为训练文本的方式,可以参照前述实施例介绍的训练文本的格式模板进行组合,此处不再赘述。
[0112] 在得到上述训练文本之后,进一步可以利用训练文本采用无监督训练方式,训练所述解码器。
[0113] 为了实现纯文本训练,本实施例中可以将编码器向解码器传递的向量置为0,这样就不需要编码器向解码器传递数据,实现解码器的纯文本训练。训练过程可以采用CE loss作为损失函数或其它类型的损失函数。
[0114] 训练过程中,可以选择同时更新LLM模块的参数和原始解码模块(如图2和图3中的self‑attention层)的参数。
[0115] 通过预训练编码器,将海量的无监督领域文本训练到LLM模块中,利用大语言模型的能力涌现,通过prompt指令微调使得LLM模块能够在使用少量样本的情况下通过理解任务指令来执行新任务,适配新领域,实现小样本领域自适应。LLM模块使用了海量的无监督文本数据训练,使得LLM模块本身已经具备了各种领域信息的建模能力,因此后续在不同领域下进行语音识别时,不再需要大量的领域数据再去微调finetune。此外,LLM具有非常强大的上下文建模能力和文本生成能力,因此本实施例使用少量样本+prompt指令信息进行微调,就能让LLM模块记住这种prompt 模式,同时能够激发LLM模块潜在的该领域的建模能力。在进行语音识别时,只需要给定相同的prompt指令格式,融合了LLM模块的解码器即可正确地生成该领域相关的识别文本。
[0116] 接下来,分别以听写场景和转写场景为例,介绍包含上述结构的解码器的语音识别模型的应用过程。
[0117] 对于听写场景,比如语音助手,用户输入一段语音,提示指令信息prompt中的domain信息可以设置为通讯、应用控制、导航、音乐等关键词,context可以设置为语音助手的历史回复语和/或用户的历史输入语音的识别文本。其中,提示指令信息可以基于历史机器回复语和/或用户的历史输入语音的识别文本来生成,如图4,在对第二句用户语音输入进行识别时,此时生成的提示指令信息prompt可以基于最近一次的机器回复语“添加几点的提醒呢”来生成,示例如将最近一次的机器回复语送入预训练的模型中,可以预测对应的领域信息,如“应用控制”。则可以将提示指令信息prompt中的domain设置为{应用控制}。提示指令信息prompt中的上下文信息context,可以设置为最近一次的机器回复语{添加几点的提醒呢}。
[0118] 将用户输入语音送入编码器进行编码,得到的音频编码向量送入解码器。同时,解码器中的LLM模块对提示指令信息prompt进行编码,并结合原始解码模块,对提示指令信息的编码向量和音频编码向量进行解码,得到识别文本:“添加7点的提醒”。
[0119] 对于转写场景,比如演讲场景。可以将用户演讲的主题领域信息作为Domain信息,比如用户演讲的主题领域为科技、教育、医疗等。此外,可以把用户历史语音的识别结果作为上下文信息context,将domain信息和context信息组合为提示指令信息prompt。
[0120] 将语音当前的输入语音和提示指令信息prompt送入语音识别模型,得到识别文本。
[0121] 第二种、
[0122] 上述第一种的解码器结构中,基于encoder‑decoder框架将LLM和decoder模块相融合,然后使用显式的提示指令信息prompt进行训练和解码。本实施例中提供了另一种解码器结构,即:将LLM模块直接作为解码器的主体结构。
[0123] LLM模块可以复用开源的大语言模型,如LLaMA模型等,也可以采用其它类型的大语言模型。
[0124] 在本实施例提供的解码器结构的基础上,解码器的输入可以有两种情况,一种是仅包含编码器传递的音频编码向量,也即将音频编码向量作为隐式的提示指令信息输入给解码器,解码器通过自回归解码方式得到输入语音对应的识别文本。
[0125] 语音识别模型中的编码器可以采用预训练后的音频编码器,示例如采用基于注意力机制的音频编码器,对输入语音进行编码,得到音频编码向量,并传递给解码器。
[0126] 本实施例中,以解码器的输入数据仅包含音频编码向量为例,介绍了一种语音识别模型的训练过程,如图5所示:
[0127] 首先,获取训练语音及其标注文本。
[0128] 进一步,利用预训练后的编码器对所述训练语音进行编码,得到音频编码向量audio embedding并输入作为解码器的LLM模块。
[0129] 再进一步,获取所述标注文本的嵌入向量,并输入所述LLM模块。其中,标注文本可以表示为y0 ... yt。标注文本的嵌入向量可以表示为text embedding。
[0130] 利用所述LLM模块联合所述训练语音的音频编码向量和所述标注文本的嵌入向量,通过自回归解码方式得到所述训练语音对应的识别文本。基于所述LLM模块解码得到的识别文本及所述训练语音的标注文本计算损失函数,并按照所述损失函数更新所述编码器和所述LLM模块的参数。
[0131] 在训练过程中,可以采用CE loss作为损失函数进行模型训练。
[0132] 另一种情况下,解码器的输入可以同时包括音频编码向量以及提示指令信息。
[0133] 则解码器可以对输入的提示指令信息进行编码,将提示指令信息的编码向量与音频编码向量进行拼接,之后对拼接向量进行编解码处理,最终得到输入语音对应的识别文本。
[0134] 在这种情况下,语音识别模型的训练过程,需要在图5所示的基础上进一步增加一条到LLM模块的输入分支,该输入分支中可以输入提示指令信息的嵌入向量,则由LLM模块联合训练语音的音频编码向量、提示指令信息的嵌入向量及所述标注文本的嵌入向量,通过自回归解码方式得到训练语音对应的识别文本,并基于识别文本及训练语音的标注文本计算损失函数,按照损失函数更新编码器和LLM模块的参数。
[0135] 上述实施例训练语音识别模型的过程中,编码器可以是预训练后的,则该编码器的预训练过程可以包括:
[0136] 采用训练语音及其标注文本训练一个初始语音识别模型,所述初始语音识别模型包括编码器和解码器,将训练后的初始语音识别模型中的编码器作为预训练后的编码器。
[0137] 初始语音识别模型的训练过程,损失函数可以采用CTC loss、Transducer loss或ED loss等,初始语音识别模型训练到满足设定收敛条件后,可以保留编码器的参数,作为预训练后的编码器。
[0138] 本实施例中提供的以LLM模块作为语音识别模型的解码器主体结构的方案,通过编码器将输入语音编码成向量,并以此作为LLM模块的隐式prompt信息输入给LLM模块,这种模型结构和训练方案更加简洁,属于一种LLM与语音识别模型融合的新范式,其能够充分利用LLM的强大建模能力,使得语音识别效果更好。
[0139] 下面对本申请实施例提供的语音识别装置进行描述,下文描述的语音识别装置与上文描述的语音识别方法可相互对应参照。
[0140] 参见图6,图6为本申请实施例公开的一种语音识别装置结构示意图。
[0141] 如图6所示,该装置可以包括:
[0142] 语音获取单元11,用于获取输入语音;
[0143] 语音编码单元12,用于利用配置的编码器对所述输入语音进行编码,得到音频编码向量;
[0144] 解码单元13,用于利用配置的解码器处理输入数据并解码得到所述输入语音对应的识别文本,所述输入数据包括所述音频编码向量,或所述输入数据包括所述音频编码向量和提示指令信息,所述提示指令信息包括用于辅助对输入语音进行识别的辅助信息;其中,所述解码器融合有大语言模型结构,以利用所述大语言模型结构对所述输入数据进行处理。
[0145] 可选的,上述解码单元所采用的解码器有两种融合LLM模块的方案,分别介绍如下:
[0146] 第一种方案:
[0147] 解码器包括:大语言模型LLM模块和原始解码模块,所述LLM模块共有N层,所述原始解码模块共有M层;所述输入数据具体包括所述音频编码向量和提示指令信息。
[0148] 可选的,LLM模块和原始解码模块有几种不同的组合方式,示例如:
[0149] 1、所述LLM模块与所述原始解码模块按照自下而上依次连接;
[0150] 所述LLM模块用于对所述输入数据中的所述提示指令信息进行编码,并将提示指令的编码向量传递给所述原始解码模块;
[0151] 所述原始解码模块用于接收所述提示指令的编码向量,以及接收所述编码器传递的所述音频编码向量,基于所述提示指令的编码向量和所述音频编码向量进行解码,得到所述识别文本。
[0152] 2、P层所述LLM模块及M层所述原始解码模块按照自下而上依次连接,每一层所述原始解码模块内部包含自下而上依次连接的原始解码层及1层所述LLM模块,P层所述LLM模块的输出还通过残差连接传递到每一层所述原始解码模块内的所述LLM模块,N=P+M;
[0153] P层所述LLM模块用于对所述输入数据中的所述提示指令信息进行编码,并将提示指令的编码向量传递给所述原始解码模块;
[0154] 所述原始解码模块用于接收所述提示指令的编码向量,以及接收所述编码器传递的所述音频编码向量,基于所述提示指令的编码向量和所述音频编码向量进行解码,得到所述识别文本。
[0155] 第二种方案:
[0156] 上述解码单元所采用的解码器采用大语言模型LLM模块作为主体结构;所述输入数据具体包括所述音频编码向量;
[0157] 则解码单元利用解码器处理输入数据并解码得到所述输入语音对应的识别文本的过程,包括:
[0158] 将所述音频编码向量输入所述LLM模块,由所述LLM模块将所述音频编码向量作为隐式的提示指令信息,通过自回归解码方式得到所述输入语音对应的识别文本。
[0159] 可选的,上述提示指令信息可以包括:
[0160] 所述输入语音所属的领域信息、说话人信息、语种信息、主题信息中的任意一项或多项。
[0161] 进一步可选的,所述提示指令信息还可以包括上下文信息;
[0162] 在所述语音识别方法应用于听写场景时,所述上下文信息包括机器历史回复文本和/或用户的历史输入语音的识别文本;
[0163] 在所述语音识别方法应用于转写场景时,所述上下文信息包括用户的历史输入语音的识别文本。
[0164] 可选的,本申请装置还可以包括第一模型训练单元,用于在解码器采用第一种结构方案时,训练编码器和解码器,该过程可以包括:
[0165] 有监督训练过程;
[0166] 所述有监督训练过程包括:
[0167] 获取训练语音及其标注文本,以及,获取提示指令信息;
[0168] 将所述标注文本及所述提示指令信息组合为训练文本;
[0169] 利用编码器对所述训练语音进行编码,得到音频编码向量;
[0170] 利用解码器处理所述训练语音的音频编码向量及所述训练文本,并解码得到所述训练语音对应的识别文本;
[0171] 基于所述解码器解码得到的识别文本及所述训练语音的标注文本计算损失函数,并按照所述损失函数更新所述编码器和所述解码器的参数。
[0172] 进一步可选的,上述第一模型训练单元在有监督训练过程之前,还可以包括无监督训练解码器过程,该过程包括:
[0173] 获取无监督文本及基于所述无监督文本生成的提示指令信息;
[0174] 将所述无监督文本及所述提示指令信息组合为训练文本;
[0175] 利用所述训练文本采用无监督训练方式,训练所述解码器。
[0176] 可选的,本申请装置还可以包括第二模型训练单元,用于在解码器采用第二种结构方案时,训练编码器和作为解码器的LLM模块,该过程可以包括:
[0177] 获取训练语音及其标注文本;
[0178] 利用预训练后的编码器对所述训练语音进行编码,得到音频编码向量并输入所述LLM模块;
[0179] 获取所述标注文本的嵌入向量,并输入所述LLM模块;
[0180] 利用所述LLM模块联合所述训练语音的音频编码向量和所述标注文本的嵌入向量,通过自回归解码方式得到所述训练语音对应的识别文本;
[0181] 基于所述LLM模块解码得到的识别文本及所述训练语音的标注文本计算损失函数,并按照所述损失函数更新所述编码器和所述LLM模块的参数。
[0182] 可选的,上述第二模型训练单元预训练编码器的过程,可以包括:
[0183] 采用所述训练语音及其标注文本训练一个初始语音识别模型,所述初始语音识别模型包括编码器和解码器,将训练后的初始语音识别模型中的编码器作为所述预训练后的编码器。
[0184] 本申请实施例提供的语音识别装置可应用于语音识别设备,如手机、电脑、服务器、云端等。可选的,图7示出了文本处理设备的硬件结构框图,参照图7,语音识别设备的硬件结构可以包括:至少一个处理器1,至少一个通信接口2,至少一个存储器3和至少一个通信总线4;
[0185] 在本申请实施例中,处理器1、通信接口2、存储器3、通信总线4的数量为至少一个,且处理器1、通信接口2、存储器3通过通信总线4完成相互间的通信;
[0186] 处理器1可能是一个中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路等;
[0187] 存储器3可能包含高速RAM存储器,也可能还包括非易失性存储器(non‑volatile memory)等,例如至少一个磁盘存储器;
[0188] 其中,存储器存储有程序,处理器可调用存储器存储的程序,所述程序用于:
[0189] 获取输入语音;
[0190] 利用配置的编码器对所述输入语音进行编码,得到音频编码向量;
[0191] 利用配置的解码器处理输入数据并解码得到所述输入语音对应的识别文本,所述输入数据包括所述音频编码向量,或所述输入数据包括所述音频编码向量和提示指令信息,所述提示指令信息包括用于辅助对输入语音进行识别的辅助信息;其中,所述解码器融合有大语言模型结构,以利用所述大语言模型结构对所述输入数据进行处理。
[0192] 可选的,所述程序的细化功能和扩展功能可参照上文描述。
[0193] 本申请实施例还提供一种存储介质,该存储介质可存储有适于处理器执行的程序,所述程序用于:
[0194] 获取输入语音;
[0195] 利用配置的编码器对所述输入语音进行编码,得到音频编码向量;
[0196] 利用配置的解码器处理输入数据并解码得到所述输入语音对应的识别文本,所述输入数据包括所述音频编码向量,或所述输入数据包括所述音频编码向量和提示指令信息,所述提示指令信息包括用于辅助对输入语音进行识别的辅助信息;其中,所述解码器融合有大语言模型结构,以利用所述大语言模型结构对所述输入数据进行处理。
[0197] 可选的,所述程序的细化功能和扩展功能可参照上文描述。
[0198] 最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0199] 本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间可以根据需要进行组合,且相同相似部分互相参见即可。
[0200] 对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。