语音识别方法、系统、装置及介质与流程

文档序号:26397402发布日期:2021-08-24 16:08阅读:153来源:国知局
语音识别方法、系统、装置及介质与流程

本发明涉及语音识别领域,具体而言,涉及一种语音识别方法、系统、装置及介质。



背景技术:

在语音识别中,其主要流程一般是用声学模型识别出一段语音的声学特征,再由语言模型根据声学特征翻译出对应的文字。由于存在同音异字的情况,会区分不同的应用场景而训练不同的语言模型,使其能适应特定领域场景。如图1所示:待识别语音转换成对应声学模型的单元(例子中的拼音、音调序号等),通过声学模型提取声学特征,例如将声学模型识别语音得到的声学特征“jian3yi4gong1zuo4”,进而,用某通用语言模型翻译出来可以是“简易工作”,而某防疫语言模型翻译出来则可以是“检疫工作”。由此,为了能提供许多领域的支持,必须需要训练众多的语言模型而且利用众多的服务器来提供服务支持。进而,就需要如图2所示的方式,由前端的判断逻辑来确定应该调用后端的诸多服务器(即相应的适用于不同领域/不同场景的不同模型)中哪个特定的服务器端口i进行服务,并由后端输出准确的与领域/场景匹配的翻译的结果。

而上述现有技术采用的方式,往往存在诸多缺陷,例如:1、服务成本大,比如一个服务引擎就至少需求2c4g的配置,考虑并发量,一个领域的语言模型或许不仅仅一个服务器;2、计算资源浪费现象,比如所有领域的调用量都并不会相同,有些调用少,有些则会多,这样,调用量少的语言模型,其部署的计算资源会显得十分浪费;3、无法实现热切换语言模型,比如当想让冷门领域语言模型切换提供热门领域时,需要人工维护,致使人工成本较大;4、往往单一领域模型并不能适应长对话识别任务。



技术实现要素:

针对现有技术中的上述缺陷,本发明提供了一种语音识别方法、系统、装置及介质的技术方案,旨在解决如何通过基于深度学习的动态语言模型实现适应不同领域识别服务的技术问题;进一步,还可以解决根据领域信息和/或判断已有对话的领域信息为不同领域提供通过基于深度学习的动态语言模型进行的识别服务从而减少过多服务器部署的问题;再进一步,还可以解决减少计算资源浪费、减少人工成本、并且有效为长对话识别提供不同领域的识别结果等技术问题。

为了解决上述技术问题,本发明第一方面提出一种语音识别方法,包括:根据语音识别服务请求,获得待识别语音的声学特征以及对应所述声学特征的领域信息;基于深度学习的动态语言模型切换到所述领域信息对应的领域对所述声学特征进行识别,以确定所述待识别语音对应的文本识别结果。

优选地,所述根据语音识别服务请求,获得待识别语音的声学特征以及对应所述声学特征的领域信息,具体包括:在一次服务请求中,将所述待识别语音转换为声学模型对应的单元以构建当前一句话的语料作为所述声学特征;根据语料的领域分类,判断所述当前一句话的语料所属的领域,作为对应所述声学特征的所述领域信息。

优选地,所述语音识别服务请求包括:长对话识别的一次服务请求,和/或,单句识别的一次服务请求;根据语料的领域分类,判断所述当前一句话的语料所属的领域,作为对应所述声学特征的所述领域信息,具体包括:当所述语音识别服务请求为单句识别的一次服务请求时,直接根据语料的领域分类,判断所述当前一句话的语料所属的领域;和/或,当所述语音识别服务请求为长对话识别的一次服务请求时,先根据上一句话的识别信息对所述当前一句话的语料的第一特征进行提取,融合所述第一特征与从所述当前一句话的语料直接提取的特征后,再根据语料的领域分类,判断所述当前一句话的语料所属的领域;其中,上一句话指所述当前一句话之前的一句话。

优选地,所述语料的领域分类包括:设定各个领域中的语料所对应的标签,标识语料的领域分类;和/或,所述上一句话的识别信息包括:已经发生并识别过的所述上一句话的状态向量;和/或,根据语料的领域分类,判断所述当前一句话的语料所属的领域,具体包括:通过训练后的语料领域分类器根据所述语料的领域分类进行判断。

优选地,所述语料领域分类器的训练具体包括:构建训练数据,包括:在各个领域中,将语料构成若干个对话;随机选取多个不同领域中的所述若干个对话,拼接在一起,形成一个训练样本;将每一个训练样本中的所有语料转换为声学模型对应的单元以作为语料分类器的输入,将每一个训练样本中的所有语料的文本作为语料分类器的输出,并且,对每一个训练样本中每一个不同领域的衔接点进行变化标注;训练预先构建的所述语料领域分类器,具体包括:根据当前t时刻的状态对所述输入进行第一特征提取,并计算用于判断语料领域是否变化部分的损失函数;其中,所述当前t时刻的状态为t-1时刻返回的状态向量,其表示已发生并识别的t-1时刻的一句话的状态向量;对所述输入进行特征提取,并且融合所述第一特征,以及计算用于判断所述输入中的语料所属的领域部分的损失函数;确定是否达到预定训练次数和/或是否各个所述损失函数达到收敛目标,如果是,则结束所述语料领域分类器的训练。

优选地,基于深度学习的动态语言模型,具体包括:构建采用嵌入层embedding来代表各个领域对应的各个语言模型结构的神经网络模型;和/或,基于深度学习的动态语言模型切换到所述领域信息对应的领域对所述声学特征进行识别,以确定所述待识别语音对应的文本识别结果,具体包括:将所述领域信息转化后进行特征编码,并将所述特征编码与从所述声学特征中提取的特征进行融合;基于深度学习的动态语言模型根据融合的特征切换到与所述特征编码指示的领域相对应的语言算法并对融合的特征进行特征解码,以获得预测的所述待识别语音对应的文本识别结果。

优选地,还包括:构建训练数据训练所述动态语言模型;其中,构建训练数据包括:随机选取各个领域中的每一句语料,并将每一句语料作为一个训练样本;将每一个训练样本中的所有语料转换为声学模型对应的单元以作为所述动态语言模型的输入,将每一个训练样本中的所有语料的文本作为所述动态语言模型的输出,并且,标注每一个训练样本的语料所属的领域;其中,训练所述动态语言模型包括:将标注的每一个训练样本的领域进行信息转化再进行特征编码;从训练所述动态语言模型的所述输入中提取特征并与所述特征编码进行特征融合;所述动态语言模型切换到与融合的特征中所述特征编码指示的领域相对应的语言算法并对融合的特征进行特征解码;根据训练所述动态语言模型的所述输出与所述特征解码的文本,计算损失函数;确定是否达到预定训练次数和/或是否所述损失函数达到收敛目标,如果是,则结束所述动态语言模型的训练。

为了解决上述技术问题,本发明第二方面提出一种语音识别系统,包括:配置在前端的判断装置,与所述判断装置连接的、配置在后端语言识别服务装置;所述判断装置,用于在一次服务请求中,根据语料的领域分类,判断对应待识别语音的声学特征的领域信息;所述语言识别服务装置,用于通过基于深度学习的动态语言模型切换到所述领域信息对应的领域后对所述声学特征进行识别,以确定所述待识别语音对应的文本识别结果。

优选地,还包括:在所述一次服务请求中,将所述待识别语音转换为声学模型对应的单元以构建当前一句话的语料,作为所述声学特征;根据语料的领域分类,判断对应待识别语音的声学特征的领域信息,具体包括:根据语料的领域分类,判断所述当前一句话的语料所属的领域,作为所述领域信息。

