CN110148403B - 解码网络生成方法、语音识别方法、装置、设备及介质 - Google Patents

解码网络生成方法、语音识别方法、装置、设备及介质 Download PDF

Info

Publication number
CN110148403B
CN110148403B CN201910424817.4A CN201910424817A CN110148403B CN 110148403 B CN110148403 B CN 110148403B CN 201910424817 A CN201910424817 A CN 201910424817A CN 110148403 B CN110148403 B CN 110148403B
Authority
CN
China
Prior art keywords
language model
decoding network
basic
network
decoding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910424817.4A
Other languages
English (en)
Other versions
CN110148403A (zh
Inventor
黄羿衡
贺利强
苏丹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201910424817.4A priority Critical patent/CN110148403B/zh
Priority to CN201910745811.7A priority patent/CN110428819B/zh
Publication of CN110148403A publication Critical patent/CN110148403A/zh
Application granted granted Critical
Publication of CN110148403B publication Critical patent/CN110148403B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/06Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
    • G10L15/063Training
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/06Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
    • G10L15/063Training
    • G10L2015/0635Training updating or merging of old and new templates; Mean values; Weighting

Abstract

本申请公开了一种解码网络生成方法、装置及设备,该方法包括:根据第一训练样本集训练得到目标槽位对应的语言模型,对该语言模型和目标槽位对应的基础压缩语言模型进行差值,得到目标槽位对应的差分语言模型;根据该差分语言模型和基础解码网络构建目标解码网络;基础解码网络是通过类语言模型和类语言模型中槽位对应的基础压缩语言模型构建生成的,基础压缩语言模型是对通过第二训练样本集训练所得的槽位对应的语言模型进行裁剪生成的,第二训练样本集是第一训练样本集的子集。该方法每次更新解码网络时只需要更新槽位对应的差分语言模型,并且差分语言模型的更新速度非常快,由此可以提高解码网络的迭代更新速度。

Description

解码网络生成方法、语音识别方法、装置、设备及介质
技术领域
本申请涉及语音识别技术领域,尤其涉及一种解码网络生成方法、语音识别方法、装置、设备及计算机可读存储介质。
背景技术
随着语音识别技术的快速发展,各种支持语音识别功能的智能产品已经逐渐深入到用户工作生活的各个角落,例如智能机器人、智能车载设备,等等,这类智能产品通过语音识别功能为用户提供更智能的服务。
在实际应用中,这类智能产品需要不断地将应用场景中新增的词条更新至解码网络中,以保证智能产品能够及时适配不断变化的场景;所谓解码网络实际上是状态网络,语音识别过程实际上就是在状态网络中搜索一条与语音最匹配的路径,这个过程也称为解码过程。
在相关技术中基于静态解码网络的方式进行解码,所谓静态解码网络是指将所有知识源统一编译在一个状态网络中,在解码过程中,根据节点间的转移权重获得概率信息,这种方式导致当有新增词条产生时,就需要重新构建整个解码网络,而重新构建一个解码网络往往一周时间,如此,导致解码网络的迭代更新速度无法适配应用场景的词条更新速度,导致智能产品的更新迭代受限。
发明内容
本申请实施例提供了一种解码网络生成方法、装置、设备及存储介质,在有新增词条产生的情况下无需重新构建整个解码网络,即可实现解码网络的更新,加快解码网络迭代更新的速度。
有鉴于此,本申请第一方面提供了一种解码网络生成方法,包括:
根据第一训练样本集训练得到目标槽位对应的语言模型,对所述语言模型和所述目标槽位对应的基础压缩语言模型进行差值,得到所述目标槽位对应的差分语言模型;
根据所述差分语言模型和基础解码网络构建目标解码网络;其中,所述基础解码网络是通过类语言模型和所述类语言模型中的槽位对应的基础压缩语言模型构建生成的;其中,所述基础压缩语言模型是对通过第二训练样本集训练所得的槽位对应的语言模型进行裁剪生成的,所述第二训练样本集是所述第一训练样本集的子集。
本申请第二方面提供了一种语音识别方法,包括:
获取待识别的语音;
通过解码网络中基础解码网络对所述语音进行解码,在解码过程中,当解码到达所述基础解码网络中槽位时,通过所述解码网络中所述槽位对应的差分语言模型进行解码,并保存所述解码网络的当前网络状态、所述槽位对应的差分语言模型的标识和当前网络状态以及所述解码网络的历史搜索状态;以及,当所述槽位解码完成时,跳转至所述基础解码网络继续解码直到解码至所述语音的最后一帧。
本申请第三方面提供了一种语音交互系统,包括:
语音采集设备,用于通过麦克风采集用户输入的语音;
语音识别设备,用于通过解码网络中基础解码网络对所述语音接收设备采集的语音进行解码,在解码过程中,当解码到达所述基础解码网络中槽位时,通过所述解码网络中所述槽位对应的差分语言模型进行解码,并保存所述解码网络的当前网络状态、所述槽位对应的差分语言模型的标识和当前网络状态以及所述解码网络的历史搜索状态;以及,当所述槽位解码完成时,跳转至所述基础解码网络继续解码直到解码至所述语音的最后一帧,获得语音识别结果;
控制设备,用于根据所述语言识别设备获得的语音识别结果,执行与所述语音识别结果对应的操作。
本申请第四方面提供了一种解码网络生成装置,包括:
差分语言模型生成模块,用于根据第一训练样本集训练得到目标槽位对应的语言模型,对所述语言模型和所述目标槽位对应的基础压缩语言模型进行差值,得到所述目标槽位对应的差分语言模型;
解码网络构建模块,用于根据所述槽位差分语言模型和基础解码网络构建目标解码网络;其中,所述基础解码网络是通过类语言模型和所述类语言模型中的槽位对应的槽位基础压缩语言模型构建生成的;其中,所述槽位基础压缩语言模型是对通过第二训练样本集训练所得的槽位对应的语言模型进行裁剪生成的,所述第二训练样本集是所述第一训练样本集的子集,所述目标槽位是所述类语言模型中槽位。
本申请第五方面提供了一种语言识别装置,包括:
获取模块,用于获取待识别的语音;
识别模块,用于通过解码网络中基础解码网络对所述语音进行解码,在解码过程中,当解码到达所述基础解码网络中槽位时,通过所述解码网络中所述槽位对应的差分语言模型进行解码,并保存所述解码网络的当前网络状态、所述槽位对应的差分语言模型的标识和当前网络状态以及所述解码网络的历史搜索状态;以及,当所述槽位解码完成时,跳转至所述基础解码网络继续解码直到解码至所述语音的最后一帧。
本申请第六方面提供了一种设备,所述设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令,执行如上述第一方面所述的解码网络生成方法的步骤或第二方面所述的语音识别方法的步骤。
本申请第七方面提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行上述第一方面所述的解码网络生成方法的步骤或第二方面所述的语音识别方法的步骤。
本申请第八方面提供了一种包括指令的计算机程序产品,当其在计算机上运行时,使得所述计算机执行上述第一方面所述的解码网络生成方法的步骤或第二方面所述的语音识别方法的步骤。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请实施例提供了一种解码网络生成方法,在该方法中提出了一种新的解码网络架构方式,通过基础解码网络和该基础解码网络中槽位对应的差分语言模型构建新的解码网络,在应用场景中只需要初始构建一次基础解码网络,一旦基础解码网络构建好之后,后续只要重复利用该基础解码网络,在其基础上结合新训练的目标槽位对应的差分语言模型即可,也就是说,当应用场景中有新增词条需要更新解码网络时,收集新增词条和原始词条作为第一训练样本集训练目标槽位对应的语言模型,然后将该语言模型和所述基础解码网络中目标槽位对应的基础压缩语言模型进行差分得到该目标槽位对应的差分语言模型,然后在初始构建的基础解码网络的基础上结合新训练的差分语言模型就能够完成解码网络的更新。其中,该基础解码网络是通过类语言模型和所述类语言模型中的槽位对应的基础压缩语言模型构建生成的;其中,所述基础压缩语言模型是对通过第二训练样本集训练所得的槽位对应的语言模型进行裁剪生成的,所述第二训练样本集是所述第一训练样本集的子集,所述目标槽位是所述类语言模型中槽位。利用本申请提供的解码网络生成方法,只需要构建一次基础解码网络,而每次更新解码网络时只需要更新槽位对应的差分语言模型,差分语言模型的更新速度非常快,能够达到分钟级别,由此可以大大提高解码网络的迭代更新速度,使得解码网络可以及时地适配不断变化的应用场景。
附图说明
图1为本申请实施例提供的解码网络生成方法的架构示意图;
图2为本申请实施例提供的解码网络生成方法的流程示意图;
图3为本申请实施例提供的基础解码网络构建方法的流程示意图;
图4为本申请实施例提供的构建基础解码网络的示意图;
图5a为本申请实施例提供的语音识别方法的流程示意图;
图5b为本申请实施例提供的语音交互系统的结构示意图;
图6为本申请实施例提供的第一种解码网络生成装置的结构示意图;
图7为本申请实施例提供的第二种解码网络生成装置的结构示意图;
图8为本申请实施例提供的第一种语音识别装置的结构示意图;
图9为本申请实施例提供的第二种语音识别装置的结构示意图;
图10为本申请实施例提供的第三种语音识别装置的结构示意图;
图11为本申请实施例提供的第四种语音识别装置的结构示意图;
图12为本申请实施例提供的一种终端设备的结构示意图;
图13为本申请实施例提供的一种服务器的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
相关技术中,静态解码网络结构中各个组成部分的关联度极高,基于新增词条对静态解码网络进行动态更新时,静态解码网络结构中的各个组成部分将随着新增词条的加入而动态更新,各个组成部分的动态更新将导致静态解码网络所占用的内存呈指数增长趋势快速增长。如此,当需要向静态解码网络中动态地加入大量的新增词条时,将导致静态解码网络所占用的内存急剧扩张,例如,当需要向静态解码网络中加入新增的2000万首歌时,如果将这2000万首歌直接动态替换进入原始的静态解码网络,将导致该静态解码网络直接从3M扩张至40G,如此庞大的网络结构无法正常地生成解码网络。
考虑到新增词条的动态加入会导致静态解码网络占用的内存急剧扩张,无法在原有网络结构的基础上直接对该静态解码网络进行更新,因此,相关技术中,当需要基于新增词条对静态解码网络进行更新时,通常需要基于原有词条和新增词条重新构建静态解码网络,而重新构建解码网络非常耗时,难以保证解码网络能够及时地适配不断变化的应用环境。
举例说明,假设,基于类语言模型生成的fst网络中含有槽位的边的个数n(也即条目)为10k,而槽位对应的语言模型对应的.fst文件大小m为20M,若按照传统方法构建解码网络时,模型至少占用200G的内存,如此导致内存爆炸无法正常地生成解码网络。
为了解决上述相关技术存在的问题,本申请实施例提供了一种解码网络生成方法,该方法另辟蹊径提出了一种新的解码网络架构,该解码网络由基础解码网络和槽位对应的差分语言模型构成,其中,基础解码网络是通过类语言模型和类语言模型中槽位对应的槽位基础压缩语言模型构建生成的。当存在新增词条需要对解码网络进行更新时,仅需通过对目标槽位对应的差分语言模型进行更新。该方法通过对目标槽位对应的语言模型和该目标槽位对应的基础压缩语言模型做差分处理,即可实现对于解码网络的更新,无需重复构建基础解码网络,如此极大提高了解码网络的更新速度,使得解码网络及时适配不断变化的应用环境,而且该方法构建的解码网络极大的缩小了网络尺寸便于部署实现。
以上述示例为基础,利用本申请的解码网络生成方法,由于在基础解码网络中对槽位对应的语言模型进行了压缩,即以上述语言模型对应的.fst文件大小m被压缩了,可以压缩至10k左右,这就大大缩小了基础解码网络的尺寸n*m=10k*10k=100M,而在生成解码网络时,只需要在基础解码网络的基础上增加槽位对应的差分语言模型即可,而差分语言模型也只有几兆至几十兆大小,可见,利用本申请的解码网络生成方法能够支持超大槽位的解码网络的构建,可以由于基础解码网络只需要建立一次,一旦有新的实例需要添加至解码网络时,我们只需要更新槽位对应的差分语言模型,不需要重新构建大的解码网络,而更新差分语言模型是非常快速的,如此就使得基于本申请提供的解码网络构建方法能够十分快速的实现解码网络的迭代更新,基本能够达到分钟级别的更新速度,能够支持实时性要求较高的业务场景。
基于上述本申请提出的新的解码网络结构,本申请还提供了一种适用于该解码网络结构的语音识别方法。具体的,获取到待识别的语音后,通过解码网络中的基础解码网络对该语音进行解码,在解码过程中,当解码到达解码网络中的槽位时,通过解码网络中该槽位对应的差分语言模型进行解码,并保存该解码网络的当前网络状态、该槽位节点对应的槽位语言模型的标识、当前网络状态以及历史搜索状态;通过该槽位节点完成解码后,跳转回解码网络中的基础解码网络继续解码,直至解码至待识别的语音的最后一帧。该语音识别方法通过记录包括解码网络的当前网络状态、槽位对应的槽位语言模型的标识、当前网络状态和历史搜索状态的四元组,实现解码过程中的进入槽位对应的差分语言模型解码,以及离开槽位对应的差分语言模型返回基础解码网络解码,保证基于由基础解码网络和槽位对应的差分语言模型构成的解码网络结构顺利地完成语音识别。
应理解,本申请实施例提供的解码网络生成方法可以应用于具备数据分析处理能力的设备,该设备具体可以为终端设备或者服务器;其中,终端设备具体可以为计算机、个人数字助理(Personal Digital Assitant,PDA)、平板电脑、智能手机等;服务器具体可以应用服务器,也可以为Web服务器,在实际部署时,该服务器可以为独立服务器,也可以为集群服务器。
应理解,本申请实施例提供的语音识别方法可以应用于能够支持解码网络运行的设备,该设备具体可以为终端设备或者服务器;其中,终端设备具体可以为智能手机、平板电脑、个人数字助理(Personal Digital Assitant,PDA)、智能音箱、智能机器人等可以利用语音控制的设备;服务器具体可以应用服务器,也可以为Web服务器,在实际部署时,该服务器可以为独立服务器,也可以为集群服务器。
为了便于理解本申请实施例提供的技术方案,下面对本申请实施例提供的解码网络生成方法的实现架构进行介绍。
参见图1,图1为本申请实施例提供的解码网络生成方法的实现架构示意图。如图1所示,本申请实施例提供的解码网络生成方法是基于解码网络1100实现的,该解码网络1100是基于基础解码网络1110和槽位对应的差分语言模型1120构建的;其中,基础解码网络1110是通过类语言模型1111和该类语言模型中槽位对应的基础压缩语言模型1113构建生成的。其中,类语言模型1111中可以包括一个或多个槽位,如图1所示,带槽位的类语言模型1111中包括有槽位A、槽位B和槽位C,槽位A对应于基础压缩语言模型1113a,槽位B对应于基础压缩语言模型1113b,槽位C对应于基础压缩语言模型1113c。差分语言模型1120中相应地包括类语言模型中各槽位各自对应的差分语言模型,如图1所示,差分语言模型1120中包括槽位A对应的差分语言模型1121、槽位B对应的差分语言模型1122和槽位C对应的差分语言模型1123。
可选的,为了提高解码网络的识别准确度,还可以在基础解码网络1110中融合通用语言模型1112,通用语言模型能够更好地识别日常用语,通过将上述类语言模型1111和该通用语言模型1112进行插值处理,以增强基础解码网络的识别性能。
需要说明的是,训练各槽位各自对应的基础压缩语言模型1113时,通常需要先基于槽位对应的第二训练样本集训练得到该槽位对应的语言模型,进而,通过对该槽位对应的语言模型进行裁剪生成对应的基础压缩语言模型1113。例如,假设槽位A为歌曲名称槽位,训练槽位A对应的基础压缩语言模型1113a时,需要先利用由当前已有的歌曲名称组成的第二训练样本集训练得到语言模型1113A,进而,对语言模型113A进行裁剪,得到槽位A对应的基础压缩语言模型113a;相类似地,可以通过上述方式,分别利用槽位B对应的第二训练样本集和槽位C对应的第二训练样本集,训练得到槽位B对应的基础压缩语言模型113b和槽位C对应的基础压缩语言模型113c。
需要说明的是,初始构建解码网络时,差分语言模型1120中各槽位各自对应的差分语言模型可以基于各槽位对应的语言模型和基础压缩语言模型获得,例如,槽位A对应的差分语言模型1121可以通过对槽位A对应的语言模型1113A和槽位A对应的基础压缩语言模型1113a作差分获得,槽位B对应的差分语言模型1122可以通过对槽位B对应的语言模型1113B和槽位B对应的基础压缩语言模型1113b作差分获得,槽位C对应的差分语言模型1123可以通过对槽位C对应的语言模型1113C和槽位C对应的基础压缩语言模型1113c作差分获得。
当存在新增词条,需要对解码网络1100进行更新时,可以先确定新增词条所对应的目标槽位,利用新增词条和该目标槽位对应的第二训练样本集组成第一训练样本集;然后,利用第一训练样本集训练得到该目标槽位对应的语言模型,进而利用该目标槽位对应的语言模型,对基础解码网络1110中该目标槽位对应的基础压缩语言模型作差分,得到该目标槽位对应的差分语言模型,最终根据该目标槽位对应的差分语言模型和基础解码网络1100构建得到目标解码网络1200。
仍以槽位A为歌曲名称槽位为例,当需要基于新增歌曲名称对解码网络1100进行更新时,可以利用新增歌曲名称与第二训练样本集中的歌曲名称组成第一训练样本集,然后利用该第一训练样本集训练得到槽位A对应的语言模型1213A;进而,利用该语言模型1213A与槽位A对应的基础压缩语言模型1113a作差分,得到槽位A对应的差分语言模型1221,根据槽位A对应的差分语言模型和基础解码网络1110即可得到目标解码网络1200.
应理解,在实际应用中,可以按照上述方式基于多个槽位各自对应的第一训练样本集训练得到这多个槽位各自对应的语言模型,进而,利用这多个槽位各自对应的语言模型分别对其对应的基础压缩语言模型作差分,实现对解码网络1100的更新,得到目标解码网络1200。
下面通过实施例对本申请提供的解码网络生成方法进行介绍。
参见图2,图2为本申请实施例提供的解码网络生成方法的流程示意图。为了便于描述,下述实施例以服务器作为执行主体进行描述,应理解,该解码网络生成方法的执行主体并不仅限于服务器,还可以为终端设备等其他具备数据分析处理能力的设备。如图2所示,该解码网络生成方法包括以下步骤:
步骤201:根据第一训练样本集训练得到目标槽位对应的语言模型,对所述语言模型和所述目标槽位对应的基础压缩语言模型进行差值,得到所述目标槽位对应的差分语言模型。
当存在新增词条,并且需要基于新增词条对解码网络进行更新时,服务器可以先确定新增词条具体对应于类语言模型中的哪个槽位,并相应地将该槽位作为目标槽位,获取该目标槽位对应的第二训练样本集,该第二训练样本集中包括用于训练基础解码网络中该目标槽位对应的压缩语言模型时使用的训练样本。进而,将新增词条与该第二训练样本集中的训练样本组合起来构成第一训练样本集,利用该第一训练样本集训练得到该目标槽位对应的语言模型。利用该目标槽位对应的语言模型和基础解码网络中该目标槽位对应的基础压缩语言模型进行差分,即可得到该目标槽位对应的差分语言模型。
需要说明的是,上述槽位具体可以理解为命令型对话中的变量,以命令智能音箱播放歌曲为例,在“我想听张学友的吻别”这句话中,歌手名称“张学友”以及歌曲名称“吻别”为播放音乐命令中的变量,相应地,即可将这句话中“张学友”对应的位置理解为歌手名称槽位,将“吻别”对应的位置理解为歌曲名称槽位。应理解,在实际应用中,除了可以将播放歌曲命令中的歌手名称和歌曲名称理解为槽位以外,还可以将播放视频命令中视频名称理解为槽位,也可以将导航命令中目的地名称理解为槽位,在此不对槽位所对应的具体名称类型做任何限定。
具体基于第一训练样本集训练目标槽位对应的语言模型时,可以直接利用一些开源工具,如srilm等,基于第一训练样本集训练得到目标槽位对应的语言模型。
为了便于理解上述目标槽位对应的语言模型的训练过程,下面以训练歌曲名称槽位对应的语言模型为例,对目标槽位对应的语言模型的训练过程进行介绍。
当需要训练歌曲名称槽位对应的语言模型时,服务器可以先获取歌曲名称槽位对应的第二训练样本集,该第二训练样本集中包括对基础解码网络中该歌曲槽位对应的基础压缩模型进行训练时使用的所有歌曲名称,然后,利用新增的所有歌曲名称以及第二训练样本集中所有的歌曲名称组成第一训练样本集,利用该第一训练样本集训练得到歌曲名称槽位对应的语言模型。
在一种可能的情况下,当前存在的新增词条对应于类语言模型中同一个槽位,即仅存在一个目标槽位;此时,直接利用第一训练样本训练得到该目标槽位对应的语言模型即可。
在另一种可能的情况下,当前存在的新增词条分别对应于类语言模型中多个不同的槽位,即同时存在多个目标槽位;此时,需要分别获取这多个目标槽位各自对应的第一训练样本集,即分别获取这多个目标槽位各自对应的第二训练样本集,并针对每个目标槽位,将与其对应的新增词条和第二训练样本集结合起来,组成该目标槽位对应的第一训练样本集;进而,利用各目标槽位各自对应的第一训练样本集,分别训练得到各目标槽位对应的语言模型。
基于第一训练样本集训练得到目标槽位对应的语言模型后,服务器可以利用该目标槽位对应的语言模型,对基础解码网络中该目标槽位对应的基础压缩语言模型做差分,由此即可得到该目标槽位对应的差分语言模型。需要说明的是,如果说语言模型A是语言模型B和语言模型C的差分语言模型,那么,语言模型A、语言模型B和语言模型C将满足公式(1)和(2):
logPA(w|H)=logPB(w|H)-logPc(w|H) (1)
αA(H)=αB(H)-αC(H) (2)
其中,PA(w|H)表示语言模型A在给定历史词序列H的情况下确定出现词w的概率,PB(w|H)表示语言模型B在给定历史词序列H的情况下确定出现词w的概率,logPc(w|H)表示语言模型C在给定历史词序列H的情况下确定出现词w的概率;αA(H)表示语言模型A中历史词序列H对应的回退系数,αB(H)表示语言模型B中历史词序列H对应的回退系数,αC(H)表示语言模型C中历史词序列H对应的回退系数。其中,语言模型C所能识别的词条是语言模型B所能识别的词条的子集,语言模型A与语言模型B能识别的词条相同。
也就是说,将利用目标槽位对应的语言模型对基础解码网络中目标槽位对应的基础压缩语言模型作差分处理得到的差分语言模型与基础解码网络结合起来,所能识别的词条与基于第一训练样本集训练得到的目标槽位对应的语言模型所能识别的词条相同。
需要说明的是,初次生成解码网络时,解码网络中的差分语言模型是通过将第二训练样本集训练得到的语言模型与裁剪该语言模型得到的基础压缩语言模型作差分处理得到的。在后续产生新增词条需要对解码网络进行更新时,服务器可以通过执行步骤201对解码网络中的差分语言模型进行更新。
步骤202:根据差分语言模型和基础解码网络构建目标解码网络;其中,所述基础解码网络是通过类语言模型和所述类语言模型中的槽位对应的基础压缩语言模型构建生成的;其中,所述基础压缩语言模型是对通过第二训练样本集训练所得的槽位对应的语言模型进行裁剪生成的,所述第二训练样本集是所述第一训练样本集的子集。
服务器利用基于第一训练样本集训练得到的目标槽位对应的语言模型与该目标槽位对应的基础压缩语言模型作差分处理,得到该目标槽位对应的差分语言模型后,可以直接利用该差分语言模型替换原解码网络中该目标槽位对应的差分语言模型,如此,可以在不对基础解码网络做任何调整的情况下,通过更新目标槽位对应的差分语言模型,得到目标解码网络,即实现对于解码网络的更新,使得目标解码网络能够有效地识别新增词条。
具体实现时,服务器可以将差分语言模型转换成树状结构网络或者加权有限状态机(Weighted finite state machine,WFST)网络,作为第一网络,将该第一网络和基础解码网络融合生成目标解码网络。
将差分语言模型转换为WFST网络时,服务器可以调用语言模型工具Kaldi,将差分语言模型转换为其对应的WFST网络。当然,在实际应用中,服务器除了可以调用语言模型工具Kaldi将差分语言模型转换为WFST网络外,还可以调用其他语言模型工具转换得到WFST网络,在此不对转换WFST网络所使用的语言模型工具做任何限定。
将差分语言模型转换成树状结构时,可以利用64位的状态表示每个树状结构对应的n-gram语言模型,这个状态中记录有与其对应的n-gram语言模型在树状结构中的深度信息,以及该n-gram语言模型已遍历过的历史词汇信息,基于各树状结构对应的状态,即可轻松地在该树状结构中查询待查询词汇对应的n-gram得分。
需要说明的是,树状结构是一种用于存储语言模型的高效数据结构,其相比WFST网络树状结构需要占用的存储空间较小。另外,树状结构中存储的各条目都是预先按照各条目对应的数值进行了排序,在查找语言模型概率时,可以直接利用二分法进行查找,查找效率较高。
需要说明的是,上述基础解码网络是基于类语言模型和各槽位对应的基础压缩语言模型构建的。训练该类语言模型时,需要对文本样本进行短语分块处理得到短语层的文本样本,然后将短语层的文本样本中属于槽位类别的文本块替换为其所属类别对应的槽位名称,进而,利用带槽位名称的文本样本训练得到类语言模型,该类语言模型的训练方法将在下文进行详细介绍。槽位对应的基础压缩语言模型是对槽位对应的语言模型进行裁剪生成的,该槽位对应的语言模型是利用与槽位对应的第二训练样本集训练得到的。
可选的,为了提高解码网络语音识别的准确度,上述基础解码网络中还可以包括通用语言模型,该通用语言模型通常是基于日常生活中使用的自然语言训练得到的。
应理解,不同槽位对应不同的第二训练样本集,相应地,基于不同的第二训练样本集训练得到的语言模型不同,进而,对语言模型进行裁剪生成的基础压缩语言模型也不同,即不同的槽位对应于不同的基础压缩语言模型。
在实际应用中,上述类语言模型中可以包括一个槽位,也可以包括多个槽位。例如,在基于语音进行目的地导航的应用场景中,由于用户通常使用的语音命令是“导航至XXX(目的地名称)”,因此,在构建基础解码网络时,可以基于仅包括地理位置名称槽位的类语言模型构建基础解码网络。又例如,在基于语音播放音乐的应用场景中,由于用户通常使用的语音的命令可能是“播放XXX(创作者名称)的XXX(音频名称)”,因此,在构建基础解码网络时,可以基于包括创作者名称槽位和音频名称槽位的类语言模型构建基础解码网络,应理解,此处的创作者名称具体可以为表演者名称、词作者名称、曲作者名称等,此处的音频名称具体可以为歌曲名称。
上述解码网络生成方法另辟蹊径提出了一种新的解码网络架构,该解码网络由基础解码网络和槽位对应的差分语言模型构成,其中,基础解码网络是通过类语言模型和类语言模型中槽位对应的基础压缩语言模型构建生成的。当存在新增词条需要对解码网络进行更新时,仅需通过对目标槽位对应的差分语言模型进行更新即可。也就是说,该方法通过对目标槽位对应的语言模型和该目标槽位对应的基础压缩语言模型做差分处理,即可实现对于解码网络的更新,无需重新构建解码网络,大大提高了解码网络的迭代更新速度,使得解码网络可以及时地适配不断变化的应用环境。
基于图2所示实施例的描述可知,本申请实施例提供的解码网络生成方法之所以能够实现对解码网络的快速更新,其原因在于提出了一种新的解码网络结构,为了便于进一步理解本申请实施例提供的解码网络生成方法,下面对解码网络中基础解码网络结构的构建方法进行介绍。
参见图3,图3为本申请实施例提供的基础解码网络构建方法的流程示意图。为了便于描述,下述实施例以服务器作为执行主体进行描述,应理解,该基础解码网络构建方法的执行主体并不仅限于服务器,还可以为终端设备等其他具备数据分析处理能力的设备。如图3所示,该基础解码网络构建方法包括以下步骤:
步骤301:确定第三训练样本集,所述第三训练样本集包括带槽位名称的文本样本,根据第三训练样本集训练得到类语言模型。
服务器构建基础解码网络结构时,需要先获取包括有大量带槽位名称的文本样本的第三训练样本集,进而,根据该第三训练样本集训练得到带槽位的类语言模型。
相关技术中,服务器通常都是以词为单位对文本样本进行分块处理,但是以词为单位进行分块处理将导致最终划分得到的文本样本过于琐碎,例如,当语音指令为“我想听我等到花都谢了”时,相关技术会将该语音指令划分为“我想听我等到花都谢了”,其中包括大量的分词。本申请提出了带槽位的语言模型这一概念,且每个槽位中包括的内容均属于同一类别,相应地,训练该带槽位的语言模型时,需要基于短语层面的文本样本对其进行训练,仍以识别语音指令“我想听我等到花都谢了”为例,本申请基于短语层面会将其进行划分为“我想听我等到花都谢了”,即本申请会将属于同一类别的多个词语划分为一个短语。
基于此,服务器在训练类语言模型时,会先获取文本样本,进而对所获取的文本样本进行短语级分块处理得到短语层的文本样本。具体的,基于句子w1 w2 w3...wn(wi表示句子中的词语,其均为词典中包括的词语)生成短语层的文本样本时,服务器将根据词典中所包括的类别,将该句子划分为π(n)个不同的块,每个块中包括的短语或词语均属于同一类别,将分块后得到的短语层的文本样本记录为W1 W2 W3...Wπ(n)
然后,将各短语层的文本样本中属于槽位类别的文本块替换为其所属类别对应的槽位名称,例如,将文本“我想听吻别”划分为短语层面的文本样本“我想听吻别”后,服务器可以进一步将“吻别”替换为其所述类别对应的槽位名称,即将“吻别”替换为歌曲名称类别对应的槽位名称SONG-SLOT,由此即可得到带槽位名称的文本样本“我想听SONG-SLOT”。如此,按照该种方式,获得大量带槽位名称的文本样本,利用这些带槽位名称的文本样本组成第三训练样本集。
应理解,在实际应用中,可以根据各种语音指令适用的应用场景,相应地将短语层面的文本样本中属于槽位类别的文本块替换为其所属类别对应的槽位名称,并不仅局限于替换将歌曲名称替换为SONG-SLOT,在此不对短语层面的文本样本中的文本块所属类别做任何限定,也不对各类别对应的槽位名称做任何限定。
进而,利用第三训练样本集中的带槽位名称的文本样本训练得到类语言模型,该类语言模型具体可以为n-gram语言模型。
需要说明的是,对于由多个短语组成的句子W1 W2 W3...Wπ(n)(其中,Wi表示每个短语对应的分块),确定其对应的文本的过程实际上就是计算概率P(W1 W2 W3...Wπ(n))的过程,该概率P(W1 W2 W3...Wπ(n))具体可以分解为式(3):
Figure BDA0002067148600000151
其中,P(W1)表示短语W1出现的概率,P(W2|W1)表示在短语W1出现的情况下短语W2出现的概率,
Figure BDA0002067148600000152
表示在短语W1、W2、...、Wπ(n)-1均出现的情况下Wπ(n)出现的概率。
在概率P(W1 W2 W3...Wπ(n))的分解公式中,
Figure BDA0002067148600000153
具体满足关系式(4):
Figure BDA0002067148600000154
其中,P(Wk|Ck)表示短语Wk属于类别Ck的概率,
Figure BDA0002067148600000155
表示在类别
Figure BDA0002067148600000157
出现的情况下类别Ck出现的概率。
基于式(3)和式(4)可知,计算概率P(W1 W2 W3...Wπ(n))时需要耗费极大的计算量,为了减少计算量,可以采用n-gram语言模型作为带槽位的类语言模型。
具体的,对于1-gram语言模型,其假设
P(Wπ(n)|W1W2...Wπ(n)-1)=P(Wπ(n)|Wπ(n)-1),相应地,该概率P(W1 W2W3...Wπ(n))具体可以分解为式(5):
P(W1W2,...,Wn)=P(W1)P(W2|W1)...P(Wπ(n)|Wπ(n)-1) (5)
对于2-gram语言模型,其假设P(Wπ(n)|W1W2...Wπ(n)-1)=P(Wπ(n)|Wπ(n)-1Wπ(n)-2)相应地,该概率P(W1W2 W3...Wπ(n))具体可以分解为式(6):
P(W1W2,...,Wn)=P(W1)P(W2|W1)...P(Wπ(n)|Wπ(n)-1Wπ(n)-2) (6)
对于3-gram语言模型,其假设P(Wπ(n)|W1W2...Wπ(n)-1)=P(Wπ(n)|Wπ(n)-1Wπ(n)- 2Wπ(n)-3),相应地,该概率P(W1W2 W3...Wπ(n))具体可以分解为式(7):
P(W1W2,...,Wn)=P(W1)P(W2|W1)...P(Wπ(n)|Wπ(n)-1Wπ(n)-2Wπ(n)-3) (7)
经实验研究表明,n的取值越大模型性能越好,但是计算量也会越大,通常情况下将n的取值设置为2或3,即可实现较好的效果。
步骤302:根据类语言模型中槽位对应的第二训练样本集,训练得到所述槽位对应的语言模型,裁剪所述槽位对应的语言模型得到所述槽位对应的基础压缩语言模型。
获取类语言模型中槽位对应的第二训练样本集,然后,利用第二训练样本集训练得到该槽位对应的语言模型,进而,对该槽位对应的语言模型进行裁剪得到该槽位对应的基础压缩语言模型。
应理解,在实际应用中,类语言模型可以包括一个槽位,也可以包括多个槽位。当类语言模型仅包括一个槽位时,直接基于该槽位对应的第二训练样本集训练得到对应的语言模型,再对该语言模型进行裁剪即可得到该槽位对应的基础压缩语言模型。当类语言模型包括多个槽位时,需要基于多个槽位各自对应的第二训练样本集,分别训练得到各槽位各自对应的语言模型,再对各槽位各自对应的语言模型进行裁剪得到各槽位各自对应的基础压缩语言模型。
需要说明的是,每个槽位对应的槽位语言模型实际上可以为n-gram语言模型,相应地,利用第二训练样本集对槽位对应的语言模型进行训练时,需要对第二训练样本集中的每个训练样本做分词处理,进而,基于经分词处理后得到的训练样本对n-gram语言模型进行训练。
应理解,对该槽位对应的语言模型进行裁剪时,可以使用语言模型工具SRILM对槽位语言模型进行裁剪,当然也可以使用Kenlm、IRSTLM、MITLM等语言工具进行裁剪,在此不对裁剪槽位语言模型使用的语言模型工具做任何限定。
需要说明的是,在实际应用中,可以先按序执行步骤301,后执行步骤302,也可以先执行步骤302,后按序执行步骤301,当然,也可以同时执行步骤301和步骤302,在此不对步骤301和步骤302执行的顺序做任何限定。
步骤303:根据所述类语言模型和所述槽位对应的基础压缩语言模型生成基础解码网络。
服务器经步骤301训练得到类语言模型以及经步骤302训练得到槽位对应的基础压缩模型后,即可直接根据该类语言模型和各槽位各自对应的基础压缩语言模型,生成基础解码网络,具体的,服务器可以通过将各槽位各自对应的基础压缩语言模型相应地嵌入至类语言模型中的槽位,获得基础解码网络。
为了提高解码网络的语音识别准确度,在生成基础解码网络的过程中,服务器将通用语言模型插值至基础解码网络中。具体的,服务器可以对类语言模型和通用语言模型进行插值处理得到插值语言模型,并裁剪该插值语言模型得到其对应的压缩插值语言模型。进而,根据压缩插值语言模型和经步骤302获得的槽位对应的基础压缩语言模型,生成基础解码网络。
具体实现时,服务器训练得到类语言模型后,可以将该类语言模型和通用语言模型进行插值,即对该类语言模型与通用语言模型进行线性加权处理,得到插值语言模型,进而,采用特定的语言模型工具对该插值语言模型进行裁剪,得到该插值语言模型对应的压缩插值语言模型。获得压缩插值语言模型后,服务器可以将经步骤302获得的槽位对应的基础压缩语言模型,相应地嵌入至压缩插值语言模型中类语言模型的各个槽位中,即可得到基础解码网络。
需要说明的是,上述通用语言模型通常是基于日常生活中使用的自然语言训练得到的。通常情况下,可以基于从网络上下载的各类文本,采用开源工具如SRILM训练得到通用语言模型,该通用语言模型具体可以为n-gram语言模型。
在对插值语言模型进行裁剪时,可以使用语言模型工具SRILM对该插值语言模型进行采集,当然也可以使用Kenlm、IRSTLM、MITLM等语言工具进行裁剪,在此不对裁剪插值语言模型时使用的语言模型工具做任何限定。
具体构建基础解码网络时,服务器可以将类语言模型转换为WFST网络,作为基础主网络,将类语言模型中各个槽位各自对应的基础压缩语言模型均转换成对应的WFST网络,作为各个槽位对应的子网络;进而,类语言模型中各槽位各自对应的子网络分别嵌入至基础主网络中,得到基础解码网络。
具体的,服务器可以调用语言模型工具Kaldi,将类语言模型和各槽位各自对应的基础压缩语言模型均转换为对应的WFST网络。具体转换时,服务器可以先转换类语言模型得到基础主网络,后转换各槽位各自对应的基础压缩语言模型得到各子网络,也可以先转换各槽位各自对应的基础压缩语言模型得到各子网络,后转换类语言模型得到基础主网络,还可以同时转换类语言模型和各槽位各自对应的基础压缩语言模型,分别得到基础主网络和各子网络。
应理解,在实际应用中,除了可以调用语言模型工具Kaldi将类语言模型和各槽位各自对应的基础压缩语言模型转换为WFST网络外,还可以调用其他语言模型工具转换得到WFST网络,在此不对转换WFST网络所使用的语言模型工具做任何限定。
进而,服务器可以调用语言模型工具openfst将各槽位各自对应的WFST网络替换至类语言模型对应的WFST网络,即将各子网络相应地嵌入至基础主网络中得到基础解码网络。具体操作如下:fstreplace--call_arc_labeling=both--return_label=id_rlabel--return_arc_labeling=both root.fst upper_bound_id class.fst class_slot_idroot+class.fst&
其中,id_rlabel是replace之后原始槽位对应的消歧符号id,class_slot_id是原始槽位的id,upper_bound_id+1是比WFST中所有编码id的上界,并且是不能达到的。在完成替换之后,考虑到槽位没有发音,服务器还需要将各槽位对应的符号替换为对应的消歧符号,以便在后续对WFST网络进行优化的过程中将各槽位对应的消歧符号优化掉。例如,假设服务器需要替换的槽位是SONG-SLOT,SONG-SLOT在WFST对应的id是2000,它对应的消歧符号#SONG-SLOT对应的id是3300.符号列表里面总共有4000个符号,那么rid_rlabel=3300,class_slot_id=2000,upper_bound_id=任意大于4000的整数。
需要说明的是,若在构建基础解码网络的过程中通过对类语言模型和通用语言模型进行插值处理得到插值语言模型,并对该插值语言模型进行裁剪得到其对应的压缩插值语言模型,相应地,基于该压缩插值语言模型构建基础解码网络时,可以利用相关语言模型工具将该压缩插值语言模型转换为WFST网络,通过将各槽位各自对应的子网络替换至该压缩插值语言模型对应的WFST网络,得到基础解码网络。
为了便于理解图3所示的基础解码网络构建方法,下面以利用“播放白鸟”这一样本对基础解码网络进行训练为例,对该基础解码网络构建方法进行举例说明。
参见图4,图4为本申请提供的基础解码网络构建方法对应的示意图。图4中的410为类语言模型对应的WFST网络(即基础主网络),该类语言模型中包括歌曲名称对应的槽位。图4中的420为基础压缩语言模型对应的WFST网络(即子网络),该基础压缩语言模型是通过对基于第二训练样本集中的“白鸟”训练得到的语言模型进行裁剪得到;图4中的430是将420所示的子网络替换至410所示的基础主网络后得到的基础解码网络。
图4中各个圆圈中的数字用于表征WFST网络中的状态编号,各箭头上的内容表示输入和输出的词的符号,其中还包括相应的权重,该权重表示对应语言模型的log概率值和回退概率值。
本申请实施例基于类语言模型和各槽位对应的基础压缩语言模型构建了基础解码网络结构,当存在新的词条需要对解码网络结构进行更新,可以不对该解码网络中的基础解码网络做任何改进,直接更新解码网络中的差分语言模型即可,即无需重新构建整个解码网络,可以大大地提高解码网络迭代更新的速度。
基于本申请实施例提出的解码网络结构,本申请相应地提出了一种在实际应用中应用该解码网络结构的语音识别方法。
参见图5a,图5a为本申请实施例提供的语音识别方法的流程示意图。为了便于描述,下述实施例以服务器作为执行主体进行描述,应理解,该语音识别方法的执行主体并不仅限于服务器,还可以为终端设备等其他具备语音识别功能的设备。
为了便于理解本申请实施例提供的语音识别方法,下面先对语音识别的基本流程进行介绍。
语音识别实际上就是将一段语音信号转换为其对应的文本信息,目前常用的语音识别系统主要包括特征提取、声学模型、语言模型以及字典与解码这四大部分,通常情况下,为了更有效地提取特性,往往还需要对所采集的声音信号进行滤波、分帧等音频数据预处理工作,将需要分析的音频信号从原始声音信号中适当地提取出来。特征提取主要用于将声音信号从时域转换至频域,为声学模型提供合适的特征向量;进而,声学模型再根据声学特性计算每个特征向量在声学特征上的得分。而语言模型用于根据语言学相关的理论,计算声音信号可能对应的词组序列的概率。最终根据已有的字典,对词组序列进行解码,得到声音信号最可能对应的文本信息。
具体进行语音识别时,需要先通过预处理操作切除声音信号中首尾端的静音,以降低其对后续步骤造成的干扰,然后进行声音分帧,即将声音切分成多个小段,每小段声音信号可以被称为一帧,通常使用移动窗函数来实现声音分帧,保证各帧之间存在交叠区域。接着通过特征提取将每帧声音波形转换为包含声音信息的多维向量(下文称之为特征向量),进而,通过声学模型对该特征向量进行处理得到其对应的音素信息。字典中存储有字或词与音素之间的对应关系,语言模型可以确定单个字或词之间相互关联的概率,最终利用解码网络,基于声学模型、字典和语言模型对特征提取后得到的音频数据进行处理,输出与输入的声音信号对应的文字。
需要说明的是,本申请主要针对语音识别系统中的解码网络做出了改进,即基于图2和图3所示的方法构建了一种新的解码网络结构,利用该解码网络结构,结合声学模型和字典对特征提取后的音频数据进行处理,得到该音频数据对应的文字。
接下来,结合图5a对本申请实施例提供的语音识别方法进行介绍,如图5a所示,该方法包括以下步骤:
步骤501:获取待识别的语音。
在实际应用中,用户可以通过向智能设备输入语音信号,来指示智能设备执行语音信号对应的操作,智能设备接收到用户输入的语音信号后,可以通过网络将该语音信号传输至服务器,以利用服务器识别该语音信号对应的文字信息。
例如,在实际应用中,用户可以向智能音箱输入“播放白鸟”这一语音信号,以指示智能音箱搜索并播放“白鸟”这首歌,相应地,智能音箱接收到语音信号“播放白鸟”后,将通过网络将该语音信号“播放白鸟”传输至服务器,以使服务器识别出语音信号“播放白鸟”对应的文字信息。
需要说明的是,在终端设备中运行有语音识别系统的情况下,终端设备接收到用户输入的语音信号后,可以由自身独立完成语音识别的过程,无需将待识别的语音信号传输至服务器。
步骤502:通过解码网络中基础解码网络对所述语音进行解码,在解码过程中,当解码到达所述基础解码网络中槽位时,通过所述解码网络中所述槽位对应的差分语言模型进行解码,并保存所述解码网络的当前网络状态、所述槽位对应的差分语言模型的标识和当前网络状态以及所述解码网络的历史搜索状态;以及,当所述槽位节点解码完成时,跳转至所述基础解码网络继续解码直到解码至所述语音的最后一帧。
服务器接收到终端设备传输的语音信号后,相应地利用自身中运行的解码网络中的基础解码网络对该语音进行解码处理。
需要说明的是,此处利用的解码网络即为基于图2和图3所示方法生成的解码网络,该解码网络包括基础解码网络和各槽位各自对应的差分语言模型,其中,基础解码网络由类语言模型和该类语言模型中各槽位对应的基础压缩语言模型构建生成,该基础解码网络还可以包括通用语言模型;差分语言模型为利用基于目标槽位对应的第一训练样本集训练得到的语言模型对目标槽位的基础压缩语言模型进行差分得到的模型。
其中,基础解码网络具体可以为WFST网络,差分语言模型具体可以为WFST网络或者树状结构。
基于上文所介绍的语音识别系统的工作原理可知,在实际应用中,服务器接收到终端设备传输过来的语音信号后,通常会先针对该语音信号进行首尾端静音切除以及声音分帧等预处理操作,然后通过特征提取操作将语音信号转换为特征矢量,进而,利用解码网络基于声学模型和字典确定该语音信号对应的文字信息。
在解码过程中,当解码到达解码网络中的槽位时,即在确定当前识别的语音帧属于某槽位节点对应的类别时,服务器相应地利用该槽位对应的差分语言模型进行解码,在此过程中,服务器会相应地保存由解码网络的当前网络状态、槽位对应的差分语言模型的标识、当前网络状态以及历史搜索状态组成的四元组信息。通过该槽位完成对于当前语音帧的解码后,服务器可以相应地根据上述四元组信息跳转回解码网络中的基础解码网络继续解码该语音帧之后的其他语音帧,直至完成对于最后一帧语音的解码。
需要说明的是,在实际应用中,如果当前需要利用槽位对应的差分语言模型进行解码,那么需要一个历史搜索状态备份在基础解码网络中已经搜索到的状态,以便利用该槽位对应的差分语言模型完成解码后,可以返回至基础解码网络继续搜索,相类似地,具体返回至基础解码网络的哪个状态,也需要在进入槽位对应的差分语言模型进行搜索之前提前记录。
需要说明的是,在解码过程中通常会遇到基础解码网络与差分语言模型之间的切换,在进入槽位对应的子网络(也可以理解为槽位对应的差分语言模型)时,如在解码过程中遇到了槽位对应的类别符号,如SONG-SLOT,则说明此时需要进入该槽位对应的差分语言模型进行相关搜索,相应地,需要将四元组中解码网络的当前网络状态更新为该差分语言模型对应的id,并将当前网络状态设置为该差分语言模型对应的初始化状态,将已经解码到的基础解码网络对应的状态添加至历史搜索状态中。在离开槽位对应的差分语言模型时,如解码遇到了#SONG-SLOT时,说明该槽位对应的差分语言模型已完成解码,此时需要添加句子结束符号对应的得分,同时将解码网络的当前网络状态切换回基础解码网络对应的id,同时基于历史搜索状态中备份的基础解码网络状态,跳转回基础解码网络继续解码。
为了便于理解步骤502所述的解码过程,下面以对语音“播放白鸟”进行解码为例,对该解码过程进行介绍。
初始的解码网络的当前网络状态为0,槽位对应的差分语言模型的标识为0,当前网络状态为句子开始符号<s>对应的状态,历史搜索状态为空,即表示当前不需要备份,即此时的四元组为{0,Im_id=0,<s>对应的状态,历史搜索状态为空}。当解码至“播放”对应的语音帧时,由于已识别到有效的语音信号,因此更新解码网络的当前网络状态为1,由于仍未进入槽位对应的差分语言模型进行解码,因此槽位对应的差分语言模型的标识仍为0,当前网络状态为“<s>播放”对应的状态,历史搜索状态仍为空,即此时的四元组为{1,Im_id=0,“<s>播放”对应的状态,历史搜索状态为空}。继续解码,当接收到SONG-SLOT这个输出时,表征此时要进入槽位SONG-SLOT对应的差分语言模型,此时四元组更新为{3,Im_id=1(代表槽位SONG-SLOT对应的标识),差分语言模型中“<s>”对应的状态,历史搜索状态为类语言模型中“<s>播放SONG-SLOT”}。继续解码,当解码至“白鸟”对应的语音帧时,四元组更新为{4,Im_id=1(代表槽位SONG-SLOT对应的标识),差分语言模型中“<s>白鸟”对应的状态,历史搜索状态为类语言模型中“<s>播放SONG-SLOT”}。继续解码,当遇到#SONG-SLOT时,则表明即将跳出SONG-SLOT槽位对应的差分语言模型,此时四元组更新为{2,Im_id=0,类语言模型中“<s>播放SONG-SLOT</s>(代表句子结束符号)”对应的状态,历史搜索状态为空},此时完成解码。
需要说明的是,在实际应用中,很多应用场景都会涉及对用户输入的语音指令进行语音识别,以根据语音识别得到的结果触发与该语音指令相关的操作。本申请实施例在此提供了三种示例性的语音识别应用场景,在这些语音识别应用场景中均可利用上文介绍的语音识别方法,对用户输入的语音指令进行识别。
在第一种可能的实现方式中,本申请实施例提供的语音识别方法可以应用于控制终端(如智能音箱等)播放音乐的应用场景中。为了适用于该种应用场景,生成解码网络时,需要基于包括有创作者槽位和音频名称槽位的类语言模型构建基础解码网络,应理解,创作者槽位对应的差分语言模型主要用于识别音频创作者的名称,如歌手名称、词作者名称、曲作者名称等等,音频名称槽位对应的差分语言模型主要用于识别音频名称,如歌曲名称等等。
通过上述基于包括创作者槽位和音频名称槽位的类语言模型构建的解码网络,服务器采用图5a所示的语音识别方法,对智能设备发送的待识别的语音进行识别得到对应的识别结果后,相应地根据该识别结果生成与其匹配的控制指令,进而向智能设备发送该控制指令,以指示智能设备播放目标音频。
例如,假设用户通过智能音箱输入语音指令“播放白鸟”,智能音箱将相应地传输该语音指令“播放白鸟”至服务器,服务器基于预先生成的解码网络对语音指令“播放白鸟”进行语音识别,得到其对应的文字识别结果。服务器根据该文字识别结果可以确定目标音频为“白鸟”,在用于存储音频数据的数据库中搜索到该目标音频后,将该目标音频添加至用于控制智能音箱播放目标音频的控制指令中,并将该控制指令发送至智能音箱,智能音箱接收到该控制指令后,相应地播放控制指令中携带的目标音频“白鸟”。
应理解,在实际应用中,除了可以通过终端与服务器交互的形式,实现根据语音指令播放目标音频外,也可以由终端独立完成根据语音指令播放目标音频的操作,即在终端中运行有语音识别系统(其中包括解码网络)的情况下,终端可以独立地对用户输入的语音指令进行语音识别,进而根据语音识别结果生成控制指令,控制播放语音指令中的目标音频。
在第二种可能的实现方式中,本申请实施例提供的语音识别方法可以应用于控制终端(如智能电视等)播放视频的应用场景中。为了适用于该种应用场景,生成解码网络时,需要基于包括有视频名称槽位的类语言模型构建基础解码网络,应理解,视频名称槽位对应的差分语言模型主要用于识别视频名称,如电视剧名称、电影名称等等。
通过上述基于包括视频名称槽位的类语言模型构建的解码网络,服务器采用图5a所示的语音识别方法,对终端发送的待识别的语音进行识别得到对应的识别结果后,相应地根据该识别结果生成与其匹配的控制指令,进而向终端发送该控制指令,以指示智能设备播放目标视频。
例如,假设用户通过智能电视输入语音指令“播放权力的游戏”,智能电视将相应地传输该语音指令至服务器,服务器基于预先生成的解码网络对语音指令进行语音识别,得到其对应的文字识别结果。服务器根据该文字识别结果可以确定目标视频为“权力的游戏”,在用于存储视频数据的数据库中搜索到该目标视频后,将该目标视频添加至用于控制智能电视播放目标视频的控制指令中,并将该控制指令发送至智能电视,智能电视接收到该控制指令后,相应地播放控制指令中携带的目标视频“权力的游戏”。
应理解,在实际应用中,除了可以通过终端与服务器交互的形式,实现根据语音指令播放目标视频外,也可以由终端独立完成根据语音指令播放目标视频的操作,即在终端中运行有语音识别系统(其中包括解码网络)的情况下,终端可以独立地对用户输入的语音指令进行语音识别,进而根据语音识别结果生成控制指令,控制播放语音指令中的目标视频。
在第三种可能的实现方式中,本申请实施例提供的语音识别方法可以应用于控制终端(如智能导航设备等)进行路线导航的应用场景中。为了适用于该种应用场景,生成解码网络时,需要基于包括有地理位置名称槽位的类语言模型构建基础解码网络,应理解,地理位置名称槽位对应的差分语言模型主要用于识别地理位置名称,如特定的商场名称、公园名称等等。
通过上述基于包括地理位置名称槽位的类语言模型构建的解码网络,服务器采用图5a所示的语音识别方法,对智能设备发送的待识别的语音进行识别得到对应的识别结果后,相应地根据该识别结果生成与其匹配的控制指令,进而向智能设备发送该控制指令,以指示智能设备根据目标地理位置进行导航。
例如,假设用户通过智能导航设备输入语音指令“导航至朝阳大悦城”,智能导航设备将相应地传输该语音指令至服务器,服务器基于预先生成的解码网络对语音指令进行语音识别,得到其对应的文字识别结果。服务器根据该文字识别结果可以确定目标地理位置为“朝阳大悦城”,并将该目标地理位置添加至控制指令中发送给智能导航设备,智能导航设备相应地根据该控制指令,确定自身当前所处的位置到目标地理位置“朝阳大悦城”的导航路线。
应理解,在实际应用中,除了可以通过终端与服务器交互的形式,实现根据语音指令进行路线导航外,也可以由终端独立完成根据语音指令进行路线导航的操作,即在终端中运行有语音识别系统(其中包括解码网络)的情况下,终端可以独立地对用户输入的语音指令进行语音识别,进而根据语音识别结果对应的目标地理位置,确定从自身当前所处的位置到该目标地理位置的导航路线。
需要说明的是,本申请实施例提供的语音识别方法并不仅限于应用在上述三种应用场景中,在实际应用中,该语音识别方法可以被应用至各种需要进行语音识别的应用场景,在此不对本申请实施例提供的语音识别方法做任何限定。
针对图2和图3所示的解码网络构建方法,本申请适应性地提出了一种基于该解码网络结构实现的语音识别识别方法,该语音识别方法通过记录包括解码网络的当前网络状态、槽位对应的槽位语言模型的标识、当前网络状态和历史搜索状态的四元组,实现解码过程中的进入槽位对应的差分语言模型解码,以及离开槽位对应的差分语言模型返回基础解码网络解码,保证基于由基础解码网络和槽位对应的差分语言模型构成的解码网络结构顺利地完成语音识别。
需要说明的是,上述图5a所示的语音识别方法通常应用于本申请实施例提供的语音识别交互系统,参见图5b,图5b为本申请实施例提供的语音交互系统的结构示意图。如图5b所示,该语音交互系统包括:语音采集设备510、语音识别设备520和控制设备530,这三者之间可以通过无线信号交互,也可以通过有线信号交互。
其中,语音采集设备510用于通过麦克风采集用户输入的语音;并且语音采集设备510还可以将自身采集的语音信号传输至语音识别设备520。
语音识别设备520用于执行图5a所示的语音识别方法,具体的,语音识别设备520用于通过解码网络中基础解码网络对语音采集设备510采集的语音进行解码,在解码过程中,当解码到达基础解码网络中的槽位时,通过该解码网络中该槽位对应的差分语言模型进行解码,并且保持该解码网络的当前网络状态、该槽位对应的差分语言模型的标识和当前网络状态、以及解码网络的历史搜索状态;当该槽位解码完成时,跳转回基础解码网络继续解码直至解码到语音的最后一帧,得到语音识别结果。语音识别设备520的具体解码过程详细参见图5a所示的语音识别方法对应的描述,此处不再赘述。
语音识别设备520解码得到语音对应的语音识别结果后,将该语音识别结果传输至控制设备530。相应地,控制设备530将根据语音识别设备520识别得到的语音识别结果,执行与该语音识别结果对应的操作。例如,当语音识别结果为控制播放歌曲的控制指令时,控制设备530可以根据控制指令中的歌手名称、歌曲名称等信息,搜索并播放控制指令中提及的歌曲;又例如,当语音识别结果为控制进行路线导航的控制指令时,控制设备530可以根据控制指令中的目的地名称,搜索当前位置到该目的地的导航路线,并根据当前位置的改变实时地进行路线导航。应理解,当语音识别结果为其他类型的控制指令时,控制设备530还可以相应地根据该控制指令执行其他的操作,在此不对控制设备530所能执行的操作类型做任何限定。
在一种可能的实现方式中,语音采集设备510和控制设备530可以集成在同一终端设备上,如智能音箱、智能机器人、智能车载设备等,语音识别设备520可以集成在能够提供语音识别服务的服务器上。例如,语音采集设备510可以为麦克风、麦克风阵列或者其他具有收音功能的元件,控制设备530可以为处理器或者控制器等元件。终端设备上运行的语音采集设备510采集到用户输入的语音后,将该语音发送至服务器上运行的语音识别设备520,语音识别设备520解码该语音得到语音识别结果后,将该语音识别结果传输至终端设备上运行的控制设备530,以使控制设备530执行相应的操作。
在另一种可能的实现方式中,语音采集设备510、语音识别设备520和控制设备530可以均集成在同一终端设备上,如智能音箱、智能机器人、智能车载设备等。即由终端设备独立完成语音的采集、识别,并且根据语音识别结果执行相关操作。
在又一种可能的实现方式中,语音采集设备510可以集成在终端设备上,如智能音箱、智能机器人、智能车载设备等;语音识别设备520和控制设备530可以均集成在提供语音识别服务以及控制指令相关服务的服务器上。终端设备上运行的语音采集设备510采集到用户输入的语音后,将该语音发送至服务器上运行的语音识别设备520,语音识别设备520解码该语音得到语音识别结果后,将该语音识别结果传输至控制设备530,控制设备530可以根据该语音识别结果执行对应的操作,例如,搜索语音识别结果中的歌曲、搜索语音识别结果中目的地的地理位置信息等等,进而,控制设备530可以将自身的搜索结果传输至终端设备,以通过终端设备向用户展示其搜索结果。
应理解,在实际应用中,上述语音采集设备510、语音识别设备520和控制设备530还可以通过其他方式集成在其他设备上,在此不对语音采集设备510、语音识别设备520和控制设备530的载体做任何限定。
为了便于进一步理解本申请实施例提供的解码网络生成方法和语音识别方法,下面以本申请实施例提供的方法应用在基于语音指令控制播放音乐的应用场景为例,对本申请实施例提供的方法做整体性介绍。
在实际应用中,服务器需要先构建基础解码网络。具体的,服务器可以获取大量的用于控制播放音乐的指令文本,例如,我想听吻别,播放白鸟,等等。在短语层面对这些用于控制播放音乐的指令文本进行分块处理,得到各指令文本各自对应的短语层的文本样本,然后,将各短语层的文本样本中各变量对应的分块相应地替换为其所属类别对应的槽位名称,例如,将短语层的文本样本“我想听吻别”中的“吻别”,替换为歌曲名称对应的槽位名称SONG-SLOT,如此,得到各短语层的文本样本各自对应的带槽位名称的文本样本,利用这些带槽位名称的文本样本组成第三训练样本集,进而,利用该第三训练样本集训练得到类语言模型,该类语言模型具体可以为n-gram模型。
然后,将该类语言模型和通用语言模型进行插值处理得到插值语言模型,并调用相关语言模型工具对该插值语言模型进行裁剪,得到该插值语言模型对应的基础压缩模型。
接着,根据类语言模型中各槽位各自对应的第二训练样本集,训练生成各槽位各自对应的语言模型。例如,训练歌曲名称槽位对应的语言模型时,可以利用包括大量歌曲名称的第二训练样本集,训练得到歌曲名称对应的语言模型;又例如,训练歌手名称槽位对应的语言模型时,可以利用包括大量歌手名称的第二训练样本集,训练得到歌手名称对应的语言模型。训练得到各槽位各自对应语言模型后,调用相关语言模型工具对各槽位各自对应的槽位语言模型进行裁剪,得到各槽位各自对应的基础压缩语言模型。应理解,在实际应用中,带槽位的语言模型中可以包括一个槽位,也可以包括多个槽位。进而,调用相关语言模型工具将经上述操作得到的压缩插值语言模型转换为WFST网络即基础主网络,将经上述操作得到的各槽位各自对应的基础压缩语言模型转换为对应的WFST网络即子网络,进而将各槽位各自对应的子网络嵌入至基础主网络中,得到基础解码网络。
利用各槽位各自对应的语言模型与各槽位各自对应的基础压缩语言模型作差分,得到各槽位各自对应的差分语言模型,进而将各槽位各自对应的差分语言模型转换为WFST网络或树状结构,将其与基础解码网络相应地结合起来得到初始的解码网络。
当存在新增词条,需要对上述解码网络进行更新时,服务器可以先确定新增词条对应的槽位为目标槽位,进而获取该目标槽位对应的第二训练样本集,利用新增词条和第二训练样本集中各训练样本组成第一训练样本集,利用该第一训练样本集训练得到目标槽位对应的语言模型,利用该语言模型对基础解码网络中该目标槽位对应的基础压缩语言模型作差分,得到该目标槽位对应的新的差分语言模型,利用该差分语言模型替换原解码网络中该目标槽位对应的差分语言模型,即可实现对于原解码网络的更新,得到目标解码网络。
在实际应用中,服务器可以获取智能设备传输的待识别的语音,先通过解码网络中的基础解码网络对该语音进行解码,在解码过程中,当解码令牌遇到解码网络中的槽位时,通过该槽位对应的差分语言模型进行解码,并且保存由解码网络的当前网络状态、该槽位对应的差分语言模型的标识和当前网络状态以及历史搜索状态组成的四元组信息。在通过槽位节点完成解码后,跳转回解码网络中的基础解码网络继续解码,直至解码到该语音的最后一帧为止。
经上述语音识别过程,确定出待识别的语音对应的文字识别结果后,服务器可以进一步基于该文字识别结果确定待识别的语音指示播放的目标歌曲,进而在用于存储歌曲的数据库中获取该目标歌曲,将该目标歌曲添加至控制指令中返回给智能设备,以使智能设备播放该目标歌曲。
针对上文描述的解码网络生成方法和语音识别方法,本申请还提供了对应的解码网络生成装置和语音识别装置,以使上述解码网络生成方法和语音识别方法在实际中得以应用和实现。
参见图6,图6是与上文图2所示的解码网络生成方法对应的一种解码网络生成装置600的结构示意图,该解码网络生成装置600包括:
差分语言模型生成模块601,用于根据第一训练样本集训练得到目标槽位对应的语言模型,对所述语言模型和所述目标槽位对应的基础压缩语言模型进行差值,得到所述目标槽位对应的差分语言模型;
解码网络构建模块602,用于根据所述槽位差分语言模型和基础解码网络构建目标解码网络;其中,所述基础解码网络是通过类语言模型和所述类语言模型中的槽位对应的槽位基础压缩语言模型构建生成的;其中,所述槽位基础压缩语言模型是对通过第二训练样本集训练所得的槽位对应的语言模型进行裁剪生成的,所述第二训练样本集是所述第一训练样本集的子集,所述目标槽位是所述类语言模型中槽位。
可选的,在图6所示的解码网络生成装置的基础上,参见图7,图7为本申请实施例提供的另一种解码网络生成装置的结构示意图。如图7所示,该解码网络生成装置700还包括:
类语言模型生成模块701,用于确定第三训练样本集,所述第三训练样本集包括带槽位名称的文本样本,根据第三训练样本集训练得到所述类语言模型;
基础压缩语言模型生成模块702,用于根据所述类语言模型中槽位对应的所述第二训练样本集,训练得到所述槽位对应的语言模型,裁剪所述槽位对应的语言模型得到所述槽位对应的基础压缩语言模型;
基础解码网络生成模块703,用于根据所述类语言模型和所述槽位对应的基础压缩语言模型生成基础解码网络。
可选的,在图7所示的解码网络生成装置的基础上,所述基础解码网络生成模块703具体用于:
对所述类语言模型和通用语言模型进行插值处理得到插值语言模型,裁剪所述插值语言模型得到压缩插值语言模型;
根据所述压缩插值语言模型和所述槽位对应的基础压缩语言模型生成基础解码网络。
可选的,在图7所示的解码网络生成装置的基础上,所述类语言模型生成模块701具体用于:
对文本样本进行短语级分块处理得到短语层的文本样本;
将所述短语层的文本样本中属于槽位类别的文本块替换为槽位名称,根据带槽位名称的文本样本生成所述第三训练样本集;
根据所述第三训练样本集中带槽位名称的文本样本训练得到类语言模型,所述类语言模型为n-gram语言模型。
可选的,在图7所示的解码网络生成装置的基础上,所述基础解码网络生成模块703具体用于:
将所述类语言模型转换成加权有限状态机WFST网络,作为基础主网络;
将所述类语言模型中槽位对应的基础压缩语言模型,转换成加权有限状态机WFST网络,作为槽位对应的子网络;
将所述类语言模型中各槽位对应的子网络嵌入所述基础主网络中得到所述基础解码网络。
可选的,在图6所示的解码网络生成装置的基础上,所述解码网络构建模块602具体用于:
将所述差分语言模型转换成树状结构网络或加权有限状态机WFST网络,作为第一网络;
将所述第一网络和所述基础解码网络融合生成目标解码网络。
可选的,在图6所示的解码网络生成装置的基础上,所述类语言模型包括多个槽位。
可选的,在图6所示的解码网络生成装置的基础上,所述类语言模型包括创作者槽位和音频名称槽位。
上述解码网络生成装置另辟蹊径提出了一种新的解码网络架构,该解码网络由基础解码网络和槽位对应的差分语言模型构成,其中,基础解码网络是通过类语言模型和类语言模型中槽位对应的基础压缩语言模型构建生成的。当存在新增词条需要对解码网络进行更新时,仅需通过对目标槽位对应的差分语言模型进行更新即可。也就是说,该装置通过对目标槽位对应的语言模型和该目标槽位对应的基础压缩语言模型做差分处理,即可实现对于解码网络的更新,无需重新构建解码网络,大大提高了解码网络的迭代更新速度,使得解码网络可以及时地适配不断变化的应用环境。
参见图8,图8是与上文图5所示的语音识别方法对应的一种语音识别装置800的结构示意图,该语音识别装置800包括:
获取模块801,用于获取待识别的语音;
识别模块802,用于通过解码网络中基础解码网络对所述语音进行解码,在解码过程中,当解码到达所述基础解码网络中槽位时,通过所述解码网络中所述槽位对应的差分语言模型进行解码,并保存所述解码网络的当前网络状态、所述槽位对应的差分语言模型的标识和当前网络状态以及所述解码网络的历史搜索状态;以及,当所述槽位解码完成时,跳转至所述基础解码网络继续解码直到解码至所述语音的最后一帧。
可选的,在图8所示的语音识别装置的基础上,所述类语言模型包括创作者槽位和音频名称槽位,参见图9,图9为本申请实施例提供的另一种语音识别装置。如图9所示,该语音识别装置900还包括:
第一指令生成模块901,用于根据所述语音的识别结果,生成与所述识别结果匹配的控制指令;
第一指示模块902,用于向智能设备发送所述控制指令,指示所述智能设备播放目标音频。
可选的,在图8所示的语音识别装置的基础上,所述类语言模型包括视频名称槽位,参见图10,图10为本申请实施例提供的另一种语音识别装置。如图10所示,该语音识别装置1000还包括:
第二指令生成模块1001,用于根据所述语音的识别结果,生成与所述识别结果匹配的控制指令;
第二指示模块1002,用于向智能设备发送所述控制指令,指示所述智能设备播放目标视频。
可选的,在图8所示的语音识别装置的基础上,所述类语言模型包括地理位置名称槽位,参见图11,图11为本申请实施例提供的另一种语音识别装置。如图11所示,该语音识别装置1100还包括:
第三指令生成模块1101,用于根据所述语音的识别结果,生成与所述识别结果匹配的控制指令;
第三指示模块1102,用于向智能设备发送所述控制指令,指示所述智能设备根据目标地理位置进行导航。
上述语音识别装置通过记录包括解码网络的当前网络状态、槽位对应的槽位语言模型的标识、当前网络状态和历史搜索状态的四元组,实现解码过程中的进入槽位对应的差分语言模型解码,以及离开槽位对应的差分语言模型返回基础解码网络解码,保证基于由基础解码网络和槽位对应的差分语言模型构成的解码网络结构顺利地完成语音识别。
本申请实施例还提供了一种设备,如图12所示,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请实施例方法部分。该终端可以为包括手机、平板电脑、个人数字助理、销售终端(Point of Sales,POS)、车载电脑等任意终端设备,以终端为手机为例:
图12示出的是与本申请实施例提供的终端相关的手机的部分结构的框图。参考图12,手机包括:射频(Radio Frequency,RF)电路1210、存储器1220、输入单元1230、显示单元1240、传感器1250、音频电路1260、无线保真(wireless fidelity,WiFi)模块1270、处理器1280、以及电源1290等部件。本领域技术人员可以理解,图12中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
存储器1220可用于存储软件程序以及模块,处理器1280通过运行存储在存储器1220的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器1220可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1220可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器1280是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器1220内的软件程序和/或模块,以及调用存储在存储器1220内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器1280可包括一个或多个处理单元;优选的,处理器1280可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1280中。
在本申请实施例中,该终端所包括的处理器1280还具有以下功能:
根据第一训练样本集训练得到目标槽位对应的语言模型,对所述语言模型和所述目标槽位对应的基础压缩语言模型进行差值,得到所述目标槽位对应的差分语言模型;
根据所述差分语言模型和基础解码网络构建目标解码网络;其中,所述基础解码网络是通过类语言模型和所述类语言模型中的槽位对应的基础压缩语言模型构建生成的;其中,所述基础压缩语言模型是对通过第二训练样本集训练所得的槽位对应的语言模型进行裁剪生成的,所述第二训练样本集是所述第一训练样本集的子集。
可选的,所述处理器1280还用于执行本申请实施例提供的解码网络生成方法的任意一种实现方式的步骤。
在本申请实施例中,该终端所包括的处理器1280还具有以下功能:
获取待识别的语音;
通过解码网络中基础解码网络对所述语音进行解码,在解码过程中,当解码到达所述基础解码网络中槽位时,通过所述解码网络中所述槽位对应的差分语言模型进行解码,并保存所述解码网络的当前网络状态、所述槽位对应的差分语言模型的标识和当前网络状态以及所述解码网络的历史搜索状态;以及,当所述槽位解码完成时,跳转至所述基础解码网络继续解码直到解码至所述语音的最后一帧。
可选的,所述处理器1280还用于执行本申请实施例提供的语音识别方法的任意一种实现方式的步骤。
本申请实施例还提供了另一种设备,该设备可以是服务器,图13是本申请实施例提供的一种服务器结构示意图,该服务器1300可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)1322(例如,一个或一个以上处理器)和存储器1332,一个或一个以上存储应用程序1342或数据1344的存储介质1330(例如一个或一个以上海量存储设备)。其中,存储器1332和存储介质1330可以是短暂存储或持久存储。存储在存储介质1330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1322可以设置为与存储介质1330通信,在服务器1300上执行存储介质1330中的一系列指令操作。
服务器1300还可以包括一个或一个以上电源1326,一个或一个以上有线或无线网络接口1350,一个或一个以上输入输出接口1358,和/或,一个或一个以上操作系统1341,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由服务器所执行的步骤可以基于该图13所示的服务器结构。
其中,CPU 1322用于执行如下步骤:
根据第一训练样本集训练得到目标槽位对应的语言模型,对所述语言模型和所述目标槽位对应的基础压缩语言模型进行差值,得到所述目标槽位对应的差分语言模型;
根据所述差分语言模型和基础解码网络构建目标解码网络;其中,所述基础解码网络是通过类语言模型和所述类语言模型中的槽位对应的基础压缩语言模型构建生成的;其中,所述基础压缩语言模型是对通过第二训练样本集训练所得的槽位对应的语言模型进行裁剪生成的,所述第二训练样本集是所述第一训练样本集的子集。
可选的,CPU 1322还用于执行本申请实施例提供的解码网络生成方法的任意一种实现方式的步骤。
其中,CPU 1322还可以用于执行如下步骤:
获取待识别的语音;
通过解码网络中基础解码网络对所述语音进行解码,在解码过程中,当解码到达所述基础解码网络中槽位时,通过所述解码网络中所述槽位对应的差分语言模型进行解码,并保存所述解码网络的当前网络状态、所述槽位对应的差分语言模型的标识和当前网络状态以及所述解码网络的历史搜索状态;以及,当所述槽位解码完成时,跳转至所述基础解码网络继续解码直到解码至所述语音的最后一帧。
可选的,CPU 1322还可以用于执行本申请实施例提供的语音识别方法的任意一种实现方式的步骤。
本申请实施例还提供一种计算机可读存储介质,用于存储计算机程序,该计算机程序用于执行前述各个实施例所述的一种解码网络生成方法或语音识别方法中的任意一种实施方式。
本申请实施例还提供一种包括指令的计算机程序产品,当其在计算机上运行时,使得计算机执行前述各个实施例所述的一种解码网络生成方法或语音识别方法中的任意一种实施方式。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文全称:Read-OnlyMemory,英文缩写:ROM)、随机存取存储器(英文全称:Random Access Memory,英文缩写:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (14)

1.一种解码网络生成方法,其特征在于,包括:
根据第一训练样本集训练得到目标槽位对应的语言模型,对所述语言模型和所述目标槽位对应的基础压缩语言模型进行差值,得到所述目标槽位对应的差分语言模型;
将所述差分语言模型转换成树状结构网络或加权有限状态机WFST网络,作为第一网络;
将所述第一网络和基础解码网络融合生成目标解码网络;其中,所述基础解码网络是通过类语言模型和所述类语言模型中的槽位对应的基础压缩语言模型构建生成的;其中,所述基础压缩语言模型是对通过第二训练样本集训练所得的槽位对应的语言模型进行裁剪生成的,所述第二训练样本集是所述第一训练样本集的子集,所述第二训练样本集包括用于训练所述基础解码网络中所述目标槽位对应的压缩语言模型所使用的训练样本;所述第一训练样本集是通过将新增词条与所述第二训练样本集中的所述训练样本组合起来构成的。
2.根据权利要求1所述的方法,其特征在于,通过以下方式构建所述基础解码网络:
确定第三训练样本集,所述第三训练样本集包括带槽位名称的文本样本,根据第三训练样本集训练得到所述类语言模型;
根据所述类语言模型中槽位对应的所述第二训练样本集,训练得到所述槽位对应的语言模型,裁剪所述槽位对应的语言模型得到所述槽位对应的基础压缩语言模型;
根据所述类语言模型和所述槽位对应的基础压缩语言模型生成基础解码网络。
3.根据权利要求2所述的方法,其特征在于,所述根据所述类语言模型和所述槽位对应的基础压缩语言模型生成基础解码网络,包括:
对所述类语言模型和通用语言模型进行插值处理得到插值语言模型,裁剪所述插值语言模型得到压缩插值语言模型;
根据所述压缩插值语言模型和所述槽位对应的基础压缩语言模型生成基础解码网络。
4.根据权利要求2所述的方法,其特征在于,所述根据第三训练样本集训练得到所述类语言模型,包括:
对文本样本进行短语级分块处理得到短语层的文本样本;
将所述短语层的文本样本中属于槽位类别的文本块替换为槽位名称,根据带槽位名称的文本样本生成所述第三训练样本集;
根据所述第三训练样本集中带槽位名称的文本样本训练得到类语言模型,所述类语言模型为n-gram语言模型。
5.根据权利要求2所述的方法,其特征在于,所述根据所述类语言模型和所述槽位对应的基础压缩语言模型生成基础解码网络,包括:
将所述类语言模型转换成加权有限状态机WFST网络,作为基础主网络;
将所述类语言模型中槽位对应的基础压缩语言模型,转换成加权有限状态机WFST网络,作为槽位对应的子网络;
将所述类语言模型中各槽位对应的子网络嵌入所述基础主网络中得到所述基础解码网络。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述类语言模型包括多个槽位。
7.一种语音识别方法,其特征在于,包括:
获取待识别的语音;
通过解码网络中基础解码网络对所述语音进行解码,在解码过程中,当解码到达所述基础解码网络中槽位时,通过所述解码网络中所述槽位对应的差分语言模型进行解码,并保存所述解码网络的当前网络状态、所述槽位对应的差分语言模型的标识和当前网络状态以及所述解码网络的历史搜索状态;以及,当所述槽位解码完成时,跳转至所述基础解码网络继续解码直到解码至所述语音的最后一帧;
所述解码网络包括所述基础解码网络和各槽位各自对应的所述差分语言模型,其中,所述基础解码网络由类语言模型和所述类语言模型中各槽位对应的基础压缩语言模型构建生成,所述基础解码网络还包括通用语言模型;所述差分语言模型为利用基于目标槽位对应的第一训练样本集训练得到的语言模型对所述目标槽位的所述基础压缩语言模型进行差分得到的模型。
8.根据权利要求7所述的方法,其特征在于,所述类语言模型包括创作者槽位和音频名称槽位;
则所述方法还包括:
根据所述语音的识别结果,生成与所述识别结果匹配的控制指令;
向终端发送所述控制指令,指示所述终端播放目标音频。
9.根据权利要求7所述的方法,其特征在于,所述类语言模型包括视频名称槽位;
则所述方法还包括:
根据所述语音的识别结果,生成与所述识别结果匹配的控制指令;
向终端发送所述控制指令,指示所述终端播放目标视频。
10.一种语音交互系统,其特征在于,包括:
语音采集设备,用于通过麦克风采集用户输入的语音;
语音识别设备,用于通过解码网络中基础解码网络对所述语音采集设备采集的语音进行解码,在解码过程中,当解码到达所述基础解码网络中槽位时,通过所述解码网络中所述槽位对应的差分语言模型进行解码,并保存所述解码网络的当前网络状态、所述槽位对应的差分语言模型的标识和当前网络状态以及所述解码网络的历史搜索状态;以及,当所述槽位解码完成时,跳转至所述基础解码网络继续解码直到解码至所述语音的最后一帧,获得语音识别结果,所述解码网络包括所述基础解码网络和各槽位各自对应的所述差分语言模型,其中,所述基础解码网络由类语言模型和所述类语言模型中各槽位对应的基础压缩语言模型构建生成,所述基础解码网络还包括通用语言模型;所述差分语言模型为利用基于目标槽位对应的第一训练样本集训练得到的语言模型对所述目标槽位的所述基础压缩语言模型进行差分得到的模型;
控制设备,用于根据所述语音识别设备获得的语音识别结果,执行与所述语音识别结果对应的操作。
11.一种解码网络生成装置,其特征在于,包括:
差分语言模型生成模块,用于根据第一训练样本集训练得到目标槽位对应的语言模型,对所述语言模型和所述目标槽位对应的基础压缩语言模型进行差值,得到所述目标槽位对应的差分语言模型;
解码网络构建模块,用于将所述差分语言模型转换成树状结构网络或加权有限状态机WFST网络,作为第一网络,将所述第一网络和基础解码网络融合生成目标解码网络;其中,所述基础解码网络是通过类语言模型和所述类语言模型中的槽位对应的槽位基础压缩语言模型构建生成的;其中,所述槽位基础压缩语言模型是对通过第二训练样本集训练所得的槽位对应的语言模型进行裁剪生成的,所述第二训练样本集是所述第一训练样本集的子集,所述第二训练样本集包括用于训练所述基础解码网络中所述目标槽位对应的压缩语言模型所使用的训练样本;所述第一训练样本集是通过将新增词条与所述第二训练样本集中的所述训练样本组合起来构成的。
12.一种语言识别装置,其特征在于,包括:
获取模块,用于获取待识别的语音;
识别模块,用于通过解码网络中基础解码网络对所述语音进行解码,在解码过程中,当解码到达所述基础解码网络中槽位时,通过所述解码网络中所述槽位对应的差分语言模型进行解码,并保存所述解码网络的当前网络状态、所述槽位对应的差分语言模型的标识和当前网络状态以及所述解码网络的历史搜索状态;以及,当所述槽位解码完成时,跳转至所述基础解码网络继续解码直到解码至所述语音的最后一帧,所述解码网络包括所述基础解码网络和各槽位各自对应的所述差分语言模型,其中,所述基础解码网络由类语言模型和所述类语言模型中各槽位对应的基础压缩语言模型构建生成,所述基础解码网络还包括通用语言模型;所述差分语言模型为利用基于目标槽位对应的第一训练样本集训练得到的语言模型对所述目标槽位的所述基础压缩语言模型进行差分得到的模型。
13.一种设备,其特征在于,所述设备包括处理器以及存储器:
所述存储器用于存储计算机程序;
所述处理器用于根据所述计算机程序执行权利要求1至9任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行权利要求1至9任一项所述的方法。
CN201910424817.4A 2019-05-21 2019-05-21 解码网络生成方法、语音识别方法、装置、设备及介质 Active CN110148403B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910424817.4A CN110148403B (zh) 2019-05-21 2019-05-21 解码网络生成方法、语音识别方法、装置、设备及介质
CN201910745811.7A CN110428819B (zh) 2019-05-21 2019-05-21 解码网络生成方法、语音识别方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910424817.4A CN110148403B (zh) 2019-05-21 2019-05-21 解码网络生成方法、语音识别方法、装置、设备及介质

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201910745811.7A Division CN110428819B (zh) 2019-05-21 2019-05-21 解码网络生成方法、语音识别方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN110148403A CN110148403A (zh) 2019-08-20
CN110148403B true CN110148403B (zh) 2021-04-13

Family

ID=67592352

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201910745811.7A Active CN110428819B (zh) 2019-05-21 2019-05-21 解码网络生成方法、语音识别方法、装置、设备及介质
CN201910424817.4A Active CN110148403B (zh) 2019-05-21 2019-05-21 解码网络生成方法、语音识别方法、装置、设备及介质

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201910745811.7A Active CN110428819B (zh) 2019-05-21 2019-05-21 解码网络生成方法、语音识别方法、装置、设备及介质

Country Status (1)

Country Link
CN (2) CN110428819B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111063347B (zh) * 2019-12-12 2022-06-07 安徽听见科技有限公司 实时语音识别方法、服务端及客户端
CN111261144B (zh) * 2019-12-31 2023-03-03 华为技术有限公司 一种语音识别的方法、装置、终端以及存储介质
CN111415655B (zh) * 2020-02-12 2024-04-12 北京声智科技有限公司 语言模型构建方法、装置及存储介质
CN113468303B (zh) * 2021-06-25 2022-05-17 贝壳找房(北京)科技有限公司 对话交互处理方法及计算机可读存储介质
CN114242046B (zh) * 2021-12-01 2022-08-16 广州小鹏汽车科技有限公司 语音交互方法及装置、服务器及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103971685A (zh) * 2013-01-30 2014-08-06 腾讯科技(深圳)有限公司 语音命令识别方法和系统
US20140244261A1 (en) * 2013-02-22 2014-08-28 International Business Machines Corporation Conversion of non-back-off language models for efficient speech decoding
CN105529027A (zh) * 2015-12-14 2016-04-27 百度在线网络技术(北京)有限公司 语音识别方法和装置
CN105869624A (zh) * 2016-03-29 2016-08-17 腾讯科技(深圳)有限公司 数字语音识别中语音解码网络的构建方法及装置
CN108305634A (zh) * 2018-01-09 2018-07-20 深圳市腾讯计算机系统有限公司 解码方法、解码器及存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5963903A (en) * 1996-06-28 1999-10-05 Microsoft Corporation Method and system for dynamically adjusted training for speech recognition
CN1295676C (zh) * 2004-09-29 2007-01-17 上海交通大学 一种语音识别中的状态结构调整方法
CN105185372B (zh) * 2015-10-20 2017-03-22 百度在线网络技术(北京)有限公司 个性化多声学模型的训练方法、语音合成方法及装置
CN107766559B (zh) * 2017-11-06 2019-12-13 第四范式(北京)技术有限公司 对话模型的训练方法、训练装置、对话方法及对话系统
CN108922543B (zh) * 2018-06-11 2022-08-16 平安科技(深圳)有限公司 模型库建立方法、语音识别方法、装置、设备及介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103971685A (zh) * 2013-01-30 2014-08-06 腾讯科技(深圳)有限公司 语音命令识别方法和系统
US20140244261A1 (en) * 2013-02-22 2014-08-28 International Business Machines Corporation Conversion of non-back-off language models for efficient speech decoding
CN105529027A (zh) * 2015-12-14 2016-04-27 百度在线网络技术(北京)有限公司 语音识别方法和装置
CN105869624A (zh) * 2016-03-29 2016-08-17 腾讯科技(深圳)有限公司 数字语音识别中语音解码网络的构建方法及装置
CN108305634A (zh) * 2018-01-09 2018-07-20 深圳市腾讯计算机系统有限公司 解码方法、解码器及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
《WFST解码器词图生成算法中的非活跃节点检测与内存优化》;丁佳伟等;《中国科学院大学学报》;20190131;第36卷(第1期);第109-114页 *
《大规模词表连续语音识别引擎紧致动态网络的构建》;刘加等;《清华大学学报(自然科学版)》;20121130;第52卷(第11期);第1530-1534页 *

Also Published As

Publication number Publication date
CN110148403A (zh) 2019-08-20
CN110428819B (zh) 2020-11-24
CN110428819A (zh) 2019-11-08

Similar Documents

Publication Publication Date Title
CN110148403B (zh) 解码网络生成方法、语音识别方法、装置、设备及介质
CN111933129B (zh) 音频处理方法、语言模型的训练方法、装置及计算机设备
CN106683677B (zh) 语音识别方法及装置
JP3696231B2 (ja) 言語モデル生成蓄積装置、音声認識装置、言語モデル生成方法および音声認識方法
EP0954856B1 (en) Context dependent phoneme networks for encoding speech information
CN1196105C (zh) 给用户提供声音反馈的可扩展语音识别系统
CN104157285B (zh) 语音识别方法、装置及电子设备
CN102176310B (zh) 具有巨大词汇量的语音识别系统
KR20080068844A (ko) 텍스트 메타데이터를 갖는 음성문서의 인덱싱 및 검색방법, 컴퓨터 판독가능 매체
KR20080069990A (ko) 음성 세그먼트 색인 및 검색 방법과 컴퓨터 실행 가능명령어를 갖는 컴퓨터 판독 가능 매체
CN106847265A (zh) 用于使用搜索查询信息的言语识别处理的方法和系统
US20080201147A1 (en) Distributed speech recognition system and method and terminal and server for distributed speech recognition
CN112420026A (zh) 优化关键词检索系统
CN1551103B (zh) 用于语音识别和自然语言理解的具有合成统计和基于规则的语法模型的系统
CN109741735A (zh) 一种建模方法、声学模型的获取方法和装置
CN104282301A (zh) 一种语音命令处理方法以及系统
CN113113024A (zh) 语音识别方法、装置、电子设备和存储介质
CN111326144B (zh) 语音数据处理方法、装置、介质和计算设备
KR101905827B1 (ko) 연속어 음성 인식 장치 및 방법
CN112133285B (zh) 语音识别方法、装置、存储介质和电子设备
CN111414748A (zh) 话务数据处理方法及装置
CN109559752B (zh) 语音识别方法和装置
TWI731921B (zh) 語音識別方法及裝置
CN112397053B (zh) 语音识别方法、装置、电子设备及可读存储介质
KR101482148B1 (ko) 개인화된 발음열을 이용한 그룹 매핑 데이터 생성 서버, 음성 인식 서버 및 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant