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

文档序号:21788764发布日期:2020-08-07 20:39阅读:131来源:国知局
语音识别方法、装置、电子设备及存储介质与流程

本发明涉及语音识别技术领域,尤其涉及一种语音识别方法、装置、电子设备及存储介质。



背景技术:

语音识别系统中主要包含一套声学模型、语言模型和解码器。语音识别的准确度主要依赖于语言模型,随着用户个性化需要越来越高,需要为不同的用户训练不同的语言模型,以提供专有的语音识别服务。目前,个性化语言模型的训练方法都是利用用户自身的语料对通用语言模型进行训练,以生成用户专有的语言模型,并针对每个用户部署一套专门的语音识别服务,通过周期性更新语言模型来满足用户个性化需求。但是,为每个用户部署一套专门的语音识别服务的方式,会造成资源的严重浪费,产生巨大的开销。



技术实现要素:

本发明实施例提供一种语音识别方法、装置、电子设备及存储介质,以解决现有技术中为满足用户个性化定制的需求,需要为每个用户部署一套专门的语音识别服务,造成资源的严重浪费的问题。

第一方面,本发明一实施例提供了一种语音识别方法,包括:

获取输入语音以及输入语音对应的用户id;

根据用户id,在解码网络中,搜索输入语音对应的最优路径,解码网络中各词节点之间的路径标记有用户id;

根据最优路径确定输入语音对应的文本信息。

第二方面,本发明一实施例提供了一种语音识别装置,包括:

获取模块,用于获取输入语音以及输入语音对应的用户id;

解码模块,用于根据用户id,在解码网络中,搜索输入语音对应的最优路径,解码网络中各词节点之间的路径标记有用户id;

确定模块,用于根据最优路径确定输入语音对应的文本信息。

第三方面,本发明一实施例提供了一种电子设备,包括收发机、存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,收发机用于在处理器的控制下接收和发送数据,处理器执行程序时实现上述任一种方法的步骤。

第四方面,本发明一实施例提供了一种计算机可读存储介质,其上存储有计算机程序指令,该程序指令被处理器执行时实现上述任一种方法的步骤。

本发明实施例提供的技术方案,在构建的解码网络中各词节点之间的路径上标记用户id,使得在利用解码网络识别语音的过程中,能够根据用户id,仅搜索标记有该用户id的路径,在从搜索到的多条路径中选出最优路径,根据最优路径确定输入语音对应的文本信息,使得不同用户能够基于同一解码网络得到不同的识别结果。因此,在服务器端仅需部署一套解码网络,该解码网络融合了多个用户专属的语言模型,能够为多个用户提供个性化的语音识别服务,同时节省了硬件资源。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所介绍的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的语音识别方法的应用场景示意图;

图2为本发明一实施例提供的语音识别方法的流程示意图;

图3为本发明实施例提供的解码网络中局部网络的一个示例;

图4为本发明实施例提供的解码网络中词节点间的路径的一个示例;

图5为本发明实施例提供的解码网络中局部网络的另一个示例;

图6为本发明实施例提供的基于多个用户的语言模型构建的解码网络中局部网络的一个示例;

图7为本发明实施例提供的更新一个用户id对应的语言模型的方法的流程示意图;

图8为本发明一实施例提供的语音识别装置的结构示意图;

图9为本发明一实施例提供的电子设备的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。

为了方便理解,下面对本发明实施例中涉及的名词进行解释:

语言模型(languagemodel,lm)的目的是建立一个能够描述给定词序列在语言中的出现的概率的分布。也就是说,语言模型是描述词汇概率分布的模型,一个能可靠反应语言识别时用词的概率分布的模型。语言模型在自然语言处理中占有重要的地位,在语音识别、机器翻译等领域得到了广泛应用。例如,利用语言模型能够得到语音识别多种词序列中可能性最大的一个词序列,或者给定若干词,预测下一个最可能出现的词语等。常用的语言模型包括n-gramlm(n元语言模型)、big-gramlm(二元语言模型)、tri-gramlm(三元语言模型)。

声学模型(am,acousticmodel)是语音识别系统中最为重要的部分之一,是把语音的声学特征分类对应到音素的模型。目前的主流系统多采用隐马尔科夫模型进行建模。

词典是字词对应的音素集合,描述了词汇和音素之间的映射关系。

音素(phone),是语音中的最小的单位,依据音节里的发音动作来分析,一个动作构成一个音素。汉语中的音素分为声母、韵母两大类,例如,声母包括:b、p、m、f、d、t、等,韵母包括:a、o、e、i、u、ü、ai、ei、ao、an、ian、ong、iong等。英语中的音素分为元音、辅音两大类,例如,元音有a、e、ai等,辅音有p、t、h等。

前瞻概率(look-aheadprobability):为了在解码的中间过程中不会裁剪掉声学得分较低的路径,一般采取将基于语言模型得到的表征各个词出现的频率的出现概率分值分解至树杈的技术即语言模型look-ahead技术,即在解码网络中音素节点到词节点的路径上就引入词节点对应的出现概率分值,并且将出现概率分值中的最大值作为音素节点到所有能够到达的词节点的路径上的前瞻概率,在计算音素节点到词节点的路径的得分时,将前瞻概率增加到该路径的得分中,这样可显著提高一些声学得分较低但概率得分较高的路径的得分,以避免剪枝过程中剪去这类路径。

附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。

在具体实践过程中,个性化语言模型的训练方法都是利用用户自身的语料对通用语言模型进行训练,以生成用户专有的语言模型,并针对每个用户部署一套专门的语音识别服务,通过周期性更新语言模型来满足用户个性化需求。但是,为每个用户部署一套专门的语音识别服务的方式,会造成资源的严重浪费,产生巨大的开销。

为此,本发明的发明人考虑到,在构建的解码网络中各词节点之间的路径上标记用户id,使得在利用解码网络识别语音的过程中,能够根据用户id,仅搜索标记有该用户id的路径,在从搜索到的多条路径中选出最优路径,根据最优路径确定输入语音对应的文本信息,使得不同用户能够基于同一解码网络得到不同的识别结果。因此,在服务器端仅需部署一套解码网络,该解码网络融合了多个用户专属的语言模型,能够为多个用户提供个性化的语音识别服务,同时节省了硬件资源。

此外,采用全量词表构建解码网络,使得构建的解码网络能够适用于多个用户,在添加新用户时,不需要重新构建解码网络,也就不需要重启解码器,从而实现了在线新添加新用户,保证用户能不间断地获取到语音识别服务,提高用户体验。基于全量词表构建的解码网络,还能够实现在线更新各个用户对应的语言模型,当某一用户的语言模型需要更新时,只需要根据该用户更新后的语言模型重新计算解码网络中词节点间路径的概率得分,并基于解码网络中的用户id更新该用户在解码网络中的概率得分,就可以将更新后的语言模型带来的变化引入解码网络,解码网络通过更新概率得分后的解码网络进行路径搜索,从而得到符合该用户个性化需求的识别结果。因此,在服务器端仅需部署一套解码器,即可为各个用户训练出其专属的语言模型,为用户提供个性化的语音识别服务,并且实现了语言模型的在线更新,及时更新用户的语言模型,并保证用户能不间断地获取到语音识别服务,提高用户体验。

在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。

首先参考图1,其为本发明实施例提供的语音识别方法的应用场景示意图。多个用户10共同使用同一服务器12中的解码器提供的语音识别服务。用户10与智能设备11交互过程中,智能设备11将用户10输入的语音信号发送给服务器12,服务器12通过解码器中的解码网络对语音信号进行解码处理,得到语音信号对应的文本信息,并将解码得到的文本信息反馈给智能设备11,完成语音识别服务。

这种应用场景下,智能设备11和服务器12之间通过网络进行通信连接,该网络可以为局域网、广域网等。智能设备11可以为智能音箱、机器人等,也可以为便携设备(例如:手机、平板、笔记本电脑等),还可以为个人电脑(pc,personalcomputer),服务器12可以为任何能够提供语音识别服务的服务器设备。

下面结合图1所示的应用场景,对本发明实施例提供的技术方案进行说明。

参考图2,本发明实施例提供一种语音识别方法,包括以下步骤:

s201、获取输入语音以及输入语音对应的用户id。

具体实施时,可由智能终端将采集到的输入语音以及用户id发送给服务器,由服务器根据用户id对输入语音进行语音识别。本实施例中,一个用户id对应一个语言模型,并利用各个用户id对应的语料库中的语料,训练各个用户专用的语言模型。

本实施例中的用户id可以企业级的,即用户id用于标识一个不同的企业,一个企业对应的一个语言模型,该企业下的智能设备使用一个语言模型。用户id还可以是设备级的,即用户id用于标识一类或一个设备,一类设备或一个设备对应一个语言模型,例如智能音箱对应一个关于音乐的语言模型,聊天机器人对一个关于聊天的语言模型,这样不同的设备可使用同一解码网络。用户id还可以是业务级的,即不同业务对应一个语言模型,该业务下的智能设备使用一个语言模型。等等。本发明实施例中不对用户id的具体实现进行限定,可根据实际应用场景或需求进行配置。

s202、根据用户id,在解码网络中,搜索输入语音对应的最优路径,解码网络中各词节点之间的路径标记有用户id。

本实施例中,多个用户id共同使用一个解码网络。解码网络为表示音素与词以及词与词之间关系的网络图。

为实现多个用户共用一个解码网络,可基于声学模型以及这多个用户对应的语料库和语言模型来构建解码网络,具体构建方法如下:

第一步,基于各用户id对应的语料库中的语料,得到包含语料库中所有词汇的词典,把词典中的词汇转换为音素串,例如,“开”的音素串为“k-ai”,“北京”的音素串为“b-ei-j-ing”,一个词汇的音素串以及该词汇组成一条路径,例如,“开”对应的路径为“k-ai-开”,“北京”对应的路径为“b-ei-j-ing-北京”。

第二步,对词典中所有词汇对应的路径中的节点进行合并,即将各路径中相同的音素合并为一个节点,以将所有词汇对应的音素串组成一个网络,一个音素作为该网络中的一个音素节点。

图3给出了解码网络中局部网络的一个示例。其中,“卡”、“开”、“科”等词的音素串中的“k”合并为一个网络中的一个节点。网络中每条路径的最后一个节点对应该条路径上的音素组成的音素串对应的词汇,如图3中,“k-a-卡”对应的词汇为“卡”,“k-a-ch-e-卡车”对应的词汇为“卡车”。

为描述方便,本实施例中,将解码网络中的音素对应的节点称为音素节点,将词汇对应的节点称为词节点。

由于大量相同的节点被合并在一起,因此可以显著降低搜索空间的规模,减少解码过程的运算量。基于词典生成解码网络的方法为现有技术,不再赘述。

第三步,根据声学模型确定上述第二步中构建的解码网络中相连的音素节点间的声学得分。

本实施例中,所有用户共用一个声学模型。

第四步,针对各用户id,根据该用户id的语言模型,确定词典中词和词之间的连接关系和概率得分,根据连接关系在上述第二步中构建的解码网络中建立词与词之间的连接路径,并在词节点之间的路径上标记用户id以及该用户的概率得分。

具体实施时,根据语言模型能够确定在一个词w1之后出现另一个词w2的条件概率p(w2|w1),将条件概率p(w2|w1)作为从词w1到w2的概率得分。

例如,训练语言模型的语料中包括“我家在北京”,语料中的词汇包括“我”、“家”、“在”、“北京”,则在解码网络中,词节点“我”和“家”之间相连,“家”和“在”之相连,“在”和“北京”之间建立连接,再根据语言模型确定“我”和“家”、“家”和“在”、“在”和“北京”之间的概率得分。如图4为解码网络中词节点间的路径的一个示例,图4中隐去了音素节点和词节点间的网络关系。需要说明的是,解码网络中词节点和词节点之间实际的连接方式如图5所示,词节点“我”与“家”的第一个音素节点连接,sa1、sa2、sa3表示声学得分,sl1表示用户id1对应的词节点“我”到“家”的路径的概率得分,sl2表示用户id2对应的词节点“我”到“家”的路径的概率得分。