优选地,所述语音识别服务请求包括:长对话识别的一次服务请求,和/或,单句识别的一次服务请求;所述判断装置具体用于:当所述语音识别服务请求为单句识别的一次服务请求时,直接根据设定的语料的领域分类,将所述当前一句话的语料对应所属的领域作为所述领域信息输出到所述语言识别服务装置;当所述语音识别服务请求为长对话识别的一次服务请求时:先根据上一句话的识别信息对所述当前一句话的语料进行第一特征提取、输出所述第一特征以及输出语料领域是否改变的判断结果;其中,上一句话指所述当前一句话之前的一句话;以及,再将接收的所述第一特征与从所述当前一句话的语料提取的特征进行融合后,按照设定的语料的领域分类,判断所述当前一句话的语料所属的领域并作为所述领域信息输出到所述语言识别服务装置。

优选地,所述语料的领域分类包括:设定各个领域中的语料所对应的标签,标识语料的领域分类;和/或,所述上一句话的识别信息包括:已经发生并识别过的所述上一句话的状态向量;和/或,所述判断装置具体还包括:利用训练后的语料领域分类器根据所述语料的领域分类,进行语料所属的领域的判断。

优选地,训练所述语料领域分类器,具体包括:构建训练数据,包括:在各个领域中,将语料构成若干个对话;随机选取多个不同领域中的所述若干个对话,拼接在一起,形成一个训练样本;将每一个训练样本中的所有语料转换为声学模型对应的单元以作为语料分类器的输入,将每一个训练样本中的所有语料的文本作为语料分类器的输出,并且,对每一个训练样本中每一个不同领域的衔接点进行变化标注;构建的所述语料领域分类器包括:语料领域变化判断模块和语料领域分类模块,并且,两个模块进行连接;利用所述训练数据训练所述语料领域分类器,包括:在所述语料领域变化判断模块中,根据当前t时刻的状态对所述输入进行第一特征提取,并计算用于判断语料领域是否变化部分的损失函数;其中,所述当前t时刻的状态为t-1时刻返回的状态向量,其表示已发生并识别的t-1时刻的一句话的状态向量;在所述语料领域分类模块中,对所述输入进行特征提取,并且融合所述第一特征,以及计算用于判断所述输入中的语料所属的领域部分的损失函数;确定是否达到预定训练次数和/或是否各个所述损失函数达到收敛目标,如果是,则结束所述语料领域分类器的训练。

优选地,所述基于深度学习的动态语言模型,具体包括:构建采用嵌入层embedding来代表各个领域对应的各个语言模型结构的神经网络模型;和/或,所述语言识别服务装置包括:领域信息解码模块和语言模型模块,并且连接两个模块;其中,所述领域信息解码模块,用于将所述领域信息转化后进行特征编码并提供给所述语言模型模块;其中,所述语言模型模块,用于将所述特征编码与从所述声学特征中提取的特征进行融合,以及通过训练后的基于深度学习的动态语言模型,根据融合的特征切换到与所述特征编码指示的领域相对应的语言算法并对融合的特征进行特征解码,以获得预测的所述待识别的语音对应的文本识别结果。

优选地,还包括:构建训练数据训练所述动态语言模型;其中,构建训练数据具体包括:随机选取各个领域中的每一句语料,并将每一句语料作为一个训练样本;将每一个训练样本中的所有语料转换为声学模型对应的单元以作为所述动态语言模型的输入,将每一个训练样本中的所有语料的文本作为所述动态语言模型的输出,并且,标注每一个训练样本的语料所属的领域;其中,训练所述动态语言模型具体包括:在所述领域信息解码模块中,将标注的每一个训练样本的领域进行信息转化再进行特征编码;在所述语言模型模块中,从训练所述动态语言模型的所述输入中提取特征并与所述特征编码进行特征融合,将所述动态语言模型切换到与融合的特征中所述特征编码指示的领域相对应的语言算法并对融合的特征进行特征解码,以及,根据训练所述动态语言模型的所述输出与所述特征解码的文本计算损失函数;确定是否达到预定训练次数和/或是否所述损失函数达到收敛目标,如果是,则结束所述动态语言模型的训练。

为了解决上述技术问题,本发明第三方面提出一种电子装置,其包括处理器以及存储计算机可执行指令的存储器,所述计算机可执行指令在被执行时使所述处理器执行第一方面提出的方法。

为了解决上述技术问题,本发明第四方面提出一种计算机可读存储介质,该所述计算机可读存储介质存储一个或多个程序,当所述一个或多个程序被处理器执行时,实现第一方面提出的方法。

本发明的一个实施方式通过前端判断逻辑控制与后端基于深度学习的动态语言模型根据领域信息的动态识别方式,能适应不同领域识别服务,简化了并减少了模型量或者说减少了服务器、服务引擎的配置需求,少量或单个模型即可应适应实际并发量;进而,结合领域信息的识别,更准确调用和匹配上参数和模型进行计算从而减少了计算资源浪费,并且,动态模型和领域信息的结合,实现了只需一个模型提供所有服务、提供识别服务的热切换,能直接进入匹配上的领域的语音识别服务的计算,即利用嵌入层embedding模型结构的神经网络模型进行多语言模型切换和识别计算,由此也减少人工维护需求降低了人工成本;进一步,前端判断逻辑结合领域信息控制动态语言模型的方式,能有效应对长对话识别,尤其长对话量连续识别多领域的情形,根据已经发生的对话判断当前识别的语音所属领域而提供相应的不同领域的识别结果,有效实现多个领域交叉识别。

附图说明

为了使本发明所解决的技术问题、采用的技术手段及取得的技术效果更加清楚,下面将参照附图详细描述本发明的具体实施例。但需声明的是,下面描述的附图仅仅是本发明的示例性实施例的附图,对于本领域的技术人员来讲,在不付出创造性劳动的前提下,可以根据这些附图获得其他实施例的附图。

图1是现有技术中声学模型提取声学特征和不同语言模型进行翻译输出的一个过程例子的示意图;

图2是现有技术中语音识别的语音识别服务部署的一个例子的结构框架示意图;

图3是根据本发明的语音识别方法的一个实施例的具体流程图;

图4是根据本发明的语音识别系统的一个实施例的结构框图;

图5是根据本发明的语音识别方案的关于语音识别服务部署的架构的一个实施例的结构框图;

图6是根据本发明的语音识别方案的关于长对话识别效果的一个实施例的结果示意图;

图7是根据本发明的语音识别方案的关于组成模块的一个实施例的示意图;

图8是根据本发明的语音识别方案的关于组成模块使用的模型的一个实施例的示意图;

图9是根据本发明的语音识别方案的关于组成模块的模型训练的一个实施例的示意图;

图10、11是根据本发明的语音识别方案的应用服务的一个实施例的示意图;

图12是根据本发明的一种电子装置的一个示例性的实施例的结构框图;

图13是根据本发明的一个计算机可读介质的一个逻辑示例性的实施例的示意图。

具体实施方式

现在将参考附图来更加全面地描述本发明的示例性实施例,虽然各示例性实施例能够以多种具体的方式实施,但不应理解为本发明仅限于在此阐述的实施例。相反,提供这些示例性实施例是为了使本发明的内容更加完整,更加便于将发明构思全面地传达给本领域的技术人员。

在符合本发明的技术构思的前提下,在某个特定的实施例中描述的结构、性能、效果或者其他特征可以以任何合适的方式结合到一个或更多其他的实施例中。

在对于具体实施例的介绍过程中,对结构、性能、效果或者其他特征的细节描述是为了使本领域的技术人员对实施例能够充分理解。但是,并不排除本领域技术人员可以在特定情况下,以不含有上述结构、性能、效果或者其他特征的技术方案来实施本发明。

附图中的流程图仅是一种示例性的流程演示,不代表本发明的方案中必须包括流程图中的所有的内容、操作和步骤,也不代表必须按照图中所显示的的顺序执行。例如,流程图中有的操作/步骤可以分解,有的操作/步骤可以合并或部分合并,等等,在不脱离本发明的发明主旨的情况下,流程图中显示的执行顺序可以根据实际情况改变。

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

各附图中相同的附图标记表示相同或类似的元件、组件或部分,因而下文中可能省略了对相同或类似的元件、组件或部分的重复描述。还应理解,虽然本文中可能使用第一、第二、第三等表示编号的定语来描述各种器件、元件、组件或部分,但是这些器件、元件、组件或部分不应受这些定语的限制。也就是说,这些定语仅是用来将一者与另一者区分。例如,第一器件亦可称为第二器件,但不偏离本发明实质的技术方案。此外,术语“和/或”、“及/或”是指包括所列出项目中的任一个或多个的所有组合。

传统方法中,会训练诸多实现语音识别的语言模型比如8个、10个、15个等,训练诸多模型比如10个,然后开启10个端口进行服务,由前端字段来选择不同端口进行服务。而本发明的语音识别方法的一个实施例中,是在语音识别服务部署时,前端提供领域判断、后端提供基于embedding结构的动态语言模型按照所述领域热切换到相应的语言算法/模型完成翻译即识别服务。该实施例中,在前端提供信息或者说领域判断具体可以通过训练语料领域分类器提供领域信息、在后端识别服务中具体可以通过基于深度学习的动态语言模型按照领域信息切换到对应匹配的各个领域的语言算法/模型/方法进行计算。其中,基于深度学习的动态语言模型,其深度学习采用嵌入层embedding方式来代表各个领域的模型结构,即整体上为采用embedding架构的多分类器,其不必选择多个不同端口提供多个不同且分离的语言模型。

【实施例1】

下面结合图3所示的根据本发明技术方案的语音识别方法的一个实施例的主要流程图,对本发明的语音识别实现过程进行说明。

步骤s110,根据语音识别服务请求,获得待识别语音的声学特征以及对应所述声学特征的领域信息。

一个实施方式中,可以在一次语音识别服务请求中,将所述待识别语音转换为对应声学模型单元的当前一句话的语料即声学特征,并提取所述当前一句话的语料的特征(例如特征向量);根据语料的领域分类,判断所述当前一句话的语料所属的领域,作为对应所述声学特征的所述领域信息。

这里,声学模型获得的结果是一句话的语料,其是有序的有上下文的多个声学特征的组合,对输入的该结果即构建的该一句话的语料的特征做提取实际上仍然是提取的声学特征,而进一步,该提取的声学特征还可以是特征向量的形式便于后续语言算法的处理。

具体地,所述语音识别服务请求(简称服务请求)至少包括:长对话识别的一次服务请求,和/或,单句识别的一次服务请求。

其中,根据语料的领域分类,判断所述当前一句话的语料所属的领域,作为对应所述声学特征的所述领域信息可以是按照上述两种服务请求的情况进行区别处理,比如:当所述语音识别服务请求为单句识别的一次服务请求时,直接根据语料的领域分类,判断所述当前一句话的语料所属的领域;和/或,当所述语音识别服务请求为长对话识别的一次服务请求时,先对所述声学特征即当前一句话的语料,根据上一句话的识别信息对所述当前一句话的语料的第一特征进行提取,融合所述第一特征与所述声学特征后再根据语料的领域分类,判断所述当前一句话的语料所属的领域;其中,上一句话指所述当前一句话之前的一句话。

进一步,所述语料的领域分类至少可以包括:设定各个领域中的语料所对应的标签,标识语料的领域分类。

进一步,所述上一句话的识别信息可以包括:已经发生并识别过的所述上一句话的状态向量。

进一步,根据语料的领域分类,判断所述当前一句话的语料所属的领域,具体还可以包括:通过训练后的语料领域分类器根据所述语料的领域分类进行判断。

一个实施方式中,训练后的语料领域分类器,可以是对预先构建的语料领域分类器利用特定的训练数据/训练样本/训练对象,进行训练。

优选地,可以先构建训练数据,比如:在各个语料领域中,将各自领域中的语料构成若干个对话;再随机选取多个不同领域中的所述若干个对话,拼接在一起,形成一个训练样本,或者说作为一个训练对象。进一步,将所有语料转换为声学模型对应的单元即声学模型的识别结果(声学特征)以作为语料分类器的输入;将所有语料的文本作为语料分类器的输出;并且,对每一个训练样本中每一个不同领域的衔接点进行变化标注。

优选地,以前述训练数据对语料领域分类器进行训练,例如:根据当前t时刻的状态对所述输入i1(如图7至9所示),进行第一特征(例如特征向量)提取,并计算用于判断语料领域是否变化的损失函数;其中,所述当前t时刻的状态为t-1时刻返回的状态向量,其表示已发生对话的状态向量;对输入的声学特征结合状态向量进行特征(特征向量)提取,并融合所述第一特征,以及计算用于判断所述输入中的语料(待识别的当前一句话的语料即该声学特征)所属的领域的损失函数;确定是否达到预定训练次数和/或是否各个所述损失函数达到收敛目标,如果是,则结束所述语料领域分类器的训练。

一个应用和实现的例子,参见图5所示语音识别服务部署模式的示例。在该例子中,为解决服务成本大、计算资源浪费严重、长对话连续识别多领域交叉实现困难的情况,提出了基于深度学习的动态语言模型的方法,在前端提供领域信息给后端的一个模型,后端的该模型按照领域信息提供不同领域的识别服务。因而,对于后端切换到相应领域的识别服务中,依赖的语料的领域信息很重要,即前端的领域信息的自动获取/判断或人工获取/判断,尤其自动获取/判断则能更有效适应长对话连续识别多交叉领域的情况。

具体例如:先对输入待识别语音按照提取声学特征的声学模型对应的单元拆分成语料,或者说构建语料,即声学模型提取的结果(声学特征),供语言识别使用。

其中,声学模型可以是已知的各种已有技术建模的声学模型,例如利用隐马尔可夫模型hmm、dnn-hmm等建模的声学模型,主要用来提取(例如从各个帧计算)语音的声学特征、即构建特定结构的待识别的语音的一句话的语料。这样,服务请求中待识别的语音的每句话的语料都是匹配声学模型对应的单元形式。

其中,长对话识别中,可以根据已经发生的对话来判断当前待识别的语音所属的领域,或者说,待识别语音转换成的语料属于哪个领域。这样可以提供长对话中不同领域的结果,即区分长对话中交叉的不同领域。如图6所示长对话识别过程的例子,一次服务中的多个句子对话,前面部分:“你好,我想咨询下牌子”……“你们最近的商店活动”都是与交易商品相关的领域a的对话;后面部分:“你们最近的防疫情况”……“你们最近的检疫工作情况”都是与防疫控制相关的领域b的对话。将一次服务中,每一句话的识别服务都结合其前一句话的已经进行的识别判断来确定其领域,比如当前待识别的一句话的语音或者说其语料要进行识别时先判断其语音或语料所属的领域,需要结合已经发生的在当前一句话之前的上一句话的识别信息来判断。比如上一句是你们最近的商店活动,当前一句话是你们最近的防疫情况,显然,根据本发明的方案,会先确定当前一句话的领域发生了变化(不是领域a),进而当前一句话的领域变化为了领域b。

下面结合图7、8、9所示的本发明的方案所应用的语料领域分类器和语言模型的构建和训练的一个实施例的具体实施方式,对收到一次语音服务请求的实现过程进行说明。其中,收到一次语音服务请求,获得待识别语音,一个实施例中,按照一句对话的形式进行识别,对于单句对话的语音服务请求来说,可以直接这对该句子进行识别,而对于长对话有多个句子的识别则可以一句一句进行识别。

进一步,在收到服务请求时,将待识别语音的每一句都转换成对应使用的声学模型的单元的语料,即通过声学模型对待识别的语音提取声学特征,对于当前要识别的一句话的语料,可以进行其语料所述领域分类的判断,即确定当前要识别的一句话是哪个领域的对话,例如:领域a或领域b等,以及还可以对该声学特征进行特征提取(例如特征向量)。其中,预先设定好各个领域的语料对应的标签,例如:“领域i”标签为0,“领域ii”标签为1,以此类推,按这种方式来设定即可,以区分不同的领域,有助于后续语言模型切换到相应领域而通过对应的语言模型/算法完成最后的识别。

