首页> 中国专利> 一种基于音频断点的时域数字音频水印方法

一种基于音频断点的时域数字音频水印方法

摘要

本发明提供一种时域下基于音频断点嵌入和提取数字音频水印的方法,依据水印信息的数值和原始音频的能量值直接在原始音频的基础上改变其能量值的大小。只在原始信号的基础之上稍作改动,在不影响原始音频听觉质量的前提条件下,保证水印具有较好的鲁棒性,抗裁剪性和很少的信息增加量。在水印的提取环节,提取算法能够自行筛选出嵌入水印的位置,排除一些在数值逻辑上看似是水印的信息,并具有保存原始水印信息的能力。本发明对水印信息进行了加密处理。所用的水印提取方案只需要一些原始音频的分段信息和水印信号的重构参数,不需要原始音频和原始水印的参与,是一种盲水印算法,可用于音频信号处理和音频制品保护等方面。

著录项

  • 公开/公告号CN104810022A

    专利类型发明专利

  • 公开/公告日2015-07-29

    原文格式PDF

  • 申请/专利权人 东北师范大学;

    申请/专利号CN201510234788.7

  • 申请日2015-05-11

  • 分类号G10L19/018(20130101);

  • 代理机构22202 长春市东师专利事务所;

  • 代理人刘延军;李荣武

  • 地址 130024 吉林省长春市人民大街5268号

  • 入库时间 2023-12-18 10:16:50

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-06-15

    授权

    授权

  • 2015-08-26

    实质审查的生效 IPC(主分类):G10L19/018 申请日:20150511

    实质审查的生效

  • 2015-07-29

    公开

    公开

说明书

  

技术领域

本发明属于音频信号处理和音频制品专利保护领域,涉及音频信号的水印嵌入和提取。

背景技术

今年来,随着计算机网络技术的产生和迅猛发展,大量的数字化音乐制品在网络上广泛的传播。这样一来,对非法分子来说,音频作品的复制,篡改和发布都已经变得非常容易。这就给版权所有者和整个音乐市场带来了巨大的损失。

基于这一背景,用于数字作品版权保护的数字水印技术就发展了起来,数字音频水印算法主要分为时间域和变换域数字水印算法。时域水印算法主要有P.Bassia等人提出的最低有效位(LSB)算法和由W.Bender等人提出的回声隐藏算法等;变换域水印算法主要有扩频水印算法、相位水印算法、离散傅里叶变换域算法、离散余弦变换域算法和离散小波变换域算法等。

时域下的音频水印算法原理比较简单易于理解,但也存在致命的弱点。比如,最低有效位算法对某些信号处理技术比较敏感,鲁棒性较差;回声隐藏算法虽然具有较好的感知透明性和一定的鲁棒性,但利用回声检测的办法是很容易把水印信息检测出来的。变换域的音频水印算法一般都具有较好的性能,可以满足一些苛刻的要求,但是这类算法需要算法编写者具备一些高等的数学知识和过硬的编程能力,且程序中的操作会让人很难理解。就拿离散小波变换预(DWT)算法来说,钮心忻等人在2000年提出了一种基于小波变换的数字水印算法。它将高斯白噪声作为水印信号嵌入到音频信号的小波变换域中,先选择适当的小波基对原音频信号进行L级分解,然后只对第L级的详细分量 中绝对值最大的前N(假设N为水印信号的长度)个值做关于水印信号x(i)(i=1,2,···,N)的特定公式变换。同样的,相应的水印检测算法是先对音频信号进行相同的小波变换,然后根据原始的音频信号找到隐藏的N个随机数的位置并求出相应的数值(i)(i=1,2,···,N)。最后,由和x的相关函数计算出的相关系数可以判别是否有正确的水印信号的存在。虽然小波变换具有良好的时频局部特性,但非信号处理相关专业的学者们甚至连离散傅里叶变换(DFT)都不知道是什么,这就给算法编写带来了技术上的障碍。

由于这些原因,在时域中寻求各方面性能较好的数字水印算法就显得较为重要。本发明所提出的水印算法是在时域下,嵌入少量的音频断点(零信号)并根据水印信息来改变音频断点周围原音频信号的能量值来达到嵌入水印的目的的,水印的提取依赖音频断点。原理简单,编程过程并不繁杂。经实验,效果感知透明性,鲁棒性等都较好,值得进一步研究和探索。

发明内容

(一)要解决的技术问题

