在g.711语音编码中隐藏冗余信息的方法

文档序号:2831998阅读:887来源:国知局
专利名称:在g.711语音编码中隐藏冗余信息的方法
技术领域
本发明涉及网络丢包环境下改善语音通信质量的方式和声音信号中特征提取以及信息隐藏的方式,尤其涉及一种在G.711语音编码中隐藏冗余信息提高语音抗丢包能力的方法。

背景技术
VoIP是指通过分组交换IP数据网络拨打电话的语音通信技术,其具有节约带宽、降低话费和可与其它数据业务融合等优点,也因其分组传输的特性,存在着延迟(语音包延时到达)、抖动(语音包延迟时间和到达顺序不可预见)和丢包(语音包丢失)等不可避免的问题。VoIP的基本传输过程是声音经过模-数转换后,语音编码器将数字化的语音信号转化为比特流,比特流经过打包后通过IP网络传输。然后,语音解码器利用接收的语音包,对语音信号进行重构,还原出原始语音信号。语音编码器和解码器是VoIP通讯质量的关键。
语音编码算法是语音编码的核心组成部分,G.711是国际电信联盟(ITU-T)制定的最常用的音频编码方式之一,采样率为8k每秒,利用一个64kbps未压缩通道传输语音讯号。其后许多新的编码被提出,如G.729,G.723,speex,iLBC等;G.729等编码考虑了共轭结构的算术码本激励线性预测压缩技术,使编码后的语音包码率降低到8kbps左右;有些编码如iLBC则考虑了压缩和冗余技术,使得通讯过程中的抗丢包性能大大提高。然而一种新的编码实施成本往往非常昂贵,到目前为止,G.711仍然是使用最普遍的编码方式,兼容于大多数电话设备,尤其是无法通过软件升级来实现新的编码的硬件上。
G.711是一种无损音频压缩编码。根据日常生活中的语音信号特点和人耳的声学特性,声音信号其实可以用很低的码率来表达主要信息。声学的研究表明,将声音的时域信号转换成频域信号,提取出频谱中的主要特征,忽略掉次要细节,还原成的语音仍然能辨认主要内容。因此,在语音包丢失严重的恶劣网络传输条件下,如果能牺牲一部分声音细节信息,优先传送语音中的特征数据,可以避免丢包引起的声音顿挫、断续和不可辨认,使语音平滑和连贯,从而在同等网络条件下改善通话效果。
FFT算法可用来将声音由时域变换到频域,它是一种可逆算法,并且可以由硬件加速,适合实时处理。IFFT是其反变换,可用于将频域信号变换回时域。如果频域信号未改变,反变换的结果与原始语音相同。而语音的频域信号上至少存在着以下几种信息隐藏算法一、高频隐藏将高频信号截去一部分,替换成隐藏信息,人耳听觉上会认为其是背景噪声;二、频率掩蔽区域隐藏如果在某个频率存在一个局部能量峰值,人耳会对其周围的一部分频率非常不敏感,因此将其截去或替换成其它信息,这就是心理声学模型中的“频率掩蔽效应”;三、相位隐藏通过轻微改变频域信号的相位信息来实现信息嵌入;四倒谱域隐藏采用复倒谱变换,在倒谱域进行隐藏。
由于电话通讯中声音的采样频率只有8k每秒,根据香农定理,理论上只能承载最高4kHz的频率信号,实际上一般认为电话语音的可用频率范围是200Hz~3.4kHz,因此在3.4kHz~4kHz的一段频域空间其实正好可以用来隐藏信息。频率掩蔽区域隐藏、倒谱域隐藏等算法理论上隐藏的效果更好,但是计算量很大,而且电话带宽太有限,处理起来不经济。