一个实施方式中,对于单句话的语音识别服务来说,可以是直接对该语句的语料做判断确定所属领域(例如通过语料领域分类器直接分类),从而为后续语言算法的识别提供领域信息,对单句话来说,甚至还可以引入额外输入的领域信息直接进入后续语言算法识别。

另一个实施方式中,对于长对话的语音识别服务来说,可以是通过构建的语料领域分类器,结合当前一句话的前一句话的识别情况进行判断而确定当前一句话的语料所属领域。

一个实施方式中,构建的语料领域分类器是经过特定的训练数据进行训练后使用的,例如训练后部署在线上使用。

一个训练语料领域分类器例子,可以是对语料领域分类器整体做训练,例如语料领域变化判断结合语料领域分类两个部分形成的一个整体(下称整体1)进行训练。

具体地,一个构建训练数据的例子:各个领域中将语料构成若干个对话,随机选取若干领域若干个对话拼接在一起,作为一个训练对象或者说训练样本。将所有语料都转换为声学模型对应的单元作为输入,语料的文本作为结果输出,并对每一个不同领域的衔接点做上变化标注。

进一步,以图7所示本发明的方案的一个实施例应用时的结构框架示意图为例子,具体一个训练整体1的例子:整体1至少包括语料领域变化判断模块和语料领域分类模块,先连接两个模块/部分,如连接语料领域变化判断模块与语料领域分类模块两个部分形成整体1,将语料领域变化判断部分的中间输出o12连接到语料领域分类模块的输入i21上,进行整体1的训练。

具体例如:语料领域变化判断部分的输入h,代表特征提取器的t时刻的状态,该状态为已发生对话的状态向量,由语料领域变化判断部分在t-1时刻返回的状态向量得到,即其将在每一时刻都会返回当前时刻对应的状态向量,并送入下一时刻预测利用。i代表输入、o代表输出、δ代表分类判断、+代表特征融合。

其中,i1为输入的当前要识别的一句话的语料即声学特征,构建的该当前对话语料,符合进行声学特征提取的声学模型对应的单元。o11是分类判断的输出,而o12是根据h状态对当前一句话的语料的特征提取的输出,例如第一特征。将中间输出q12输作为i21输入(第一特征),将该输入与i22例如直接对声学特征即当前一句话的语料提取的特征进行融合,即第一特征向量与提取的语料的特征向量进行融合再进行分类判断得到输出o2。

训练时,例如图8、9所示,利用前述构建的训练数据来训练整体1,拼接并标注了衔接点领域的语料为输入、语料对应的文本为输出、计算损失函数的方式。损失函数例如可以为两个部分,至少包括:判断所述输入中的语料所属的领域变化的损失函数、该语料所属的领域的损失函数。其中,结合状态向量h对当前一句话的语料提取特征后判断其领域发生变化的损失函数;其中,进行语料的特征提取后将其融合所述第一特征,计算用于判断所述输入中的语料所属的领域的损失函数。

训练时,承上述例子,整体1的语料领域变化判断部分的输出o11为计算的用于判断所述输入中的语料所属的领域的损失函数loss,以及,训练时整体1的输出q2即融合的第一特征和声学特征进行分类判断部分则为计算的用于判断所述输入中的语料所属的领域的损失函数loss。两个部分的损失函数loss均为确定要识别的语料的领域而训练整体1时的损失函数,确定分类器/分类模型的预测情况。损失函数loss一般可以采用深度学习中的l1、l2、交叉熵等。

一个实施方式中,训练过程中,可以根据是否达到预定训练次数和/或是否各个所述损失函数达到收敛目标来确定是否结束训练,其中,如果是,则结束所述语料领域分类器的训练,得到训练后的分类器或者整体1,而如果否则继续迭代或训练直到达到预定训练次数或达到收敛目标。进一步,训练后的分类器的在实际应用于语音识别时,其输出是判断的语料所对应的领域例如q2并将该q2作为领域信息解码模块(图7至9所示)的领域信息i3输入到该领域信息解码模块进行信息转换和特征编码。从而在后续语言模型的识别过程中使用该领域信息。

步骤s120,基于深度学习的动态语言模型切换到所述领域信息对应的领域对所述声学特征进行识别,以确定所述待识别语音对应的文本识别结果。

一个实施方式中,基于深度学习的动态语言模型,可以在构建模型时采用嵌入层embedding来代表各个领域对应的语言模型结构的神经网络模型。embedding模型结构的神经网络模型,可以提供根据不同特征编码切换到对应的语言算法进行识别运算,从而只需要提供一个模型即可通过不同编码对应到不同的语言模型如图5所示部署方式,前端进行待识别的语音的语料所属的领域的判断,将判断的领域信息提供到后端的一个模型中,切换到对应的编码执行相应的算法从而输出识别的结果。进一步,具体可以采用已知各种使用embedding架构的神经网络模型,在此不再赘述。

一个实施方式中,基于深度学习的动态语言模型,切换到相应的领域进行识别,具体可以是:将所述领域信息转化后进行特征编码,并将所述特征编码(例如特征向量)与从声学模型获得的结果即所述声学特征即当前一句话的语料所提取的特征进行融合/结合;基于深度学习的动态语言模型切换到与该特征编码指示的所述领域相对应的语言模型,对融合的所述特征编码进行特征解码,作为所述待识别语音对应的文本识别结果并返回相应的识别信息。

一个实施方式中,在部署语言模型前需要对构建的语言模型进行训练。可以参见图7至图9所示的判断和语言识别服务部署的具体应用的例子,以及训练语料领域分类器和语言模型的例子。具体地,可以预先准备训练语言模型的训练数据,比如,各领域中将语料构成若干个对话,随机选取各个领域中的每一句语料,并将每一句语料作为一个训练对象/样本;然后将所有语料都如前述训练分类器时一样转换成声学模型对应的单元即构建一句话的语料或者说声学特征,作为训练时的模型输入,而同样将语料的文本作为模型的输出/结果;并且,标注每一句语料所属领域信息,这样,每一个训练样本的语料所属的领域也就进行了标注。

进一步,具体一个例子中,可以对整体语言模型分为领域信息解码部分以及语言模型或者说执行具体运算的语言算法部分,如图7至9所示的领域信息解码模块和语言模型两个部分,其中,领域信息解码模块中的i3是输入的对应的领域信息,而进行信息转化和特征编码后输出o3,语言模型则有两个输入i41和i42融合后进行特征解码即运算后输出o4即对应输入的声学模型获得的所述声学特征的识别结果,例如语料的文本。进一步,可以将这两个部分/模块进行连接,形成基于深度学习的动态语言模型整体,如整体2,并进行训练。连接方式例如图8或9所示,将输出o3作为输入i41,即将领域特征编码提供给动态语言模型,以为动态语言模型能切换到对应编码的语言算法作为进行运算比如解码的依据或者说条件。进一步,训练时,可以利用构建的训练语言模型的训练数据对整体2进行训练。具体地:将训练该动态语言模型的标注的每一个训练样本的领域进行信息转化再进行特征编码(即获得对应领域的特征向量);将所述特征编码与训练所述神经网络模型的所述输入i42融合/结合后进行特征解码,即切换到对应的领域进行文本识别;根据训练所述神经网络模型的所述输出与所述特征解码的文本,计算损失函数loss确定模型的预测情况。进而,确定是否达到预定训练次数和/或是否所述损失函数达到收敛目标,如果是,则结束所述神经网络模型的训练。

