一种基于最小堆的路径存储方法、系统和语音识别器的制造方法

文档序号:10554007阅读:278来源:国知局
一种基于最小堆的路径存储方法、系统和语音识别器的制造方法
【专利摘要】本发明提供了一种基于最小堆的路径存储方法、系统和语音识别器,该方法和系统应用于语音识别器。具体步骤为首先初始化所述语音识别器识别出的活动路径;将初始化后的活动路径向后扩展一帧至所有可能达到的路径;将所有活动路径中打分靠前的预设数量的活动路径保存到一个预设的最小堆中;对最小堆进行倒序拷贝。通过最小堆保存活动路径的手段,能够使操作的复杂度从O(n)降低为O(logn),从而能够相应提高语音识别的效率。
【专利说明】
一种基于最小堆的路径存储方法、系统和语音识别器
技术领域
[0001] 本发明涉及语音识别技术领域,特别是涉及一种基于最小堆的路径存储方法、系 统和语音识别器。
【背景技术】
[0002] 隐马尔科夫模型(Hidden Markov Models,HMM)是对语音信号的时间序列结构建 立的统计模型,可以将其看作数学上的双重随机过程,一个是用具有有限状态数的马儿科 夫模型链来模拟语音信号统计特征变化的隐含的随机过程,另一个是与马尔科夫模型链的 每一个状态相关联的观测序列的随机过程。前者通过后者表现出来,但前者的参数是不可 预测的。同样,人的言语过程实际上也是个双重随机过程,语音信号本身是个可观测的时变 序列,是由大脑根据语法知识和言语需要发出的因素参数流,可见隐马尔科夫模型能够合 理的模仿这一过程,能够很好地描述语音信号的整体非平稳性和局部平稳性,是较为理想 的一种语言模型。
[0003] 基于隐马尔科夫模型的连续语音识别系统声学层的最佳路径识别算法有多种,其 中Vi terb i算法在CPU时间、储存量以及实施方面都较为优越,是实际中经常采用的方法。
[0004] 标准的Viterbi算法是在状态空间中的全局搜索,不存在搜索的误差,因此搜索结 果能够达到全局最优。在连续语音识别系统中,需要搜索的空间是非常庞大的,由此会导致 系统性能下降,而且在搜索过程中,对一些可能性小的路径进行搜索的效率是很低的。为了 解决这个问题,需要采取剪枝策略,放弃可能性小的路径,只在可能性大的路径上进行搜 索,这就是Viterbi Beam算法的基本思想。
[0005] Viterbi Beam算法是个广度优先的帧同步算法,它在不丢失全局最优解的情况 下,在搜索中同时解决连续语音识别中隐马尔科夫模型状态序列和声学观测序列的非线性 时间对准、词边界检测和词识别问题。由于Viterbi算法中的路径扩展具有时间同步性,同 一时刻的各条路径扩展对应于完全相同的观测序列,因此其似然度得分具有可比性。 Viterbi Beam算法因为能够在每一时刻有效地剪裁低得分路径,提高搜索效率。因此, Viterbi Beam算法在连续语音识别中得到了广泛的应用。
[0006] 在基于Viterbi Beam算法的Viterbi Beam语音识别系统中,当每一帧数据在全局 扩展时会扩展出m条路径,需要找到其中累计得分最高的n个活跃路径继续进行扩展,其中n 小于m。由于在识别过程中需要存储大量路径数据,因此如何降低操作复杂度是有效提高语 音识别效率的关键。

【发明内容】

