具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在现有技术中,在对已损坏或丢失的语音帧进行修复时,是在保证主观质量的前提下改变语音信号的长度,但由于在这个过程中,由于只考虑到了保持语音基音频率的稳定以及重叠语音的相位一致,未考虑生成语音波形与原波形在幅度上的一致,因此会导致修复后的语音质量较低。
本发明实施例提供了一种语音信号修复方法,具体流程如图1所示:
步骤101:将与丢失语音帧相邻近的语音帧在时域范围内进行拆分,生成多个语音段;
步骤102:分别为所述语音段引入系数;
步骤103:将引入系数的语音段分别与一个与自身长度相同的汉宁窗进行相乘,得出最终语音段;
步骤104:将所述最终语音段进行叠加,以覆盖所述丢失的语音帧所处的区域。
本实施例所提供的一种语音信号修复方法,通过对原语音帧进行拆分,生成语音段,并为新生成的语音段引入一个系数,使叠加后的波形能够更大程度上地恢复原语音信号的幅值,从而提高语音质量。
同时,本发明实施例还提供了另外一种语音信号修复方法,具体流程如图2所示:
步骤201:将与丢失语音帧相邻近的语音帧在时域范围内进行拆分,生成多个语音段;
在步骤201中,将该丢失的语音帧邻近的几个完整语音帧进行拆分,生成语音段,在这个过程中,首先要确定所要使用的语音帧和丢失语音帧的总长度,此处将该长度称为语音帧总长度,该长度决定了语音段进行叠加放置后所形成波形的总长度。在进行拆分所生成语音段的长度和该语音段将要放置的位置的确定过程中,可以有多种方式,而这些方式需要满足的条件是相邻语音段之间必须进行叠加,其目的是为了保证在将语音段进行放置后,各波段之间能有一个平滑过度。为便于实际应用技术方案的实现,可以预先设定语音段的个数,并将语音段的长度取为相同,同时使相邻两个语音段之间相互重叠一半,从而可以根据上述几个条件求得生成语音段的长度。
在语音段的个数、长度以及相互之间的叠加关系均确定以后,需要将语音段从原语音帧上进行拆分,该过程可以通过如下方式进行:
从原语音帧的起始处取与语音段长度相同的一段作为第1个语音段,并将该语音段放置于语音帧总长度的起始处。
在选取第2个语音段时,首先为该语音段的起始位置选取一个范围,使该语音段在该范围内进行选取时与第1个语音段进行叠加时能满足相关性最大,即与第1个语音段进行叠加时能够尽可能地相位保持一致。
同理,可以进行后面所有语音段的选取。
步骤202:分别为所述语音段引入增益因子;
步骤202的目的是为了使语音段进行叠加后所形成的新的波形与原语音波形在幅度上尽量相同。其中,该处引入的增益因子可以为:该语音段将要叠加位置的原语音波形的平均幅值和该语音段本身的平均幅值的比值。这样,在语音段与该增益因子相乘后,可以在叠加时尽量在幅度上和原语音波形保持一致。
步骤203:将引入增益因子的语音段分别与一个与自身长度相同的汉宁窗进行相乘,得出最终语音段;
由于在进行语音段的叠加过程中,语音段的重叠必然导致叠加后的语音幅度的增加,因此,需要对参与叠加的每个语音段施加一个汉宁窗,即参与叠加的每个语音段分别与一个与自身长度相同的汉宁窗相乘,这样,在语音段的叠加部分会有一个变化的衰减,并且该衰减可以确保叠加部分的最终幅度不至于过大。
步骤204:将所述最终语音段进行叠加,以覆盖所述丢失的语音帧所处的区域。
在得到最终的语音段之后,根据之前所确定的各个语音段的放置位置,将最终得到的语音段放置于对应位置,以覆盖所述丢失的语音帧所处的区域。
本实施例所提供的一种语音信号修复方法,通过对原语音帧进行拆分,生成多个语音段,并分别为新生成的语音段引入相应的增益因子,使叠加后的波形能够更大程度上地恢复原语音信号的幅值,从而提高语音质量。
相应地,本发明实施例还提供了第三种语音信号修复方法,具体流程如图3所示:
步骤301:将与丢失语音帧相邻近的语音帧在时域范围内进行拆分,生成多个语音段;
在步骤301中,将该丢失的语音帧邻近的几个完整语音帧进行拆分,生成语音段,在这个过程中,首先要确定所要使用的语音帧和丢失语音帧的总长度,此处将该长度称为语音帧总长度,该长度决定了语音段进行叠加放置后所形成波形的总长度。在进行拆分所生成语音段的长度和该语音段将要放置的位置的确定过程中,可以有多种方式,而这些方式需要满足的条件是相邻语音段之间必须进行叠加,其目的是为了保证在将语音段进行放置后,各波段之间能有一个平滑过度。为便于实际应用技术方案的实现,可以预先设定语音段的个数,并将语音段的长度取为相同,同时使相邻两个语音段之间相互重叠一半,从而可以根据上述几个条件求得生成语音段的长度。
在语音段的个数、长度以及相互之间的叠加关系均确定以后,需要将语音段从原语音帧上进行拆分,该过程可以通过如下方式进行:
从原语音帧的起始处取与语音段长度相同的一段作为第1个语音段,并将该语音段放置于语音帧总长度的起始处。
在选取第2个语音段时,首先为该语音段的起始位置选取一个范围,使该语音段在该范围内进行选取时与第1个语音段进行叠加时能满足相关性最大,即与第1个语音段进行叠加时能够尽可能地相位保持一致。
同理,可以进行后面所有语音段的选取。
步骤302:判断语音段是否处于语音异常期;
在步骤302中,由于生成的多个语音段有可能会处于语音异常期,如语音转换期或白噪声期等,其中,语音转换期可以理解为:当任意长度的一段语音幅度变化较频繁,并且有很多的语音幅度为零值。从而需要对所生成的语音段分别判断其是否处于语音异常期。在本实施例中,可以采用如下两种方法实现对语音段是否处于语音异常期的判断:
方法一:计算语音段将要叠加位置的原语音波形的能量和语音段本身能量的,如果两者相差过大,则可以认为该语音段处于语音异常期,换一种说法为:如果语音段将要叠加位置的原语音波形的能量和语音段本身能量的该比值近似等于1,认为该语音段未处于语音异常期;否则,认为处于语音异常期。
方法二:在语音段与其他语音段进行叠加放置时,计算该语音段的叠加部分的相关性,当该相关性大于预先设定的阈值时,表示该语音段未处于语音异常期;否则,表示新语音段处于语音异常期。在本方法中,如果计算得出的相关性小于设定的阈值,表明该语音段很难与其他语音段进行叠加时实现相位上的一致,则可以认为该语音段处于语音异常期。
步骤303:根据判断结果分别为语音段引入相应的系数;
步骤303的目的是为了防止在新语音段进行叠加放置后所形成的新的波形与原语音波形在幅度上存在过大差距。
在步骤302中,分别对生成的语音段进行语音异常期的判断后,根据判断结果为语音段引入相应系数:对于未处于语音异常期的语音段,为其引入增益因子;而对于处于语音异常期的语音段,相应为其引入一个预先设定的因数。
其中,增益因子的计算方法前面已做过介绍,在此不做赘述;而预先设定的因数则可以根据统计结果和当前网络的传输状况来得到,例如,将该传输网络之前长时间的传输状况进行统计分析,依据以往数据设定一个值,也可以只考虑当前网络的传输状况设定一个值,通常情况下,网络传输状况较差时,易发生语音处于异常期的情况,则相应地,语音段需要一个较大的衰减,则所设定的因数要较小。基本上,该处所设定的因数都为一个小于或等于1的正数。
需要说明的是,也可以先对所有语音段进行增益因子的计算,再进行语音异常期的判断,并根据语音异常期的判断结果,决定所计算出的增益因子是否被采用。在这里,这两步的具体顺序不做特殊要求。
步骤304:将引入系数的语音段分别与一个与自身长度相同的汉宁窗进行相乘,得出最终语音段;
由于在进行语音段的叠加过程中,语音段的重叠必然导致叠加后的语音幅度的增加,因此,需要对参与叠加的每个语音段施加一个汉宁窗,即参与叠加的每个语音段分别与一个与自身长度相同的汉宁窗相乘,这样,在语音段的叠加部分会有一个变化的衰减,并且该衰减可以确保叠加部分的最终幅度不至于过大。
步骤305:将所述最终语音段进行叠加,以覆盖所述丢失的语音帧所处的区域。
在得到最终的语音段之后,根据之前所确定的各个语音段的放置位置,将最终得到的语音段放置于对应位置,以覆盖所述丢失的语音帧所处的区域。
本实施例所提供的一种语音信号修复方法,通过对原语音帧进行拆分,生成多个语音段,对所生成的语音段分别进行语音异常期的判断,并根据判断结果分别为新生成的语音段引入相应的系数,使叠加后的波形能够更大程度上地恢复原语音信号的幅值,从而提高语音质量。
本发明实施例还相应提供了一种语音信号修复装置,如图4所示,该装置包括:
语音段生成单元401,用于将与丢失语音帧向邻近的语音帧在时域范围内进行拆分,生成多个语音段;
系数引入单元402,用于分别为所述语音段生成单元中生成的所述语音段引入系数;
汉宁窗引入单元403,用于将引入系数的语音段分别与一个与自身长度相同的汉宁窗进行相乘,得出最终语音段;
语音段叠加单元404,用于将所述最终语音段进行叠加,以覆盖所述丢失的语音帧所处的区域。
结合以上装置,对语音信号进行恢复包括:
语音段生成单元401将与丢失语音帧相邻近的语音帧在时域范围内进行拆分,生成多个语音段;为了使语音段在叠加后能够尽量与原语音的波形保持一致,需要通过系数引入单元402根据每个语音段的不同情况分别引入不同的系数;由于语音段在进行叠加时会导致叠加后的语音幅度的增加,因此,需要汉宁窗引入单元403将引入系数的语音段分别与一个与自身长度相同的汉宁窗进行相乘,并得出最终语音段;之后,语音段叠加单元404将生成的最终语音段进行叠加,以覆盖所述丢失的语音帧所处的区域。
本实施例所提供的一种语音修复装置,通过对原语音帧进行拆分,生成多个语音段,并分别为新生成的语音段引入相应的增益因子,使叠加后的波形能够更大程度上地恢复原语音信号的幅值,从而提高语音质量。
本发明实施例还相应提供了另外一种语音信号修复装置,如图5所示,该装置包括:
语音段生成单元501,用于将与丢失语音帧向邻近的语音帧在时域范围内进行拆分,生成多个语音段;
语音异常期判断单元502,用于判断所述语音段是否处于语音异常期;
系数引入单元503,用于分别为所述语音段生成单元中生成的所述语音段引入系数;
汉宁窗引入单元504,用于将引入系数的语音段分别与一个与自身长度相同的汉宁窗进行相乘,得出最终语音段;
语音段叠加单元505,用于将所述最终语音段进行叠加,以覆盖所述丢失的语音帧所处的区域。
其中,语音异常期判断单元可以进一步包括如图6所示子单元:
能量比值计算子单元601,用于计算所述语音段将要叠加位置的原语音波形的能量和所述语音段本身能量的比值;
第一比较子单元602,用于判断能量比值计算子单元计算出的能量比值是否近似等于1,如果是,确定所述语音段未处于语音异常期;否则,确定所述语音段处于语音异常期;
另外,语音异常期判断单元还可以进一步包括如图7所示子单元:
相关性计算子单元701,用于计算所述语音段进行叠加时叠加部分的相关性;
第二比较子单元702,用于将相关性计算子单元计算所得的相关性与设定阈值进行比较,如果所述相关性大于预先设定的阈值,确定所述语音段未处于语音异常期;否则,确定所述语音段处于语音异常期。
另外,根据判断结果的不同,语音段所引入的系数也存在不同,当判断语音段未处于语音异常期时,为该语音段引入一个增益因子;否则,为该语音段引入一个预先设定的因数。
因此,系数引入单元也相应包括以下两种结构:
一种如图8所示,包括:
增益因子计算子单元801,用于计算用于所述语音段的增益因子,所述增益因子为语音段将要叠加位置的原语音波形的平均幅值和所述语音段本身平均幅值的比值;
第一相乘子单元802:用于将计算得出的所述增益因子与所述语音段进行相乘。
另外一种如图9所示,包括:
因数生成子单元901,用于根据统计分析或网络传输情况生成用于所述语音段的因数;
第二相乘子单元902,用于将所述生成的因数与所述语音段进行相乘。
结合以上装置,对语音信号进行恢复具体为:
语音段生成单元501将与丢失语音帧相邻近的语音帧在时域范围内进行拆分,生成多个语音段;由于生成的语音段有可能处于语音异常期,而影响修复的效果,需要由语音异常期判断单元502判断语音段是否处于语音异常期;根据判断结果,如果该语音段未处于语音异常期,则由增益因子计算子单元801为该语音段计算增益因子,并通过第一相乘子单元802将计算得出的增益因子与该语音段进行相乘;而如果该语音段处于语音异常期,则由因数生成子单元901生成的语音段的因数,并通过第二相乘子单元902将计算得出的增益因子与该语音段进行相乘;由于语音段在进行叠加时会导致叠加后的语音幅度的增加,因此,需要汉宁窗引入单元504将引入系数的语音段分别与一个与自身长度相同的汉宁窗进行相乘,并得出最终语音段;之后,语音段叠加单元505将生成的最终语音段进行叠加,以覆盖所述丢失的语音帧所处的区域。
本实施例所提供的一种语音信号修复装置,通过对原语音帧进行拆分,生成多个语音段,对所生成的语音段分别进行语音异常期的判断,并根据判断结果分别为新生成的语音段引入相应的系数,使叠加后的波形能够更大程度上地恢复原语音信号的幅值,从而提高语音质量。
结合上述方法和具体应用情况,本实施例对本发明的技术方案做进一步介绍。
假设发送端发送3帧语音信号,但由于网络原因,第3帧信号在传输过程中丢失,接收端需要对前面两个完好的语音帧进行拉伸,使其覆盖过第3个语音帧的位置。具体步骤如图10所示:
步骤1001:将接收到的2个完整的语音帧拆分为3段长度相同的语音段。
在步骤1001中,假设接收到的2个完好的语音帧的长度分别为20ms,在8000Hz的采样频率之下,该2个语音帧分别包括160个采样点。由于要满足相邻两个语音段之间相互重叠一半,而重叠之后的语音段刚好覆盖3个语音帧,即480个样点长度的数据,由此可以得出,拆分后的语音段长度应为240个样点。
下面,对如何进行语音帧的拆分做详细介绍:由于要将现有的两个160个样点长度的语音帧拆分为3个240个样点长度的语音段,因此,要进行如下操作:
通常情况下,将输入的两帧语音的开始处作为第1个语音段的起始位置,则第1个语音段应该是从第1个样点到第240个样点,在对第2个语音段进行选取的过程中,为便于实现,该语音段的起始位置可以从第1至第41个样点中进行选取,并根据选取的起始位置,向后数240个样点,形成第2个语音段;同理,第3个语音段的起始位置则在第41至第81个样点中进行选取,并根据选取好的起始位置向后数240个样点,形成第3个语音段。需要注意的是,在选取语音段的起始位置的时候,要考虑到在3个语音段进行叠加时,尽量使相互叠加的语音段的相位保持一致,即让两段语音信号的波峰和波峰相叠加,波谷和波谷相叠加,因此,在选取语音段的起始位置的时候,通常要首先计算每个语音段叠加部分的相关性,最大相关性所对应的样点,即为该语音段的起始位置。
步骤1002:判断语音段是否处于语音异常期,例如语音转换期或白噪声期等,如果是,则进入步骤1003;否则,进入步骤1004。
在步骤1002中,在进行语音转换期或白噪声期的判别时,可以采用如下方式:
以第2语音段为例,采用如下公式进行判断:
g1=XYX2=ΣxyΣx2]]>g2=Y2X2=Σy2Σx2]]>
其中,X为第2个语音段在原语音帧中所处位置的采样点值,Y为第2个语音段在将要叠加的位置的采样点值。将计算得出的g1和g2进行比较,如果g1约等于g2,也就是说该语音段将要叠加位置的原语音波形的能量和该语音段本身能量的比值近似等于1则说明该语音段不处于语音转换期或白噪声期,否则,说明该语音段处于语音转换期或白噪声期。
同理,可进行对第3语音段的判断。
除了利用上述方法进行语音转换期或白噪声期的判断外,还可采用以下方法进行判断:
仍然以第2个语音段为例,前面已做过介绍,在进行第2个语音段的起始位置的选择时,选择范围为原语音帧的第1至第41个样点,而由于进行叠加后,第2个语音段的前120个样点将与第1个语音段的后120个样点产生重叠,将该范围内的每一个样点都假设为第2个语音段的起点,并依次与第一个语音段的后120个样点进行相关性计算,计算所得最大值所对应的样点即为第2个语音段的起始位置,而如果计算所得相关性的最大值大于预先设定的阈值,说明该语音段未处于语音转换期或白噪声期;否则,说明该语音段处于语音转换期或白噪声期。
同理,可进行对第3语音段的判断。
在该步骤中,通常情况下,将阈值设在0.5~2之间,该方法的优点是不需要额外复杂的计算,在进行语音段拆分的过程中已将每个数据段的相关性做了计算。
步骤1003:对语音段使用一个预定义的衰减。
在步骤1003中,对第2和第3语音段使用一个预定义的衰减,可以是将第2和第3语音段分别与一个预定的小于1的系数相乘,从而实现第2和第3语音段的衰减,而对于第1语音段,可以不对其幅值进行改变。
步骤1004:计算分别用于3个语音段的增益因子。
步骤1004是该实施例的一个关键步骤,目的是使叠加后生成的波形包络幅度能很好地和原波形相匹配。
其中,用于第2个语音段的增益因子可以通过如下公式进行计算:
C2=Σn=121360x(n)Σn=ss+239x(n)=Σn=121360x(n)/240Σn=ss+239x(n)/240]]>
其中,C2表示第2语音段将要叠加的位置的原语音波形的平均幅值和第2语音段本身平均幅值的比值;S指代第2个语音段的起始位置。
而用于第3个语音段的增益因子通过如下公式进行计算:
C3=3Σn=241320x(n)Σn=s′s′+239x(n)=3Σn=241320x(n)/240Σn=s′s′+239x(n)/240]]>
其中,C3表示第3语音段将要叠加的位置的原语音波形的平均幅值和第3语音段本身平均幅值的比值;S’指代第3个语音段的起始位置。
而由于第1语音段在原语音帧中的位置与叠加放置后的位置相同,因此,其增益因子为1,可以认为不用对第1语音段引入增益因子。
步骤1005:将步骤1004中计算得出的增益因子分别与第2个语音段和第3个语音段进行相乘。
步骤1006:利用同每个语音段长度相同的汉宁窗分别与每个语音段相乘。
由于要进行3个语音段的叠加,而在对语音段进行重叠后,重叠的部分必然导致语音幅度的增加,因此,对参与叠加的语音段施加一个汉宁窗,可以在叠加部分受到一个变化的衰减,使叠加部分的幅度增加不至于过大。
步骤1007:将拆分所得的3个语音段在一个480个样点的语音区间内进行叠加。
在步骤1007中,由于每个语音段均具有240个样点,在进行语音段的重叠过程中,需要满足相邻两个语音段之间相互重叠一半,因此,将第2个语音段的前120个样点与第1个语音段的后120个样点进行重叠,将第3个语音段的前120个样点与第2个语音段的后120个样点进行重叠,从而实现3个240样点的语音段在480个样点的区域内完成重叠。
本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称的存储介质,如:ROM/RAM、磁碟、光盘等。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。