语音解码器中实现语音解码的方法及装置的制作方法

文档序号:2837033阅读:382来源:国知局
专利名称:语音解码器中实现语音解码的方法及装置的制作方法
技术领域
本发明涉及解码技术领域,尤其涉及一种语音解码器中实现语音解码的 实现方案。
背景技术
在语音传输系统中,语音编码器常用的编码原理是ACELP (代数码本激 厉力线寸生予贞观'j, Algebraic Code Excited Linear Prediction )。基于ACELP的i吾音编码器生成的码流是以语音帧为单位。对于每一帧的输入数据的传输过程 如图1所示,发送端的语音编码器要将其编码为一组参数,所述参数通常需 要经过量化后再通过通信信道进行传输;接收端的解码器则需要将接收到的 所述参数重新合成为语音信号,从而实现语音信号的传递过程。基于ACELP的语音编码器生成的语音帧的参数通常包括谱参数、自适应 码本参数、代数码本参数、基音延迟(pitch lag/delay,也称为长时预测延迟 LTP-lag),自适应码本增益和代数码本增益等。其中,所述的基音延迟参数 用于描述语音信号的基本周期,通常,不同时刻的基音延迟参数总是会落在 某个范围内。在数据接收端,对于其接收到的数据发送端发来的数据帧后,若确定发 生错误或者丢失(即出现坏帧),则在出现坏帧时,接收端的解码器需要对 坏帧中的错误参数进行恢复,即确定一个新的参数作为该帧的相应参数,以 减少解码后语音质量的下降。目前,当出现坏帧时,可以采用的针对基音延迟参数的恢复处理方式通常有三种,下面将分别对各个方案进行说明。
第一种实现方案为在发生帧错误(即出现坏帧)时,语音解码器重复
采用上一帧的基音延迟参数作为当前错误帧的基音延迟参数,即
其中,
是当前帧的基音延迟参数; r(w -1)是上一 帧的基音延迟参数;
= T —T國是编码后的基音延迟参数,其中所述的、'n是基音延迟
参数的下限值。
可以看出,在该方案中,当FER—FLAG(m) ^TRUE(即出现坏帧)
时,将上一帧的基音延迟参数作为当前坏帧的基音延迟参数,否则 (otherwise),则直接确定当前帧的基音延迟参数。
在该方案中,若在连续发生帧错误,则将出现连续多帧的基音延迟参数 相同的情况,造成过度周期性,使得解码后的语音产生尖锐噪声,进而导致 解码后语音效果大大降低。
第二种实现方案为在发生帧错误时,语音解码器简单将上一帧的基音 延迟参数的整数部分加1作为错误帧的基音延迟参数,且将基音延迟参数的 大小限制在特定的范围内,即
<formula>formula see original document page 6</formula>其中,
logml (")是当前帧的基音延迟参数的整数部分; lagint(n-1)是上 一 帧的基音延迟参数的整数部分;A^X是基音延迟整数部分取值的上限;是当前帧的基音延迟参数的分数部分,有的语音编解码器最小精度为分数,如1/3。可以看出,在该方案中,当出现坏帧时,贝'j将(^g'"'("一" +1)作为/"'g""),并判断当前帧的Hv(")是否小于P"—,若是,则保持—",'(W不变,否则,将当前帧的—'J")调整为"L^^。在该方案中,能够有效防止过度周期性问题的出现,克服了解码后的语 音可能生成尖锐噪声的问题。但是,若在数据接收端连续出现坏帧,则将使 得为当前帧确定的基音延迟参数与实际基音延迟参数之间存在较大的积累误 差,从而解码准确性大大降低。目前可以采用的第三种实现方案为在发生帧错误时,首先对信号分类,分类标志为G"S 2"'=1表示声音信号属于稳态信号(信号周期性较强),"w-O表示声音信号分类属于非稳态信号(信号周期性较弱);然 后,根据不同的分类标志采取不同的基音延迟参数确定方案,具体为 r 0=1rt'c"'ve(/ , V; lag尸=1 一其中,r表示当前帧的基音延迟参数;表示上次接收到的好帧的基音延迟参数; 7_ = max",),表示最近好帧历史緩沖区中最大的基音延迟参数;(脆-1表示最近好帧历史緩冲区^"〃'r中第二大的基音延迟参数; 'd2表示最近好帧历史緩沖区7;*,.中第三大的基音延迟参数;/WD(x)是随机数,范围是L可以看出,在该方案中,若出现连接坏帧,且"'《=1,则将出现连续多 个帧均采用上一次接收到的好帧的基音延迟参数,这显然会导致过度周期性 问题的出现,而且,对信号进行分类也将增加整个运算过程的复杂度。发明内容本发明的实施例提供了 一种语音解码器中实现语音解码的方法及装置, 以克服解码过程中可能出现的过度周期性问题,且可以保证解码的准确性。本发明的实施例提供了 一种解码方法,该方法包括接收编码端发来的数 据帧,若发生坏帧,则计算确定坏帧的基音延迟参数,根据计算确定的坏帧 的基音延迟参数进行解码操作,获得解码后的数据,所述确定坏帧的基音延迟参数的处理过程具体包括确定发生的连续坏帧数量和之前帧的基音延迟参数;根据所述连续坏帧数量及预定的调整策略对所述之前帧的基音延迟参数 进行调整,计算获得当前坏帧的基音延迟参数,所述的预定的调整策略为随 着连续坏帧数量的变化确定的当前坏帧的基音延迟参数在设定的数值范围内波动。本发明的实施例提供了 一种解码装置,该装置中包括用于计算确定当前 坏帧的基音延迟参数的基音延迟参数计算单元,该基音延迟参数计算单元用 于将确定的基音延迟参数提供给解码处理实体,以用于进行解码操作,该基音延迟参数计算单元具体包括参数获取单元,用于获取确定发生的连续坏帧数量,以及之前帧的基音 延迟参数;基音延迟参数确定单元,用于根据参数获取单元确定的所述连续坏帧数量及预定的调整策略对所速之前帧的基音延迟参数进行调整,计算获得当前 坏帧的基音延迟参数,所述的预定的调整策略为随着连续坏帧数量的变化确 定的当前坏帧的基音延迟参数在设定的数值范围内波动。由上述本发明的实施例提供的技术方案可以看出,在解码端,若出现连 续坏帧时,各个连续坏帧的基音延迟参数会在上一帧的基音延迟参数附近波 动,而不再是单调递增,从而可以减少积累误差,提高解码的准确性。同 时,还可以有效避免过度周期性的出现,进而提高了解码的效果。


图1为现有技术中语音通信系统的编解码过程示意图; 图2为本发明提供的方法实施例的处理过程示意图;图3为方法实施例中统计坏帧及保存上一帧的基音延迟参数的处理过程示 意图;图4为本发明提供的装置实施例的结构示意图一; 图5为本发明提供的装置实施例的结构示意图二 。
具体实施方式
本发明提供的实施例能够在发生帧错误时,对坏帧中的基音延迟参数进 行替换,减少解码后语音质量的下降。而且,在出现连续坏帧,需要替换相 应的基音延迟参数时,则将替换值设为在之前帧的基音延迟参数附近波动的 值,使得其既可以在之前帧的基音延迟参数的基础上增加,也可以在之前帧 的基音延迟参数的基础减小,从而减少基音延迟参数的积累误差,并可以避 免过度周期性问题的出现。所述实施例可以应用于基于ACELP的语音解码器的帧错误隐藏的基音延 迟参数替换处理过程中,也可以应用其他类似应用场景中。数据接收端的解码器需要接收编码端发来的数据帧,并在确定发生坏帧,则 计算确定坏帧的基音延迟参数,之后,便可以根据计算确定的坏帧的基音延 迟参数进行解码操作,以获得解码后的数据。在该实施例中,相应的确定坏帧的基音延迟参数的处理过程具体可以包括如下步骤(1 )确定发生的连续坏帧数量和之前帧的基音延迟参数; 其中,所述的之前帧的基音延迟参数可以为基于当前坏帧的上一帧的基 音延迟参数,或者,也可以为基于当前坏帧的上一好帧的基音延迟参数,或 者,也可以为基于当前坏帧的其他设定的之前任意帧的基音延迟参数。(2 )根据所述连续坏帧数量及预定的调整策略对所述之前帧的基音延迟 参数进行调整,计算获得当前坏帧的基音延迟参数;其中,所述的预定的调整策略为随着连续坏帧数量的变化确定的当前坏 帧的基音延迟参数在设定的数值范围内波动。具体一点讲,所述的预定的调整策略可以为预先建立的以连续坏帧数量作为变量的基音延迟参数计算函数,且所述 函数值为随着连续坏帧数量的变化而在设定的数值范围内波动;所述的函数 可以为仅基于连续坏帧数量作为变量的函数,且函数的计算结果需要再与之 前帧的基音延迟参数进行计算(如求和等)确定当前坏帧的基音延迟参数; 所述的参数也可以为基于连接坏帧数量及之前帧的基音延迟参数作为变量的 函数,且函数的计算结果便为当前坏帧的基音延迟参数。此时,所述的计算获得当前坏帧的基音延迟参数的处理可以为根据当 前统计的连续坏帧数量值、所述基音延迟参数计算函数及之前帧的基音延迟 参数,计算确定当前坏帧的基音延迟参数。或者,所述的预定的调整策略还可以为预先建立 一组调整参数值,所述调整参数值分别与连续坏帧数量取模运算后获得的值对应,所述调整参数值为在设定的数值范围内波动;此时,所述的计算获得当前坏帧的基音延迟参数的处理则可以为对当 前统计的连续坏帧数量值进行取模运算,并利用获得的值确定对应的调整参 数值与之前帧的基音延迟参数的和作为当前坏帧的基音延迟参数。在本发明提供的实施例中,为避免计算获得的当前坏帧的基音延迟参数 出现严重偏离实际值的情况,还可以在若确定计算获得的当前坏帧的基音延 迟参数超出预定的数值范围,则将该计算获得的当前坏帧的基音延迟参数调 整至所述预定的数值范围内,具体可以按照设定的调整方式进行调整。为便于对本发明提供的方法实施例有进一步的理解,下面将结合附图对 所述实施例的具体应用进行说明。该实施例在具体应用过程中,相应的针对当前坏帧的基音延迟参数的替 换更新实现方案如图2所示,具体包括步骤201,统计连续坏帧的数目,假设采用变量6/,、 —onm/记录该连续坏帧 的数目,当出现好帧时,则将Z / —c卵w清零。步骤202,记录基于当前帧的上一帧的基音延迟参数,并采用变量 0/j _一 ro记录上 一 帧基音延迟参数的整数部分;步骤203,当出现坏帧(如出现丢帧)时,则采用预先建立的函数调整 所述上一帧基音延迟参数的整数部分,并将调整后的值作为当前坏帧的基音 延迟参数的整数部分;所述予贞先建立的函It可以为<formula>formula see original document page 11</formula>其中,ro是当前帧的基音延迟参数的整数部分,。w—ro是上一帧基音延迟参数的整数部分,/(6/ 一C卯W)是关于连续坏帧数的调整函数,所述的./W —c卵w)需要随着连续坏帧数量的变化而在某一预定的数值范围内波动; 例如,所述的连续坏帧数的函数可以为<formula>formula see original document page 12</formula>可以看出,该函数能够保证在出现连续丢帧情况时,也不会造成基音延迟参数的积累误差;再例如,所述的—co还可以是随着々/ —的变化而在0附近波动 的函数,即/(^/ — 回/)既不是一个单调递增的函数,也不是一个单调递减的 函数,这样,便可以避免导致积累误差随连续丢帧数量不断增大。步骤204,将步骤203计算获得的当前坏帧的基音延迟参数TO后,还需 要对该TO进行范围判断,即判断该TO值是否在预定的数值范围内,若未处于 该预定的数值范围内,则执行步骤205,否则,执行步骤206;步骤205,采用设定的调整方式对T0进行调整,将T0调整到该预定的数 值范围内后输出作为当前坏帧的基音延迟参数;例如,所述的预定的数值范围为基音延迟上限值PIT—MAX至基音延迟 下限值PIT—MIN确定的数值范围,此时,相应的判断处理过程可以为如果T0 >PIT—MAX,则令T0 = PIT_MAX,如果T0〈PIT—MIN,则令T0 = PIT—MIN。在上述处理过程中,还可以将当前帧的基音延迟的分数部分置零,即令 ro —/rac = o, TO—frac是当前帧的基音延迟的分数部分;或者,也可以将 TO—frac设置为与上一帧的基音延迟参数的分数部分相同;或者,也可以设定 为其他预定的数值,等等。步骤206,直接输出所述T0作为当前坏帧的基音延迟参数。在上述图2所示的处理过程中,需要统计连续坏帕的数目及保存上一帧的 基音延迟参数,相应的处理过程具体如图3所示,包括步骤301,接收编码端发送来的已编码的帧;歩骤302,判断是否出现坏帧,若出现坏帧,则执行步骤304,否则执行 步骤303;步骤303,由于出现了好帧,故需要将连续坏帧数清零,并执行步骤306;步骤304,更新连续坏帧的数目,将当前坏帧的数值计入所述连续坏帧 数目中,执行步骤305;步骤305,计算当前坏帧的基音延迟参数,并执行步骤306,具体的计算 方式如前面针对图2的描述;步骤306,保存当前帧的基音延迟参数,以便于进行之后的坏帧的基音 延迟参数计算时使用;其中,为避免第 一帧便出现坏帧时因尚未保存之前帧的基音延迟参数而 无法进行相应处理,则可以设置相应的基音延迟参数的初始值。本发明还提供了 一种解码装置的实施例,该实施例的具体实现结构如图4 和图5所示,在该装置中包括用于计算确定当前坏帧的基音延迟参数的基音 延迟参数计算单元,该基音延迟参数计算单元用于将确定的基音延迟参数提 供给解码处理实体,以用于进行解码操作。其中,所述的基音延迟参数计算单元具体可以包括 (1 )基音延迟参数保存单元该单元用于保存已经接收的之前帧的基音延迟参数,并保存,以提供给 参数获取单元;该单元具体保存的是预定的某一帧的基音延迟参数,例如, 上一帧的基音延迟参数,或者,上一好帧的基音延迟参数,等等。 (2)连续坏帧数记录单元该单元具体用于统计接收的数据帧中出现的连续坏帧的数量,并保存, 以提供给参数获取单元。(3) 参数获取单元 该单元具体用于获取确定发生的连续坏帧数量,以及之前帧的基音延迟参数;其中,所述的获:f又的之前帧的基音延迟参数可以为基于当前坏帧的上 一帧的基音延迟参数,或者,预定的其他之前已经接收的某一帧的基音延迟 参数。(4) 基音延迟参数确定单元整策略对所述之前帧的基音延迟参数进行调整,从而计算获得当前坏帧的基 音延迟参数,其中,所述的预定的调整策略为随着连续坏帧数量的变化确定 的当前坏帧的基音延迟参数在设定的数值范围内波动,即随着连续坏帧数量 的增加,当前坏帧的基音延迟参数时而增加时而减少,但需要保证其始终处 于确定的范围内。(5) 基音延迟参数调整单元该单元用于在确定计算获得的当前坏帧的基音延迟参数超出预定的数值 范围后,将计算获得的当前坏帧的基音延迟参数调整至所述预定的数值范围 内,从而避免确定的当前坏帧的基音延迟参数的较实际值产生较大的偏离。在该装置的实施例中,所述的基音延迟参数确定单元具体可以采用以下 两种实现方式实现方式一参照图4所示,所述的基音延迟参数确定单元具体可以包括函数调用单元 和第一基音延迟参数计算单元,其中所述的函数调用单元,用于调用预先建立的以连续坏帧数量作为变量的 基音延迟参数计算函数,且所述函数值为随着连续坏帧数量的变化而在设定 的值范围内波动;其中,所述的函数可以为仅基于连续坏帧数量作为变量的 函数,且函数的计算结果需要再与之前帧的基音延迟参数进行计算(如求和等)确定当前坏帧的基音延迟参数;所述的参数也可以为基于连接坏帧数量 及之前帧的基音延迟参数作为变量的函数,且函数的计算结果便为当前坏帧 的基音延迟参数;所述的第一基音延迟参数计算单元,用于根据当前统计的连续坏帧数量 值、函数调用单元调用的基音延迟参数计算函数及之前帧的基音延迟参数, 计算确定当前坏帧的基音延迟参数。实现方式二参照图5所示,在所述的基音延迟参数确定单元具体包括取模运算单元、 调整参数计算单元和第二基音延迟参数计算单元,其中所述的取模运算单元,用于对当前统计的连续坏帧数量值按照预定的运 算方式进行取模运算,获得取模运算结果;所述的调整参数计算单元,用于根据取模运算结果在预先建立的一组调 整参数值中查找与其对应的调整参数值,所述预先建立一组调整参数值分别 与连续坏帧数量取模运算结果对应,且所述调整参数值为在设定的数值范围 内波动,例如,在数值0附近波动,或者,在正负1之间波动,等等;所述的第二基音延迟参数计算单元,用于计算所述调整参数与之前帧的基音延迟参数的和,并作为当前坏帧的基音延迟参数。综上所述,本发明提供的各个实施例在具体应用过程中,若出现连续丢 帧情况,需要替换相应帧的基音延迟参数时,则可以将相应的替换值设为在 之前帧(如上一好帧等)的基音延迟参数附近波动的值。其与现有技术中提 供的单调递增的替换算法相比,减少了积累误差,提高了解码的准确性。而 且,在上述实施例中,由于对替换后的基音延迟参数为波动值,例如,其波 动的幅度至少可以为1样点,因此,相应实施例还能够有效防止过度周期性 的出现,从而可以有效避免解码后的语音出现尖锐噪声的情况。以上所速,仅为本发明较佳的具休实施方式,但本发明的保护范围并不 局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可 轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明 的保护范围应该以权利要求的保护范围为准。
权利要求
1. 一种解码方法,该方法包括接收编码端发来的数据帧,若发生坏帧,则计算确定坏帧的基音延迟参数,根据计算确定的坏帧的基音延迟参数进行解码操作,获得解码后的数据,其特征在于,所述确定坏帧的基音延迟参数的处理过程具体包括确定发生的连续坏帧数量和之前帧的基音延迟参数;根据所述连续坏帧数量及预定的调整策略对所述之前帧的基音延迟参数进行调整,计算获得当前坏帧的基音延迟参数,所述的预定的调整策略为随着连续坏帧数量的变化确定的当前坏帧的基音延迟参数在设定的数值范围内波动。
2、 根据权利要求1所述的方法,其特征在于,所述的之前帧的基音延迟 参数为基于当前坏帧的上一帧的基音延迟参数。
3、 根据权利要求1所述的方法,其特征在于,所述的预定的调整策略包 括预先建立的以连续坏帧数量作为变量的基音延迟参数计算函数,且所述 函数值为随着连续坏帧数量的变化而在设定的数值范围内波动;且,所述的计算获得当前坏帧的基音延迟参数的处理具体包括根据当 前统计的连续坏帧数量值、所述基音延迟参数计算函数及之前帧的基音延迟 参数,计算确定当前坏帧的基音延迟参数。
4、 根据权利要求1所述的方法,其特征在于,所述的预定的调整策略包 括预先建立一组调整参数值,所述一组调整参数值分别与连续坏帧数量取 模运算后获得的值对应,所述一组调整参数值为在设定的数值范围内波动;且,所述的计算获得当前坏帧的基音延迟参数的处理具体包括对当前 统计的连续坏帧数量值进行取模运算,并利用获得的值确定对应的调整参数 值与之前帧的基音延迟参数的和作为当前坏帧的基音延迟参数。
5、 根据权利要求1至4任一项所述的方法,其特征在于,所述的方法还包括若确定计算获得的当前坏帧的基音延迟参数超出预定的数值范围,则将 该计算获得的当前坏帧的基音延迟参数调整至所述预定的数值范围内。
6、 一种解码装置,该装置中包括用于计算确定当前坏帧的基音延迟参数 的基音延迟参数计算单元,该基音延迟参数计算单元用于将确定的基音延迟 参数提供给解码处理实体,以用于进行解码操作,其特征在于,该基音延迟 参数计算单元具体包括参数获取单元,用于获取确定发生的连续坏帧数量,以及之前帧的基音 延迟参数;基音延迟参数确定单元,用于根据参数获取单元确定的所述连续坏帧数 量及预定的调整策略对所述之前帧的基音延迟参数进行调整,计算获得当前 坏帧的基音延迟参数,所述的预定的调整策略为随着连续坏顿数量的变化确 定的当前坏帧的基音延迟参数在设定的数值范围内波动。
7、 根据权利要求6所述的装置,其特征在于,所述的参数获取单元获取 的之前帧的基音延迟参数为基于当前坏帧的上一帧的基音延迟参数。
8、 根据权利要求6所述的装置,其特征在于,所述的基音延迟参数确定 单元具体包括函数调用单元,用于调用预先建立的以连续坏帧数量作为变量的基音延 迟参数计算函数,且所述函数值为随着连续坏帧数量的变化而在设定的数值 范围内波动;第一基音延迟参数计算单元用于根据当前统计的连续坏帧数量值、函 数调用单元调用的基音延迟参数计算函数及之前帧的基音延迟参数,计算确 定当前坏帧的基音延迟参数。
9、 根据权利要求6所述的装置,其特征在于,所述的基音延迟参数确定单元具体包括取模运算单元,用于对当前统计的连续坏帧数量值进行取模运算,获得 取模运算结果;调整参数计算单元,用于根据取模运算结果在预先建立的 一组调整参数 值中查找对应的调整参数值,所述预先建立一组调整参数值分别与连续坏帧数量取模运算结果对应,且所述调整参数值为在设定的数值范围内波动;第二基音延迟参数计算单元,用于计算所述调整参数与之前帧的基音延 迟参数的和,并作为当前坏帧的基音延迟参数。
10、 根据权利要求6、 7、 8或9所述的装置,其特征在于,所述的装置还 包括基音延迟参数调整单元,用于在确定计算获得的当前坏帧的基音延迟参 数超出预定的数值范围后,将计算获得的当前坏帧的基音延迟参数调整至所 述预定的数值范围内。
11、 根据权利要求6、 7、 8或9所述的装置,其特征在于,所述的装置还 包括基音延迟参数保存单元,用于保存已经接收的之前帧的基音延迟参数, 并保存,以提供给参数获取单元;连续坏帧数记录单元,用于统计接收的数据帧中出现的连续坏帧的数量,并保存,以提供给参数获取单元。
全文摘要
本发明涉及一种解码方法及装置。其包括接收编码端发来的数据帧,若发生坏帧,则计算确定坏帧的基音延迟参数,根据计算确定的坏帧的基音延迟参数进行解码操作,获得解码后的数据;其中,所述确定坏帧的基音延迟参数的处理过程具体包括首先,确定发生的连续坏帧数量和之前帧的基音延迟参数;之后,根据所述连续坏帧数量及预定的调整策略对所述之前帧的基音延迟参数进行调整,计算获得当前坏帧的基音延迟参数,所述的预定的调整策略为随着连续坏帧数量的变化确定的当前坏帧的基音延迟参数在设定的数值范围内波动。从而可以克服解码过程中可能出现的过度周期性问题,且可以保证解码的准确性。
文档编号G10L19/10GK101226744SQ20071000118
公开日2008年7月23日 申请日期2007年1月19日 优先权日2007年1月19日
发明者清 张, 伟 李, 杜正中, 桑盛虎, 晨 胡, 许丽净, 许剑峰 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1