[0007] 本发明实施例所要解决的技术问题是提供一种基于最小堆的路径存储方法,以提 高语音识别器的语音识别效率。
[0008] 相应的,本发明实施例还提供了一种基于最小堆的路径存储系统和语音识别器, 用以保证上述方法的实现及应用。
[0009] 为了解决上述问题,本发明公开了一种基于最小堆的路径存储方法,应用于语音 识别器,包括步骤:
[0010] 初始化所述语音识别器识别出的活动路径;
[0011] 将所述活动路径向后扩展一帧至所有可能达到的路径;
[0012] 将所有活动路径中打分靠前的预设数量的活动路径保存到一个预设的最小堆中;
[0013] 对所述最小堆进行倒序拷贝。
[0014] 优选的,所述将所有活动路径中打分靠前的预设数量的活动路径保存到一个预设 的最小堆中,包括:
[0015] 对所有活动路径进行评分;
[0016] 对所有活动路径进行裁剪,利用所述最小堆保留得分较高的预设数量的活动路 径。
[0017]优选的,所述对所述最小堆进行倒序拷贝,包括:
[0018] 找到所述最小堆中得分最高的活动路径;
[0019] 将所述得分最高的活动路径与最小堆中最后一个活动路径进行位置交换;
[0020] 拷贝所述最小堆中所有的活动路径。
[0021] 优选的,所述最小堆通过手动构造方式进行预置。
[0022] -种基于最小堆的路径存储系统,应用于语音识别器,包括:
[0023] 路径初始化模块,用于初始化所述语音识别器识别出的活动路径;
[0024] 路径扩展模块,用于将所述活动路径向后扩展一帧至所有可能达到的路径;
[0025] 路径保存模块,用于将所有活动路径中打分靠前的预设数量的活动路径保存到一 个预设的最小堆中;
[0026] 路径拷贝模块,用于对所述最小堆进行倒序拷贝。
[0027]优选的,所述路径保存模块包括:
[0028]路径评分单元,用于对所有活动路径进行评分;
[0029]路径剪裁单元,用于对所有活动路径进行裁剪,利用所述最小堆保留得分较高的 预设数量的活动路径。
[0030] 优选的,所述路径拷贝模块包括:
[0031] 路径查找单元,用于找到所述最小堆中得分最高的活动路径;
[0032]位置交换单元,用于将所述得分最高的活动路径与最小堆中最后一个活动路径进 行位置交换;
[0033]拷贝单元,用于拷贝所述最小堆中所有的活动路径。
[0034] 优选的,所述路径保存模块还包括:
[0035] 最小堆构造单元,用于根据供用户通过手动构造方式预置所述最小堆。
[0036] -种语音识别器,设置有如上所述的路径存储系统。
[0037] 从上述技术方案可以看出,本申请提供了一种基于最小堆的路径存储方法、系统 和语音识别器,该方法和系统应用于语音识别器。具体步骤为首先初始化所述语音识别器 识别出的活动路径;将初始化后的活动路径向后扩展一帧至所有可能达到的路径;将所有 活动路径中打分靠前的预设数量的活动路径保存到一个预设的最小堆中;对最小堆进行倒 序拷贝。通过最小堆保存活动路径的手段,能够使操作的复杂度从〇(n)降低为O(logn),从 而能够相应提高语音识别的效率。
【附图说明】
[0038] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其他的附图。
[0039] 图1为本发明提供的一种基于最小堆的路径存储方法实施例的步骤流程图;
[0040] 图2为本发明提供的一种耗用时间图表分析图;
[0041]图3为本发明提供的一种使用内存图表分析图;
[0042]图4为本发明提供的一种基于最小堆的路径存储系统实施例的结构框图。
【具体实施方式】
[0043]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。
[0044] 实施例一
[0045] 图1为本发明提供的一种基于最小堆的路径存储方法实施例的步骤流程图。
[0046] 参照图1所示,本发明提供的基于最小堆的路径存储方法应用于语音识别器,该路 径存储方法具体包括如下步骤:
[0047] S101:初始化活动路径。
[0048] 在语音识别器进行语音识别时,当对第一帧进行识别时,将首先识别出的活动路 径进行初始化,以备后续进一步对活动路径进行扩展。
[0049] S102:将活动路径向后扩展一帧至所有可能达到的路径。
[0050] 将上述初始化后的活动路径向后扩展一帧,在向后扩展时将活动路径或扩展至说 有可能达到的路径,为描述方便,将路径的数量称为m。
[0051 ] S103:将打分较高的活动路径保存到一个预置的最小堆中。
[0052]首先预置一个最小堆,堆是一种经过排序的二叉树,其中任一非终端节点的数据 值均不大于(或不小于)其左孩子和右孩子节点的值。其中最小堆是根节点的键值为所有堆 节点键值最小的堆。
[0053]然后将利用上述的最小堆的方式保存全局m个路径中最好的n个路径,即得分最高 的n个路径,其中n小于m。实现对n个路径进行存储的方法步骤为:
[0054] 1)对所有m个路径进行评分。
[0055]当前状态t被扩展得到的得分为p,对于t的可扩展状态tl.....tm,每个的扩展分 数为pl.....pm,那么扩展后的得分为p*pl......p*pm。
[0056] 2)存储n个得分最高的路径。
[0057]即存储最大的n个得分maxn(p*pl.....p*pm),并将其他的路径进行剪裁舍弃,不 再存储。
[0058] S104:对最小堆进行倒序拷贝。
[0059] 堆在构造完成之后,其中保存的路径都需要被下次扩展的,且下次扩展的时候需 要选择得分较高的路径进行扩展,由于此时的堆属于局部有序,倒序拷贝能够保证首先扩 展的路径都是得分相对较高的路径。且由于首先要扩展的是得分最高的路径,因此需要把 得分最高的状态放在堆的最后一个位置进行拷贝。
[0060] 具体的拷贝过程如下所述:
[0061] 1)找到最小堆中得分最高的活动路径;
[0062] 2)将得分最高的活动路径与最小堆中最后一个活动路径进行位置交换;
[0063] 3)拷贝最小堆中所有的活动路径。
[0064] 在进行完上述步骤后,既可以开始识别下一帧,依次类推完成全部帧的语音识别 过程。
[0065] 从上述技术方案可以看出,本申请提供了一种基于最小堆的路径存储方法,该方 法应用于语音识别器。具体步骤为首先初始化所述语音识别器识别出的活动路径;将初始 化后的活动路径向后扩展一帧至所有可能达到的路径;将所有活动路径中打分靠前的预设 数量的活动路径保存到一个预设的最小堆中;对最小堆进行倒序拷贝。通过最小堆保存活 动路径的办法,能够使操作的复杂度从〇(n)降低为O(logn),从而能够相应提高语音识别的 效率。
[0066]另外,其中预置的最小堆的实现由三种途径,分别为手动构造、C++标准卡的set和 C++标准库的最小堆,通过具体检验三种构造途径的最小堆的具体实现效果如表1所示,其 中只测试10000个元素,因此只测试插入1000~10000个元素。测试环境为:gcc编译器02优 化编译,winlO 64位,CPU 2.2GHZ。

