具体实施方式
本发明实施例提出的一种语音解码方法及装置,其能够提高语音信号的听觉质量,避免语言信号解码时,不同带宽的语音信号带来的听觉不舒服的问题。
下面将结合附图,以具体实施例的方式详细阐述本发明实施例的技术方案。
图1是本发明实施例一的一种语音解码方法的流程图。如图1所示,该方法包括:
步骤S101、根据为窄频带的当前帧的低频带频谱生成该当前帧的高频带频谱。
步骤S102、根据当前帧的低频带信息和相对于该当前帧的前一帧的频带信息判断该当前帧是否需要修正。如果判断结果为是,则执行步骤S103后再执行步骤S104。如果判断结果为否,则执行步骤S104。
在本实施例中,设置前一帧模式位和当前帧模式位,为前一帧模式位设置一个初始值。具体地,根据前一帧模式位的值、当前帧的低频带信息和相对于该当前帧的前一帧的频带信息,确定当前帧模式位的值;然后根据当前帧模式位的值判断当前帧是否需要修正。
步骤S103、利用修正因子对当前帧的高频带频谱进行修正。
例如,通过将当前帧的高频带频谱与修正因子相乘,来对当前帧的高频带频谱进行修正。
在本实施例中,该修正因子的值具体为当前帧的低频带频谱的平均能量值;或者为生成的当前帧的高频带频谱能量与低频带频谱能量的比值再乘以一个小数,使得该修正因子的值小于1,继而使得当前帧的高频带频谱能量值小于其低频带频谱能量值一定的倍数,可选地,使得当前帧的高频带频谱能量值小于其低频带频谱能量值的0.8倍。
例如,计算一帧信号的高频带频谱能量值的方式有:该帧的高频带频谱系数的平方和的均值即为该帧的高频带频谱能量值;
同理,计算一帧信号的低频带频谱能量值的方式有:该帧的低频带频谱系数的平方和的均值即为该帧的低频带频谱能量值;
将一帧信号的高频带频谱能量值与该帧的低频带频谱能量值相比所得到的值,即为该帧的高频带频谱能量与低频带频谱能量的比值。
步骤S104、将当前帧从频域信号变换为时域信号。
步骤S105、利用当前帧的衰减因子对当前帧时域信号的高频时域信号进行衰减。
在本实施例中,当前帧的衰减因子根据当前帧的帧类型信息、相对于该当前帧的前一帧的帧类型信息及其衰减因子来确定;对于该当前帧后的每一帧,该帧的衰减因子根据该帧的帧类型信息、相对于该帧的前一帧的帧类型信息及其衰减因子来确定。实施时,将确定出的当前帧的衰减因子与当前帧时域信号的高频时域信号相乘。其中,所述帧类型信息为宽频带帧或窄频带帧。具体实施方式详见图3。
步骤S106、输出当前帧的时域信号。此处,当前帧的时域信号包括其高频时域信号和低频时域信号。
本实施例在语音解码时,且没有为窄频带的当前帧信号的高频部分的任何信息时,避免了由于不同带宽的语音信号之间切换造成的滤波器状态不连续,从而导致的能量激变现象,使得解码出来的连续的语音信号在听觉上更加舒适,提高了主观音质和听觉质量。
图2是本发明实施例二的一种语音解码方法的流程示意图。如图2所示,对接收到的连续的语音信号进行解码,该方法包括:
步骤S201、判断当前帧是宽频带帧还是窄频带帧。如果当前帧是宽频带帧,则执行步骤S211。如果当前帧是窄频带帧,则执行步骤S202。
步骤S202、将当前帧的归一化的低频带频谱乘以相对于该当前帧的前一帧的高频带频域包络复制到高频,生成当前帧的高频带频谱,将当前帧由窄频带帧扩展为宽频带帧。
步骤S203、判断相对于该当前帧的前一帧,其原始帧是宽频带帧还是窄频带帧。如果该前一帧的原始帧是宽频带帧,则执行步骤S204后再执行步骤S206。如果该前一帧的原始帧是窄频带帧,则执行步骤S205后再执行步骤S207。
步骤S204、根据前一帧的频带信息,计算前一帧的低频带频谱能量值,高频带频谱能量值,和该前一帧的高频带频谱与低频带频谱的能量比值,以及根据当前帧的低频带信息,计算当前帧的低频带频谱能量值,和根据生成的当前帧的高频带信息,计算当前帧的高频带频谱能量值,并计算该当前帧的高频带频谱与低频带频谱的能量比值。
其中,由于当前帧的高频带频谱是通过利用相对于该帧的前一帧的高频带频域包络和复制该当前帧的低频带频谱生成,因此,上述根据生成的当前帧的高频带信息,计算当前帧的高频带频谱能量值,是指根据该当前帧的低频带频谱的能量值和相对于该帧的前一帧高频带频域包络值,计算当前帧的高频带频谱能量值。
在本实施例中,将前一帧的低频带频谱的能量记为Ep1_L,高频带频谱的能量记为Ep1_H,该前一帧的高频带频谱与低频带频谱的能量比记为Egain1;将当前帧的低频带频谱的能量记为Ec2_L,高频带频谱的能量记为Ec2_H,该当前帧的高频带频谱与低频带频谱的能量比记为Egain2。
在本实施例中,计算一帧信号的低频带频谱能量值、高频带频谱能量值、以及一帧信号的高频带频谱能量与低频带频谱能量的比值的方式,与实施例一的步骤S103中所述的实施方式相同,因此,这里不再赘述。
步骤S205、根据前一帧的低频带信息,计算前一帧的低频带频谱能量Ep1_L的值,以及根据当前帧的低频带信息,计算当前帧的低频带频谱能量Ec2_L的值。
步骤S206、根据前一帧模式位的初始值,以及步骤S204中计算出的前一帧的低频带频谱能量Ep1_L的值,和前一帧的高频带频谱与低频带频谱的能量比Egain1的值,以及当前帧的低频带频谱能量Ec2_L的值,和当前帧的高频带频谱与低频带频谱的能量比Egain2的值,确定当前帧模式位的值。
在本实施例中,将前一帧模式位记为prev_mode,初始值为0,将当前帧模式位记为mode。该步骤具体为:
如果当前帧同时满足以下三个条件,则将mode置成1,该三个条件具体为:
1、prev_mode=0;
2、前一帧的高频带频谱和低频带频谱的能量比Egain1小于当前帧的高频带频谱和低频带频谱的能量比Egain2;
3、前一帧的低频带频谱能量Ep1_L大于当前帧的低频带频谱能量Ec2_L一定的倍数α,在本实施例中,α一般为1.6以上。
步骤S207、根据前一帧模式位的值,以及步骤S205中计算出的前一帧的低频带频谱能量Ep1_L的值,以及当前帧的低频带频谱能量Ec2_L的值,确定当前帧模式位的值。
在本实施例中,将前一帧模式位记为prev_mode,将当前帧模式位记为mode。该步骤具体为:
如果该帧同时满足以下两个条件,则将mode位置成0,这两个条件具体为:
1、prev_mode=1;
2、当前帧的低频带频谱能量Ec2_L大于前一帧的低频带频谱能量Ep1_L一定的倍数δ,在本实施例中,δ一般为1.6以上。
步骤S208、判断当前帧模式位的值是否为1。如果该值为1,则判断为需要对当前帧进行修正,执行步骤S210后再执行步骤S211。如果该值为0,则判断为不需要对当前帧进行修正,直接执行步骤S211。
步骤S209、将当前帧模式位的值赋给前一帧模式位,用来对步骤S207中的前一帧模式位的值进行更新。
步骤S210、利用修正因子对当前帧的高频带频谱进行修正,使其能量和真实的高频带频谱能量更接近。
例如,通过将当前帧的高频带频谱与修正因子相乘,来对当前帧的高频带频谱进行修正。
在本实施例中,该修正因子的值具体为当前帧的低频带频谱的平均能量值;或者为生成的当前帧的高频带频谱能量与低频带频谱能量的比值再乘以一个小数,使得该修正因子的值小于1,继而使得当前帧的高频带频谱能量值小于其低频带频谱能量值一定的倍数,可选地,使得当前帧的高频带频谱能量值小于其低频带频谱能量值的0.8倍。
步骤S211、将当前帧从频域信号变换为时域信号。此处,该当前帧包括其低频时域信号和高频时域信号。
步骤S212、利用当前帧的衰减因子对当前帧时域信号的高频时域信号进行衰减。
在本实施例中,当前帧的衰减因子根据当前帧的帧类型信息、相对于该当前帧的前一帧的帧类型信息及其衰减因子来确定;对于该当前帧后的每一帧,该帧的衰减因子根据该帧的帧类型信息、相对于该帧的前一帧的帧类型信息及其衰减因子来确定。实施时,将确定出的当前帧的衰减因子与当前帧时域信号的高频时域信号相乘。其中,所述帧类型信息为宽频带帧或窄频带帧。具体实施方式详见图3。
步骤S213、输出当前帧的时域信号。
上述描述的代码形式为:
if((prev_mode==0)&&(Egain1<Egain2)&&(α*Ec2_L<Ep1_L))α≥1.6
mode=1;
if((prev_mode==1)&&(δ*Ep1_L<Ec2_L))δ≥1.6
mode=0;
例如:当第i帧时mode被置成1,则判断为需要对第i帧的高频带频谱进行修正,同时将mode值赋给prev_mode;接着对第i+1帧的mode值进行判断,如果mode还被置成1,则做和第i帧同样的操作;接着对第i+2,i+3...帧的mode值进行判断,直到第i+N帧的mode被置成0,判断为不需要对第i+N帧的高频带频谱进行修正。
本实施例在语音解码时,且没有为窄频带的当前帧信号的高频部分的任何信息时,避免了由于不同带宽的语音信号之间切换造成的滤波器状态不连续,从而导致的能量激变现象,使得解码出来的连续的语音信号在听觉上更加舒适,提高了主观音质和听觉质量。
图3是本发明实施例的语音解码方法中确定当前帧的衰减因子的流程示意图。本发明实施例二或三中,可选地,可利用当前帧的衰减因子对当前帧时域信号的高频时域信号进行衰减的流程示意图。在本发明实施例中,该衰减因子记为β,初始值为1。如图3所示,确定当前帧的衰减因子包括如下步骤:
步骤S301、判断当前帧是宽频带帧还是窄频带帧。如果当前帧是宽频带帧,则执行步骤S302。如果当前帧是窄频带帧,则执行步骤S303。
步骤S302、当前帧的衰减因子为1。
步骤S303、判断相对于该当前帧的前一帧,其原始帧是宽频带帧还是窄频带帧。如果该前一帧的原始帧是窄频带帧,则执行步骤S304。如果该前一帧的原始帧是宽频带帧,则执行步骤S305。
步骤S304、当前帧的衰减因子为前一帧的衰减因子的平方,即β当前帧=β前一 帧 2。
步骤S305、当前帧的衰减因子为其初始值与一个小数γ相乘的值。在本实施例中,0.5<γ<0.7。
可选地,确定当前帧的衰减因子可在判断出当前帧的帧类型及相对于该当前帧的前一帧的原始帧类型后即可执行,可与在执行步骤S204至步骤S211、或步骤S404至步骤S412的过程中并行执行。可选地,还可以是在执行完步骤S211或步骤S412后进行。确定出当前帧的衰减因子后,执行步骤S212或步骤S413,利用确定出的当前帧的衰减因子对当前帧时域信号的高频时域信号进行衰减。具体地,将确定出的当前帧的衰减因子与当前帧时域信号的高频时域信号相乘。
步骤S306、将当前帧时域信号的高频时域信号与当前帧的衰减因子相乘。
本发明实施例中,由于当盲扩出的高频带频谱能量比实际的高频带频谱能量大时,会对语音信号的质量造成很大的影响,因此,当不知道实际的高频带频谱能量时,通过对所述当前帧的高频带时域信号进行衰减,尽量让盲扩的高频带频谱能量小些,可以提高解码出来的语音信号的质量。
图4是本发明实施例三的一种语音解码方法的流程示意图。如图4所示,对接收到的连续的语音信号进行解码,该方法包括:
步骤S401、判断当前帧是宽频带帧还是窄频带帧。如果当前帧是宽频带帧,则执行步骤S411。如果当前帧是窄频带帧,则执行步骤S402。
步骤S402、将当前帧的低频带频谱直接复制到高频,生成当前帧的高频带频谱,将当前帧由窄频带帧扩展为宽频带帧。
步骤S403、判断相对于该当前帧的前一帧,其原始帧是宽频带帧还是窄频带帧。如果该前一帧的原始帧是宽频带帧,则执行步骤S404后再执行步骤S406。如果该前一帧的原始帧是窄频带帧,则执行步骤S405后再执行步骤S407。
步骤S404、根据前一帧的频带信息,计算前一帧的低频带频谱能量值,高频带频谱能量值,以及根据当前帧的低频带信息,计算当前帧的低频带频谱能量值。
在本实施例中,将前一帧的低频带频谱的能量记为Ep1_L,高频带频谱的能量记为Ep1_H,将当前帧的低频带频谱的能量记为Ec2_L。
在本实施例中,计算一帧信号的低频带频谱能量值和高频带频谱能量值的方式,与实施例一的步骤S103中所述的实施方式相同,因此,这里不再赘述。
步骤S405、根据前一帧的低频带信息,计算前一帧的低频带频谱能量Ep1_L的值,以及根据当前帧的低频带信息,计算当前帧的低频带频谱能量Ec2_L的值。
步骤S406、根据前一帧模式位的初始值,以及步骤S404中计算出的前一帧的低频带频谱能量Ep1_L的值、高频带频谱能量Ep1_H的值,以及当前帧的低频带频谱能量Ec2_L的值,确定当前帧模式位的值。
在本实施例中,将前一帧模式位记为prev_mode,初始值为0,将当前帧模式位记为mode。该步骤具体为:
如果当前帧同时满足以下三个条件,则将mode置成1,该三个条件具体为:
1、prev_mode=0;
2、前一帧的低频带频谱的能量Ep1_H大于当前帧的低频带频谱的能量Ec2_L一定的倍数α,在本实施例中,α一般为1.6以上;
3、前一帧的高频带频谱的能量Ep1_H大于当前帧的低频带频谱的能量Ec2_L。
步骤S407、根据前一帧模式位的值,以及步骤S405中计算出的前一帧的低频带频谱能量Ep1_L的值,以及当前帧的低频带频谱能量Ec2_L的值,确定当前帧模式位的值。
在本实施例中,将前一帧模式位记为prev_mode,将当前帧模式位记为mode。该步骤具体为:
如果该帧同时满足以下两个条件,则将mode位置成0,这两个条件具体为:
1、prev_mode=1;
2、当前帧的低频带频谱能量Ec2_L大于前一帧的低频带频谱的能量Ep1_H一定的倍数α,在本实施例中,δ一般为1.6以上。
步骤S408、判断当前帧模式位的值是否为1。如果该值为1,则判断为需要对当前帧进行修正,执行步骤S410后再执行步骤S412。如果该值为0,则判断为不需要对当前帧进行修正,直接执行步骤S411。
步骤S409、将当前帧模式位的值赋给前一帧模式位,用来对步骤S407中的前一帧模式位的值进行更新。
步骤S410、利用修正因子对当前帧的高频带频谱进行修正,使其能量和真实的高频带频谱能量更接近。
例如,通过将当前帧的高频带频谱与修正因子相乘,来对当前帧的高频带频谱进行修正。
在本实施例中,该修正因子的值具体为当前帧的低频带频谱的平均能量值;或者为生成的当前帧的高频带频谱能量与低频带频谱能量的比值再乘以一个小数,使得该修正因子的值小于1,继而使得当前帧的高频带频谱能量值小于其低频带频谱能量值一定的倍数,可选地,使得当前帧的高频带频谱能量值小于其低频带频谱能量值的0.8倍。
步骤S411、将当前帧的高频带频谱与相对于该帧的前一帧的高频频域包络相乘。
步骤S412、将当前帧从频域信号变换为时域信号。此处,该当前帧包括其低频时域信号和高频时域信号。
步骤S413、利用当前帧的衰减因子对当前帧时域信号的高频时域信号进行衰减。
在本实施例中,步骤S413与实施例二中的步骤S212的实施方式相同,这里不再赘述。
步骤S414、输出当前帧的时域信号。
上述描述的代码形式为:
if((prev_mode==0)&&(Ec2_L<Ep1_H)&&(α*Ec2_L<Ep1_H))α≥1.6
mode=1;
if((prev_mode==1)&&(δ*Ep1_H<Ec2_L))δ≥1.6
mode=0;
例如:当第i帧时mode被置成1,则判断为需要对第i帧的高频带频谱进行修正,同时将mode值赋给prev_mode;接着对第i+1帧的mode值进行判断,如果mode还被置成1,则做和第i帧同样的操作;接着对第i+2,i+3...帧的mode值进行判断,直到第i+N帧的mode被置成0,判断为不需要对第i+N帧的高频带频谱进行修正。
本实施例在语音解码时,且没有为窄频带的当前帧信号的高频部分的任何信息时,避免了由于不同带宽的语音信号之间切换造成的滤波器状态不连续,从而导致的能量激变现象,使得解码出来的连续的语音信号在听觉上更加舒适,提高了主观音质和听觉质量。
图5是本发明实施例四的一种语音解码装置的结构示意图。如图5所示,所述装置包括:扩展单元10,第一修正处理单元11,变换单元12,衰减单元13和衰减因子更新单元14。下面详细描述各单元的具体功能。
扩展单元10,用于将为窄频带的当前帧的归一化的低频带频谱,乘以相对于该当前帧的前一帧的高频带频域包络复制到高频,生成当前帧的高频带频谱。
本发明实施例中,对于该为窄频带的当前帧后面的每一帧,扩展单元10,还用于判断该帧是否为窄带帧,如果是,将该帧的归一化的低频带频谱乘以相对于该帧的前一帧的高频带频域包络复制到高频,生成当前帧的高频带频谱。
第一修正处理单元11,用于根据当前帧的低频带信息和相对于该当前帧的前一帧的频带信息,判断扩展为宽频带的当前帧是否需要修正,当判断结果为是时,利用修正因子对该当前帧的高频带频谱进行修正,当判断结果为否时,对该当前帧不进行修正。
相应地,本发明实施例中,对于该为窄频带的当前帧后面的所有窄带帧,第一修正处理单元11,还用于根据该帧的低频带信息和相对于该帧的前一帧的频带信息,判断该帧是否需要修正,当判断结果为是时,利用修正因子对该帧的高频带频谱进行修正,当判断结果为否时,对该帧不进行修正。
例如,本发明实施例中,该帧为窄频带帧,当相对于该帧的前一帧的原始帧为宽频带帧,则所述该帧的低频带信息为该帧的低频带频谱能量值,和根据该帧的低频带频谱生成的该帧的高频带频谱能量值,及该帧的高频带频谱与低频带频谱能量的比值,所述相对于该帧的前一帧的频带信息为相对于该帧的前一帧的低频带频谱能量值,高频带频谱能量值,和其高频带频谱与低频带频谱的能量比值。
例如,本发明实施例中,该帧为窄频带帧,当相对于该帧的前一帧的原始帧仍为窄频带帧,则所述该帧的低频带信息为该帧的低频带频谱能量值,所述相对于该帧的前一帧的频带信息为相对于该帧的前一帧的低频带频谱能量值。
图6是图5的语音解码装置中的第一修正处理单元11的结构示意图。如图6所示,该第一修正处理单元11包括:计算单元110,判断单元111,判断结果处理单元112。下面详细描述各单元的具体功能。
计算单元110,用于根据前一帧的频带信息,计算前一帧的低频带频谱能量值,高频带频谱能量值,该前一帧的高频带频谱与低频带频谱的能量比值,和用于根据当前帧的低频带信息,计算当前帧的低频带频谱能量值,和用于根据生成的当前帧的高频带信息,计算当前帧的高频带频谱能量值,并计算该当前帧的高频带频谱与低频带频谱的能量比值。
其中,计算一帧信号的低频带频谱能量值、高频带频谱能量值、以及一帧信号的高频带频谱能量与低频带频谱能量的比值的方式,详见本发明实施例的方法的描述,这里不再赘述。
判断单元111,用于根据前一帧模式位的值,计算单元110计算出的前一帧的低频带频谱能量值,和前一帧的高频带频谱与低频带频谱的能量比值,以及当前帧的低频带频谱能量值,和当前帧的高频带频谱与低频带频谱的能量比值,确定当前帧模式位的值;和根据当前帧模式位的值判断出当前帧是否需要修正。
相应地,本发明实施例中,对于该为窄频带的当前帧后面的所有窄带帧,判断单元111,还用于:
例如,该帧为窄频带帧,当相对于该帧的前一帧的原始帧为宽频带帧,则根据前一帧模式位的值,计算单元110计算出的相对于该帧的前一帧的低频带频谱能量值,高频带频谱与低频带频谱的能量比值,及该帧的低频带频谱能量值,高频带频谱与低频带频谱的能量比值,确定当前帧模式位的值;和根据当前帧模式位的值判断出该帧是否需要修正;
例如,该帧为窄频带帧,当相对于该帧的前一帧的原始帧仍为窄频带帧,则根据前一帧模式位的值,计算单元110计算出的相对于该帧的前一帧的低频带频谱能量值,及该帧的低频带频谱能量值,确定当前帧模式位的值;和根据当前帧模式位的值判断出该帧是否需要修正。
判断结果处理单元112,用于当判断结果为是时,利用修正因子对当前帧的高频带频谱进行修正,当判断结果为否时,对当前帧不进行修正。
变换单元12,用于将根据判断结果进行处理后的当前帧从频域信号变换为时域信号。
衰减单元13,用于利用当前帧的衰减因子对当前帧时域信号的高频时域信号进行衰减后,输出当前帧的时域信号。
可选地,本发明实施例中,该装置还包括:衰减因子更新单元14,用于根据当前帧的帧类型信息、相对于该当前帧的前一帧的帧类型信息及其衰减因子的值,确定出该衰减因子的当前值。该值用于衰减单元13对高频时域信号进行衰减。所述帧类型信息为宽频带帧或窄频带帧。其中,衰减因子更新单元14更新的过程详见本发明实施例的方法的描述,在此不再赘述。
图7是本发明实施例五的一种语音解码装置的结构示意图。如图7所示,该装置包括:扩展单元10′,第一修正处理单元11′,第二修正处理单元15,变换单元12,衰减单元13和衰减因子更新单元14。下面详细描述各单元的具体功能。
扩展单元10′,用于将为窄频带的当前帧的低频带频谱直接复制到高频,生成当前帧的高频带频谱。
本发明实施例中,对于该为窄频带的当前帧后面的每一帧,扩展单元10,还用于判断该帧是否为窄带帧,如果是,将该帧的低频带频谱复制到高频,生成当前帧的高频带频谱。
第一修正处理单元11′,用于根据当前帧的频带信息和相对于该当前帧的前一帧的低频带信息,判断扩展为宽频带的当前帧是否需要修正,当判断结果为是时,利用修正因子对该当前帧的高频带频谱进行修正,当判断结果为否时,对该当前帧不进行修正。
相应地,本发明实施例中,对于该为窄频带的当前帧后面的所有窄带帧,第一修正处理单元11′,还用于根据该帧的低频带信息和相对于该帧的前一帧的频带信息,判断该帧是否需要修正,当判断结果为是时,利用修正因子对该帧的高频带频谱进行修正,当判断结果为否时,对该帧不进行修正。
例如,本发明实施例中,该帧为窄频带帧,当相对于该帧的前一帧的原始帧为宽频带帧,则所述该帧的低频带信息为该帧的低频带频谱能量值,和根据该帧的低频带频谱生成的该帧的高频带频谱能量值,所述相对于该帧的前一帧的频带信息为相对于该帧的前一帧的低频带频谱能量值和高频带频谱能量值。
例如,本发明实施例中,该帧为窄频带帧,当相对于该帧的前一帧的原始帧仍为窄频带帧,则所述该帧的低频带信息为该帧的低频带频谱能量值,所述相对于该帧的前一帧的频带信息为相对于该帧的前一帧的低频带频谱能量值。
本发明实施例中,第一修正处理单元11′,包括:计算单元110′,判断单元111′,判断结果处理单元112′。下面详细描述各单元的具体功能。
计算单元110′,用于根据前一帧的频带信息计算前一帧的低频带频谱能量值和高频带频谱能量值,和用于根据当前帧的低频带信息计算当前帧的低频带频谱能量值。
判断单元111′,用于根据前一帧模式位的值,计算单元110′计算出的前一帧的低频带频谱能量值和高频带频谱能量值,和当前帧的低频带频谱能量值,确定当前帧模式位的值;和根据当前帧模式位的值判断出当前帧是否需要修正。
相应地,本发明实施例中,对于该为窄频带的当前帧后面的所有窄带帧,判断单元111′,还用于:
例如,该帧为窄频带帧,当相对于该帧的前一帧的原始帧为宽频带帧,则根据前一帧模式位的值,计算单元110′计算出的相对于该帧的前一帧的低频带频谱能量值和高频带频谱能量值,及该帧的低频带频谱能量值,确定当前帧模式位的值;和根据当前帧模式位的值判断出该帧是否需要修正;
例如,该帧为窄频带帧,当相对于该帧的前一帧的原始帧仍为窄频带帧,则根据前一帧模式位的值,计算单元110′计算出的相对于该帧的前一帧的低频带频谱能量值,及该帧的低频带频谱能量值,确定当前帧模式位的值;和根据当前帧模式位的值判断出该帧是否需要修正。
判断结果处理单元112′,用于当判断结果为是时,利用修正因子对当前帧的高频带频谱进行修正,当判断结果为否时,对当前帧不进行修正。
第二修正处理单元15,用于当第一修正处理单元11′没有对当前帧的高频带频谱进行修正时,将当前帧的高频带频谱乘以相对于该当前帧的前一帧的高频带频域包络,当第一修正处理单元11′对当前帧的高频带频谱修正过时,对当前帧做不修正的处理。
相应地,本发明实施例中,对于该为窄频带的当前帧后面的所有窄带帧,第二修正处理单元15,还用于当第一修正处理单元11′没有对该帧的高频带频谱进行修正时,将该帧的高频带频谱乘以相对于该帧的前一帧的高频带频域包络,当第一修正处理单元11′对该帧的高频带频谱修正过时,对该帧做不修正的处理。
变换单元12,用于将根据判断结果进行处理后的当前帧从频域信号变换为时域信号。
衰减单元13,用于利用当前帧的衰减因子对当前帧时域信号的高频时域信号进行衰减后,输出当前帧的时域信号。
可选地,本发明实施例中,该装置还包括:衰减因子更新单元14,用于根据当前帧的帧类型信息、相对于该当前帧的前一帧的帧类型信息及其衰减因子的值,确定出该衰减因子的当前值,该值用于衰减单元13对高频时域信号进行衰减。所述帧类型信息为宽频带帧或窄频带帧。相同地,衰减因子更新单元14更新的过程详见本发明实施例的方法的描述,在此不再赘述。
由以上实施例可知,根据本发明实施例提出的一种语音解码方法及装置,利用窄频带帧的低频带频谱生成该窄频带帧的高频带频谱,并根据一定的判断条件判断该窄频带帧是否需要修正,需要修正时,修正该窄频带帧的高频带频谱,使得将语音信号中的窄频带帧扩展为有效的宽频带帧,很好地解决了因不同带宽的语音信号导致听觉上不舒适的问题,提高了语音信号的听觉质量。
同时,将本发明应用在将窄频带帧扩展为宽频带帧的频带扩展技术中,可以有效提升当低频带能量较低时恢复出的高频带信号的性能。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。