通过第四步,将所有用户id的概率得分标记到解码网络中对应的路径上,使得解码时,能够根据用户id,选择该用户对应的路径,并基于对应路径上的概率得分,确定输入语音的最优路径。

通过上述四个步骤就可以得到可供多个用户共同使用的一个解码网络。将构建好的解码网络预先加载到服务器的解码器中,即可为这多个用户提供语音识别服务。

s203、根据最优路径确定输入语音对应的文本信息。

基于上述任一实施例,语音识别的过程包括:对语音信号进行预处理,提取语音信号的声学特征向量,然后,将声学特征向量输入声学模型,得到音素序列;基于音素序列和语音信号对应的用户id,在解码网络中搜索一条得分最高的路径作为最优路径,将最优路径对应的文字序列确定为该语音信号的识别结果。其中,根据各条路径的总得分确定最优路径,路径的总得分根据路径上的声学得分和用户id对应的概率得分确定,具体可通过以下公式计算一条路径上的解码得分:

其中,l为一条解码路径,sai为路径l上的第i个声学得分,slj,x为路径l上的用户id为x的用户对应的第j个概率得分。以图5为例,用户id1对应的解码结果“我家”的得分为(logsa1+logsa2+logsa3+logsl1)。

本发明实施例的方法,在解码网络中各词节点之间的路径上标记了用户id,在搜索路径时,根据路径上的用户id选择该用户可使用的路径,使得不同用户能够基于同一解码网络得到不同的识别结果。参考图6,为基于多个用户的语言模型生成的解码网络的局部示例,由于篇幅限制,图6中部分音素节点未示出。以图6为例,在对用户id1的语音信号进行识别时,词节点“在”和“北京”之间的路径标记有“id1”,此时,选择的路径是“在-北京”,而不会选择图6中的其它两条路径;在对用户id2的语音信号进行识别时,选择的路径是“在-苏州”和“在-江苏”这两条标记有id2的路径。

因此,本发明实施例的语音识别方法,在服务器端仅需部署一套解码网络,该解码网络融合了多个用户专属的语言模型,能够为多个用户提供个性化的语音识别服务,同时节省了硬件资源。

作为一种可能的实现方式,步骤s202具体包括:根据解码网络中各词节点之间的路径标记的用户id对应的概率分值,确定输入语音对应的最优路径。

具体地,根据不同用户的语言模型会得到不同的概率得分,对同一路径来说,不同的概率得分会导致出现完全不同的识别结果。因此,本发明实施例在解码网络中利用用户id对不同用户的概率得分进行区分,使得多个用户能共用一个解码网络。解码时,根据当前使用解码网络的用户的用户id,取解码网络路径上标记有该用户id的概率得分计算各条路径的总得分,选择总得分最高的路径作为最优路径,基于最优路径上的词节点对应的词汇,得到语音识别结果。参考图6,“在”和“北京”之间标注有“id1”和“sl1”,表示解码时只有用户id1可以使用该路径,且对应的概率得分为sl1;“在”和“苏州”之间标注有“id2”和“sl2”,表示解码时只有用户id2可以使用该路径,且对应的概率得分为sl2;“在”和“江苏”之间标注有“id2”、“sl2”、“id3”、“sl3”,表示解码时用户id2和id3都使用该路径,且用户id2通过该路径时的概率得分为sl2,用户id3通过该路径时的概率得分为sl3。

作为一种可能的实现方式,步骤s202具体包括:根据用户id,在解码网络中,搜索输入语音对应的最优路径,包括:根据用户id,获取用户id对应的语言模型;根据用户id对应的语言模型,在解码网络中,搜索输入语音对应的最优路径。