[0069] 表1
[0070] 耗用时间图表分析如图2所示,其中横坐标表示元素个数,纵坐标表示耗用时间 (s) 〇
[0071] 使用内存图表分析如图3所示,其中横坐标表示元素个数,纵坐标表示使用内存 (Mb)〇
[0072] 从上述分析可以看出,无论时耗用时间还是使用内存上,手动构造的最小堆的效 率最尚,效果最好,因此本申请的最小堆手动构造。
[0073]需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组 合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依 据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该 知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施 例所必须的。
[0074]需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组 合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依 据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该 知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施 例所必须的。
[0075] 实施例二
[0076] 图4为本发明提供的一种基于最小堆的路径存储系统实施例的结构框图。
[0077] 参照图4所示,本发明提供的基于最小堆的路径存储系统应用于语音识别器,该路 径存储方法具体包括路径初始化模块10、路径扩展模块20、路径保存模块30和路径拷贝模 块40。
[0078] 路径初始化模块10用于初始化活动路径。
[0079] 即在语音识别器进行语音识别时,当对第一帧进行识别时,将首先识别出的活动 路径进行初始化,以备后续进一步对活动路径进行扩展。
[0080] 路径扩展模块20用于将活动路径向后扩展一帧至所有可能达到的路径。
[0081] 即将上述初始化后的活动路径向后扩展一帧,在向后扩展时将活动路径或扩展至 说有可能达到的路径,为描述方便,将路径的数量称为m。
[0082]路径保存模块30用于将打分较高的活动路径保存到一个预置的最小堆中。
[0083]首先预置一个最小堆,堆是一种经过排序的二叉树,其中任一非终端节点的数据 值均不大于(或不小于)其左孩子和右孩子节点的值。其中最小堆是根节点的键值为所有堆 节点键值最小的堆。
[0084]然后将利用上述的最小堆的方式保存全局m个路径中最好的n个路径,即得分最高 的n个路径,其中n小于m。路径保存模块包括路径评分单元31和路径剪裁单元32。
[0085]路径评分单元31用于对所有m个路径进行评分。
[0086] 当前状态t被扩展得到的得分为p,对于t的可扩展状态tl.....tm,每个的扩展分 数为pl.....pm,那么扩展后的得分为p*pl......p*pm。
[0087] 路径剪裁单元32用于存储n个得分最高的路径。
[0088] 即存储最大的n个得分maxn(p*pl.....p*pm),并将其他的路径进行剪裁舍弃,不 再存储。
[0089]路径拷贝模块40用于对最小堆进行倒序拷贝。
[0090] 堆在构造完成之后,其中保存的路径都需要被下次扩展的,且下次扩展的时候需 要选择得分较高的路径进行扩展,由于此时的堆属于局部有序,倒序拷贝能够保证首先扩 展的路径都是得分相对较高的路径。且由于首先要扩展的是得分最高的路径,因此需要把 得分最高的状态放在堆的最后一个位置进行拷贝。
[0091] 具体的路径拷贝模块40包括路径查找单元41、位置交换单元42和拷贝单元43。
[0092] 路径查找单元41用于找到最小堆中得分最高的活动路径;
[0093]位置交换单元42用于将得分最高的活动路径与最小堆中最后一个活动路径进行 位置交换;
[0094]拷贝单元43则拷贝最小堆中所有的活动路径。
[0095] 在进行完上述操作后,既可以开始识别下一帧,依次类推完成全部帧的语音识别 过程。
[0096] 从上述技术方案可以看出,本申请提供了一种基于最小堆的路径存储系统,该系 统应用于语音识别器。具体步骤为首先初始化所述语音识别器识别出的活动路径;将初始 化后的活动路径向后扩展一帧至所有可能达到的路径;将所有活动路径中打分靠前的预设 数量的活动路径保存到一个预设的最小堆中;对最小堆进行倒序拷贝。通过最小堆保存活 动路径的办法,能够使操作的复杂度从〇(n)降低为O(logn),从而能够相应提高语音识别的 效率。
[0097] 另外,其中预置的最小堆的实现由三种途径,分别为手动构造、C++标准卡的set和 C++标准库的最小堆,通过具体检验三种构造途径的最小堆的具体实现效果如表1所示,其 中只测试10000个元素,因此只测试插入1000~10000个元素。测试环境为:gcc编译器02优 化编译,winlO 64位,CPU 2.2GHZ。
[0098] 耗用时间图表分析如图2所示,其中横坐标表示元素个数,纵坐标表示耗用时间 (s) 〇
[0099] 使用内存图表分析如图3所示,其中横坐标表示元素个数,纵坐标表示使用内存 (Mb)〇
[0100] 从上述分析可以看出,无论时耗用时间还是使用内存上,手动构造的最小堆的效 率最高,效果最好,因此本申请中的路径保存模块中还设置有一个最小堆构造单元,该最小 堆构造单元用于供用户通过手动方式构造该最小堆。
[0101] 实施例三
[0102] 本发明还提供一种语音识别器,该语音识别器设置有上述实施例所提供的基于最 小堆的路径存储系统,该语音识别器能够通过最小堆保存活动路径的手段,使操作的复杂 度从〇(n)降低为O(logn),从而能够相应提高语音识别的效率。
[0103] 对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关 之处参见方法实施例的部分说明即可。
[0104] 本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与 其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0105] 本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算 机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和 硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可 用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上 实施的计算机程序产品的形式。
[0106] 本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序 产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图 中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些 计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设 备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执 行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中 指定的功能的装置。
[0107] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备 以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包 括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方 框或多个方框中指定的功能。
[0108] 这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得 在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在 计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程 和/或方框图一个方框或多个方框中指定的功能的步骤。
[0109] 尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基 本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为 包括优选实施例以及落入本发明实施例范围的所有变更和修改。
[0110] 最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将 一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作 之间存在任何这种实际的关系或者顺序。而且,术语"包括"、"包含"或者其任何其他变体意 在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包 括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品 或者终端设备所固有的要素。在没有更多限制的情况下,由语句"包括一个……"限定的要 素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
[0111] 以上对本发明所提供的基于最小堆的路径存储方法、系统和语音识别器进行了详 细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说 明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据 本发明的思想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内容不 应理解为对本发明的限制。
【主权项】
1. 一种基于最小堆的路径存储方法,应用于语音识别器,其特征在于,包括步骤: 初始化所述语音识别器识别出的活动路径; 将所述活动路径向后扩展一帧至所有可能达到的路径; 将所有活动路径中打分靠前的预设数量的活动路径保存到一个预设的最小堆中; 对所述最小堆进行倒序拷贝。2. 如权利要求1所述的路径存储方法,其特征在于,所述将所有活动路径中打分靠前的 预设数量的活动路径保存到一个预设的最小堆中,包括: 对所有活动路径进行评分; 对所有活动路径进行裁剪,利用所述最小堆保留得分较高的预设数量的活动路径。3. 如权利要求1所述的路径存储方法,其特征在于,所述对所述最小堆进行倒序拷贝, 包括: 找到所述最小堆中得分最高的活动路径; 将所述得分最高的活动路径与最小堆中最后一个活动路径进行位置交换; 拷贝所述最小堆中所有的活动路径。4. 如权利要求1~3任一项所述的路径存储方法,其特征在于,所述最小堆通过手动构 造方式进行预置。5. -种基于最小堆的路径存储系统,应用于语音识别器,其特征在于,包括: 路径初始化模块,用于初始化所述语音识别器识别出的活动路径; 路径扩展模块,用于将所述活动路径向后扩展一帧至所有可能达到的路径; 路径保存模块,用于将所有活动路径中打分靠前的预设数量的活动路径保存到一个预 设的最小堆中; 路径拷贝模块,用于对所述最小堆进行倒序拷贝。6. 如权利要求5所述的路径存储系统,其特征在于,所述路径保存模块包括: 路径评分单元,用于对所有活动路径进行评分; 路径剪裁单元,用于对所有活动路径进行裁剪,利用所述最小堆保留得分较高的预设 数量的活动路径。7. 如权利要求5所述的路径存储系统,其特征在于,所述路径拷贝模块包括: 路径查找单元,用于找到所述最小堆中得分最高的活动路径; 位置交换单元,用于将所述得分最高的活动路径与最小堆中最后一个活动路径进行位 置交换; 拷贝单元,用于拷贝所述最小堆中所有的活动路径。8. 如权利要求5~7任一项所述的路径存储系统,其特征在于,所述路径保存模块还包 括: 最小堆构造单元,用于根据供用户通过手动构造方式预置所述最小堆。9. 一种语音识别器,其特征在于,设置有如权利要求5~8任一项所述的路径存储系统。
【文档编号】G10L15/32GK105913848SQ201610229193
【公开日】2016年8月31日
【申请日】2016年4月13日
【发明人】王彪
【申请人】乐视控股(北京)有限公司, 乐视致新电子科技(天津)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1