语音识别方法、装置、计算机设备和存储介质与流程
本申请涉及人工智能领域,特别是涉及一种语音识别方法、装置、计算机设备和存储介质。
背景技术:
随着人工智能的发展,语音识别技术的应用也越来越广泛,用户对语音识别的准确性也有了更高的要求。针对某些特定业务场景,为了提高语音识别准确性,传统方式是利用通用文本数据和特定业务场景对应的文本数据进行混合插值训练后得到特定业务场景对应的语言模型,来进行语音识别。
然而,传统方式中语音识别的准确性依赖于语言模型中通用文本数据和特定业务场景对应的文本数据之间的权重,权重的调整对工作人员的专业性要求较高,会耗费较高的人力成本。
技术实现要素:
基于此,有必要针对上述技术问题,提供一种能够节省人力成本的语音识别方法、装置、计算机设备和存储介质。
一种语音识别方法,所述方法包括:
获取待识别语音数据,以及所述待识别语音数据对应的业务标识;
提取所述待识别语音数据的声学特征信息;
将所述声学特征信息输入至解码模型,通过所述解码模型对所述声学特征信息进行解码,得到所述待识别语音数据对应的词格,所述词格包括候选解码路径,所述候选解码路径中包括多个节点连接弧;
根据所述业务标识调用相应的业务语言模型,通过所述业务语言模型对所述词格中各节点连接弧对应的语言模型分数进行调整,得到所述词格中各节点连接弧对应的目标语言模型分数;
根据所述目标语言模型分数,以及所述节点连接弧对应的声学分数,计算所述候选解码路径的解码分数;
根据所述解码分数在所述候选解码路径中确定目标解码路径;
根据所述目标解码路径生成所述待识别语音数据对应的语音识别结果。
在其中一个实施例中,所述通过所述业务语言模型对所述词格中各节点连接弧对应的语言模型分数进行调整,得到所述词格中各节点连接弧对应的目标语言模型分数包括:
获取所述词格中候选解码路径的多个节点连接弧;
通过所述业务语言模型计算各节点连接弧对应的语言模型分数;
根据计算得到的语言模型分数对所述词格中相应节点连接弧对应的语言模型分数进行调整,得到所述词格中各节点连接弧对应的目标语言模型分数。
在其中一个实施例中,所述根据计算得到的语言模型分数对所述词格中相应节点连接弧对应的语言模型分数进行调整,得到所述词格中各节点连接弧对应的目标语言模型分数包括:
在所述词格中减去各节点连接弧对应的语言模型分数;
根据计算得到的语言模型分数在所述词格中添加相应节点连接弧对应的目标语言模型分数。
在其中一个实施例中,根据所述目标语言模型分数,以及所述节点连接弧对应的声学分数,计算所述候选解码路径的解码分数包括:
将所述候选解码路径中各节点连接弧对应的目标语言模型分数以及声学分数进行相加,得到所述候选解码路径的解码分数。
在其中一个实施例中,在所述获取待识别语音数据之前,所述方法还包括:
获取业务文本数据;
将所述业务文本数据进行预处理,得到预处理后的业务文本数据;
根据所述预处理后的业务文本数据对预设语言模型进行训练,直至满足预设条件,停止模型训练,将训练后的预设语言模型作为业务语言模型。
在其中一个实施例中,所述获取待识别语音数据包括:
获取初始语音数据;
对所述初始语音数据进行端点检测,得到所述初始语音数据中的人声端点和环境噪音端点;
根据所述人声端点和所述环境噪声端点,从所述初始语音数据中提取待识别语音数据。
一种语音识别装置,所述装置包括:
获取模块,用于获取待识别语音数据,以及所述待识别语音数据对应的业务标识;
提取模块,用于提取所述待识别语音数据的声学特征信息;
解码模块,用于将所述声学特征信息输入至解码模型,通过所述解码模型对所述声学特征信息进行解码,得到所述待识别语音数据对应的词格,所述词格包括候选解码路径,所述候选解码路径中包括多个节点连接弧;
调整模块,用于根据所述业务标识调用相应的业务语言模型,通过所述业务语言模型对所述词格中各节点连接弧对应的语言模型分数进行调整,得到所述词格中各节点连接弧对应的目标语言模型分数;
计算模块,用于根据所述目标语言模型分数,以及所述节点连接弧对应的声学分数,计算所述候选解码路径的解码分数;
确定模块,用于根据所述解码分数在所述候选解码路径中确定目标解码路径;
生成模块,用于根据所述目标解码路径生成所述待识别语音数据对应的语音识别结果。
在其中一个实施例中,所述调整模块,还用于获取所述词格中候选解码路径的多个节点连接弧;通过所述业务语言模型计算各节点连接弧对应的语言模型分数;根据计算得到的语言模型分数对所述词格中相应节点连接弧对应的语言模型分数进行调整,得到所述词格中各节点连接弧对应的目标语言模型分数。
在其中一个实施例中,所述调整模块,还用于在所述词格中减去各节点连接弧对应的语言模型分数;根据计算得到的语言模型分数在所述词格中添加相应节点连接弧对应的目标语言模型分数。
在其中一个实施例中,所述计算模块,还用于将所述候选解码路径中各节点连接弧对应的目标语言模型分数以及声学分数进行相加,得到所述候选解码路径的解码分数。
一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述各个方法实施例中的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述各个方法实施例中的步骤。
上述语音识别方法、装置、计算机设备和存储介质,通过提取待识别语音数据的声学特征信息,利用解码模型对待识别语音数据对应的声学特征信息进行解码,得到待识别语音数据对应的词格,从而通过待识别语音数据对应的业务标识获取对应的业务语言模型,通过业务语言模型对词格中各节点连接弧对应的语言模型分数进行调整,得到目标语言模型分数,根据目标语言模型分数,以及节点连接弧对应的声学分数,计算候选解码路径的解码分数。由于解码模型中包括通用语言模型,在解码得到词格后,只需要根据特定业务场景下的语言模型,即业务语言模型对词格中各节点连接弧对应的语言模型分数进行调整,即可提高特定业务场景文本和词汇的概率得分,提高候选解码路径的解码分数的准确性。由此根据解码分数确定目标解码路径,并根据目标解码路径生成语音识别结果,能够有效提高特定业务场景下语音识别文本的准确性。与传统方式中利用通用文本数据和特定业务场景对应的文本数据进行混合插值训练,且需要计算通用文本数据和特定业务场景对应的文本数据之间的权重相比,无需计算权重,降低了对工作人员的专业性要求,节省了人力成本。业务语言模型的训练与传统方式中利用通用文本数据和特定业务场景对应的文本数据进行混合插值训练相比,所需要的训练的数据量较少,由此可以减少模型训练时间,节约计算资源。另外,业务语言模型可以是任意业务场景下的语言模型,提高了语音识别的使用场景的广泛性。
附图说明
图1为一个实施例中语音识别方法的应用环境图;
图2为一个实施例中语音识别方法的流程示意图;
图3为一个实施例中词格的结构示意图;
图4为一个实施例中通过业务语言模型对词格中各节点连接弧对应的语言模型分数进行调整,得到词格中各节点连接弧对应的目标语言模型分数步骤的流程示意图;
图5为一个实施例中根据计算得到的语言模型分数对词格中相应节点连接弧对应的语言模型分数进行调整,得到词格中各节点连接弧对应的目标语言模型分数步骤的流程示意图;
图6为一个实施例中获取待识别语音数据步骤的流程示意图;
图7为一个实施例中语音识别装置的结构框图;
图8为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的语音识别方法,可应用于计算机设备中,计算机设备可以为终端或服务器。可以理解的是,本申请提供的语音识别方法可以应用于终端,也可以应用于服务器,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。
本申请提供的语音识别方法,可以应用于如图1所示的应用环境中。其中,终端102与服务器104通过网络进行通信。终端102将采集的待识别语音数据上传至服务器104,服务器104在获取待识别语音数据对应的业务标识后,提取待识别语音数据的声学特征信息,将声学特征信息输入至解码模型,通过解码模型对声学特征信息进行解码,得到待识别语音数据对应的词格,词格包括候选解码路径,候选解码路径中包括多个节点连接弧。服务器104根据业务标识调用相应的业务语言模型,通过业务语言模型对词格中各节点连接弧对应的语言模型分数进行调整,得到词格中各节点连接弧对应的目标语言模型分数。服务器104根据目标语言模型分数,以及节点连接弧对应的声学分数,计算候选解码路径的解码分数。服务器104根据解码分数在候选解码路径中确定目标解码路径,根据目标解码路径生成待识别语音数据对应的语音识别结果。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
例如,申请提供的语音识别方法可以应用于多种需要进行语音识别的业务中,例如银行业务、保险业务、税务业务、语音导航等多种业务中。
在一个实施例中,如图2所示,提供了一种语音识别方法,以该方法应用于计算机设备为例进行说明,该计算机设备具体可以是图1中的终端或服务器,包括以下步骤:
步骤202,获取待识别语音数据,以及待识别语音数据对应的业务标识。
待识别语音数据是指需要进行语音识别的语音数据。例如,待识别语音数据可以是各种语音识别场景中的语音数据,如贷款咨询业务场景下的语音数据。语音识别是指将语音数据转换为文本数据。待识别语音数据可以是一段连续的语音,例如,一段话、一个句子等。业务标识是指当前办理业务的业务场景的唯一标识。业务场景可以是银行业务、保险业务、税务业务、语音导航等多种业务类型中的具体业务场景。例如,业务标识可以是银行业务中的贷款咨询业务。待识别语音数据可以是业务办理过程中,实时获取到的语音数据。例如,计算机设备可以通过银行业务应用实时获取用户输入的语音数据,将用户输入的语音数据作为待识别语音数据,待识别语音数据携带有业务标识。在其中一个实施例中,待识别语音数据还可以是计算机设备在接收到语音识别请求后,对语音识别请求进行解析,得到语音识别请求携带的语音数据,以及业务标识,将语音数据作为待识别语音数据,将该业务标识作为语音数据对应的业务标识。
在其中一个实施例中,待识别语音数据可以是对获取到的初始语音数据进行去噪处理后得到的。通过对初始语音数据进行去噪处理,能够避免噪声干扰,提高待识别语音数据的有效性,从而提高语音识别的准确性。
进一步的,计算机设备还可以对待识别语音数据进行切分处理,得到多个语音帧。具体的,计算机设备可以预先设置帧的长度,例如每帧长度为25ms,从而计算设备可以根据预先设置的帧长度将待识别语音数据切分为多个语音帧,从而对各语音帧进行语音识别。由于待识别语音数据为短时平稳信号,通过将待识别语音数据切分为多个语音帧,能够保证每个语音帧均为平稳的语音数据,有利于提高语音识别的准确性。
步骤204,提取待识别语音数据的声学特征信息。
步骤206,将声学特征信息输入至解码模型中,通过解码模型对声学特征信息进行解码,得到待识别语音数据对应的词格,词格包括候选解码路径,候选解码路径中包括多个节点连接弧。
声学特征信息可以是mel频率倒谱系数(melfrequencycepstrumcoefficient,简称mfcc)特征、线性预测倒谱系数(linearpredictioncepstrumcoefficient,简称lpcc)特征、对数能量特征或由静态特征计算一阶、二阶差分形成的动态特征并拼接形成的新特征中的至少一种。声学特征信息可以是以特征向量的形式体现的。计算机设备可以将声学特征信息按照时间顺序进行排序,得到声学特征信息对应的特征向量序列。时间顺序可以是通过声学特征向量对应的语音帧的顺序。
计算机将声学特征信息对应的特征向量序列输入至解码模型,通过解码模型对声学特征信息对应的特征向量序列进行解码。其中,解码模型可以是预先训练并存储在计算机设备中的。解码模型也可以称为解码图,代表所有可能的语言空间。解码模型是指使用wfst(weightedfinaite-statetransduce,加权有限状态转换机)融合的各种知识源,可以包括声学模型、语言模型、音素上下文相关模型、发音词典等。其中,声学模型可以用h来表示,语言模型可以用g来表示,语言模型是指通用语言模型,通用语言模型是指可以广泛适用于各种情况的模型。音素上下文相关模型可以用c来表示,发音词典可以用l来表示。
例如,当解码模型为h、c、l、g组成的模型时,可以将解码模型称为hclg。进一步的,计算机设备可以采用openfst工具对声学模型、通用语言模型、音素上下文模型发音词典进行合并操作,从而生成解码模型(hclg)。其中,声学模型用于对特征向量序列进行声学识别,输出各语音识别单元对应的分数。语音识别单元是指语音识别的单位,可以是音素或者词等。音素是指根据语音的自然属性划分出来的最小语音识别单位,依据发音动作来分析,一个词的发音可以包括一个或者多个音素,例如,啊(ā)只有一个音素,爱(ài)有两个音素,代(dài)有三个音素。语音识别单元对应的分数是指对特征向量序列进行语音识别时,声学模型的输出为语音识别单元的概率。声学模型可以是基于hmm(hiddenmarkovmodels,隐马尔可夫模型)的模型。例如,gmm-hmm(gaussianmixturemodel-hiddenmarkovmodels,高斯混合模型-隐马尔可夫模型)、dnn-hmm(deepneuralnetwork-hiddenmarkovmodels,深度神经网络-隐马尔可夫模型)等。
语言模型可以是通用语言模型,是语言结构,如语法、词常用搭配等的知识表示。通用语言模型用于计算语音识别单元的序列在一段语音信号中出现的概率,其中,语音识别单元的序列可以是语音识别单元组成的词串。例如,通用语言模型可以是n元语言模型(n-gramlanguagemodel,简称n-gramlm),是基于第n个词的出现只与前面n-1个词有关得到的。通用语言模型可以通过语言模型分数表示词与词之间的连接可能性,如对于2元语言模型,上一个词对应的语言模型分数表示上一词连接到下一个词的可能性,n元语言模型中词与词之间的连接可能性可以是通过对语料中的词进行统计得到的,如对于2元语言模型,上一个词对应的语言模型分数可以通过上一个词与下一个词在语料中同时出现的次数与上一个词单独出现的次数的比值来计算。通过发音词典可以得到每个词的发音对应的音素序列。音素上下文相关模型也可以称为三音素模型,其输入是triphone(三音素),输出是monophnoe(单个音素),可以体现音素之间的连续性。由于一个音素的发音可能会受到上个音素和下个音素的影响,因此具有上下文相关性。通过将当前音素、当前音素对应的上个音素以及当前音素对应的下个音素输入至音素上下文相关模型,通过音素上下文相关模型来消除上个音素和下个音素对当前音素的影响。
通过解码模型对声学特征信息对应的特征向量序列进行解码的过程是指在解码模型中搜索最有可能出现待识别语音数据的目标解码路径的过程,从而计算机设备可以根据目标解码路径输出语音识别结果。计算机设备通过解码模型对声学特征信息对应的特征向量序列进行解码,来预测每一时刻所有可能的识别状态,识别状态可以是每一时刻所识别到的词,从而可以得到多条候选解码路径,从而得到词格。词格也可以称为lattice。词格中包括多条候选解码路径,候选解码路径包括从起始状态节点到结束状态节点的多个状态节点,一个状态节点可以表示一个词的结束时间点。相邻两个状态节点之间通过节点连接弧进行连通。各条候选解码路径可以表示待识别语音数据对应的一种可能的文本识别结果。词格的结构示意图可以如图3所示,其中,圆圈表示状态节点,相邻两个状态节点之间的箭头表示节点连接弧。节点连接弧上有词a1、a2、b1、b2、b3、c1、c2和c3,以及该词对应的语言模型分数、声学分数以及时间点等信息。其中,声学分数是指对特征向量序列进行语音识别时,声学模型的输出为语音识别单元的概率。语言模型分数是指上一个词转移到下一个词的概率。语言分数可以利用通用语言模型预测得到。计算机设备可以根据各条候选解码路径中各节点状态弧对应的声学分数以及语言模型分数计算该候选解码路径对应的路径分数,并根据多条候选解码路径对应的路径分数来选取目标解码路径。
其中,声学分数可以是通过声学模型预测得到的。声学分数可以用概率表示。当声学模型以词为建模单元,即语音识别单元为词时,由于一个节点状态弧可以表示一个词,因此该词对应的节点状态弧的声学分数为声学模型输出的某个词的概率。例如,当声学模型以词为建模单元时,声学模型输出某个词对应的概率为0.2,该词对应的节点状态弧的声学分数可以为0.2。当声学模型以音素为建模单元,即语音识别单元为音素时,由于一个词可以对应多个音素,因此一个节点状态弧可以对应多个音素,一个词对应的节点状态弧的声学分数可以是根据声学模型输出的该词对应的多个音素的声学分数得到的,例如,一个词对应的声学分数可以是该词对应的多个音素的声学分数之和。例如,若声学模型以音素为建模单元,某个词对应的音素为a和b,声学模型输出音素a对应的概率为0.1,输出音素b对应的概率为0.2,则该词对应的节点状态弧的声学分数可以为0.3。语言模型分数可以利用通用语言模型预测得到的。语言模型分数表示词与词之间的连接可能性,由此可以得到词串的概率。例如,状态节点0与状态节点1之间的节点状态弧表示词a,状态节点1与状态节点2之间的节点状态弧表示词b,状态节点0与状态节点1之间的节点状态弧对应的语言模型分数表示词a的下一个词为词b的概率。
步骤208,根据业务标识调用相应的业务语言模型,通过业务语言模型对词格中各节点连接弧对应的语言模型分数进行调整,得到词格中各节点连接弧对应的目标语言模型分数。
计算机设备中预先存储有业务语言模型。业务语言模型是指在特定业务场景下的语言模型,例如,特定业务场景可以是银行业务、保险业务、税务业务、语音导航等多种业务标识中的任意一种业务场景。业务语言模型可以是通过特定业务标识的文本数据进行训练得到的。例如,业务语言模型可以是n元语言模型(n-gramlanguagemodel,简称n-gramlm),是基于第n个词的出现只与前面n-1个词有关得到的。
由于对待识别语音数据进行语音识别的过程中,利用了解码模型局限性解码,而解码模型中包括通用语言模型,因此,语音识别过程是利用了通用语言模型进行解码,获取到的词格上的识别状态会依赖于通用语言模型的输出结果。通用语言模型的输出结果也会影响到语音识别结果的准确性。在特定业务场景中,仅采用通用语言模型生成的解码模型对待识别语音数据进行解码,可能会导致语音识别结果不够准确,因此计算机设备可以通过业务语言模型对词格中各节点连接弧对应的语言模型分数进行调整,以增加语音识别结果的准确性。具体的,计算机设备可以将业务语言模型中各条候选解码路径对应的语言模型分数对词格中相应候选解码路径对应的语言模型分数进行替换,从而提高了待识别语音数据的解码准确性,进而有效提高了语音识别的准确性。
步骤210,根据目标语言模型分数,以及节点连接弧对应的声学分数,计算候选解码路径的解码分数。
词格中包括多条候选解码路径,各条候选解码路径中可以多个节点连接弧。其中,一个节点连接弧可以表示一个词,以及该词对应的声学分数、语音模型分数等。通过业务语言模型对词格中各节点连接弧对应的语言模型分数进行调整之后,节点连接弧中可以保存有调整后得到的目标语言模型分数,从而计算机设备可以提取候选解码路径中各节点状态弧中的声学分数以及目标语言模型分数,进而根据同一候选解码路径中多个节点状态弧的声学分数以及目标语言模型分数计算该候选解码路径的解码分数。例如,可以是将多个节点状态弧的声学分数以及目标语言模型分数进行相加。
步骤212,根据解码分数在候选解码路径中确定目标解码路径。
步骤214,根据目标解码路径生成待识别语音数据对应的语音识别结果。
计算机设备在计算得到词格中多条候选解码路径对应的解码分数之后,可以在解码分数中选取分数最大的候选解码路径作为目标解码路径,也可以是将解码分数大于阈值的候选解码路径作为目标解码路径。
计算机设备可以根据目标解码路径进行回溯,将目标解码路径经过的词按照状态节点顺序进行排序,得到相应的语音识别结果。例如,计算机设备确定的目标解码路径为a-b-c,a对应的词为“我”,b对应的词为“要”,c对应的词为“分期”,则得到的语音识别结果为“我要分期”。
在本实施例中,通过提取待识别语音数据的声学特征信息,利用解码模型对待识别语音数据对应的声学特征信息进行解码,得到待识别语音数据对应的词格,从而通过待识别语音数据对应的业务标识获取对应的业务语言模型,通过业务语言模型对词格中各节点连接弧对应的语言模型分数进行调整,得到目标语言模型分数,根据目标语言模型分数,以及节点连接弧对应的声学分数,计算候选解码路径的解码分数。由于解码模型中包括通用语言模型,在解码得到词格后,只需要根据特定业务场景下的语言模型,即业务语言模型对词格中各节点连接弧对应的语言模型分数进行调整,即可提高特定业务场景文本和词汇的概率得分,提高候选解码路径的解码分数的准确性。由此根据解码分数确定目标解码路径,并根据目标解码路径生成语音识别结果,能够有效提高特定业务场景下语音识别文本的准确性。与传统方式中利用通用文本数据和特定业务场景对应的文本数据进行混合插值训练,且需要计算通用文本数据和特定业务场景对应的文本数据之间的权重相比,无需计算权重,降低了对工作人员的专业性要求,节省了人力成本。业务语言模型的训练与传统方式中利用通用文本数据和特定业务场景对应的文本数据进行混合插值训练相比,所需要的训练的数据量较少,由此可以减少模型训练时间,节约计算资源。另外,业务语言模型可以是任意业务场景下的语言模型,提高了语音识别的使用场景的广泛性。
在一个实施例中,如图4所示,通过业务语言模型对词格中各节点连接弧对应的语言模型分数进行调整,得到词格中各节点连接弧对应的目标语言模型分数的步骤包括:
步骤402,获取词格中候选解码路径的多个节点连接弧。
步骤404,通过业务语言模型计算各节点连接弧对应的语言模型分数。
步骤406,根据计算得到的语言模型分数对词格中相应节点连接弧对应的语言模型分数进行调整,得到词格中各节点连接弧对应的目标语言模型分数。
计算机设备在通过解码模型对待识别语音数据对应的声学特征信息进行解码后,可以根据业务标识对应的业务语言模型对解码后得到的词格的语言模型分数进行调整。具体的,词格中包括多条候选解码路径,各条候选解码路径中包括多个节点连接弧。计算机设备先获取各条候选解码路径的多个节点连接弧。由于一个节点连接弧对应一个词,各条解码路径可以对应一个词串。业务语言模型可以用于计算各条候选解码路径对应的词串对应的概率。词串可以包括各条解码路径对应的多个词,以及各词之间的顺序。因此计算机设备可以将各节点连接弧对应的词输入至业务语言模型中,通过业务语言模型计算词对应的语言模型分数,即计算节点连接弧对应的语言模型分数。从而计算机设备可以根据计算得到的语言模型分数对词格中相应节点连接弧对应的语言模型分数进行调整,得到词格中各节点连接弧对应的目标语言模型分数。
在本实施例中,由于各节点连接弧对应的语言模型分数是采用通过语言模型构成的解码模型进行解码得到的,会导致特定业务场景下的词汇的识别准确性较低,通过业务语言模型计算各节点连接弧对应的语言模型分数,并根据计算得到的语言模型分数对词格中相应节点连接弧对应的语言模型分数进行调整,从而得到词格中各节点连接弧对应的目标语言模型分数。业务语言模型为特定业务场景下的语言模型,能够提高特定业务场景词语的语言模型分数,由此可以提高特定业务场景下相应词语的识别准确性,进而有效提高特定业务场景的语音识别准确性。
在一个实施例中,如图5所示,根据计算得到的语言模型分数对词格中相应节点连接弧对应的语言模型分数进行调整,得到词格中各节点连接弧对应的目标语言模型分数包括:
步骤502,在词格中减去各节点连接弧对应的语言模型分数。
步骤504,根据计算得到的语言模型分数在词格中添加相应节点连接弧对应的目标语言模型分数。
计算机设备在根据计算得到的语言模型分数对词格中相应节点连接弧对应的语言模型分数进行调整的过程中,可以先将词格中各节点连接弧对应的语言模型分数进行删除,再将业务语言模型计算得到的各节点连接弧的语言模型分数添加至相应的节点连接弧中,从而实现对节点连接弧对应的语言模型分数进行调整。在本实施例中,由于特定业务场景下的词语在业务语言模型中的语言模型分数会较高,通过对词格中相应节点连接弧对应的语言模型分数进行删减和添加操作,能够更为快速地调整词格中相应节点连接弧对应的语言模型分数,从而可以快速提高特定业务场景词语的语言模型分数,进而提高语音识别的准确性。
在一个实施例中,根据目标语言模型分数,以及节点连接弧对应的声学分数,计算候选解码路径的解码分数包括:将候选解码路径中各节点连接弧对应的目标语言模型分数以及声学分数进行相加,得到候选解码路径的解码分数。
目标语言模型分数是通过将词格中各节点连接弧对应的语言模型分数进行删除,再将业务语言模型计算得到的各节点连接弧的语言模型分数添加至相应的节点连接弧中得到的。计算机设备可以先将各条候选解码路径中每个节点状态弧对应的目标语言模型分数与声学分数进行相加,得到候选解码路径的解码分数。也可以分别计算各条候选解码路径中每个节点状态弧对应的目标语言模型分数进行累加,将各条候选解码路径中每个节点状态弧对应的声学分数进行累加,再将累加后得到的目标语言模型分数与累加后得到的声学分数进行相加,得到候选解码路径的解码分数。
例如,在分期场景下,解码得到的词格中包括两条候选解码路径,我(0.5+0.3)要(0.4+0.5)分期(0.2+0.2)和我(0.5+0.3)要(0.4+0.5)分析(0.3+0.4),括号中分别表示节点连接弧对应的声学分数+语言模型分数。计算机设备获取两条候选解码路径经过的词串,词串1:“我”“要”“分期”,词串2:“我”“要”“分析”。通过分期场景对应的业务语言模型计算词串1中,“我”的语言模型分数为0.3,“要”语言模型分数为0.5,“分期”的语言模型分数为0.8,而词串2中,“我”的语言模型分数为0.3,“要”语言模型分数为0.5,“分析”的语言模型分数为0.4,此时,计算机设备就会对候选解码路径重新打分,我(0.5+0.3)要(0.4+0.5)分期(0.2+0.8)的解码分数变成2.7,我(0.5+0.3)要(0.4+0.5)分析(0.3+0.4)的解码分数为2.4,进而得到语音识别结果为“我要分期”。
在本实施例中,通过将候选解码路径中各节点连接弧对应的目标语言模型分数以及声学分数进行相加,能够快速且准确地计算候选解码路径的解码分数。
在一个实施例中,计算机设备还可以在计算候选解码路径的解码分数的过程中,对候选解码路径进行剪枝处理。具体的,计算机设备获取当前状态节点,状态节点可以表示一个词的结束时间。计算机设备确定达到当前状态节点的候选解码路径,获取确定的候选解码路径对应的当前解码分数。达到当前状态节点的候选解码路径可能有多条,获取的当前解码分数也对应有多个。当前解码分数是指确定的候选解码路径中所经过的节点状态弧的声学分数与语言模型分数的和。从而计算机设备确定当前最大解码分数的候选解码路径。当前最大解码分数是指在当前状态节点,多条候选解码路径的解码分数中最大的解码分数。计算机设备选取当前解码分数小于当前最大解码分数的候选解码路径,停止对选取的候选解码路径进行解码分数计算。由于停止路径计算的是当前解码分数小于当前最大解码分数的候选解码路径,并非起始状态节点到当前状态节点的最优路径,通过去除不必要的候选解码路径,保留当前最大解码分数对应的候选解码路径,减少了候选解码路径的数量,提高了解码效率。
在一个实施例中,在获取待识别语音数据之前,上述方法还包括:获取业务文本数据;将业务文本数据进行预处理,得到预处理后的业务文本数据;根据预处理后的业务文本数据对预设语言模型进行训练,直至满足预设条件,停止模型训练,将训练后的预设语言模型作为业务语言模型。
业务文本数据是指特定业务场景的文本数据。例如,特定业务场景可以是银行业务中的贷款咨询业务。计算机设备将业务文本数据进行预处理,预处理可以是将业务文本数据整理成每行一个语句的文本文件。预设语言模型是指预先构建的场景模型。计算机设备可以根据预处理后的业务文本数据对预设语言模型进行训练,直至满足预设条件,停止模型训练,计算机设备可以将训练后的预设语言模型作为业务语言模型。其中,预设条件可以是损失函数的损失值不再下降。例如,计算机设备可以使用ngram工具进行模型训练。计算机设备将预处理后的业务文本数据输入至ngram工具中,通过设置识别长度来自动进行模型训练。例如,可以设置识别长度为4,表示一次最长可以识别4个词。
在本实施例中,通过业务文本数据训练得到业务语言模型,与传统方式中利用通用文本数据和特定业务场景对应的文本数据进行混合插值训练相比,所需要的训练的数据量较少,由此可以减少模型训练时间,节约计算资源。
在一个实施例中,如图6所示,获取待识别语音数据的步骤具体包括:
步骤602,获取初始语音数据。
步骤604,对初始语音数据进行端点检测,得到初始语音数据中的人声端点和环境噪音端点。
步骤606,根据人声端点和环境噪声端点,从初始语音数据中提取待识别语音数据。
待识别语音数据可以是对初始语音数据端点检测,提取到的人声数据。初始语音数据是指计算机设备获取到的实时语音流。端点检测也称为语音活动检测(voiceactivitydetection,简称vad),端点检测是指能够在语音流中识别出人声语音片段和环境噪音片段,从而将人声语音片段和环境噪声片段进行分离的方式。人声语音片段是实时语音流中对话者发声的片段,而环境噪音片段是目标用户静默的片段。
具体的,计算机设备对初始语音数据进行端点检测端,对初始语音数据进行处理分析,最后识别出其中的人声语音片段的端点和各种环境噪音片段的端点。进一步地,计算机设备可以将初始语音数据每隔预设时间进行划分,并通过神经网络预测初始语音数据中每个预设时间内的语音片段的语音概率,例如,每10ms划分一个语音片段,预测每个10ms内的语音片段的语音概率。该语音概率用于表示该语音片段中包含用户语音的可能性。语音概率超过概率阈值则认为是用户开始说话,语音概率等于或低于概率阈值,并且语音概率等于或低于概率阈值的持续时间超过预设时长时,则认为用户结束说话。基于人声语音片段和环境噪音片段的端点,可以分离出初始语音数据中的人声语音片段,将人声语音片段作为待识别语音数据。
在本实施例中,通过初始语音数据进行端点检测,可识别出用户的首尾音和各种环境噪声,从而分离出待识别语音数据,避免了传统语音识别方式中因忽略能量较低的用户首尾音,导致遗失首尾音中包含的用户语音信息的情况,提高了语音识别的准确性。
应该理解的是,虽然图2、图4至图6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、图4至图6中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图7所示,提供了一种语音识别装置,包括:获取模块702、提取模块704、解码模块706、调整模块708、计算模块710、确定模块712和生成模块714,其中:
获取模块702,用于获取待识别语音数据,以及待识别语音数据对应的业务标识。
提取模块704,用于提取待识别语音数据的声学特征信息。
解码模块706,用于将声学特征信息输入至解码模型,通过解码模型对声学特征信息进行解码,得到待识别语音数据对应的词格,词格包括候选解码路径,候选解码路径中包括多个节点连接弧。
调整模块708,用于根据业务标识调用相应的业务语言模型,通过业务语言模型对词格中各节点连接弧对应的语言模型分数进行调整,得到词格中各节点连接弧对应的目标语言模型分数。
计算模块710,用于根据目标语言模型分数,以及节点连接弧对应的声学分数,计算候选解码路径的解码分数。
确定模块712,用于根据解码分数在候选解码路径中确定目标解码路径。
生成模块714,用于根据目标解码路径生成待识别语音数据对应的语音识别结果。
在一个实施例中,调整模块708,还用于获取词格中候选解码路径的多个节点连接弧;通过业务语言模型计算各节点连接弧对应的语言模型分数;根据计算得到的语言模型分数对词格中相应节点连接弧对应的语言模型分数进行调整,得到词格中各节点连接弧对应的目标语言模型分数。
在一个实施例中,调整模块708,还用于在词格中减去各节点连接弧对应的语言模型分数;根据计算得到的语言模型分数在词格中添加相应节点连接弧对应的目标语言模型分数。
在一个实施例中,计算模块710,还用于将候选解码路径中各节点连接弧对应的目标语言模型分数以及声学分数进行相加,得到候选解码路径的解码分数。
在一个实施例中,上述装置还包括:训练模块,用于获取业务文本数据;将业务文本数据进行预处理,得到预处理后的业务文本数据;根据预处理后的业务文本数据对预设语言模型进行训练,直至满足预设条件,停止模型训练,将训练后的预设语言模型作为业务语言模型。
在一个实施例中,获取模块702,还用于获取初始语音数据;对初始语音数据进行端点检测,得到初始语音数据中的人声端点和环境噪音端点;根据人声端点和环境噪声端点,从初始语音数据中提取待识别语音数据。
关于语音识别装置的具体限定可以参见上文中对于语音识别方法的限定,在此不再赘述。上述语音识别装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储一种语音识别方法的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种语音识别方法。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现上述各个实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各个实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除