本发明的目的,是要提供一种时域下基于音频断点嵌入和提取数字音频水印的方法,依据水印信息的数值和原始音频的能量值直接在原始音频的基础上改变其能量值的大小。这种算法充分考虑了原始音频的能量情况,最好还辅以有一套水印嵌入位置选取规则(本发明中并未实现),只在原始信号的基础之上稍作改动,在不影响或很少影响原始音频听觉质量的前提条件下,保证水印具有较好的鲁棒性,抗裁剪性和很少的信息增加量(音频的长度增加非常少)。在水印的提取环节,提取算法要具备能够自行筛选出嵌入水印的位置,排除一些在数值逻辑上看似是水印的信息,但是须大量保存原始水印信息的能力。这就需要算法研究者对音频信号做较多的研究分析,制定出多重合理的水印信息筛选工序。

此外,虽不算是本发明的范围,对水印信息的加密处理也是必须的。因为当不法分子获得水印的提取规则和音频分段信息后,就能够很容易的篡改水印的信息,这对音频的作者会造成很大的经济、个人名誉和知识产权方面的损失。

本发明所用的水印提取方案只需要一些原始音频的分段信息和水印信号的重构参数,不需要原始音频和原始水印的参与,是一种盲水印算法,因此实用性较好。

(二)技术方案

为达到上述目的,本发明采用以下方案:

1、首先将水印信号平均分成p份,然后将音频信号等分成t份,再将每一份等分成p份,表明将水印信息重复插入t次,每一次将其分成p份插入到每一个小模块中,共分份插入;

2、依据一定水印嵌入规则,依次改变原始音频中相应位置的能量值,并在其前中后都插入用于信息标识的音频断点,其长度为z;

3、将第2步中所修改过的音频片段(共份,且前中后都插入断点)和剩余无需修改的音频片段按照原音频的时间顺序重新拼接好,并再写成一首完整的音乐文件;

    4、将重新写好后的音频按照事先规定的分段信息t和p的值分段,然后为了减少工作时间,设置选择因子,将音频信号大概嵌入水印的位置和其前后的一小段音频都选择下来,用于下一步检测;

5、对选择下来的每一份音频信号从头至尾进行检测,每一次检测以一串长度为3*z+2*p_l的数据串为单位,将满足条件的音频信号比特位的数据串信息的首地址记录下来;

6、将满足条件的首地址按所在的分段号分成组别前后做差,对这些差值进行筛选,选出值大小合理且出现次数最多的定为最后的水印间隔final_interval。从每一组的首地址中选出最合理的一个(满足条件的第一个)放入对应数组new_position的相应位置上去,并且凭借间隔final_interval推算出所有首地址;

7、先凭借算出的首地址信息提取出所有嵌入水印的数据串,然后根据p和h的值将水印重新编排成一幅幅水印图像,并将完整的多幅图像叠加。根据事先存好置乱迭代参数运用Arnold反变换恢复出目标水印图像;

8、将嵌入水印信息的WAV文件压缩成其他格式的音频文件,如MP3、FLAC、APE等,然后再将其解压成WAV文件,使用检测算法提取其中的水印信息并作出相关评价。由于水印嵌入多次,所以该算法一定具有较好的抗裁剪性能。对于水印算法的听觉透明性,可以直接通过人耳的听觉情况做出评价,实验表明这一性能较好。此外,对于一般的数字信号处理,可以对嵌入水印的音频信号做滤波、重采样、加噪等操作,然后再用检测算法去做提取操作并做出合理的评价。

本发明的用途与优越性(有益效果)

1、这种水印算法能够提取成功的关键在于音频中嵌入的断点。经实验表明,当音频中的断点持续时间在2ms以下,人耳是很难分辨出的。这就给这种算法在必须满足听觉要求的原则上带来了操作的可行性。

2、本水印算法是在时域中根据目标水印图像来直接改动原始音频中某些位置的音频能量值,这种水印信息就存在于本身音频信号的差别之中,故水印能够抵抗一般的数字信号处理。加之,这种差别对于本身的音频来说实在是太微弱,一般人耳很难分辨的出,有较好听觉特性。此外,虽然还未实现,但如果水印嵌入的位置能够根据原始音频的能量信息(嵌入的位置使得在原始音频的基础上须作改动操作的较少或者水印所在位置整体能量值的细微改动难引起人耳的感觉)来确定,那么水印嵌入算法的听觉特性会更加优越。

