一种语音数据解码方法和装置的制作方法

文档序号:2835903阅读:473来源:国知局
专利名称:一种语音数据解码方法和装置的制作方法
技术领域
本发明涉及识别处理技术领域,更具体地说,涉及一种语音数据解码方法和装置。
背景技术
实现人机之间人性化,智能化的有效交互,构建高效自然的人机交流环境,已经成为当前信息技术应用和发展的迫切需求。近年来,移动通讯领域上发微博、写短信等在线语音识别应用受到了越来越多的关注。在这种即时通讯模式下,用户对系统响应速度有更高的要求,总希望在语音输入结束后没有明显时延即得到反馈结果。语音识别系统的实时性已经成为衡量系统性能最重要的指标之一,系统响应延迟时间(即从用户结束语音输入到接收到识别反馈的等待时间)越短,则用户体验越好。在大词汇量连续语音识别中,由于单个字符发音之间并没有清晰的边界,难以在对连续语音切分后通过简单模板匹配方式识别,因而通常在由声学模型及语言模型等知识构建的搜索网络空间中,通过搜索最符合输入语音特征序列特点的单词串实现解码。显然在大词汇量连续语音识别系统中,由于语音信号及语言网络的复杂性,由声学模型和语言模型构建的识别网络往往相当巨大。这种直接搜索需要耗费大量的计算资源,影响系统解码的实时性。针对大词汇量连续语音识别的解码效率问题,研究人员提出了基于动态规划思想的Viterbi Beam搜索算法,对输入的每帧语音数据,仅遍历搜索网络中满足预设条件的活跃节点,并保留具有最高累积概率的历史路径作为搜索网络扩展的基础。在这种方式下,由于每帧输入语音需要考察的网络节点数以及累积的历史路径数都大大减少,因而提高了搜索效率。显然准确合理的活跃节点设置对系统性能有着重要影响对每帧语音数据若保留较多的活跃节点数,则运算压力加大,系统解码效率降低。而若保留过少的活跃节点,虽然可以提高系统运行的效率,但很可能将最优路径过早得从搜索网络中剪除,导致不能产生正确的识别结果。传统Viterbi Beam搜索算法初始化时即预先设置某一固定的裁剪门限,随后在解码中利用该裁剪门限实现搜索网络的裁剪。固定裁剪门限的设置虽然可以剪除部分不可能路径,但是由于需要确保搜索过程中最不确定的情况,因而该裁剪门限设置往往趋于保守, 以避免过小的门限将正确的路径过早剪除。相应地搜索过程中保留了较多的活跃节点,从而导致整体识别效率提高不明显。

发明内容
有鉴于此,本发明实施例提供一种语音数据解码方法和装置,在确保语音数据解码准确率的前提下,通过自适应调整搜索裁剪门限,实现了解码延时的可控,提高了系统的实用价值。本发明实施例提供一种语音数据解码方法,包括接收待解码的语音数据包,所述语音数据包中包含1到多个语音帧;
获取对应相应语音帧的当前搜索网络的裁剪参数;根据相应语音帧的解码延时,调整搜索网络的裁剪参数;在相应裁剪参数调整之后的搜索网络中,通过Viterbi搜索,进行相应语音帧的解码;或者,接收待解码的语音数据包,所述语音数据包中包含1到多个语音帧;获取对应相应语音帧的当前搜索网络的裁剪参数;对应当前搜索网络的裁剪参数,通过Viterbi搜索,进行相应语音帧的解码;根据相应语音帧的解码延时,调整搜索网络的裁剪参数。优选的,所述根据相应语音帧的解码延时,调整搜索网络的裁剪参数之前,所述方法还包括判断是否满足预置的搜索网络裁剪参数调整的条件,若是,则对搜索网络裁剪参数进行调整;否则,保持当前搜索网络裁剪参数不变。优选的,所述判断是否满足预置的搜索网络裁剪参数调整的条件,若是,则对搜索网络裁剪参数进行调整,包括统计利用当前同一裁剪参数进行解码的语音帧的累计总帧数;判断该累计总帧数是否达到系统预设域值,若满足,则进行搜索网络裁剪参数调離
iF. ο优选的,所述根据相应语音帧的解码延时,调整搜索网络的裁剪参数,包括根据相应语音帧的解码延时,查找与其匹配的搜索网络的裁剪参数预置值;根据查找结果,调整对应该语音帧的当前搜索网络的裁剪参数。优选的,所述根据相应语音帧的解码延时,调整搜索网络的裁剪参数,包括获取前一语音帧的解码延时,以及对应前一语音帧的搜索网络裁剪参数;在搜索网络参数调整的统计模型中输入当前语音帧的解码延时、前一语音帧的解码延时以及对应前一语音帧的搜索网络裁剪参数,计算获得调整之后的对应当前语音帧的搜索网络的裁剪参数,并根据计算结果,调整对应该语音帧的当前搜索网络的裁剪参数。优选的,所述接收待解码的语音数据包之后,还包括对接收到的语音数据包进行降噪处理。优选的,所述方法还包括当所述语音数据包中的语音帧输入结束时,根据最后一帧语音帧的解码结果执行状态回溯,获取对应所有语音帧的解码序列。一种语音数据解码装置,包括接收模块,用于接收待解码的语音数据包,所述语音数据包中包含1到多个语音帧;裁剪参数获取模块,用于获取对应相应语音帧的当前搜索网络的裁剪参数;裁剪参数调整模块,用于根据相应语音帧的解码延时,调整搜索网络的裁剪参数, 之后,触发解码模块;所述解码模块,用于在相应裁剪参数调整之后的搜索网络中,通过Viterbi搜索, 进行相应语音帧的解码;
或者,接收模块,用于接收待解码的语音数据包,所述语音数据包中包含1到多个语音帧;裁剪参数获取模块,用于获取对应相应语音帧的当前搜索网络的裁剪参数;解码模块,用于对应当前搜索网络的裁剪参数,通过Viterbi搜索,进行相应语音帧的解码;之后,触发裁剪参数调整模块;裁剪参数调整模块,用于根据相应语音帧的解码延时,调整搜索网络的裁剪参数。优选的,所述装置还包括条件预置模块,用于预置搜索网络裁剪参数调整的条件;参数调整触发模块,用于判断是否满足预置的搜索网络裁剪参数调整的条件,若是,则触发裁剪参数调整模块。优选的,所述条件预置模块中预置有触发进行搜索网络裁剪参数调整、且利用同一裁剪参数进行解码的语音帧累计总帧数域值;则所述参数调整触发模块,具体包括语音帧累计子模块,用于统计利用当前同一裁剪参数进行解码的语音帧累计总帧数;判断子模块,用于判断该累计总帧数是否达到预置模块中域值,若是,则触发裁剪参数调整模块。优选的,所述裁剪参数调整模块,包括解码延时计算子模块,用于计算相应语音帧的解码延时;裁剪参数预置子模块,用于预置搜索网络的裁剪参数;裁剪参数匹配调整子模块,用于根据所述语音帧的解码延时,查找与其匹配的搜索网络的裁剪参数预置值,并根据查找结果,调整对应该语音帧的当前搜索网络的裁剪参数。优选的,所述裁剪参数调整模块具体包括前一语音帧参数获取子模块,用于获取前一语音帧的解码延时,以及对应前一语音帧的搜索网络裁剪参数;解码延时计算子模块,用于计算当前语音帧的解码延时;裁剪参数计算调整子模块,用于在搜索网络的统计模型中输入当前语音帧的解码延时、前一语音帧的解码延时以及对应前一语音帧的搜索网络裁剪参数,计算获得调整之后的对应当前语音帧的搜索网络的裁剪参数,并根据计算结果,调整对应该语音帧的当前搜索网络的裁剪参数。优选的,还包括降噪处理模块,用于对接收到的语音数据包进行降噪处理。优选的,还包括解码序列获取模块,用于当所述语音数据包中的语音帧输入结束时,根据最后一帧语音帧的解码结果执行状态回溯,获取对应所有语音帧的解码序列。同现有技术相比,本发明提供的技术方案根据当前语音帧的解码延时状态自动优化裁剪门限,优化解码效率,确保系统对语音输入的识别响应在可控延时内,提高系统整体反馈效率。这种新的基于系统解码响应时间的门限裁剪方案,一方面不影响响应速度较快语音信号的识别性能,另一方面可以针对性地提高响应时间过慢数据的运算效率,并将系统整体响应时延控制在可接受的预设范围内,达到减少系统过长响应现象的目的。