具体实施时,每个用户id对应一个语言模型,该语言模型是基于用户id对应的语料库中的语料训练得到的,基于输入语音对应的用户id获取到用户id对应的语言模型,利用用户id对应的语言模型,在解码网络中,搜索输入语音对应的最优路径,为不同用户提供个性化的语音识别服务。由于在进行语音识别服务的时候,会提前根据用户id将其独有的语言模型加载到解码器中,而其他用户id的语言模型无法加载到解码器中,以此来达到多个用户共用一套通用解码网络,而又保持自己特色的语言模型的服务方式。

在上述任一实施例的基础上,为了使得构建的解码网络能够适用于更多的用户,本发明实施例采用全量词典构建多个用户共享的解码网络。

本发明实施例中的全量词典为包含大量常用词汇的词典。具体实施时,全量词典包含的词汇的数量在10万以上,能够涵盖多个领域不同的主题,全量词典中的词汇包括字和词语。全量词典能够覆盖所有用户id对应的语料库中包含的词汇。

基于全量词典构建多个用户共享的解码网络的方法,与上述基于多个用户对应的语料库构建解码网络的方法类似,不再赘述。

当有新的用户需要使用解码网络时,只需要根据该用户对应的语料库中的语料训练通用语言模型,得到该用户专属的语言模型,然后,根据该用户的语言模型,确定解码网络中各词节点之间的路径对应的概率得分,在解码网络中各词节点之间的路径上,标记该用户的用户id和对应的概率得分。

本发明实施例的方法,采用全量词典构建解码网络,使得构建的解码网络能够适用于更多用户,此外,在添加新用户时,解码网络中的节点(包括词节点和音素节点)不需要重构,即,不需要重新构建解码网络,也就不需要重启解码器,从而实现了在线新添加新用户,保证用户能不间断地获取到语音识别服务,提高用户体验。

基于上述任一实施例,如图7所示,基于全量词典构建的解码网络,本发明实施例可通过如下步骤更新每个用户id对应的语言模型:

s701、确定用户id对应的语言模型需要更新。

进一步地,可通过如下步骤确定用户id对应的语言模型需要更新:检测用户id对应的语料库是否有更新;若用户id对应的语料库有更新,确定用户id对应的语言模型需要更新。

具体实施时,收集各个用户id对应的语料,并将语料存储到该用户id对应的语料库中,例如,针对智能音箱,可收集音乐相关的语料;对于个人用户,可收集该用户使用智能设备时输入的语料,存储到该用户的语料库中,以不断更新该用户的语言模型,提高语音识别的准确度。可定时或周期性检测各个用户id对应的语料库中的语料是否有更新,若检测到某一用户id对应的语料库中的语料有更新,则利用该用户id对应的语料库中的语料对该用户id对应的语言模型进行训练,以更新该用户id对应的语言模型。其中,检测的时间或检测周期可根据实际情况进行设置,本实施例不作限定。通过设置定时或周期性检测的任务,能够定时检测语料库是否有更新,并及时更新语言模型,使得模型更新的过程更加自动化,节省了人力。

作为一种可能的实现方式,可通过如下步骤检测语料库中的语料是否有更新:计算用户id对应的语料库中的所有语料的第一摘要值;将第一摘要值与第二摘要值进行比较,若第一摘要值与第二摘要值不相同,则确认用户id对应的语料库有更新;若第一摘要值与第二摘要值相同,则确认用户id对应的语料库未更新,不需要更新该用户id对应的语言模型。其中,第二摘要值为最近一次更新后用户id对应的语料库中所有语料的摘要值。

具体实施时,可采用md5消息摘要算法(md5message-digestalgorithm)生成语料库中所有语料的摘要值。每次更新完一个用户id对应的语言模型后,可存储该用户id对应的语料库的第一摘要值,作为下一次检测该语料库是否有更新时使用的第二摘要值。

s702、根据用户id对应的语料库中的语料,更新语言模型,并确定解码网络中各词节点之间的路径对应的最新概率得分。

s703、根据最新概率得分,更新解码网络中对应的词节点之间的路径标记的用户id对应的概率得分。