3、这种水印算法提出的意义在于,已有的时域水印算法在原理上都很简单,如最低有效位算法和回声隐藏算法等,此类算法大多不具有较好的鲁棒性或是较容易检测出水印信息,故用于音乐作品的版权保护可能稍显不足;而一般的变换域水印算法,诸如离散余弦变换域算法和离散小波变换域算法等,虽然具备良好的听觉特性和鲁棒性,但在原理上就给许多未深入研究的人带来了理解上的困难,且一般加入音频中的水印信息是高斯白噪声这一类的事先预存好的信息,这就降低了版权的说服力。本发明的操作对象是时域上直接比特位音频能量值,通俗易懂,并且实验证明还具备良好的听觉特性和鲁棒性(嵌入操作需待改进),这就给本发明带来了一定的价值。

附图说明

1、图1为嵌入的水印信息的编排方式;

2、图2为插入水印信息和断点前后局部音频信号的变化情况,图(a)中显示的是原始音频信号局部时域波形图像而图(b)中显示了插入水印和断点后的局部音频波形图像,上下对比可以发现,插入水印信息的波形图对于原波形来说并没有较大的改变,这种细微的能量改变不仅将水印信息隐藏在了原始音频上,而且由于其对于整首音频来说实在是微乎其微,所以又保证了较好的听觉特性;

3、图3为水印的提取框图;

4、图4中所展示的是将同一嵌入水印的WAV格式的音频压缩成不同格式的音频,再将其反压缩成WAV格式的音频,并从中提取出水印的图像,从左至右依次是:原WAV格式,MP3,FLAC,APE。可以看到,从FLAC和APE反压缩后的音频文件中提取出的水印图像和原插入音频中的几乎没有什么差别,这是因为这两种压缩格式属于无损压缩;而从MP3反压缩的音频文件中提取出的水印图像对于原始图像有一定的失真,因为MP3是一种有损压缩。有损水印可以通过神经网络修复。图4看出这种算法对于无损和有损压缩都具有较好的抵抗能力,这就给了本发明较好的实用性能。

5、图5是从mp3格式音频中提取出的有损水印和经神经网络修复后的复原水印。(a)是提取出的有损水印,(b)是运用神经网络的修复效果。

具体实施方式

方案中举例应用于说明本发明,但不用来限制本发明的范围。

本发明具体实施方式分为两大部分:水印的嵌入和提取。下列阐述以采样率为44.1kHz的音乐作品信号为例:

1.水印的嵌入过程

    (1) 水印图像设计和加密处理:设计出一幅hw的二维点阵水印图像,本例中h和w的值均取64,并使用Arnold置乱变换对设计出的图像进行加密处理,记录下迭代参数。

水印图像的重新分行:将原始像素点为hw的二维点阵水印图像以行为单位平均分成p份(p=2,4,···,h),这样重新分行的水印图像的每一行就拥有原图像的h/p行的信息,每行像素点数为p_l(p_l=hw/p)。本例中p取8,p_l则为512,这样做是为了尽量减少嵌入音频中的断点数目从而提升含水印音频的听觉质量。

音频信号的分段和水印嵌入位置的选取:将音频信号平均t份,每份记为,,···,

,本例中t取5。接着再将每份音频片段(i=1,2,···,t)平均分成p份,每份记为,

,···,。然后从每一小份音频(i=1,2,···,t;j=1,2,···,p)中提取出长度为(长度为1024)的前小段音频信号,记为(i=1,2,···,t;j=1,2,···,p)。

水印信息的嵌入及嵌入规则:将每小份音频信号平均分成两份和(长度都为p_l),根据水印信息(二值点阵图像)改变这两份信号的能量值,具体规则如下:

     I.  如果水印信号的一个比特位的值是‘0’,那就保证中次序相同的一个比特位的音频信息的能量值稍大于中相同次序的一个比特位音频信息,如果不是,将中该位信息乘以一个放大因子,直到满足条件为止;

     II. 如果水印信号的一个比特位的值是‘1’,那就保证中次序相同的一个比特位的音频信息的能量值稍大于中相同次序的一个比特位音频信息,如果不是,将中该位信息乘以一个放大因子,直到满足条件为止;

     III.如果音频信号中某一比特位的能量数值为零,无论怎样乘以放大因子都不能满足条件,此时将其能量值的大小规定为每份音频平均能量值的大小,符号依据每小份音频平均值的符号。