为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例提供的一种语音数据解码方法流程示意图;图2为本发明实施例提供的另一种语音数据解码方法流程示意图;图3为对应图1的一种语音数据解码详细流程示意图;图4为基于模型层面的搜索网络示意图;图5为状态层的Viterbi搜索示意图;图6为图3中对输入的第k个语音数据包中的第i帧语音帧进行解码的流程示意图;图7为图6中步骤606的实现流程示意图;图8为对应图2的另一种语音数据解码详细流程示意图;图9和图10为本发明实施例提供的两种语音数据解码装置的结构示意图;图11为当前裁剪参数调整模块的结构示意图;图12为当前裁剪参数调整模块的另一种结构示意图;图13和14为本发明实施例提供的又两种语音数据解码的结构示意图;图15和16为本发明实施例提供的再两种语音数据解码的结构示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明实施例提供了一种语音数据解码方法,相应地,还提供了一种语音数据解码装置,以提高语音数据解码的效率和准确率。首先对本发明提供的一种语音数据解码方法进行说明,参照图1所示,所述方法包括步骤101、接收待解码的语音数据包,所述语音数据包中包含1到多个语音帧;在实际应用中,语音数据通常由用户实时产生。语音识别系统跟踪用户输入,当累计的用户语音帧长满足系统预设条件时,即向系统发送识别请求,使得包含1到多个语音帧的语音数据包进入识别队列。步骤102、获取对应相应语音帧的当前搜索网络的裁剪参数;该步骤中,在开始对某一语音数据包中的某一语音帧进行解码时,首先获取当前搜索网络的裁剪参数。步骤103、对应当前搜索网络的裁剪参数,通过Viterbi搜索,进行相应语音帧的解码;步骤104、根据相应语音帧的解码延时,调整搜索网络的裁剪参数;该实施例中,首先根据当前累计的解码延时状态,对当前语音帧执行解码操作,再根据该语音帧的解码延时状态为下一帧语音数据解码设置新的系统裁减参数。相应地,本发明提供了另一种语音数据解码方法实施例,如图2所示,所述方法包括步骤201、接收待解码的语音数据包,所述语音数据包中包含1到多个语音帧;步骤202、获取对应相应语音帧的当前搜索网络的裁剪参数;步骤203、根据相应语音帧的解码延时,调整搜索网络的裁剪参数;步骤204、在相应裁剪参数调整之后的搜索网络中,通过Viterbi搜索,进行相应语音帧的解码。该实施例中,首先根据当前累计的解码延时状态为当前语音帧解码设置新的系统裁减参数,即优化调整解码裁剪门限,并据此对该语音帧进行解码。上述两种发明实施例中,仍然采用基于动态规划思想的Viterbi搜索算法,实现相应语音帧的解码。对于Viterbi搜索算法来说,解码效率很大程度上取决于动态解码空间的大小,即活跃状态节点数。活跃节点数越少,则动态解码空间越小,解码越快,反之则解码越慢。因此,合适的裁剪门限可以保证识别准确率及提高识别效率。上述基于解码延时的裁剪门限自适应优化方法,在不影响原响应速度较快语音信号的识别性能,针对性地提高了响应时间过长数据的运算效率,并将系统整体响应时延控制在可接受的预设范围内。与现有技术中采用固定的裁剪门限所不同的是,上述两种本发明实施例中,在对相应语音帧进行解码时,需要根据该语音帧的解码延时具体数值调整更新搜索网络的裁剪参数,以改善语音数据解码的效率和准确率。例如若该语音帧的解码延时较小,则可以增大搜索网络的裁剪门限以保证解码的准确率;相反,若该语音帧的解码累计延时较大,则可以减小搜索网络的裁剪门限以提高解码效率,确保解码时间可控。通过上述实施例,根据不同语音帧的解码延时状态自动优化裁剪门限,优化解码效率,确保系统对语音输入的识别响应在可控延时内,提高系统整体反馈效率。通过这种自适应于系统解码响应时间的门限裁剪方案,在不影响原响应速度较快语音信号的识别性能,可以针对性地提高响应时间过慢数据的运算效率,并将系统整体响应时延控制在可接受的预设范围内,达到减少系统过长响应现象的目的。为了便于对本发明实施例的理解,下面通过具体实施方式
对技术方案细节进行详细描述。参照图3,为本发明实施例提供的一种语音数据解码详细流程示意图,该流程具体包括步骤301、系统初始化,载入识别需要的声学模型、字典、语言模型以及Viterbi搜索算法的初始裁剪门限参数;其中,声学模型用于模拟字符标准发音特征,以计算语音帧的发音概率。本发明实施例采用了语音识别领域常用的基于转移概率和传输概率的HMM(隐马尔可夫)模型。考虑到在大词汇量连续语音识别中,词汇量的数量过于巨大,若是对每个字符都构建一个HMM 模型,则模型数量太多,不利于数据存储及计算。因而本发明实施例针对基本的发音单元, 即音素单元进行建模,并通过数据训练得到模型的状态转移概率矩阵和符号输出概率矩阵等参数。显然,根据不同的应用需求,系统还可以选择不同的模型单元进行建模,如音节建模,甚至上下文扩展的多因子音素单元(如triphone)等。字典用于描述基本音节单元模型构成单词的方式。语言模型是为了更有效的结合语法和语义知识,弥补声学模型的不足,提高识别率。本发明实施例采用统计语言模型,利用统计概率的方式描述词和词之间的关系,即假设某个词出现的概率仅和其前n-1个词相关,记为p(wk |\¥广jzp—k |Wkk丄J。当考虑到计算复杂度和识别效果时,本发明实施例中定义参数η = 3。步骤302、识别网络扩展;利用声学模型和字典将由语言模型构建的带有N元文法统计概率的语法网络扩展成基于模型层的网络,供后续Viterbi搜索。该搜索网络示意图如图4所示。图4上每条弧代表一个模型串构成的单词,而词和词之间的跳转表示语言模型中的连接关系。搜索网络中的每条路径是一词序串,其得分是累计的声学模型相似度以及语言模型概率得分。步骤303、跟踪语音数据输入;“在线”识别系统中,语音数据是用户实时生成的。当用户累计的语音帧长满足系统预设条件时,即向系统发送识别请求,进入识别队列。一般来说,数据段的长度对识别效率有一定的影响,长度越短,则识别效率越高。然而在实际系统中,考虑到网络传输压力,该数据段长度设置不能太短,通常设为200-500ms。本发明实施例中,当接收到第k个语音数据包时,将其存入缓存区,并记录接收时刻tk。步骤304、对语音数据进行信号处理;考虑到在真实测试环境中采集到的语音信号存在各种噪音干扰,若直接将其和在无噪声“干净”的环境中训练得到的声学模型匹配,则系统识别性能将大大下降。为了提高系统的鲁棒性,本发明实施例对采集到的语音信号执行前端降噪处理,首先利用端点检测技术去除多余的静音和非说话音,随后采用近年来取得很大进展的盲源分离技术实现噪声和语音的自动分离,为后续语音处理提供较为纯净的语音数据。步骤305、对输入语音数据进行语音特征提取;考虑到步骤303中处理后的语音信号中有可能依然存在大量语音识别无关的冗余信息,直接对其识别将导致运算量和识别准确率的下降。为此,可以从语音能量信号中提取识别有效语音特征。本发明实施例考虑提取连续语音识别中常用的MFCC特征。步骤306、针对语音数据执行Viterbi搜索;对语音数据包,从搜索网络中找到其对应的最优单词序列。在Viterbi搜索中,将步骤302中构建的搜索网络支持的所有声学模型扩展成基于模型状态层的搜索网络,如图 5所示。在这种基于状态节点的搜索网络中,所有满足预设条件的声学模型状态按时间顺序重复排列,使得每一时间点的状态列都对应于一帧语音特征矢量。随后搜索算法在状态矩阵中利用动态规划思想依时间顺序从左到右寻找到达每一列的各个状态最优状态子序列。 特别的,当搜索到最后一帧语音矢量时,从终止状态回溯就可以得到相应于整段语音的最优解码状态序列。该步骤中,采用了一种基于解码延时的自适应搜索网络门限裁剪方法,其具体实现见下文对于Viterbi搜索的详细描述。步骤307、判断语音输入是否结束,若是则转入步骤308,否则转入步骤303 ;本发明实施例根据当前接收到的数据段的长度是否小于历史语音数据段长度来确定语音输入是否结束。在“在线”语音识别系统中,语音输入是用户实时生成并传输给系统的,当用户生成时长满足预设条件的语音数据时,即向识别系统发包开始识别。一般来说,最后一次发送的数据都短于该数据包长度。因而通过比较接收到的数据包长度,可以提早判断语音输入是否结束,以便尽早反馈识别结果。当然,系统也可以采用其他各种判断准则判断语音输入是否已经结束。比如,通过比较当前解码语音数据包的接收时刻tk和上一解码语音数据包的接收时刻tk_i的时间差是否小于历史值,也可以简单快捷的判断当前语音数据包是否为语音结束包。步骤308、当语音输入结束时,根据最后一帧语音帧的解码结果执行状态回溯,获取对应所有语音帧的解码序列;该步骤中,从图5所示的状态空间的最后一列具有最高路径得分的节点向前回溯找到对应的单词序列串,作为整体语音输入的完整识别结果。下面对本发明实施例中的Viterbi搜索算法进行详细介绍。现以对输入的第k个语音数据包中的第i帧语音帧进行解码为例进行说明,其具体流程如图6所示,具体包括步骤601、计算对应该第k个语音数据包中的第i帧语音帧,当前搜索网络中所有满足系统预设条件的活跃节点相对于输入语音帧的累积历史路径概率;对给定的历史语音序列IO1, O2, ... , OJ,假设其中t时刻的语音特征Ot转入活跃节点j的路径概率%(0计算如下
灼(t) = max {仍 Ct-Oa1Jbj (Ot)即从活跃节点i到该节点j的所有可能历史路径的概率最大值。这里i表示搜索网络中所有与活跃节点j相连的活跃节点。表示(t-1)时刻CV1特征落在活跃节点 i上的历史路径概率。表示从节点i到节点j的转移概率,而h (Ot)表示第t帧语音数据Ot相应于节点j的似然概率。步骤602、计算当前所有活跃节点中历史路径概率的最大值;最大值Smax =ιη,χ^ω,即由搜索网络生成IO1, O2, ... , OJ语音特征序列的最大概率值;步骤603、将所有具有和最高路径概率值的差值小于系统当前裁剪门限的概率域值参数的节点设置为活跃节点;步骤604、判断步骤603中裁剪后的活跃节点数目是否大于系统当前裁剪门限的最大活跃节点数参数,若是,则转入步骤605,否则转入步骤606 ;步骤605、将步骤603中裁剪后的活跃节点集按照概率得分从高到低的顺序挑选不大于系统预设最大活跃节点数的节点集合;该步骤中,考虑到搜索过程中对某些容易混淆的语音帧可能存在大量的活跃状态,是平均值的几十倍甚至上百倍。为了将搜索算法的内存控制在一定范围内,并去除不太可能的路径,设置了最大的活跃状态数目。如果当前活跃状态数目超过该最大值,则通常概率得分较低的状态很大程度上不可能成为最优路径,因而将其设置为不活跃状态,并从后续搜索路径中剪除。步骤606、基于该第i帧语音帧的累计解码延时,优化调整解码裁剪门限;该步骤中,统计当前累计解码延时状态,并据此通过模型匹配等方式确认系统新的裁剪门限,具体流程如图7所示,具体包括步骤701、统计当前该第i帧语音帧的解码延时Tcur ;假设当前考察语音帧是第k个语音包的第i帧数据,则该帧数据的生成时刻是 tk+ts* (i-1)。其中tk为第k个语音包的接收时刻,而ts为语音信号处理是设置的帧移长度,本发明实施例可以设置为10ms,则当前考察语音帧解码延时计算为t-(tk+ts*(i-l)), 这里t为当前机器时间。步骤702、获取前一语音帧的解码延时值T。ld以及其对应的搜索网络的相关裁剪参数,如本发明实施例中的最大活跃节点数门限和概率裁剪门限;步骤703、根据解码延时状态,确定对应当前该第i帧语音帧的新的搜索网络裁剪参数;为实现语音识别系统的实时化及延时可控,本发明实施例根据当前时刻的解码延时状态实时动态确定新的裁剪参数,通过优化搜索网络规模实现识别效率和识别准确率的平衡。具体的若当前时刻累计的解码延时较长,则需要通过设置较大的裁剪参数以减少搜索活跃节点数据,进而提高解码效率,缩短解码总延时;而相反若当前时刻累计的解码延时较短,则通过适当减小裁剪参数以便更多的活跃节点进入搜索网络,提高识别准确率。裁剪参数的设置存在多种不同的方案,比如可以选择基于人工预设规则方法,也可以选择基于数据驱动的统计模型方法。上述两种具体的实现方法具体如下(1)基于人工预设规则的优化方法系统根据当前解码延时状态,在预设规则中找到其对应的解码条件,并据此设置新的裁剪参数为规则指定的数值,具体如下所示当累计解码延时大于T1时,设置裁剪参数概率门限?工和最大活跃节点数MAX1 ;当累计解码延时大于T2时,设置裁剪参数概率门限P2和最大活跃节点数MAX2 ;......当累计解码延时大于Tm时,设置裁剪参数概率门限Pm和最大活跃节点数MAXm。系统预设规则中的控制参数1\,T2, . . . Tffl以及对应的裁剪门限=P1, P2, ... , Pn^P MAXIJMAX2,.. .,MAXm由系统预先从海量数据中测试不同裁剪门限下语音识别系统的解码效率和解码准确率,并根据系统可接受的解码延时由人工经验确定。比如在系统可接受的最大延时为3秒的限制条件下,可以设置搜索网络裁剪参数分别为1、T1=2. 5s,P1 = 100,MAX1=1000
2、T2=2. Os,P2 = 150,MAX2=1500
3、T3=1. 5s,P3 = 200,MAX3=3000
4、T4=Is, P4=300,MAX4 =4000需要说明的是,本发明实施例的上述规则设置及对应的系统参数只是基于规则实现的一种可能方案,具体实施时,可以根据不同的应用环境及用户不同的体验要求,对其做出相应的调整。该方法根据不同时刻的解码延时状态自动优化裁剪门限,通过均衡不同情况下的解码效率和准确率实现整体解码的性能优化。(2)另外,对裁剪参数的设定也可以选择基于数据驱动的统计模型方式,首先在海量数据上通过模型训练自动学习得到模型参数,随后对输入的新的数据,通过模型匹配获得对应的输出结果。比如在神经网络的模型设定下,通过在大量带标注的数据上学习得到神经网络模型参数。随后在裁剪参数重置时在神经网络输入层输入重置条件,如当前解码延时T。m,历史解码延时T。ld或者当前裁剪参数PpMAXi等,在神经网络输出层获得新的搜索网络裁减参数。上述两种基于解码延时的搜索网络裁剪门限设置方案都是系统预先从海量真实语音数据中训练得到的,较好地均衡解码效率和解码准确率的关系,实现了语音识别系统的实时化和延时可控。上述图6所示流程展示了语音数据解码的一种可行性方案,具体为,在对输入的第k个语音数据包中的第i帧语音帧先进行Viterbi解码后,再根据新的解码延时状态为下一帧语音数据解码设置新的系统裁减参数。另外,在本发明实施例提供的另一种语音数据解码详细流程中,如图8所示,还可以首先根据当前累计的解码延时状态为当前语音帧解码设置新的系统裁减参数,即优化调整解码裁剪门限,并据此对该语音帧进行解码,具体如下步骤801、基于该第i帧语音帧的累计解码延时,优化调整解码裁剪门限;该步骤中,对于解码裁剪门限的优化调整过程如图7流程所示,此处,不再进行赘述。步骤802、计算对应该第k个语音数据包中的第i帧语音帧,当前搜索网络中所有满足系统预设条件的活跃节点相对于输入语音帧的累积历史路径概率;步骤803、计算当前所有活跃节点中历史路径概率的最大值;最大值^nax =1^ax朽⑴,即由搜索网络生成IO1, O2, ... , OJ语音特征序列的最大
概率值;步骤804、将所有具有和最高路径概率值的差值小于系统新设裁剪门限的概率域值参数的节点设置为活跃节点;步骤805、将上述活跃节点集按照概率得分从高到低的顺序,挑选不大于步骤801 中系统新设最大活跃节点数的节点集合,作为裁剪之后的搜索网络;步骤806、在相应调整之后的搜索网络中,通过Viterbi搜索,进行该第i帧语音帧的解码。需要说明的是,系统的裁剪参数并不局限于本案采用的概率域值参数及最大活跃节点数,而可以根据系统的不同实际应用需求采用单一或多种参数的组合,如Beam门限, 直方图门限或预测裁剪门限等。此外,还需要进行说明的是,具体实施时,并不需要针对每帧语音帧进行搜索网络裁剪参数的调整,因此,可以预置搜索网络裁剪参数调整的条件,在进行搜索网络裁剪参数的调整之前,判断是否满足预置的搜索网络裁剪参数调整的条件,若是,则对搜索网络裁剪参数进行调整;否则,保持当前搜索网络裁剪参数不变。具体的实现方式可以是统计利用当前同一裁剪参数进行解码的语音帧累计总帧数;判断该累计总帧数是否达到系统预设域值,若满足,则进行搜索网络裁剪参数调整。例如上述在对语音数据包内的语音帧进行搜索网络裁剪参数优化时,可以设置裁剪门限优化间隔NT。具体实施时,可以判断当前累计的语音数据包内的语音帧是否是NT的倍数,若是则进行裁剪门限的调整。这里,NT是系统预设的裁剪门限优化间隔,该裁剪门限优化间隔越长,则系统优化次数越少,其效果越接近确定不变裁剪门限的Viterbi搜索;而若裁剪门限优化间隔过短,一方面计算压力增大,另一方面由于系统解码延迟变化较小,没有必要。本发明实施例从实际需求出发,可以将该裁剪门限优化间隔优化设置为10帧,即每10帧对搜网网络裁剪门限修正一次。相应于上述方法实施例,本发明实施例还提供了一种语音数据解码装置,如图9 所示,该装置具体包括接收模块901,用于接收待解码的语音数据包,所述语音数据包中包含1到多个语音帧;裁剪参数获取模块902,用于获取对应相应语音帧的当前搜索网络的裁剪参数;裁剪参数调整模块903,用于根据相应语音帧的解码延时,调整搜索网络的裁剪参数,之后,触发解码模块904;所述解码模块904,用于在相应裁剪参数调整之后的搜索网络中,通过Viterbi搜索,进行相应语音帧的解码。该装置实施例中,首先根据当前累计的解码延时状态为当前语音帧解码设置新的系统裁减参数,即优化调整解码裁剪门限,并据此对该语音帧进行解码。在本发明提供的另一种语音数据解码装置中,如图10所示,该装置具体包括接收模块1001,用于接收待解码的语音数据包,所述语音数据包中包含1到多个语音帧;裁剪参数获取模块1002,用于获取对应相应语音帧的当前搜索网络的裁剪参数;所述解码模块1003,用于在获取对应相应语音帧的当前搜索网络的裁剪参数之后,对应当前搜索网络的裁剪参数,通过Viterbi搜索,进行相应语音帧的解码,之后,触发裁剪参数调整模块1004 ;所述裁剪参数调整模块1004,用于根据相应语音帧的解码延时,调整搜索网络的裁剪参数。与前述装置实施例不同的是,图10所示语音数据解码装置中,首先根据当前累计的解码延时状态,对当前语音帧执行解码操作,再根据该语音帧的解码延时状态为下一帧语音数据解码设置新的系统裁减参数。与现有技术中采用固定的裁剪门限所不同的是,上述两种本发明实施例装置中, 当前裁剪参数调整模块在对相应语音帧进行解码时,需要根据该语音帧的解码延时具体数值调整更新当前搜索网络的裁剪参数,以改善语音数据解码的效率和准确率。例如若该语音帧的解码延时较小,则可以增大当前搜索网络的裁剪门限以保证解码的准确率;相反,若该语音帧的解码累计延时较大,则可以减小当前搜索网络的裁剪门限以提高解码效率,确保解码时间可控。通过上述装置实施例,根据不同语音帧的解码延时状态自动优化裁剪门限,优化解码效率,确保系统对语音输入的识别响应在可控延时内,提高系统整体反馈效率。通过这种自适应于系统解码响应时间的门限裁剪方案,在不影响原响应速度较快语音信号的识别性能,可以针对性地提高响应时间过慢数据的运算效率,并将系统整体响应时延控制在可接受的预设范围内,达到减少系统过长响应现象的目的。具体实施时,如图11所示,上述裁剪参数调整模块具体可以包括解码延时计算子模块1101,用于计算相应语音帧的解码延时;裁剪参数预置子模块1102,用于预置搜索网络的裁剪参数;裁剪参数匹配调整子模块1103,用于根据所述语音帧的解码延时,查找与其匹配的搜索网络的裁剪参数预置值,并根据查找结果,调整对应该语音帧的当前搜索网络的裁剪参数。该实施例中,系统根据当前解码延时状态,在预设规则中找到其对应的解码条件, 并据此设置新的裁剪参数为规则指定的数值。此外,如图12所示,在本发明提供的另一种实施例中,上述裁剪参数调整模块具体可以包括前一语音帧参数获取子模块1201,用于获取前一语音帧的解码延时,以及对应前一语音帧的搜索网络裁剪参数;解码延时计算子模块1202,用于计算当前语音帧的解码延时;裁剪参数计算调整子模块1203,用于在搜索网络的统计模型中输入当前语音帧的解码延时、前一语音帧的解码延时以及对应前一语音帧的搜索网络裁剪参数,计算获得调整之后的对应当前语音帧的搜索网络的裁剪参数,并根据计算结果,调整对应该语音帧的当前搜索网络的裁剪参数。本发明实施例中,对裁剪参数的设定也可以选择基于数据驱动的统计模型方式, 比如可以在神经网络的模型设定下,通过在大量带标注的数据上学习得到神经网络模型参数。随后在裁剪参数重置时在神经网络输入层输入重置条件,如当前解码延时历史解码延时或者当前裁剪参数等,在神经网络输出层获得新的搜索网络裁减参数。除此之外,在本发明提供的另一种装置实施例中,如图13和14所示,还可以包括降噪处理模块1301,用于对接收到的语音数据包进行降噪处理。为了提高系统的鲁棒性,本发明实施例对采集到的语音信号执行前端降噪处理, 首先利用端点检测技术去除多余的静音和非说话音,随后采用近年来取得很大进展的盲源分离技术实现噪声和语音的自动分离,为后续语音处理提供较为纯净的语音数据。此外,考虑到上述降噪处理后的语音信号中有可能依然存在大量语音识别无关的冗余信息,直接对其识别将导致运算量和识别准确率的下降。为此,可以从语音能量信号中提取识别有效语音特征。如图15和16所示,上述装置还可以包括解码序列获取模块1501,用于当所述语音数据包中的语音帧输入结束时,根据最后一帧语音帧的解码结果执行状态回溯,获取对应所有语音帧的解码序列。通过上述模块,从状态空间的最后一列具有最高路径得分的节点向前回溯找到对应的单词序列串,作为整体语音输入的完整识别结果。需要说明的是,具体实施时,并不需要针对每帧语音帧进行搜索网络裁剪参数的调整,因此,可以预置搜索网络裁剪参数调整的条件,在进行搜索网络裁剪参数的调整之前,判断是否满足预置的搜索网络裁剪参数调整的条件,若是,则对搜索网络裁剪参数进行调整;否则,保持当前搜索网络裁剪参数不变。该具体实施方式
为,在上述各语音数据解码装置实施例中,设置条件预置模块,用于预置搜索网络裁剪参数调整的条件;以及,参数调整触发模块,用于判断是否满足预置的搜索网络裁剪参数调整的条件,若是,则触发裁剪参数调整模块。其中,所述条件预置模块中预置有触发进行搜索网络裁剪参数调整、且利用同一裁剪参数进行解码的语音帧累计总帧数域值;则所述参数调整触发模块,具体包括语音帧累计子模块,用于统计利用当前同一裁剪参数进行解码的语音帧累计总帧数;判断子模块,用于判断该累计总帧数是否达到预置模块中域值,若是,则触发裁剪参数调整模块。对于装置实施例而言,由于其基本相应于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。 可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(Random Access Memory, RAM)等。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。 对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明实施例的精神或范围的情况下,在其它实施例中实现。因此, 本发明实施例将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
权利要求
1.一种语音数据解码方法,其特征在于,包括接收待解码的语音数据包,所述语音数据包中包含1到多个语音帧; 获取对应相应语音帧的当前搜索网络的裁剪参数; 根据相应语音帧的解码延时,调整搜索网络的裁剪参数;在相应裁剪参数调整之后的搜索网络中,通过Viterbi搜索,进行相应语音帧的解码; 或者,接收待解码的语音数据包,所述语音数据包中包含1到多个语音帧; 获取对应相应语音帧的当前搜索网络的裁剪参数;对应当前搜索网络的裁剪参数,通过Viterbi搜索,进行相应语音帧的解码; 根据相应语音帧的解码延时,调整搜索网络的裁剪参数。
2.根据权利要求1所述的语音数据解码方法,其特征在于,所述根据相应语音帧的解码延时,调整搜索网络的裁剪参数之前,所述方法还包括判断是否满足预置的搜索网络裁剪参数调整的条件,若是,则对搜索网络裁剪参数进行调整;否则,保持当前搜索网络裁剪参数不变。
3.根据权利要求1所述的语音数据解码方法,其特征在于,所述判断是否满足预置的搜索网络裁剪参数调整的条件,若是,则对搜索网络裁剪参数进行调整,包括统计利用当前同一裁剪参数进行解码的语音帧的累计总帧数; 判断该累计总帧数是否达到系统预设域值,若满足,则进行搜索网络裁剪参数调整。
4.根据权利要求1所述的语音数据解码方法,其特征在于,所述根据相应语音帧的解码延时,调整搜索网络的裁剪参数,包括根据相应语音帧的解码延时,查找与其匹配的搜索网络的裁剪参数预置值; 根据查找结果,调整对应该语音帧的当前搜索网络的裁剪参数。
5.根据权利要求1所述的语音数据解码方法,其特征在于,所述根据相应语音帧的解码延时,调整搜索网络的裁剪参数,包括获取前一语音帧的解码延时,以及对应前一语音帧的搜索网络裁剪参数; 在搜索网络参数调整的统计模型中输入当前语音帧的解码延时、前一语音帧的解码延时以及对应前一语音帧的搜索网络裁剪参数,计算获得调整之后的对应当前语音帧的搜索网络的裁剪参数,并根据计算结果,调整对应该语音帧的当前搜索网络的裁剪参数。
6.根据权利要求1所述的语音数据解码方法,其特征在于,所述接收待解码的语音数据包之后,还包括对接收到的语音数据包进行降噪处理。
7.根据权利要求1-6中任一项所述的语音数据解码方法,其特征在于,所述方法还包括当所述语音数据包中的语音帧输入结束时,根据最后一帧语音帧的解码结果执行状态回溯,获取对应所有语音帧的解码序列。
8.一种语音数据解码装置,其特征在于,包括接收模块,用于接收待解码的语音数据包,所述语音数据包中包含1到多个语音帧; 裁剪参数获取模块,用于获取对应相应语音帧的当前搜索网络的裁剪参数; 裁剪参数调整模块,用于根据相应语音帧的解码延时,调整搜索网络的裁剪参数,之后,触发解码模块;所述解码模块,用于在相应裁剪参数调整之后的搜索网络中,通过Viterbi搜索,进行相应语音帧的解码; 或者,接收模块,用于接收待解码的语音数据包,所述语音数据包中包含1到多个语音帧; 裁剪参数获取模块,用于获取对应相应语音帧的当前搜索网络的裁剪参数; 解码模块,用于对应当前搜索网络的裁剪参数,通过Viterbi搜索,进行相应语音帧的解码;之后,触发裁剪参数调整模块;裁剪参数调整模块,用于根据相应语音帧的解码延时,调整搜索网络的裁剪参数。
9.根据权利要求8所述的语音数据解码装置,其特征在于,所述装置还包括 条件预置模块,用于预置搜索网络裁剪参数调整的条件;参数调整触发模块,用于判断是否满足预置的搜索网络裁剪参数调整的条件,若是,则触发裁剪参数调整模块。
10.根据权利要求8所述的语音数据解码装置,其特征在于,所述条件预置模块中预置有触发进行搜索网络裁剪参数调整、且利用同一裁剪参数进行解码的语音帧累计总帧数域值;则所述参数调整触发模块,具体包括语音帧累计子模块,用于统计利用当前同一裁剪参数进行解码的语音帧累计总帧数; 判断子模块,用于判断该累计总帧数是否达到预置模块中域值,若是,则触发裁剪参数调整模块。
11.根据权利要求8所述的语音数据解码装置,其特征在于,所述裁剪参数调整模块, 包括解码延时计算子模块,用于计算相应语音帧的解码延时; 裁剪参数预置子模块,用于预置搜索网络的裁剪参数;裁剪参数匹配调整子模块,用于根据所述语音帧的解码延时,查找与其匹配的搜索网络的裁剪参数预置值,并根据查找结果,调整对应该语音帧的当前搜索网络的裁剪参数。
12.根据权利要求8所述的语音数据解码装置,其特征在于,所述裁剪参数调整模块具体包括前一语音帧参数获取子模块,用于获取前一语音帧的解码延时,以及对应前一语音帧的搜索网络裁剪参数;解码延时计算子模块,用于计算当前语音帧的解码延时;裁剪参数计算调整子模块,用于在搜索网络的统计模型中输入当前语音帧的解码延时、前一语音帧的解码延时以及对应前一语音帧的搜索网络裁剪参数,计算获得调整之后的对应当前语音帧的搜索网络的裁剪参数,并根据计算结果,调整对应该语音帧的当前搜索网络的裁剪参数。
13.根据权利要求8所述的语音数据解码装置,其特征在于,还包括 降噪处理模块,用于对接收到的语音数据包进行降噪处理。
14.根据权利要求8-13中任一项所述的语音数据解码装置,其特征在于,还包括解码序列获取模块,用于当所述语音数据包中的语音帧输入结束时,根据最后一帧语音帧的解码结果执行状态回溯,获取对应所有语音帧的解码序列。
全文摘要
本发明公开了一种语音数据解码方法和装置。其中,方法包括接收待解码的语音数据包,语音数据包中包含1到多个语音帧;获取对应相应语音帧的当前搜索网络的裁剪参数;根据相应语音帧的解码延时,调整搜索网络的裁剪参数;在相应裁剪参数调整之后的搜索网络中,通过Viterbi搜索,进行相应语音帧的解码;或者,接收待解码的语音数据包,语音数据包中包含1到多个语音帧;获取对应相应语音帧的当前搜索网络的裁剪参数;对应当前搜索网络的裁剪参数,通过Viterbi搜索,进行相应语音帧的解码;根据相应语音帧的解码延时,调整搜索网络的裁剪参数。通过本发明,通过自适应调整搜索裁剪门限,实现解码延时的可控,提高系统的实用价值。
文档编号G10L19/00GK102436816SQ20111027993
公开日2012年5月2日 申请日期2011年9月20日 优先权日2011年9月20日
发明者何婷婷, 刘庆峰, 潘青华, 王智国, 胡国平, 胡郁, 葛勇 申请人:安徽科大讯飞信息科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1