下面结合图7至9所示的本发明方案应用的一个例子中,分类器和语言模型的结构以及模型连接和模型训练的示意图,继续进行说明。整体2主要为基于深度学习的动态语言模型部分,例如领域信息解码模块和语言模型模块,连接模块后形成整体2,领域信息解码模块的输出o3为语言模型的输入i41,即将输入的领域信息i3完成信息转化后提取特征编码并输入到语言模型,即作为对应的语料的领域融合条件,以便做相应的语言算法完成解码识别出语料对应的文本。其中语言模型中输入的i42可以是待识别的语音的语料或者说当前一句话的语料,为声学模型对应的单元,即声学模型获得的结果(声学特征),在语言模型部分提取该声学特征的特征向量,结合/融合输入的领域即判断应该是对哪个领域进行当前一句话的语料的特征向量的特征解码,从而将预测应当是对应当前一句话的文本结果输出o4。在训练整体2时,训练数据或者说训练样本的每一句语料都转换为声学模型对应的单元即作为输入并且还提供各个领域信息,语言模型提取该语料的特征(向量),并将训练样本中的语料对应的文本作为输出结果,结合标注的领域,输出o4部分计算损失函数loss进行迭代训练,确定模型预测情况。进一步,损失函数loss可以采用已知的各种训练模型时的损失函数,参见前述分类器训练时的情况。再进一步,训练过程中,可以根据是否达到预定训练次数和/或是否各个所述损失函数达到收敛目标来确定是否结束训练,其中,如果是,则结束所述语料领域分类器的训练,得到训练后的动态语言模型或者整体2,而如果否,则继续迭代或训练直到达到预定训练次数或达到收敛目标。

进一步,训练后的整体2在实际应用于语音识别时,其输出是判断解码出的语料所对应的文本q4并将该q4作为部署线上使用的识别服务的结果,即根据语音识别服务请求输出对应的长对话或短对话(如单句话)的文本结果,也就是结合了领域的对应语言算法的解码识别过程中使用该领域信息完成文本预测。

【实施例2】

下面将结合图4所示根据本发明的语音识别系统的一个实施例的结构框图以及图5至9所示根据本发明的技术方案的一个实施例中应用的识别服务部署原理、长对话示例、应用时的模块构造和模型构建、模型/模块的连接、模型训练的示意例图,对本发明实现进行进一步说明。

一个实施方式中,该系统可以包括:配置在前端的判断装置410,与所述判断装置410连接的、配置在后端语言识别服务装置420;所述判断装置410,用于在一次服务请求中,根据语料的领域分类,判断待识别语音转换的当前一句话的语料所属的领域,作为根据所述当前一句话的语料所对应的领域信息;所述语言识别服务装置420,用于通过基于深度学习的动态语言模型切换到所述领域信息对应的领域后对所述当前一句话的语料进行识别,以确定所述待识别语音对应的文本识别结果。

这里,声学模型获得的结果是一句话的语料,其是有序的有上下文的多个声学特征的组合,对输入的该结果即构建的该一句话的语料的特征做提取实际上仍然是提取的声学特征,而进一步,该提取的声学特征还可以是特征向量的形式便于后续语言算法的处理。

具体地,所述待识别语音转换的当前一句话的语料,为声学模型对应的单元,即声学特征,这里是句子形式的声学特征;根据所述当前一句话的语料提取特征向量,也就是说通过声学模型获得的结果即声学特征(当前一句话的语料)进行特征向量的提取(几个主要的特征向量的获取)。

进一步,所述语音识别服务请求包括:长对话识别的一次服务请求,和/或,短对话/单句识别的一次服务请求。

进一步,所述判断装置410可以用于:当所述语音识别服务请求为单句识别的一次服务请求时,直接按照设定的语料的领域分类,将所述当前一句话的语料对应所属的领域作为所述领域信息输出到所述语言识别服务装置420;当所述语音识别服务请求为长对话识别的一次服务请求时:根据上一句话的识别信息对所述当前一句话的语料进行第一特征(即参考了上一句话的状态向量的特征向量)提取、输出所述第一特征以及输出语料领域是否改变的判断结果;其中,上一句话指所述当前一句话之前的一句话(时刻t的前一时刻t-1);以及,再将接收的所述第一特征与从所述声学特征提取的特征融合/结合后,按照设定的语料的领域分类,判断所述当前一句话的语料所属的领域并作为所述领域信息输出到所述语言识别服务装置420。

进一步,所述语料的领域分类可以包括:设定各个领域中的语料所对应的标签,标识语料的领域分类。

进一步,所述上一句话的识别信息可以包括:已经发生并识别过的所述上一句话的状态向量。

进一步,根据所述当前一句话的语料提取特征是声学模型的声学特征中提取的特征向量。

进一步,所述判断装置410具体还可以包括:利用训练后的预先构建的语料领域分类器,进行语料所属的领域的判断。

一个实施方式中,训练所述语料领域分类器,具体包括:构建训练数据。具体比如:在各个领域中,将语料构成若干个对话;随机选取多个不同领域中的所述若干个对话,拼接在一起,形成一个训练样本;将所有语料转换为声学模型对应的单元即声学模型识别结果(声学特征),作为语料分类器的输入;将所有语料的文本作为语料分类器的输出;并且,对每一个训练样本中每一个不同领域的衔接点进行变化标注;构建的所述语料领域分类器包括:语料领域变化判断模块和语料领域分类模块,并且,两个模块进行连接。

进一步,还可以再利用所述训练数据训练所述语料领域分类器。具体比如:在所述语料领域变化判断模块中,根据当前t时刻的状态对所述输入即声学模型获取的结果(当前一句话的语料)进行第一特征提取,并计算用于判断语料领域是否变化的损失函数loss;其中,所述当前t时刻的状态为t-1时刻返回的状态向量,其表示已发生对话的状态向量;在所述语料领域分类模块中,对所述输入进行特征提取,并融合/结合从所述语料领域变化判断模块输出的所述第一特征,以及计算用于判断所述输入中的语料所属的领域的损失函数loss;确定是否达到预定训练次数和/或是否各个所述损失函数达到收敛目标,如果是,则结束所述语料领域分类器的训练。

一个实施方式中,所述基于深度学习的动态语言模型,可以包括:构建采用嵌入层embedding来代表各个领域对应的各个语言模型结构的神经网络模型。

进一步,所述语言识别服务装置420可以包括:领域信息解码模块,用于将所述领域信息转化后进行特征编码;语言模型模块,用于将所述特征编码与从所述声学特征提取的特征进行融合,以及基于深度学习的动态语言模型切换到与所述领域相对应的语言模型进行计算,例如特征解码,作为所述待识别语音对应的文本预测/识别结果并返回相应的识别信息。

进一步,还可以包括:构建训练数据训练所述神经网络模型;其中,构建训练数据包括:随机选取各个领域中的每一句语料,并将每一句语料作为一个训练样本;将所有语料转换为声学模型对应的单元以作为所述神经网络模型的输入即声学特征作为输入,该声学特征又是以句子形式构建的(一句话的语料),将每一个训练样本中的所有语料的文本作为所述神经网络模型的输出,并且,标注每一句语料所属的领域。

进一步,训练所述神经网络模型可以包括:在领域信息解码模块中,将训练所述神经网络模型的标注的每句话语料的领域进行信息转化再进行特征编码;在语言模型模块中,将所述特征编码与训练所述神经网络模型的所述输入融合后进行特征解码,并根据训练所述神经网络模型的预测输出与所述特征解码的文本计算损失函数loss,以确定模型预测情况,并调整模型参数;确定是否达到预定训练次数和/或是否所述损失函数达到收敛目标,如果是,则结束所述神经网络模型的训练。

一个应用和实现的例子,参见图5所示语音识别服务部署模式的示例。在该例子中,为解决服务成本大、计算资源浪费严重、长对话连续识别多领域交叉实现困难的情况,提出了基于深度学习的动态语言模型的方法,在前端提供领域信息给后端的一个模型,后端的该模型按照领域信息提供不同领域的识别服务。因而,对于后端的切换到相应领域的识别服务中,依赖的语料的领域信息很重要,即前端的领域信息的自动获取/判断或人工获取/判断,尤其自动获取/判断则能更有效适应长对话连续识别多交叉领域的情况。