具体实施时,根据用户id对应的语料库中的语料更新语言模型,并根据更新后的语言模型重新确定用户id对应的语料库中出现的各个词之间的条件概率,作为对应的各词节点之间的路径对应的最新概率得分,根据最新概率得分,更新解码网络中对应的词节点之间的路径标记的用户id对应的概率得分。当用户id对应的语言模型更新后,若新增了一条可使用的路径时,可在解码网络对应的路径上增加该用户的用户id和该路径对应的概率得分。以图6为例,若用户id1的语言模型更新后,新增了“在”到“苏州”的路径,则在“在”到“苏州”的路径标记上该用户的id1以及对应的概率得分。

基于上述任一实施例,基于用户id对应的更新后的语言模型进行语音识别过程大致为:对用户id对应的语音信号进行预处理,提取该语音信号的声学特征向量,然后,将声学特征向量输入声学模型,得到音素序列;基于音素序列,根据用户id,在解码网络中搜索一条得分最高的路径作为最优路径,最优路径对应的文字序列确定为该语音信号的识别结果。

其中,路径的得分根据路径上的声学得分和用户id对应的概率得分确定,具体可通过以下公式计算一条路径上的解码得分:

其中,l为一条解码路径,sai为路径l上的第i个声学得分,slj,x为路径l上用户id为x的第j个概率得分。以图5为例,用户id为id1的用户对应的解码结果“我家”的得分为(logsa1+logsa2+logsa3+logsl1)。本实施例中,由于各用户id使用同一声学模型,因此,每个用户id使用相同的声学得分。

由于已经预先将解码网络预先加载到解码器中,一旦检测到需要更新某一用户id对应的语言模型,只需要根据用户id对应的更新后的语言模型重新计算解码网络中各词节点间路径上的概率得分,就可以将更新后的语言模型带来的变化引入解码网络,解码器利用更新概率得分后的解码网络进行路径搜索,就可以解出正确结果。

本发明实施例的方法,在构建的解码网络的路径上标记有用户id,当某一用户的语言模型需要更新时,只需要根据该用户id对应的更新后的语言模型重新计算解码网络中词节点间路径的概率得分,并基于解码网络中的用户id更新该用户在解码网络中的概率得分,就可以将更新后的语言模型带来的变化引入解码网络,解码器通过更新概率得分后的解码网络进行路径搜索,从而解出符合该用户个性化需求的结果,因此,在服务器端仅需部署一套解码器,即可为各个用户训练出其独有的语言模型,为用户提供个性化的语音识别服务,同时大大节省了硬件资源。

本发明实施例的方法,采用全量词表构建解码网络,使得构建的解码网络能够适用于多个用户,此外,在语言模型更新时,解码网络中的节点(包括词节点和音素节点)不需要重构,也就是说,不需要重新构建解码网络,也就不需要重启解码器,从而实现了语言模型的在线更新,保证用户能不间断地获取到语音识别服务,提高用户体验。

基于上述任一实施例,解码网络中各个音素节点到该音素节点能够到达的所有词节点的路径上还包括各个用户id对应的前瞻概率。参考图6,音素节点“b”和词节点“北京”之间的路径上标注有“id1”和“la1”,表示在这条路径上,用户id1对应的前瞻概率为sl1;“s”和“苏州”之间标注有“id2”和“sl2”,表示在这条路径上,用户id2对应的前瞻概率为la2;“j”和“江苏”之间标注有“id2”、“sl2”、“id3”、“sl3”,表示在这条路径上,用户id2对应的前瞻概率为la2,用户id3对应的前瞻概率为la3。

基于用户id对应的前瞻概率,在根据音素序列搜索对应的词序列的过程中,路径的得分需要加上该路径上的前瞻概率,即,在路径搜索时,路径l的中间得分为:

其中,sai为路径l上的第i个声学得分,slj,x为路径l上用户id为x的用户对应的第j个概率得分,lan,x为路径l上用户id为x的用户对应的第n个前瞻概率。加上前瞻概率后,就可以在剪枝过程中提高一些路径的得分,防止其被裁剪掉,然后,在搜索到各条可能的路径后,再减去路径上的前瞻概率,得到各条路径对应的得分,即路径的最终得分为:

最后,选取score值最高的路径作为解码结果。