发明内容
本发明的目的是克服现有技术存在的不足,提供一种在G.711语音编码中隐藏冗余信息提高语音抗丢包能力的方法,使系统既能兼容于G.711编码,又能大大提高语音通信的抗丢包能力,改善通话质量。
本发明的目的通过以下技术方案来实现 在G.711语音编码中隐藏冗余信息的方法,特点是在语音包编码前进行缓冲和前置处理,使语音信息中包含被隐藏的冗余信息,带有人耳不敏感的隐藏信息,隐藏信息包含了临近的前若干帧语音包的主要特征,然后用正常的G.711方式编码和发送,在解码端增加与解码同步的缓冲和后置同步处理,恢复正常语音,即接收端用反向算法进行解码和后处理获得原始语音信息;当发生数据包丢失时,从其临近的其它数据包中获得丢失包的主要语音特征,从缓冲区中获得邻近包中含有丢失包特征的数据,重建丢失包的主要语音信号,从而恢复出丢失包的主要语音数据;而对于不知晓该隐藏算法的解码端,直接用正常的G.711方式解码获得接近原始状态的语音。
进一步地,上述的在G.711语音编码中隐藏冗余信息的方法,具体包含以下步骤—— ①对语音信号进行前置处理,建立语音发送数据缓冲区,对缓冲区中的每一片语音信号变换到频域,根据心理声学模型,提取出频域中包含的主要特征分量,对频域数据去除一部分人耳不敏感的信号,然后把特征分量分散隐藏到缓冲区中邻近的语音包中,最后把隐藏了冗余特征信息的语音包由频域变换回时域; ②将隐藏了冗余信息的语音包按正常G.711编码方式进行编码,通过上层通信环境发送到受话方; ③在语音接收方建立接收数据缓冲区,对收到的每一片语音包根据G.711编码进行解码,然后变换到频域,检测是否存在隐藏信息,如果存在,将其分离出来,并还原出被压缩部分的语音数据; ④当缓冲区设定的超时时间截止后,检查尚未到达的语音包,根据邻近的已到达语音包中分离出来的特征信息,对丢失的语音包进行特征重建,对无法获得特征信息的语音包尝试进行预测重建,最后还原出完整的语音波形信号输出; ⑤根据统计的丢包情况估计网络质量,调整冗余信息的密度,在低质量网络中使用更低的原始信号密度和更高的冗余信息密度,体现在回送的语音信号中。
更进一步地,上述的在G.711语音编码中隐藏冗余信息的方法,其中,所述语音编码前置处理,建立语音发送数据缓冲区,对缓冲区中的每一片语音信号用FFT变换到频域,根据心理声学模型,提取出频域中包含的主要特征分量,然后对频域数据进行压缩,去除一部分人耳不敏感的信号区,然后将特征分量分散隐藏到缓冲区中邻近的语音包中,最后将隐藏冗余特征信息的语音包用IFFT由频域变换回时域,然后用G.711编码发送。
更进一步地,上述的在G.711语音编码中隐藏冗余信息的方法,其中,所述语音解码同步处理,建立语音接收数据缓冲区,对收到的每一片语音包根据G.711编码进行解码,用FFT变换到频域,检测并分离出隐藏信息,还原出被压缩部分的语音数据,当缓冲区设定的超时时间已到,检查尚未到达的语音包,根据邻近的已到达语音包中分离出来的特征信息,对丢失的语音包进行特征重建。
再进一步地,上述的在G.711语音编码中隐藏冗余信息的方法,其中,所述信息重建,重建的过程包括冗余信息重建和预测重建两个步骤,冗余信息重建,在可以从邻近包中得到该语音包的特征信息的情况下,恢复出该语音包的频域数据;冗余信息重建,在无法从邻近包中获得该语音包确切特征信息的情况下,通过判断语音信号在时域范围上的变化特征,对该包的频域信号进行预测填充。
本发明技术方案突出的实质性特点和显著的进步主要体现在 (1)针对G.711编码设计的增强编码和传输模式,通过在声音频域信息中隐藏邻近包的特征信息,使语音数据在传输过程中不可避免地存在丢包的情况下,可以从相邻包的冗余信息中还原出丢失包的语音信息,从而实现平滑的语音同时又保留大部分声音细节;完全兼容于G.711原有的编解码算法,不改变数据长度,因此在没有该解码算法的环境中,用普通的解码算法仍然能还原出正常的语音,因此兼容于普通的G.711支持系统,同时在增强环境中提供更好的语音质量; (2)不需要实现通知通话接收方新的编码方式的存在,通话协商仍然是通过G.711方式建立,因此避免了引入一种新编码方式对于原通讯系统调整的巨大代价,而G.711编码仍然是目前使用最广泛和通话质量最好的编码之一;即使接收方不知晓增强编码方式的存在,以普通G.711方式解码,仍然能获得人耳听觉上与原信号差异不大的语音信息,高频区隐藏的冗余信息体现在通话背景中略微的“兹兹”声; (3)不改变原有G.711编码本身的结构和输出码流的长度,其额外信息是隐藏在频域信号中的,因此对G.711完全透明,同时具有较强的抗变换性能; (4)可以大大增强丢包情况发生时线路的通讯质量,在间隔丢一两个包的情况下基本上能还原出不间断的完整信号,只有发生连续大片丢包时,才无法还原任何语音,因此可以较大幅度地提升恶劣环境下通话的MOS值。