具体例如:先对输入待识别语音按照提取声学特征的声学模型对应的单元拆分成语料,或者说构建形成一句话的语料,从声学模型获取的结果中进行特征提取,供后续语言识别使用。

其中,声学模型可以是已知的各种已有技术建模的声学模型,例如利用隐马尔可夫模型hmm、dnn-hmm等建模的声学模型,主要用来提取(例如从各个帧计算)语音的声学特征、即构建特定结构的待识别的语音的一句话的语料。这样,服务请求中待识别的语音的每句话的语料都是匹配声学模型对应的单元形式。

其中,长对话识别中,可以根据已经发生的对话来判断当前待识别的语音所属的领域,或者说,待识别语音转换成的语料属于哪个领域。这样可以提供长对话中不同领域的结果,即区分长对话中交叉的不同领域。如图6所示长对话识别过程的例子,一次服务中的多个句子对话,前面部分:“你好,我想咨询下牌子”……“你们最近的商店活动”都是与交易商品相关的领域a的对话;后面部分:“你们最近的防疫情况”……“你们最近的检疫工作情况”都是与防疫控制相关的领域b的对话。将一次服务中,每一句话的识别服务都结合其前一句话的已经进行的识别判断来确定其领域,比如当前待识别的一句话的语音或者说其语料要进行识别时先判断其语音或语料所属的领域,需要结合已经发生的在当前一句话之前的上一句话的识别信息来判断。比如上一句是你们最近的商店活动,当前一句话是你们最近的防疫情况,显然,根据本发明的方案,会先确定当前一句话的领域发生了变化(不是领域a),进而当前一句话的领域变化为了领域b。

下面结合图7、8、9所示的本发明的方案所应用的语料领域分类器和语言模型的构建和训练的一个实施例的具体实施方式,对收到一次语音服务请求的实现过程进行说明。其中,收到一次语音服务请求,获得待识别语音,一个实施例中,按照一句对话的形式进行识别,对于单句对话的语音服务请求来说,可以直接这对该句子进行识别,而对于长对话有多个句子的识别则可以一句一句进行识别。

进一步,在收到服务请求时,将待识别语音的每一句都转换成对应使用的声学模型的单元的语料,即通过声学模型对待识别的语音提取声学特征,对于当前要识别的一句话的语料,可以进行其语料所述领域分类的判断,即确定当前要识别的一句话是哪个领域的对话,例如:领域a或领域b等,以及还可以对该声学特征进行特征提取(例如特征向量)。其中,预先设定好各个领域的语料对应的标签,例如:“领域i”标签为0,“领域ii”标签为1,以此类推,按这种方式来设定即可,以区分不同的领域,有助于后续语言模型切换到相应领域而通过对应的语言模型/算法完成最后的识别。

一个实施方式中,对于单句话的语音识别服务来说,可以是直接对该语句的语料做判断确定所属领域(例如通过语料领域分类器直接分类),从而为后续语言算法的识别提供领域信息,对单句话来说,甚至还可以引入额外输入的领域信息直接进入后续语言算法识别。

另一个实施方式中,对于长对话的语音识别服务来说,可以是通过构建的语料领域分类器,结合当前一句话的前一句话的识别情况进行判断而确定当前一句话的语料所属领域。

一个实施方式中,构建的语料领域分类器是经过特定的训练数据进行训练后使用的,例如训练后部署在线上使用。

一个训练语料领域分类器例子,可以是对语料领域分类器整体做训练,例如语料领域变化判断结合语料领域分类两个部分形成的一个整体(下称整体1)进行训练。

具体地,一个构建训练数据的例子:各个领域中将语料构成若干个对话,随机选取若干领域若干个对话拼接在一起,作为一个训练对象或者说训练样本。将所有语料都转换为声学模型对应的单元作为输入,语料的文本作为结果输出,并对每一个不同领域的衔接点做上变化标注。

进一步,以图7所示本发明的方案的一个实施例应用时的结构框架示意图为例子,具体一个训练整体1的例子:整体1至少包括语料领域变化判断模块和语料领域分类模块,先连接两个模块/部分,如连接语料领域变化判断模块与语料领域分类模块两个部分形成整体1,将语料领域变化判断部分的中间输出o12连接到语料领域分类模块的输入i21上,进行整体1的训练。

具体例如:语料领域变化判断部分的输入h,代表特征提取器的t时刻的状态,该状态为已发生对话的状态向量,由语料领域变化判断部分在t-1时刻返回的状态向量得到,即其将在每一时刻都会返回当前时刻对应的状态向量,并送入下一时刻预测利用。i代表输入、o代表输出、δ代表分类判断、+代表特征融合。

其中,i1为输入的当前要识别的一句话的语料即声学特征,构建的该当前对话语料,符合进行声学特征提取的声学模型对应的单元。o11是分类判断的输出,而o12是根据h状态对当前一句话的语料的特征提取的输出,例如第一特征。将中间输出q12输作为i21输入(第一特征),将该输入与i22例如直接对声学特征即当前一句话的语料提取的特征进行融合,即第一特征向量与提取的语料的特征向量进行融合再进行分类判断得到输出o2。

训练时,例如图8、9所示,利用前述构建的训练数据来训练整体1,拼接并标注了衔接点领域的语料为输入、语料对应的文本为输出、计算损失函数的方式。损失函数例如可以为两个部分,至少包括:判断所述输入中的语料所属的领域变化的损失函数、该语料所属的领域的损失函数。其中,结合状态向量h对当前一句话的语料提取特征后判断其领域发生变化的损失函数;其中,进行语料的特征提取后将其融合所述第一特征,计算用于判断所述输入中的语料所属的领域的损失函数。

训练时,承上述例子,整体1的语料领域变化判断部分的输出o11为计算的用于判断所述输入中的语料所属的领域的损失函数loss,以及,训练时整体1的输出q2即融合的第一特征和声学特征进行分类判断部分则为计算的用于判断所述输入中的语料所属的领域的损失函数loss。两个部分的损失函数loss均为确定要识别的语料的领域而训练整体1时的损失函数,确定分类器/分类模型的预测情况。损失函数loss一般可以采用深度学习中的l1、l2、交叉熵等。

一个实施方式中,训练过程中,可以根据是否达到预定训练次数和/或是否各个所述损失函数达到收敛目标来确定是否结束训练,其中,如果是,则结束所述语料领域分类器的训练,得到训练后的分类器或者整体1,而如果否则继续迭代或训练直到达到预定训练次数或达到收敛目标。进一步,训练后的分类器的在实际应用于语音识别时,其输出是判断的语料所对应的领域例如q2并将该q2作为领域信息解码模块(图7至9所示)的领域信息i3输入到该领域信息解码模块进行信息转换和特征编码。从而在后续语言模型的识别过程中使用该领域信息。

一个实施方式中,基于深度学习的动态语言模型,可以在构建模型时采用嵌入层embedding来代表各个领域对应的语言模型结构的神经网络模型。embedding模型结构的神经网络模型,可以提供根据不同特征编码切换到对应的语言算法进行识别运算,从而只需要提供一个模型即可通过不同编码对应到不同的语言模型如图5所示部署方式,前端进行待识别的语音的语料所属的领域的判断,将判断的领域信息提供到后端的一个模型中,切换到对应的编码执行相应的算法从而输出识别的结果。进一步,具体可以采用已知各种使用embedding架构的神经网络模型,在此不再赘述。

一个实施方式中,基于深度学习的动态语言模型,切换到相应的领域进行识别,具体可以是:将所述领域信息转化后进行特征编码,融合所述特征编码与所述声学特征,从而基于深度学习的动态语言模型切换到与所述领域特征编码相对应的语言模型/算法,对相应的输入即所述声学特征所提取的特征向量进行计算,获得特征解码,作为所述待识别语音对应的文本预测/识别结果并返回相应的识别信息。