水印信息标准化编排:构造一个的三维数组,为音频断点的长度。根据实验可知,对于采样率为44.1kHz的音频信号,的大小应在20以下,但也不能太小,否则不利于水印的提取,根据实验可取10以上的数值,本例中取20。将步骤(4)中修改后的音频信号的前面和的后面均增添个零信号,中间再以个零信号将这两段音频信号拼接成一段逐一存入数组中。

含水印的音频信号的重构:将(5)中数组中的信息和原始音频中未被使用出的剩余音频信息按照原音频的时间顺序重新编排在一起拼凑出一段完整的音频信息。运用Matlab中的wavwrite函数将拼凑出的音频信息以44.1kHz的采样频率写成一首完整的WAV格式的音频文件。

水印的提取过程

(1) 含水印音频信号的分段并选择出需要检测的片段:将输入的音频信号平均分成t份,记为(i=1,2,···,t)。选择下每份片段从头向后一串长度为3*z+2*p_l的数据串,并且将数据串前后长度为f的小段信息同时选择下来,本例中f取500,将每一个选出片段的起止序号作为检测范围存入一个的二维数组中。

检索出所有可能存在水印的位置:依据数组中的起止序号,对每小段音频从头至尾进行检测,每一次检测以一串长度为3*z+2*p_l的数据串为单位,凭借嵌入的水印信号前中后这三处位置都有音频断点这一特征,找到所有可能存在水印的位置,并记下这些位置的首地址存入带有分段号的数组中。具体满足条件如下:

I. 数据串的前中后都有s个连续比特位的能量值均小于scale,本例中s的值取17(),scale的值取0.008,此外scale的值可以根据整个音频的能量或其中某些段的能量来动态的取值;

II.该串数据从第z+1个数据往后的p_l个数据的能量平均值和从倒数第z+1个数据往前的p_l个数据的能量平均值都比其中间z个数据的能量平均值大k倍,本例中k值取8(一般根据音乐的情况取);

(3) 从所有可能位置中筛选出最合理的:对所有可能位置前后作差,找到最合理的水印嵌入间隔并反推出所有水印的嵌入位置。具体做法如下:

     I.  将每个数组中前后的首地址信息作差,统计这些差值,记录下差值大小在附近的前后首地址和这些差值的大小,其中为整首音频的长度。

     II. 根据统计出的首地址差值的个数选取最终的水印嵌入位置的距离间隔final_inte-

rval(即找出出现次数最多的差值,若有多个,则按其平均值来确定距离间隔)。

     III.从每份音频中找出的可能首地址中再次筛选出最有可能嵌入水印的位置(每份中只需找到一个)并将其置入一个(,且的值根据筛选过程适当确定)的二维数组new_position的相应位置,然后根据这个数组里的信息和已确定的水印间隔final_inte-

rval推算出数组中所有其他位置的首地址信息。

水印图像的重构:根据new_position中的首地址提取并重新编排出幅水印图像,具体的提取规则参照水印嵌入过程中的步骤(4)。将这幅图像进行叠加,从而可以在找错某些位置的情况下尽量保证图像的可读性。

水印图像的恢复:从步骤(4)中提取出的水印图像根据事先存储的Arnold置乱迭代参数恢复出目标水印图像。

对有损压缩水印图像的BP网络恢复

(1) 输入向量的构造:在原始水印图像上添加某些噪声或是其它一些干扰损坏图像,得到s幅损坏的图像。将这些图像归一化,具体公式如下:

其中和分别为归一化前后第k个输入图像的第(i,j)个元素值,而

、分别为第k幅图像中的最小和最大的元素值。

     将归一化后的图像按列前后拼接成一个列向量,并将这些列向量再次前后拼接成一个最终的输入列向量。

目标向量的构造:将目标水印(原始水印图像)按列拼接成一个列向量t,并归一化,

方法同上。将归一化后的列向量重复s份前后拼接在一起,得到目标向量。

创建和训练BP网络:运用Matlab中feedforwardnet函数生成一个前馈网络net,隐藏层的大小和训练函数可以选择默认值,本例中分别为10和trainlm。其他参数设置及其意义如下: 

net.trainParam.epochs = 300 ;           %训练结束前最大迭代次数

net.trainParam.goal = 0.0001 ;          %训练的误差精度

net.trainParam.show = 10 ;               %训练显示间隔

net.trainParam.lr = 0.01 ;              %学习速率

将生成的输入向量和目标向量加入网络中进行训练,使得网络记录下这一学习模式。

图像的复原:将从mp3格式的音频中提取出的有损水印转化成向量的形式,通过已训练好的网络进行修复。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号