在构建解码网络时,根据用户id对应的语言模型确定解码网络中,各用户id对应的各个音素节点到该音素节点能够到达的所有词节点的路径的前瞻概率。具体地,针对各用户id对应的前瞻概率,可通过以下公式计算得到:

其中,w(s)是指从解码网络中的一个音素节点s开始可以到达的词节点对应的词的集合,h为训练该用户id对应的语言模型使用的语料,p(w|h)为集合w(s)中的词w对应的出现频率分值,该出现频率分值用于表征词w在该用户id对应的语料库中出现的频率。

本实施例中,将w(s)中的词在解码网络中对应的词节点称为音素节点s对应的目标词节点。作为一种可能的实现方式,通过如下方式确定各个词节点对应的出现频率分值:确定解码网络中与用户id对应的语料库中的语料对应的词节点在语料库中出现的频率;针对语料库中的语料对应的词节点,对该词节点的频率进行归一化,得到该词节点对应的出现频率分值。

本实施例中,每个词节点对应的出现频率分值的取值在[0,1]范围内。

举例说明,以图3中的节点“k”为例,针对每个用户id,以节点“k”为路径的起点可到达的目标词节点对应的词的集合为{卡,卡车,开,开门,凯旋,科,课},基于该用户id对应的语料库,统计集合{卡,卡车,开,开门,凯旋,科,课}中的各个词在语料库中出现的频率,对集合{卡,卡车,开,开门,凯旋,科,课}中的各个词的频率进行归一化,得到各个词对应的出现频率分值p(卡|h)、p(卡车|h)、p(开|h)、p(开门|h)、p(凯旋|h)、p(科|h)、p(课|h),取这些出现频率分值中最大的出现频率分值,作为在解码网络中,节点“k”到集合{卡,卡车,开,开门,凯旋,科,课}中的各个词节点的路径上的该用户id对应的前瞻概率,利用根据该用户id对应的语言模型确定出的节点“k”对应的所有目标词节点的出现频率分值中的最大值,作为节点“k”到所有目标词节点的所有路径的前瞻概率,以避免在利用解码网络解码的过程中剪去节点“k”对应的路径中声学得分较低的路径。

相应地,在确定语言模型需要更新之后,本发明实施例的模型更新方法还包括以下步骤:根据解码网络中各词节点在用户id对应的语料库中出现的频率,得到各个词节点对应用户id的出现频率分值;针对解码网络中的每个音素节点,选择音素节点对应的目标词节点对应用户id的出现频率分值中的最大值,确定为音素节点到各目标词节点的路径对应用户id的最新前瞻概率;根据最新前瞻概率,更新解码网络中的音素节点到目标词节点的路径的与用户id对应的前瞻概率。

进一步地,根据解码网络中各词节点在语料库中出现的频率,得到各个词节点对应的出现频率分值,包括:确定解码网络中与用户id对应的语料库中的语料对应的词节点在语料库中出现的频率;针对语料库中的语料对应的词节点,对该词节点的频率进行归一化,得到该词节点对应的出现频率分值。

同样,在更新解码网络中的各用户id对应的前瞻概率时,不需要修改解码网络中的节点(包括词节点和音素节点)。一旦检测到某一用户id对应的语言模型需要更新时,只需要根据更新后的语言模型重新计算解码网络中各音素节点到目标词节点的路径的前瞻概率,然后,根据,就可以将更新后的语言模型带来的变化引入解码网络,防止在路径修剪时裁剪掉声学得分较低的路径,解码器利用更新了前瞻概率后的解码网络进行路径搜索,就可以解出正确结果。

本发明实施例的语音识别方法,可用于识别任意一门语言,例如汉语、英语、日语、德语等。本发明实施例中主要是以对汉语的语音识别为例进行说明的,对其他语言的语音识别方法与此类似,本发明实施例中不再一一举例说明。

如图8所示,基于与上述语音识别方法相同的发明构思,本发明实施例还提供了一种语音识别装置80,包括获取模块801、解码模块802和确定模块803。

