一种数字音频防篡改方法

文档序号:6762345阅读:233来源:国知局
专利名称:一种数字音频防篡改方法
技术领域
本发明涉及数字音频的防篡改方法,应用了基于小波变换的数字水印技术。
背景技术
随着数字音频的广泛应用,数字音频数据容易受到篡改使得数据的完整性难以得到保证等一系列问题出现在我们的面前。例如1)网络中传输的音频信息很容易受到篡改,需要有方法来保证音频信息的完整性。2)笔录是公检法等部门传统的取证手段,然而单独的笔录取证手段具有准确度不高、记录速度慢、易于篡改、易于产生争议等缺点。数字录音取证手段在相当程度上可以解决上述存在的问题,特别是在事后判断是否存在诱供、逼供行为时等可以起到很好的说明作用,且便于查询。但普通的数字录音也存在数据容易被篡改的缺陷。一旦解决数据防篡改和完整性认证问题,数字录音将可以作为一种重要的取证手段。

发明内容
本发明的目的是提供一种数字音频的防篡改方法,该方法具有良好的抗裁剪能力,而且具有保护音频数据完整性的能力,使处理后的音频与原始音频在听觉上差别不大。
为了实现上述目的,本发明方法分为水印和同步码的嵌入和检测两个步骤水印和同步码的嵌入过程如下1)录音根据用户的需求选取特定的采样率和量化精度进行录音,对于普通语音,选取22.1kHz采样率,8bits量化精度;对于高保真音频选取44.1kHz采样率,16bits量化精度;将模拟音频信号通过A/D变换形成数字信号;2)实时嵌入水印和同步码在录音的同时,按用户需求的长度将数字语音信号分段,分段长度缺省值为0.1秒,选取周期长度为63bit或31bit的m序列作为同步码,对每一段数据采取Daubechies(双正交)系列小波进行5层小波变换然后嵌入同步码以及缺省长度为44bits的水印,整个音频数据中嵌入的水印可以构成一个连续的数字序列,嵌入水印后的数字音频信号可以存入计算机磁盘;水印的检测过程如下1)水印的检测对于正常情况下水印的检测,将待检测音频数据按不短于水印嵌入时的长度分段,保证每段音频中至少包含一个同步码,对每一段数据进行与嵌入过程相同分解层数和相同小波的小波变换,从分解得到的低频系数中提取并搜索同步码,最后根据同步码的位置提取水印;2)判断篡改对于一段音频数据被裁剪情况下水印的检测,同样先对数据进行分段并进行小波变换,从小波系数中提取水印,当出现提取出的水印不连续时则认为音频数据出现了断点,对于只有一段音频数据被裁剪的情况断点后的数据是完整的,利用这一点就可以判断出断点位置,从而提取出剩余的所有水印;3)对于多段音频数据被裁剪情况下水印的检测,则利用小波变换的平移性质对断点后的水印进行重同步,从而提取出剩余的所有水印。
为了能够实现实时的对音频信号嵌入水印,可采用了多线程的技术以实现录音和水印嵌入的同步进行。系统建立了语音线程和水印嵌入线程,并在内存中开辟了两个内存队列,分别是语音数据队列和等待嵌入水印数据队列。在系统中两个队列的大小相同,每个队列都是由20块大小为36096个字节的内存块组成的循环队列,内存块的大小具体可按照实际需要对音频数据分段的大小进行调整。
具体的做法是一、水印和同步码的嵌入一)录音过程如下(1)录音机放音,声音模拟信号接入计算机的声卡,语音线程控制声卡在22050KHz的采样率和8比特量化精度下通过A/D变换完成声音信号的数字化并且使数字声音信号被不断的存入语音数据队列。
(2)通过语音线程监控语音数据队列,一旦发现队列不为空,即有数据进入队列则立刻通过Windows提供的回调函数将语音数据队列内的数据存入等待嵌入水印数据队列。
二)嵌入水印和同步码(1)需要的水印数据是由二进制比特序列构成的连续数字序列,每一个数字由16比特构成。用于定位水印的同步码选择为长度为31的m序列。对语音信号进行的数学变换采用离散小波变换(DWT),分解层数为5,小波基选用Daubechies系列中最简单的Haar小波。由选定的水印和小波变换的参数可以计算出嵌入的每一个水印数据块的长度为32×(16+31)=1504个字节。
(2)基于小波变换嵌入水印的算法步骤如下1)将需要嵌入水印的原始语音信号按水印数据块的长度分段;2)分别对分段所得到每一段数据做DWT变换,得到每一段音频数据所对应的DWT域低频系数;
3)将需要嵌入的水印和同步码信息转换为{-1,+1}序列,然后将序列按适当的强度嵌入DWT域低频系数中;4)通过对嵌入了水印信息的DWT域低频系数作逆离散小波变换(IDWT)得到的到含有水印音频数据。
音频数据中嵌入同步码的作用是用于定位水印信号,使水印信号具有抗裁剪和平移的性能。嵌入完成之后的水印与同步码的结构如下……同步码、水印、同步码、水印、同步码、水印……(3)水印嵌入线程监控等待嵌入水印队列,一旦发现有数据进入队列则立刻按上述嵌入算法对队列内的数据嵌入水印。队列中的每一个数据块长36096个字节,按照水印数据块的长度将其分段,分段数=36096/1504=24,然后对每一段嵌入水印及其同步信息,即队列中的每一个数据块中可以嵌入24个水印。水印嵌入线程再将嵌入了水印的数据块从队列中取出存入硬盘。
嵌入的水印具有很强的连续性,由这种连续性可以检测音频数据是否完整,如果音频数据是完整的则相应提取出来的水印也是连续的。相反,如果提取出的水印出现了断点则证明音频数据有残缺。由水印断点可以找出残缺的位置。
二、水印的检测过程一)正常音频数据的检测(1)基于小波变换提取水印的算法步骤如下1)将语音信号按水印数据块的长度分段,对每一段信号进行DWT变换;2)从分解得到的DWT域低频系数中提取出{-1,+1}序列;3)从{-1,+1}序列中搜索定位水印的同步码,一旦同步码找到则随后的就是水印数字。
(2)在内存中开辟一个长度为9024个字节的缓冲区,将所需要提取的数据按缓冲区长度一块一块的读入缓冲区,按水印数据块的长度将缓冲区内的数据分为9024/1504=6段,分别对每一段做DWT变换,如果音频数据是完整的则可以从每一段中找到同步码并得到水印。提取出的水印是0、1、2、3……等连续的整数。
系统在检测过程中如果遇到提取出的前后水印差值不为1或提取不出水印则认为音频数据块出现了残缺,可以通过水印的断点来确定音频数据残缺的位置,要找出水印断点的关键是找到断点后第一个水印的同步码。对于只有一段被裁剪的音频数据,利用断点后的同步码和水印都是完整的可以准确的定位出断点。而对于有多段数据被裁剪的音频数据,由于断点前后的水印不再完整,所以利用小波变换的平移性质来定位断点。
二)判断篡改对于一段音频数据被裁剪的检测对于音频数据中只有一个断点的检测,具体做法是一旦发现提取出来的水印不连续则认为当前正在提取的的数据块是残缺的,然后从断点的数据块起始地址开始求出剩余数据所包括的具有完整水印和同步码的数据块(完整的数据块长度等于缓冲区长度即9024个字节)的个数,以次计算出所有完整数据块的总长度,用剩余数据减去这些数据块则得到残余数据块的长度,再提取出残余数据块中的完整的水印则可以确定断点,由水印断点就可以找出音频数据被裁剪的位置。
对于多段音频数据被裁剪的检测对于音频数据中有多个断点的检测,具体做法是采用小波变换特殊的“平移不变性”,当检测到水印不连续时,对当前正在提取的数据块进行平移搜索,利用平移找到断点后的水印,由于平移搜索会出现虚警(没有嵌入同步码的位置检测出了同步码,这样就会把在该位置后面的随机数据误认为水印数据,从而得到不正确的结果),平移搜索包括了正确和错误的结果,所以系统对搜索结果进行筛选,挑出正确的水印,从而确定了水印断点。
本发明方法具有如下的突出优点1)于小波变换对音频数据嵌入具有自同步能力的连续性水印,选择适当的嵌入强度可以使嵌入水印后的音频与原始音频在听觉上只有很小的差别。
2)印具有良好的抗裁剪能力,具有保护音频数据完整性的能力。初步实现了通过对水印音频数据进行提取来检测该音频数据是否被裁剪过,对于断点数量很少的音频数据有较强的检测出断点的能力,并且能以很高的精度定位音频数据的残缺位置。


为了测试水印音频数据抗裁剪的性能作了录音、对所录数据实时嵌入水印,并测试水印抗裁剪性能的实验,实验中所采用的音频数据格式是wav格式,例如音频数据*.wav中,*表示音频数据的文件名,随后的.wav表示该音频数据文件是采用wav格式。
图1为没有嵌入水印的所录长度为3分38秒原始音频Original.wav的数据图。
图2为Original.wav经水印嵌入后的音频water1.wav的数据图。
图3为water1.wav尾部被裁剪所剩的音频remain1.wav的数据图。
图4为water1.wav开头被裁剪所剩的音频remain2.wav的数据图。
图5为water1.wav中间部位被裁剪所剩的音频remain3.wav的数据图。
图6为嵌入水印的音频water2.wav的数据图。
图7为water2.wav中有多段数据被裁剪所剩的音频remain4.wav的数据图。
图1中表示采用量化精度为8,采样频率为22050Hz,单声道,录取的长度约为3分38秒的原始音频数据Original.wav图。
图2中表示取嵌入强度为30对原始音频数据Original.wav进行实时嵌入所得到的音频water1.wav的数据图。
所录的音频一共嵌入了3192个数字,每一个数字是16bit,数字的范围是从0到3191。系统在对录音数据进行嵌入并存盘的同时也将没有嵌入水印的原始音频数据存盘,在录音结束之后将两组音频数据进行比较,在听觉上二者的差别是很小的。
对于单个断点的测试结果测试一将音频文件water1.wav的尾部从3分开始的地方裁剪掉,所得到的音频数据remain1.wav如图3所示。
图3中可看出,从剩余的音频文件提取出的水印数字是从0到2640,共计2641个。对于被裁剪下的那段音频,取搜索上下限分别为2640和3192,再平移搜索,则可以提取出共551个水印数字,提取出的水印数字范围是从2641到3191,正好是丢失的数字。
测试二将音频文件water1.wav的头部从1分开始的地方裁剪掉,所得到的音频数据remain2.wav如图4所示。
从剩余的音频文件提取出的水印数字是从879到3191,共计2513个,对于被裁剪下的音频,取搜索上下限分别为-1和879,再平移搜索,可以提取出共878个水印数字,从0到877,正好是丢失的数字,888由于受到裁剪破坏,所以无法提取出来。
测试三将音频文件water1.wav的头部从1分30秒开始的地方到1分32秒裁剪掉,所得到的音频数据remain3.wav如图5所示。
图5中可看出,从剩余的音频文件中提取出共计3171个数字,并判断出裁剪的上限是1321,裁剪的下限是1343。所提取出的数字是从0到1321和1343到1391。对于裁剪下的音频取其搜索上下限为1321和1343进行平移搜索,可以提取出21个数字,从1322到1342,刚好是丢失的数字。
对于多个断点的测试结果采用量化精度为8,采样频率为22050Hz,单声道,录取的原始音频长度约为3分45秒。并取嵌入强度为30对其进行实时嵌入。所得到的音频water2.wav数据如图6所示。
图6可看出,音频文件一共嵌入水印3384个,数字范围是从0到3383。
将音频文件water2.wav从2分25秒到2分27秒、1分45秒到1分46秒、1分19秒到1分22秒三段数据裁剪掉,得到的音频数据remain4.wav如图7所示。
图7中,对裁剪后的音频数据进行水印的提取,结果出现3个断点,分别是(1140,1232),(1610,1645)和(2202,2253),提取出的水印总数是3209个,最后一个数字是3383。对三段被剪切下来的音频数据进行提取,用各自的断点作为平移搜索的上下限,提取出三段数据的水印范围分别是1142-1230共89个、1612-1642共31个和2204-2251共48个。正好是丢失的数字。
从实验结果可以看出在发生音频数据被裁剪时,仍然可以从剩余的音频数据中提取出含有缺损断点的不连续水印数字,为定位断点信息提供了重要的依据。
权利要求
1.一种数字音频防篡改方法,其特征在于该方法分为水印和同步码的嵌入和检测两个步骤水印和同步码的嵌入过程如下1)录音根据用户的需求选取特定的采样率和量化精度进行录音,对于普通语音,选取22.1kHz采样率,8bits量化精度;对于高保真音频选取44.1kHz采样率,16bits量化精度;将模拟音频信号通过A/D变换形成数字信号;2)实时嵌入水印和同步码在录音的同时,采用基于小波变换的水印算法,按用户需求的长度将数字语音信号分段,分段长度的缺省值为0.1秒,然后对每段音频嵌入一个同步码和一个水印,整个音频数据中所嵌入的水印构成了一个连续的数字序列,嵌入同步码与水印后的数字音频信号可以存入计算机磁盘;水印的检测过程如下1)水印的检测对于正常情况下水印的检测,将待检测音频数据按不短于水印嵌入时的长度分段,保证每段音频中至少包含一个同步码,对每一段数据进行与嵌入过程相同分解层数和相同小波的小波变换,从分解得到的低频系数中提取并搜索同步码,最后根据同步码的位置提取水印;2)判断篡改对于一段音频数据被裁剪情况下水印的检测,同样先对数据进行分段并进行小波变换,从小波系数中提取水印,当出现提取出的水印不连续时则认为音频数据出现了断点,对于只有一段音频数据被裁剪的情况断点后的数据是完整的,利用这一点就可以判断出断点位置,从而提取出剩余的所有水印;3)对于多段音频数据被裁剪情况下水印的检测,则利用小波变换的平移性质对断点后的水印进行重同步,从而提取出剩余的所有水印。
全文摘要
本发明涉及一种数字音频防篡改方法,是基于小波变换的数字水印技术。对于需要保护的音频数据,在录音的同时,利用小波变换对所录的音频数据实时嵌入水印,即录音和嵌入水印同步进行。录音结束后水印嵌入过程也随之结束。嵌入方法是对所录音频数据进行小波分解,然后在小波变换的低频系数中嵌入水印和同步码,通过小波逆变换得到含有同步码和水印的音频。嵌入的水印具有很强的连续性,通过对水印的提取可以对该含有水印的音频数据进行判断,以识别出音频数据是否遭到裁剪及被裁剪的位置。本发明可以用于敏感录音和重要音频数据的防篡改。
文档编号G11B20/10GK1585020SQ20041002735
公开日2005年2月23日 申请日期2004年5月28日 优先权日2004年5月28日
发明者黄继武, 吴绍权, 施礼 申请人:中山大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1