具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
本发明使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”。
需要注意,本发明中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
实施例一
图1为本发明实施例一提供的一种语言模型的自适应训练方法的流程示意图,该方法可以由语言模型的自适应训练装置来执行,其中该装置可由软件和/或硬件实现,并一般集成在计算机设备上。如图1所示,本发明实施例一提供的一种语言模型的自适应训练方法,包括如下步骤:
S110、实时在线获取新增训练语料;
示例性地,本发明实施例中的语言模型是端到端的语言识别系统中的语言模型,具体可以为深度语言模型。训练语料来源于日常生活中的各个方面,而新增训练语料表示对现有训练语料的补充,其可以是针对特定应用场景的新的词语、语句等,也可以是日益增加和更新的日常用语或专业用语等;可以理解,在网络、科技发展的社会,语言、文字等也在更新和发展,此处的新增训练语料也包含新创造的语言和文字等,此次不做限制。
新增训练语料为已有训练语料和语言模型的基础上,人为添加的训练语料,用语对已有语言模型进行更新,实现自适应语音识别。
S120、对新增训练语料进行语言模型训练并积累,编译形成动态识别搜索图;
本领域技术人员可以理解,语言模型的语音识别过程,一般需要编译转换为识别搜索图,加载在识别器上以实现语音识别过程。此处,将新增训练语料通过语言模型训练和积累,编译形成动态识别搜索图的过程,实质上是赋予新的语言模型对新增训练语料的语音识别能力的过程。可以理解,此处的动态识别搜索图实质上是创建了基于新增训练语料的语言模型概率。
S130、将动态识别搜索图作为子图,插入到静态识别搜索图的预先设定的槽位中,形成自适应识别搜索图以进行自适应语言识别。
图2是本发明实施例提供的动态识别搜索图插入静态识别搜索图的原理示意图,参考图2,静态识别搜索图是基于离线训练更新的语言模型编译形成,其负责主要的、基础的和初始的语言识别功能。本实施例重点在于,在静态识别搜索图中预先设置槽位,可以在该槽位中增加新的子语言模型,其可定义为动态识别搜索图的热插拔技术,实现了一个实时动态搜索识别图的编译系统,让维护者可以按需通过界面输入需要补充的文本语料,实时编译动态搜索识别图。在实际的识别过程中,解码器卸下原有的旧静态识别搜索图,通过插入新的动态识别搜索图即可继续工作,并能识别之前不能识别的语言样本。
本实施例能够实现上述的动态识别搜索图的动态插入,即实现语言识别的修正功能,原理就在于统计语言模型的概率上下文连续性。需要修正的识别文本,通过人为添加,在动态识别搜索图的语言模型中获得充分学习,并且保留了较好的语言模型概率。在经过插入到原来已经均衡设计过的静态识别搜索图中的槽位中时,新增加的词和新的说法可以整体融入到原来的大静态语言模型的上下文概率环境中,让新增加的词不仅在完全吻合添加文本说法的情况下能够被识别,同时也由于继承了原来静态大语言模型的上下文概率,在其他句式中出现新词以及新说法的时候,同样能够得到较好的语言模型概率,从而得以进行语音识别。
本发明实施例一提供的一种语言模型的自适应训练方法,首先通过实时在线获取新增训练语料;然后对新增训练语料进行语言模型训练并积累,编译形成动态识别搜索图;再将动态识别搜索图作为子图,插入到静态识别搜索图的预先设定的槽位中,最后形成自适应识别搜索图以进行自适应语言识别。本发明实施例利用上述技术方案,能够使运行中的语音识别服务在不停服的情况下动态热更新和添加错误识别文本和其他生僻词,新增词文本的修正语言模型数据,从而可以随时修正错误,增强识别性能、不需要回归测试,大大提高效率和维护成本。
在上述实施例的基础上,提出了上述实施例的变型实施例,在此需要说明的是,为了使描述简要,在变型实施例中仅描述与上述实施例的不同之处。
在一个具体实施例中新增训练语料可包括未存在于静态语言模型对应的训练语料库中的训练语料、未能由静态识别搜索图识别的训练语料和由静态识别搜索图识别错误的训练语料中的至少一种。
此外,在本发明的一个实施例中,可设置静态识别搜索图根据静态语言模型以及相应的声学模型和发音字典通过编译获得。具体地,静态语言模型采用n元文法n-gram进行语言模型分词训练获得,其中,n大于或等于3。n-gram是基于统计的语言模型,语言本身是上下文相关的,n-gram假设第n个词与前n-1个词相关,句子的概率是各个词出现概率的乘积。在利用n-gram进行语言训练的基础上,能够保证静态语言模型具备深度语言模型的特性,能够提高语言的识别效率和成功率。
实施例二
图3为本发明实施例二提供的一种语言模型的自适应训练方法的流程示意图,本实施例二在上述各实施例的基础上进行优化。在本实施例中,将S120、对新增训练语料进行语言模型训练并积累,编译形成动态识别搜索图,进一步具体化为:S221、对新增训练语料进行语言模型训练并积累,形成动态语言模型;S222、根据动态语言模型以及相应的声学模型和发音字典,编译获得动态识别搜索图。
进一步地,本实施例还将S221、对新增训练语料进行语言模型训练并积累,形成动态语言模型,进一步优化为:采用n元文法n-gram对新增训练语料进行语言模型分词训练并积累,形成动态语言模型,其中,n大于或等于3。在上述优化的基础上,将S130、将动态识别搜索图作为子图,插入到静态识别搜索图的预先设定的槽位中,形成自适应识别搜索图以进行自适应语言识别,具体优化为:S231、在静态语言模型中引入特殊字符<SUB>,特殊字符<SUB>用于随机挑选静态语言模型对应的训练语料中语句的单词,并进行随机替换添加为新语句;S232、将动态识别搜索图作为字符,替换特殊字符<SUB>。
本实施例尚未详尽的内容请参考实施例一。
图4是本发明实施例二提供的自适应训练的流程图,下面参考实施例中的图3以及本实施例的图4,对本发明实施例提供的语言模型的自适应训练方法进行具体介绍。首先,参见图2,本发明实施例二提供的一种语言模型的自适应训练方法包括如下步骤:
S210、实时在线获取新增训练语料;
S221、对新增训练语料进行语言模型训练并积累,形成动态语言模型;
S222、根据动态语言模型以及相应的声学模型和发音字典,编译获得动态识别搜索图。
S231、在静态语言模型中引入特殊字符<SUB>,特殊字符<SUB>用于随机挑选静态语言模型对应的训练语料中语句的单词,并进行随机替换添加为新语句;
参看图3和图4,其中,为了在静态语言模型中开一个合适的slot槽位,本实施例引入一个特殊字符<SUB>,利用该字符随机挑选训练语料中某些句子中的某个单词,进行随机替换后添加为新句子。这样就可以训练出一个<SUB>特殊词的1-gram在其他n-gram里面的上下文跳转概率,并且这个概率是较大的一个概率,以利于后面插入动态识别搜索图之后,动态识别搜索图中的内容能够得到较好的上下文概率。
静态识别搜索图的原始ARPA语言模型经过这个处理之后,<SUB>将作为一个可以被替换的插入槽位,编译之后,<SUB>在搜索图中被标记为一个特殊位置,为后续插入动态识别搜索图做准备。
S232、将动态识别搜索图作为字符,替换特殊字符<SUB>。
具体地,将动态识别搜索图插入静态识别搜索图中(专门开发的功能模块),找到<SUB>位置相连接的上下文,将动态识别搜索图整体当做一个词,替换与<SUB>这个特殊槽位,将与<SUB>起始点和结束点相连接的所有的连接重新连接到动态识别搜索图的起始点和结束点上。
本发明实施例二提供的一种语言模型的自适应训练方法,具体化了动态识别搜索图插入静态搜索识别图的过程,通过在静态搜索识别图中增加特殊字符<SUB>,利用特殊字符<SUB>作为替换的槽位,可使得新插入的动态识别搜索图能够实现与静态识别搜索图中上下文的连接。换言之,可以保证整个静态识别搜索图的语言识别能力的同时,还能兼容动态识别搜索图中新增训练语料的语言识别,实现静态识别搜索图的更新修正。
实施例三
图5为本发明实施例三提供的一种语言模型的自适应训练装置的结构示意图,该装置可由软件和/或硬件实现,并一般集成在计算机设备上,此外,需要说明的是,该自适应训练装置中的语言模型包含于端到端的语音识别系统中。如图3所示,该装置包括:训练语料获取模块100,用于实时在线获取新增训练语料;动态图编译模块200,用于对新增训练语料进行语言模型训练并积累,编译形成动态识别搜索图;静态图编译模块300,用于将动态识别搜索图作为子图,插入到静态识别搜索图的预先设定的槽位中,形成自适应识别搜索图以进行自适应语言识别。
其中,训练语料获取模块100负责接收和获取维护人员输入的新增训练语料,通过动态图编译模块200,能够将该新增的训练语料通过语言模型训练形成相应的小规模的语言模型。而静态图编译模块300则可收纳动态图编译模块200形成的新的动态识别搜索图,将其插入原有的静态识别搜索图中,实现静态识别搜索图的更新和修正,从而弥补原有静态识别搜索图对新生词本或原有训练语料中不包含的词语或语句的识别能力,实现了整个语言模型的自适应训练和语音识别。
在本实施例中,该语言模型的自适应训练装置,首先通过训练语料获取模块实时在线获取新增训练语料;然后利用动态图编译模块对新增训练语料进行语言模型训练并积累,编译形成动态识别搜索图;再由静态图编译模块将动态识别搜索图作为子图,插入到静态识别搜索图的预先设定的槽位中,最后形成自适应识别搜索图以进行自适应语言识别。本发明实施例利用上述技术方案,能够使运行中的语音识别服务在不停服的情况下动态热更新和添加错误识别文本和其他生僻词,新增词文本的修正语言模型数据,从而可以随时修正错误,增强识别性能、不需要回归测试,大大提高效率和维护成本。进一步的,动态图编译模块200可包括动态语言模型训练模块和动态图编译模块,动态语言模型训练模块用于对新增训练语料进行语言模型训练并积累,形成动态语言模型;和动态图编译模块用于根据动态语言模型以及相应的声学模型和发音字典,编译获得动态识别搜索图。
上述语言模型的自适应训练装置可执行本发明任意实施例所提供的语言模型的自适应训练方法,具备执行方法相应的功能模块和有益效果。
实施例四
图6为本发明实施例四提供的一种计算机设备的结构示意图。如图6所示,本发明实施例四提供的计算机设备包括:一个或多个处理器41和存储装置42;该设备中的处理器41可以是一个或多个,图6中以一个处理器41为例;存储装置42用于存储一个或多个程序;所述一个或多个程序被所述一个或多个处理器41执行,使得所述一个或多个处理器41实现如本发明实施例中任一项所述的语言模型的自适应训练方法。
所述设备还可以包括:输入装置43和输出装置44。
设备中的处理器41、存储装置42、输入装置43和输出装置44可以通过总线或其他方式连接,图6中以通过总线连接为例。
该设备中的存储装置42作为一种计算机可读存储介质,可用于存储一个或多个程序,所述程序可以是软件程序、计算机可执行程序以及模块,如本发明实施例一或二所提供语言模型自适应训练方法对应的程序指令/模块(例如,附图5所示的语言模型自适应训练装置中的模块,包括训练语料获取模块100、动态图编译模块200和静态图编译模块300)。处理器41通过运行存储在存储装置42中的软件程序、指令以及模块,从而执行终端设备的各种功能应用以及数据处理,即实现上述方法实施例中语言模型自适应训练方法。
存储装置42可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等。此外,存储装置42可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置42可进一步包括相对于处理器41远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置43可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置44可包括显示屏等显示设备。
并且,当上述设备所包括一个或者多个程序被所述一个或者多个处理器41执行时,程序进行如下操作:
实时在线获取新增训练语料;
对所述新增训练语料进行语言模型训练并积累,编译形成动态识别搜索图;
将所述动态识别搜索图作为子图,插入到静态识别搜索图的预先设定的槽位中,形成自适应识别搜索图以进行自适应语言识别。
实施例五
本发明实施例五提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时用于执行上述实施例提供的语言模型自适应训练方法,该方法包括:实时在线获取新增训练语料;
对所述新增训练语料进行语言模型训练并积累,编译形成动态识别搜索图;
将所述动态识别搜索图作为子图,插入到静态识别搜索图的预先设定的槽位中,形成自适应识别搜索图以进行自适应语言识别。
可选的,该程序被处理器执行时还可以用于执行本发明任意实施例所提供的语言模型自适应训练方法。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(Random AccessMemory,RAM)、只读存储器(Read Only Memory,ROM)、可擦式可编程只读存储器(ErasableProgrammable Read Only Memory,EPROM)、闪存、光纤、便携式CD-ROM、光存储器件、磁存储器件、或者上述的任意合适的组合。计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于:电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、无线电频率(RadioFrequency,RF)等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。