获取模块801,用于获取输入语音以及输入语音对应的用户id。

解码模块802,用于根据用户id,在解码网络中,搜索输入语音对应的最优路径,解码网络中各词节点之间的路径标记有用户id。

确定模块803,用于根据最优路径确定输入语音对应的文本信息。

进一步地,解码模块802具体用于:根据解码网络中各词节点之间的路径标记的用户id对应的概率分值,确定输入语音对应的最优路径。

进一步地,解码模块802具体用于:根据用户id,获取用户id对应的语言模型;根据用户id对应的语言模型,在解码网络中,搜索输入语音对应的最优路径。

基于上述任一实施例,解码网络是基于全量词典构建得到的。

进一步地,本发明实施例的语音识别装置80还包括模型更新模块,用于:确定用户id对应的语言模型需要更新;根据用户id对应的语料库中的语料,更新语言模型,并确定解码网络中各词节点之间的路径对应的最新概率得分;根据最新概率得分,更新解码网络中对应的词节点之间的路径标记的用户id对应的概率得分。

进一步地,模型更新模块具体用于:检测用户id对应的语料库是否有更新;若用户id对应的语料库有更新,确定用户id对应的语言模型需要更新。

进一步地,模型更新模块具体用于:计算用户id对应的语料库中的所有语料的第一摘要值;将第一摘要值与第二摘要值进行比较,若不相同,则确认用户id对应的语料库有更新,第二摘要值为最近一次更新后用户id对应的语料库中所有语料的摘要值。

基于上述任一实施例,模型更新模块还用于:根据解码网络中各词节点在用户id对应的语料库中出现的频率,得到各个词节点对应用户id的出现频率分值;针对解码网络中的每个音素节点,选择音素节点对应的目标词节点对应用户id的出现频率分值中的最大值,确定为音素节点到各目标词节点的路径对应用户id的最新前瞻概率;根据最新前瞻概率,更新解码网络中的音素节点到目标词节点的路径的与用户id对应的前瞻概率。

进一步地,模型更新模块具体用于:确定解码网络中与用户id对应的语料库中的语料对应的词节点在语料库中出现的频率;针对语料库中的语料对应的词节点,对该词节点的频率进行归一化,得到该词节点对应的出现频率分值。

本发明实施例提的语音识别装置与上述语音识别方法采用了相同的发明构思,能够取得相同的有益效果,在此不再赘述。

基于与上述语音识别方法相同的发明构思,本发明实施例还提供了一种电子设备,该电子设备具体可以为智能设备(如机器人,智能音箱等)的控制器,也可以为桌面计算机、便携式计算机、智能手机、平板电脑、个人数字助理(personaldigitalassistant,pda)、服务器等。如图9所示,该电子设备90可以包括处理器901、存储器902和收发机903。收发机903用于在处理器901的控制下接收和发送数据。

存储器902可以包括只读存储器(rom)和随机存取存储器(ram),并向处理器提供存储器中存储的程序指令和数据。在本发明实施例中,存储器可以用于存储语音识别方法的程序。

处理器901可以是cpu(中央处埋器)、asic(applicationspecificintegratedcircuit,专用集成电路)、fpga(field-programmablegatearray,现场可编程门阵列)或cpld(complexprogrammablelogicdevice,复杂可编程逻辑器件)处理器通过调用存储器存储的程序指令,按照获得的程序指令实现上述任一实施例中的语音识别方法。

本发明实施例提供了一种计算机可读存储介质,用于储存为上述电子设备所用的计算机程序指令,其包含用于执行上述语音识别方法的程序。

上述计算机存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(mo)等)、光学存储器(例如cd、dvd、bd、hvd等)、以及半导体存储器(例如rom、eprom、eeprom、非易失性存储器(nandflash)、固态硬盘(ssd))等。

以上所述,以上实施例仅用以对本申请的技术方案进行了详细介绍,但以上实施例的说明只是用于帮助理解本发明实施例的方法,不应理解为对本发明实施例的限制。本技术领域的技术人员可轻易想到的变化或替换,都应涵盖在本发明实施例的保护范围之内。

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