一个实施方式中,在部署语言模型前需要对构建的语言模型进行训练。可以参见图7至图9所示的判断和语言识别服务部署的具体应用的例子,以及训练语料领域分类器和语言模型的例子。具体地,可以预先准备训练语言模型的训练数据,比如,各领域中将语料构成若干个对话,随机选取各个领域中的每一句语料,并将每一句语料作为一个训练对象/样本;然后将所有语料都如前述训练分类器时一样转换成声学模型对应的单元即构建一句话的语料或者说声学特征,作为训练时的模型输入,而同样将语料的文本作为模型的输出/结果;并且,标注每一句语料所属领域信息,这样,每一个训练样本的语料所属的领域也就进行了标注。

进一步,具体一个例子中,可以对整体语言模型分为领域信息解码部分以及语言模型或者说执行具体运算的语言算法部分,如图7至9所示的领域信息解码模块和语言模型两个部分,其中,领域信息解码模块中的i3是输入的对应的领域信息,而进行信息转化和特征编码后输出o3,语言模型则有两个输入i41和i42融合后进行特征解码即运算后输出o4即对应输入的声学模型获得的所述声学特征的识别结果,例如语料的文本。进一步,可以将这两个部分/模块进行连接,形成基于深度学习的动态语言模型整体,如整体2,并进行训练。连接方式例如图8或9所示,将输出o3作为输入i41,即将领域特征编码提供给动态语言模型,以为动态语言模型能切换到对应编码的语言算法作为进行运算比如解码的依据或者说条件。进一步,训练时,可以利用构建的训练语言模型的训练数据对整体2进行训练。具体地:将训练该动态语言模型的标注的每一个训练样本的领域进行信息转化再进行特征编码(即获得对应领域的特征向量);将所述特征编码与训练所述神经网络模型的所述输入i42融合/结合后进行特征解码,即切换到对应的领域进行文本识别;根据训练所述神经网络模型的所述输出与所述特征解码的文本,计算损失函数loss确定模型的预测情况。进而,确定是否达到预定训练次数和/或是否所述损失函数达到收敛目标,如果是,则结束所述神经网络模型的训练。

下面结合图7至9所示的本发明方案应用的一个例子中,分类器和语言模型的结构以及模型连接和模型训练的示意图,继续进行说明。整体2主要为基于深度学习的动态语言模型部分,例如领域信息解码模块和语言模型模块,连接模块后形成整体2,领域信息解码模块的输出o3为语言模型的输入i41,即将输入的领域信息i3完成信息转化后提取特征编码并输入到语言模型,即作为对应的语料的领域融合条件,以便做相应的语言算法完成解码识别出语料对应的文本。其中语言模型中输入的i42可以是待识别的语音的语料或者说当前一句话的语料,为声学模型对应的单元,即声学模型获得的结果(声学特征),在语言模型部分提取该声学特征的特征向量,结合/融合输入的领域即判断应该是对哪个领域进行当前一句话的语料的特征向量的特征解码,从而将预测应当是对应当前一句话的文本结果输出o4。在训练整体2时,训练数据或者说训练样本的每一句语料都转换为声学模型对应的单元即作为输入并且还提供各个领域信息,语言模型提取该语料的特征(向量),并将训练样本中的语料对应的文本作为输出结果,结合标注的领域,输出o4部分计算损失函数loss进行迭代训练,确定模型预测情况。进一步,损失函数loss可以采用已知的各种训练模型时的损失函数,参见前述分类器训练时的情况。再进一步,训练过程中,可以根据是否达到预定训练次数和/或是否各个所述损失函数达到收敛目标来确定是否结束训练,其中,如果是,则结束所述语料领域分类器的训练,得到训练后的动态语言模型或者整体2,而如果否,则继续迭代或训练直到达到预定训练次数或达到收敛目标。

进一步,训练后的整体2在实际应用于语音识别时,其输出是判断解码出的语料所对应的文本q4并将该q4作为部署线上使用的识别服务的结果,即根据语音识别服务请求输出对应的长对话或短对话(如单句话)的文本结果,也就是结合了领域的对应语言算法的解码识别过程中使用该领域信息完成文本预测。

【实施例3】

下面将结合图7至11所示根据本发明的技术方案的具体应用中构建模型进行线上部署并进行语音识别的应用场景的几个示意图,对本发明的技术方案在实际应用场景中构建模型和部署语音识别服务、进行线上识别的过程进行进一步说明。此处仅为一个具体应用例子,而非对本发明的实现方式的限制。

第一,设定好各个领域语料对应的标签,例如:‘领域i’为0,‘领域ii’为1,以此类推。

第二,建立一个语料领域变化判断模块、语料领域分类模块、领域信息解码模块和带领域输入的语言模型,如图7至9所示。其中,h代表特征提取器的t时刻的状态,该状态为已发生对话的状态向量,由该模块t-1时刻返回的状态向量得到,即其将在每时刻都返回当前时刻对应的状态向量,并送入下一时刻预测利用。而图示的例子中‘δ’代表分类判断,‘+’代表特征融合,‘i’表示输入,‘o’表示输出。

例子1:语料领域变化判断模块有条件h即以已经发生并进行识别的前一句话的状态向量作为依据的输入i1进行特征提取,并输出提取的特征(如特征向量),作为第一特征并输出o12,而同时对输出的第一特征o12可以判断是否与前一时刻或者说要识别的语音的当前一句话是否与其前一句/上一句话的领域产生了变化并输出判断领域是否变化的结果o11。其中,i1可以是待识别的语音(需要进行语音服务或者语音请求中的语音)所转换或构建的语句的语料,比如当前一句话的语料,并且,该输入的语料的形式为与声学模型对应的单元,即该声学模型获得的结果(声学特征),进而对其进行特征提取(仍然是声学特征、进一步可以是特征向量的形式),比如声学模型识别语音时,会构建为一句话的形式(有序有语法结构上下文的语句形式的声学特征),即该一句话的语料i1作为输入,从i1中提取具有代表性的语料的声学特征,进而可以为特征向量的形式,便于采用embedding构建的神经网络模型的语言算法的切换和计算。类似的,i22、i42也参考i1的情况。

例子2:语料领域分类模块的两个输入i21和i22,i22也同样类似于i1是输入当前一句话的语料,其为声学模型对应的单元。而i21为另外的提取的语料的特征。二者一同输入,并且i22对待识别的语音的当前一句话的语料进行特征提取再与i21的特征结合或融合后判断实际上对输入i22提取的特征应该是哪个领域,即语料领域分类,并输出判断出的/预测出的该当前句子的语料所属的领域o2。

例子3:领域信息解码模块则是输入i3为领域信息,对信息进行信息转化和特征编码后输出相应的领域对应的特征的编码o3,指示对应的领域。

例子4:语言模型模块是对输入i42即当前一句话的语料进行特征提取,并结合或者说融合领域编码的输入i41后进行特征解码并输出解码后的结果o4即当前一句话的语料对应的句子/词(各种文本预测)。由于该领域编码(向量)在整个采用了embedding层构建的神经网络模型或者说基于深度学习的动态语言模型中,能够确定对应的识别算法或者说切换到相应的识别算法,从而将相应的领域的编码对应到该领域的映射算法,比如相应的词映射到其词库即对应的高纬度的向量中,找到对应的词的位置;而通过嵌入层embedding则可以对所有能转换成向量的内容都完成:由密集向量表示,实现降维处理,这样,每个单词替换为了查找嵌入矩阵中向量的索引,简化了模型并能快速切换到对应的词库实现映射或者说实现神经网络模型预测、获得语料对应的词(语句语料对应的文本)。具体的采用embedding层的模型和预测方式可以采用现有的神经网络模型及其预测方式,不再赘述。

在前述例子1至4中,对语料领域分类器(如例子1、2所示)、语言模型(如例子3、4所示)需要进行训练,那么先要构建训练数据。

例如,语料领域分类训练数据:各领域中将语料构成若干个对话,随机选取若干领域若干对话拼接在一起,作为一个训练对象/样本。将所有语料转换为声学模型对应的单元作为输入,语料文本作为结果,并对每一个不同领域的衔接点做上变化标注。

又例如,语言模型训练数据:每一句语料作为一个训练对象/样本,将所有语料转换为声学模型对应的单元作为输入,文本作为结果,并标注每句语料所属领域信息。

第三,连接模块,如图8、9所示。将语料领域变化判断模块中间输出o12连接至语料领域分类模块的输入i21上,作为一个整体进行训练,称为整体1(即作为语料领域分类器)。将领域信息解码模块输出o3和语言模型输入i41连接,作为一个整体进行训练,称为整体2(即作为基于深度学习的动态语言模型)。

第四,训练模型,如图9。利用构建的语料领域分类模块训练数据训练整体1。利用构建的语言模型训练数据整体2。

例子5:训练整体1时,对语料领域分类器的训练主要输入相应训练样本的语料,输出o12基于条件即t-1的状态向量提取的当前一句话的语料的特征即第一特征,而还对该第一特征进行判断其领域是否与其上一句话的领域发生改变o11,将该输出o11部分通过计算损失函数loss确定预测情况(即预测输出与训练样本中语料实际对应的文本做比较确定该模型/分类器预测情况,从而可以调整模型参数);而将o12作为语料领域分类模块的输入i21,并将直接对当前一句话的语料即获得的声学特征i22提取了特征向量与该输入i21即参考了状态向量对获得的声学特征所提取的第一特征融合后或结合起来,判断当前一句话的语料对应的领域并输出即o2,而该输出o2也同样通过计算损失函数loss确定模型预测情况并据此调整模型参数;该训练过程一直循环持续,并根据两个loss调整分类器的参数,直到达到了预设的模型训练结束的条件比如迭代次数等。

例子6:训练整体2时,对语言模型的训练主要输入相应的训练样本的语料和领域信息。领域信息进行转化和特征编码得到的输出o3提供给语言模型或者说该编码是模型的特定的输入i41,将直接对当前一句话的语料i42提取的特征向量结合该i41即领域编码(特征向量),从而确定切换到对应的映射的词库或者说语言算法,完成特征解码并输出o4,而该o4训练时通过计算损失函数loss确定模型预测情况(与样本中实际对应的文本情况相比)。该训练过程一直循环持续,并根据loss调整模型(比如神经网络模型)的参数,直到达到了预设的模型训练结束的条件比如迭代次数等

第五,提供服务。即整体1、2完成模型训练后,部署在线上进行语音识别服务,参见图5所示原理,服务的前端完成领域判断(判断装置),提供领域信息给后端单一模型(识别服务装置),该模型为基于深度学习的动态语言模型,可以随领域编码确定其对应语言算法,预测获得相应的请求服务的待识别的语音的文本结果。

以图6所示的长对话场景识别为例,结合图10进行说明:一次服务请求时需要将声学模型得到的结果送入整体1输入,并赋予整体1上一句话识别时的信息,比如状态向量h,即能获取到已发生对话的信息,提取的特征为基于条件h的,这样可以对本次服务中的当前一句话的语料即声学模型得到的结果中,通过提取特征来判断语料的领域是否发生了变化输出o11,并将提取的特征作为第一特征结合输入i22即当前一句话的语料直接提取的特征,来分类或者判断当前一句话的语料所属的领域。如此,整体1判断出当前结果所属的领域,将此领域信息传给整体2。在整体2,将领域信息转换后进行特征编码即得到领域的编码信息例如向量,提供给采用embedding层的神经网络模型即基于深度学习的动态语言模型,结合i42即该直接的从当前一句话的语料提取的特征,按照对应的领域编码(向量)找到相应的领域的算法,进行解码,如输出对特征的解码即预测对应当前一句话的文本结果o4,从而实现了一个模型动态地切换到不同的领域完成预测,将结合声学模型提取的声学特征结果给出对应领域的文本结果。

进一步,在单句识别的场景时,除了通过整体1判断领域然后预测文本结果,还可以在一次服务请求时,将声学模型得到的结果和领域信息直接输入到整体2,例如图11所示的单句识别的另一种方式,领域信息输入i3完成转化和特征编码结合到输入i42(通过声学模型获得的结果即声学特征),就可以得到对应领域识别出的文本的结果,实现领域热切换。

【实施例4】

具体地,还包括一种电子装置的一个实施例,其包括处理器以及存储计算机可执行指令的存储器,其中,所述计算机可执行指令在被执行时使所述处理器执行如前述实施例1至3中涉及的本发明的方法的实施例步骤。

下面描述本发明的电子装置的一个实施例,该电子装置可以视为对于上述本发明的方法和装置实施例的实体形式的实施方式。对于本发明电子装置的该实施例中描述的细节,应视为对于上述方法或装置/系统的实施例的补充;对于在本发明电子装置的实施例中未披露的细节,可以参照上述方法或装置/系统实施例来实现。

图12是根据本发明的一种电子装置的示例性实施例的结构框图。图12显示的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图12所示,该示例性实施例的电子装置200以通用数据处理设备的形式表现。电子装置200的组件可以包括但不限于:至少一个处理单元210、至少一个存储单元220、连接不同系统组件(包括存储单元220和处理单元210)的总线230、显示单元240等。

其中,所述存储单元220存储有计算机可读程序,其可以是源程序或都只读程序的代码。所述程序可以被处理单元210执行,使得所述处理单元210执行本发明各种实施方式的步骤。例如,所述处理单元210可以执行前述实施例2至5的方法的各个步骤。

所述存储单元220可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)2201和/或高速缓存存储单元2202,还可以进一步包括只读存储单元(rom)2203。所述存储单元220还可以包括具有一组(至少一个)程序模块2205的程序/实用工具2204,这样的程序模块2205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

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

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

【实施例5】

具体地,还包括一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,其中,当所述一个或多个程序被处理器执行时,实现前述实施例1至3中涉及本发明的方法的实施例步骤。

图13是本发明的一个计算机可读介质实施例的示意图。如图13所示,所述计算机程序可以存储于一个或多个计算机可读介质上。计算机可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。当所述计算机程序被一个或多个数据处理设备执行时,使得该计算机可读介质能够实现本发明的上述方法,即:服务端提供的配置服务管理,生成与域名相关的配置文件;当请求业务服务期间出现域名故障时,客户端通过根据所述配置文件进行的配置更新以实现域名访问的自动切换。

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

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

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

综上所述,本发明可以执行计算机程序的方法、系统、电子装置或计算机可读介质来实现。可以在实践中使用微处理器或者数字信号处理器(dsp)等通用数据处理设备来实现本发明的一些或者全部功能。

通过前端判断逻辑控制与后端基于深度学习的动态语言模型根据领域信息的动态识别方式,能适应不同领域识别服务,简化了并减少了模型量或者说减少了服务器、服务引擎的配置需求,少量或单个模型即可应适应实际并发量;进而,结合领域信息的识别,更准确调用和匹配上参数和模型进行计算从而减少了计算资源浪费,并且,动态模型和领域信息的结合,实现了只需一个模型提供所有服务、提供识别服务的热切换,能直接进入匹配上的领域的语音识别服务的计算,即利用嵌入层embedding模型结构的神经网络模型进行多语言模型切换和识别计算,由此也减少人工维护需求降低了人工成本;进一步,前端判断逻辑结合领域信息控制动态语言模型的方式,能有效应对长对话识别,尤其长对话量连续识别多领域的情形,根据已经发生的对话判断当前识别的语音所属领域而提供相应的不同领域的识别结果,有效实现多个领域交叉识别。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,本发明不与任何特定计算机、虚拟装置或者电子设备固有相关,各种通用装置也可以实现本发明。以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1