下面结合附图对本发明技术方案作进一步说明 图1本发明的流程示意图; 图2编码过程示意图; 图3频域信息隐藏过程示意图; 图4冗余信息嵌入前后波形对比示意图; 图5解码过程示意图。
图中各附图标记的含义见下表
具体实施例方式 不改变原有G.711语音数据编码、传输、还原的方式,通过在语音编码前进行缓冲和前置处理,使语音信息中包含被隐藏的冗余信息,在解码端增加与解码同步的缓冲和后置同步处理,恢复正常语音,当发生丢包的情况,从缓冲区中获得邻近包中含有丢失包特征的数据,重建丢失包的主要语音信号,从而实现在兼容G.711编码的基础上,增强通话的抗丢包性能。
如图1所示,在G.711语音编码中隐藏冗余信息的方法,具体过程是①对语音信号进行前置处理,建立语音发送数据缓冲区,对缓冲区中的每一片语音信号变换到频域,根据心理声学模型,提取出频域中包含的主要特征分量,对频域数据去除一部分人耳不敏感的信号,然后把特征分量分散隐藏到缓冲区中邻近的语音包中,最后把隐藏了冗余特征信息的语音包由频域变换回时域;②将隐藏了冗余信息的语音包按正常G.711编码方式进行编码,通过上层通信环境发送到受话方;③在语音接收方建立接收数据缓冲区,对收到的每一片语音包根据G.711编码进行解码,然后变换到频域,检测是否存在隐藏信息,如果存在,将其分离出来,并还原出被压缩部分的语音数据;④当缓冲区设定的超时时间截止后,检查尚未到达的语音包,根据邻近的已到达语音包中分离出来的特征信息,对丢失的语音包进行特征重建,对无法获得特征信息的语音包尝试进行预测重建,最后还原出完整的语音波形信号输出;⑤根据统计的丢包情况估计网络质量,调整冗余信息的密度,在低质量网络中使用更低的原始信号密度和更高的冗余信息密度,体现在回送的语音信号中。
其中,语音编码前置处理方式,建立语音发送数据缓冲区,对缓冲区中的每一片语音信号用FFT变换到频域,根据心理声学模型,提取出频域中包含的主要特征分量,然后对频域数据进行压缩,去除一部分人耳不敏感的信号区,然后将特征分量分散隐藏到缓冲区中邻近的语音包中,最后把隐藏了冗余特征信息的语音包用IFFT由频域变换回时域,然后用G.711编码发送。
语音解码同步处理方式,建立语音接收数据缓冲区,对收到的每一片语音包根据G.711编码进行解码,用FFT变换到频域,检测并分离出隐藏信息,还原出被压缩部分的语音数据,当缓冲区设定的超时时间已到,检查尚未到达的语音包,根据邻近的已到达语音包中分离出来的特征信息,对丢失的语音包进行特征重建。
信息重建方式,重建的过程包括冗余信息重建和预测重建两个步骤;冗余信息重建方式,在可以从邻近包中得到该语音包的特征信息的情况下,恢复出该语音包的频域数据。冗余信息重建方式,在无法从邻近包中获得该语音包确切特征信息的情况下,通过判断语音信号在时域范围上的变化特征,对该包的频域信号进行预测填充。
语音传送方式,经过前置处理后的声音数据采用G.711正常的编码方式编码后发送,在解码端不知晓的情况下,用普通的G.711解码算法解出的语音数据人耳听起来与原语音差别很小。语音传送方式,用配套的增强解码算法,在语音包丢失率增大的情况下,使用本发明所采用的方法语音通话效果要大大好于正常的G.711编码方式。语音传送方式,冗余信息的密度可以根据网络丢包率自适应调整,在恶劣传输环境下,通过牺牲单个语音包的细节信息,优先满足语音的平滑性能。
图2描述了本发明涉及的语音包前置处理和G.711编码相关过程,语音在经A/D转换后变成数字信号,根据G.711编码的规定,以20ms或30ms为单位进行帧采样,建立发送缓冲区,对缓冲区中的每一片音频数据进行FFT运算,变换成频域信号;分析每一个语音包的频域数据,提取主要和次要两级特征向量; 语音特征提取已经有比较成熟的算法,例如线性预测(LPC)算法或Mel倒谱特征(MFCC)方法,可以通过很少的几个基频、主要共振峰参数或者Mel倒谱参数特征值来表示语音片段的主要频谱特征,根据这些特征值可以反向合成出人耳能辨认主要内容的语音;考虑到兼顾码率和细节的需要,将特征分成主要特征和次级特征两部分,对主要特征冗余两次,次级特征冗余一次; 图3描述了语音特征提取和冗余特征分配的过程,设当前为第N帧语音数据,时域信号帧空间1由FFT变换转换为频域信号帧空间2,分离出两级频域特征参数分别为第N包的次级特征8、第N包的主要特征9;同样,可得到第N-1片语音频域特征参数第N-1包的次级特征6和第N-1包的主要特征7,第N-2包的次级特征4和第N-2包的主要特征5;对频域信号帧空间2进行低通滤波,保留0-3.4kHz的低频部分;将3.4kHz-4kHz的范围所对应的FFT结果中的字节空间替换成第N-1片音频的主要和次要特征参数(第N-1包的次级特征6和第N-1包的主要特征7)和第N-2包的主要特征5;这时FFT结果空间中的3.4kHz-4kHz段字节的含义已经不是原先语音的高频分量,不过可以理解为是原信号中的高频噪声;然后对该结果进行反向FFT变换(IFFT),转换回时域波形信号,得到的结果即是嵌入了冗余特征信息的声音波形信息,可以用传统的G.711进行编码和发送。
图4描述了一段语音的原始波形与嵌入隐藏冗余信息后的声音波形的对比,从中可以看到,波形文件的细节中增加了高频振动信号。对人耳来说,这一信号听起来象是轻微的背景电流噪声。由于该信号经G.711编码后是以二进制比特流的方式传到对方,IP传输本身是数字信号,或者原封不动到达,或者全部丢失(丢包情况下),因此该信号在传输过程中不会受到干扰损坏。
图5描述了本发明涉及的语音接收端后置处理和G.711解码相关过程,在接收端建立接收缓冲区,对每一片数据进行频域转换,检测高频区,分离出隐藏的特征字节待用;等缓冲区时间超时后,检查有哪些丢失包,对丢失包通过第N+1或N+2片数据(如果到达)中分离出来的特征向量进行重建;如果无法获得任何特征信息,则转入预测重建。
预测重建的方法是依据语音在很短的时间内频域范围内的变化有一定连贯性,通过复制或内插重建丢失包的频域数据,然后变换回时域获得估计的声音波形。预测重建不可能获得丢失的准确细节,但是可以在一定程度上提高语音的连贯性,防止因语音帧丢失引起的输出声音产生顿、卡、爆音现象。
最后,把所有语音包的频域信号还原成波形信号,向上层输出。
由于冗余信息的存在,使得输出的声音在丢失间隔一个包或连续两个包的情况下,仍然能保持较好的连贯性,而在线路质量良好的情况下,又比损伤性压缩编码保留了更多的声音细节,因此可以从整体上保持较好的语音通话质量。
需要理解到的是上述说明并非是对本发明的限制,在本发明构思范围内,所进行的添加、变换、替换等,也应属于本发明的保护范围。
权利要求
1.在G.711语音编码中隐藏冗余信息的方法,其特征在于在语音包编码前进行缓冲和前置处理,使语音信息中包含被隐藏的冗余信息,带有人耳不敏感的隐藏信息,隐藏信息包含了临近的前若干帧语音包的主要特征,然后用正常的G.711方式编码和发送,在解码端增加与解码同步的缓冲和后置同步处理,恢复正常语音,即接收端用反向算法进行解码和后处理获得原始语音信息;当发生数据包丢失时,从其临近的其它数据包中获得丢失包的主要语音特征,从缓冲区中获得邻近包中含有丢失包特征的数据,重建丢失包的主要语音信号,从而恢复出丢失包的主要语音数据;而对于不知晓该隐藏算法的解码端,直接用正常的G.711方式解码获得接近原始状态的语音。
2.根据权利要求1所述的在G.711语音编码中隐藏冗余信息的方法,其特征在于具体包含以下步骤——
①对语音信号进行前置处理,建立语音发送数据缓冲区,对缓冲区中的每一片语音信号变换到频域,根据心理声学模型,提取出频域中包含的主要特征分量,对频域数据去除一部分人耳不敏感的信号,然后把特征分量分散隐藏到缓冲区中邻近的语音包中,最后把隐藏了冗余特征信息的语音包由频域变换回时域;
②将隐藏了冗余信息的语音包按正常G.711编码方式进行编码,通过上层通信环境发送到受话方;
③在语音接收方建立接收数据缓冲区,对收到的每一片语音包根据G.711编码进行解码,然后变换到频域,检测是否存在隐藏信息,如果存在,将其分离出来,并还原出被压缩部分的语音数据;
④当缓冲区设定的超时时间截止后,检查尚未到达的语音包,根据邻近的已到达语音包中分离出来的特征信息,对丢失的语音包进行特征重建,对无法获得特征信息的语音包尝试进行预测重建,最后还原出完整的语音波形信号输出;
⑤根据统计的丢包情况估计网络质量,调整冗余信息的密度,在低质量网络中使用更低的原始信号密度和更高的冗余信息密度,体现在回送的语音信号中。
3.根据权利要求1所述的在G.711语音编码中隐藏冗余信息的方法,其特征在于所述语音编码前置处理,建立语音发送数据缓冲区,对缓冲区中的每一片语音信号用FFT变换到频域,根据心理声学模型,提取出频域中包含的主要特征分量,然后对频域数据进行压缩,去除一部分人耳不敏感的信号区,然后将特征分量分散隐藏到缓冲区中邻近的语音包中,最后将隐藏冗余特征信息的语音包用IFFT由频域变换回时域,然后用G.711编码发送。
4.根据权利要求1所述的在G.711语音编码中隐藏冗余信息的方法,其特征在于所述语音解码同步处理,建立语音接收数据缓冲区,对收到的每一片语音包根据G.711编码进行解码,用FFT变换到频域,检测并分离出隐藏信息,还原出被压缩部分的语音数据,当缓冲区设定的超时时间已到,检查尚未到达的语音包,根据邻近的已到达语音包中分离出来的特征信息,对丢失的语音包进行特征重建。
5.根据权利要求1所述的在G.711语音编码中隐藏冗余信息的方法,其特征在于所述信息重建,重建的过程包括冗余信息重建和预测重建两个步骤,冗余信息重建,在可以从邻近包中得到该语音包的特征信息的情况下,恢复出该语音包的频域数据;冗余信息重建,在无法从邻近包中获得该语音包确切特征信息的情况下,通过判断语音信号在时域范围上的变化特征,对该包的频域信号进行预测填充。
全文摘要
本发明提供一种在G.711语音编码中隐藏冗余信息的方法,在语音包编码前进行预处理,使其带有人耳不敏感的隐藏信息,这些信息包含了临近的其它语音包的主要特征,然后用正常的G.711方式编码和发送,在接收端用同样的反向算法进行解码和后处理,即可获得原始语音信息。当发生数据包丢失时,从其临近的其它数据包中获得丢失包的主要语音特征,从而恢复出丢失包的主要语音数据。而对于不知晓该隐藏算法的设备,直接用正常的G.711方式解码也能获得接近原始状态的语音。使系统既能兼容于G.711编码,又能大大提高语音通信的抗丢包能力,改善通话质量。
文档编号G10L19/00GK101604523SQ20091003151
公开日2009年12月16日 申请日期2009年4月22日 优先权日2009年4月22日
发明者张格伟, 成 承, 刘继明 申请人:网经科技(苏州)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1