一种自适应混合域音频无声水印

2024-02-12 04:58

本文主要是介绍一种自适应混合域音频无声水印,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文首发于:行者AI

随着数字音频技术的不断发展,音乐版权问题受到重视。用于音频版权保护的技术得到越来越多的研究与关注,无声水印技术就是其中之一。同时互联网在线会议越来越受到欢迎,音频无声水印技术也可以在保证会议的保密性的同时追踪泄密源头。

由于人类听觉系统(HAS)极为灵敏,音频感知冗余较小,水印同时满足隐蔽性和鲁棒性的困难很大,同时音频压缩算法例如MP3因为其出色的压缩率和音质,随着网络时代的到来已经成为数字音频的主流压缩方式。然而MP3编码有损压缩,音频经过压缩后水印信息也将被破坏,因此音频水印的研究相对于图像水印算法更具有挑战性。

本算法目的在于提供一种自适应混合域音频水印嵌入方法,在保证隐蔽性的同时,能够在相同音频信号的情况下嵌入更多的水印信息,从而在一定程度上提高音频水印的抗剪辑攻击性。

1. 基础知识

1.1 量化

将值映射在坐标系上,然后按照一个量化因子(也称之为步幅),对坐标系进行划分并假设其每一个步幅中所代表的值。水印算法中通常使用转换成二进制编码的嵌入信息,该嵌入信息的原始信息可以是图片也可以是文本等,那么假设量化因子为Δ0-Δ代表0Δ-2Δ代表1,则有如图所示的量化结果。从下图中可以看出-Δ-0代表10-Δ代表0Δ-2Δ代表12Δ-3Δ代表03Δ-4Δ代表1

1.2 掩蔽效应

掩蔽效应是在人类听觉系统( HAS)中存在的一种效应:短时间内能量高的将遮蔽能量低的,使得人类只能听到能量高的部分。掩蔽效应根据高低能量部分出现的情况不同分为超前掩蔽、同时掩蔽和滞后掩蔽。 超前掩蔽即后部分能量高于前部分那么只能听到后部分,反之即有滞后掩蔽;同时掩蔽即前后能量高于当前部分,那么当前部分将不会被听见而被前后的声音所掩蔽。掩蔽效应如下图所示。

1.3 MP3压缩

MP3压缩会导致时域偏移和频域幅值变化。

音频经过MP3有损压缩后,时域上的表现不仅仅只是幅度的变化还存在时序上的偏移。因为MP3压缩正交重叠变化时头尾帧需要补0,从而产生边缘效应,解码后这部分数据也加入到音频之中,即压缩后产生了时序上的偏移。

利用声音的频域掩蔽效应使量化噪音处于频域掩蔽阈值之下,去除了音频感知的冗余部分。这就会导致高频压缩后变化大,而低频变化相对较小。

1.4 DWT变换

(1) 小波转换后将得到低频的近似系数和高频的细节系数。
(2) 可以进行多次(阶)小波转换,最大阶level=log2(n)n为时域采样点。
(3) 经过多阶转换后将得到level+1个系数。

1.5 预处理

针对音频文件格式参数不同,我们统一将文件转变为44.1kHz立体声位宽为16bitwav文件,并将文件读取到内存转变为2int16的数组。2int16的数组表示左右声道、位深为16bit,即采样点的值占用16bit大小。

同时将要嵌入的水印信息构造为灰度图片,以增加系统的鲁棒性,此处用二进制表示水印信息。

2. 实现步骤

2.1 音频分帧
a. 嵌入单元

前面提到了为了解决MP3压缩时间偏移的问题,采用计算每个嵌入段的能量,过滤能量低的段,这里我们将每个嵌入段称之为嵌入单元。而每个嵌入单元我们又按照长度均分为两个小区域:嵌入区和定位区。

对于DWT,每一阶变换就会得到一个近似和细节系数。假设有一段长度为x的信号,最大能进行的变换次数(阶)level为:
l e v e l = l o g x 2 level = log_x^2 level=logx2
因为低频下鲁棒性更好,因此我们采用3kHz以下区域进行嵌入取level=4

为了保证嵌入的鲁棒性,参与嵌入的采样点更多,鲁棒性越好。因此设置一个常量α代表嵌入区的扩容因子,α可以取8,16,32等。

我们定义一个常量值N,用以描述每个小区域的采样点个数(长度),并称之为嵌入长度。那么一个嵌入单元的长度即为2N,其中:
N = 2 4 × α N=2^4×α N=24×α
其中DWT变换的阶为4,因此一个嵌入单元长度设为fl有:
f l = 32 × α fl=32×α fl=32×α
如果取α8,那么嵌入一个信息位需要采样点的个数为256个,一秒音频能够嵌入172个信息位。
⌊ 44100 / 256 ⌋ = 172 \lfloor 44100/256 \rfloor =172 44100/256=172
嵌入区属于用来进行水印的嵌入区域,定位区域的作用是通过计算每个单元的定位区能量大小筛选出真正用来嵌入的区域和嵌入顺序,且提供嵌入强度的参考值。

b. 嵌入帧

假设水印图片长和宽分别为hw,那么水印数据长度为h×w

根据嵌入单元的定义,一个嵌入单元长度为2N。我们就可以计算嵌入一次水印至少需要采样点长度L为:
L = h × w × N × 2 L=h×w×N×2 L=h×w×N×2
又由于我们的音频采样率为fs=44100Hz,可以计算嵌入一个完整的水印需要音频的时间t:
t = L / f s t = L / fs t=L/fs
对于t和一个常量n(本文n=10)的余数向上取整得到一个帧的长度,他代表了需要至少多少个n秒才能嵌入一个完整的水印信息。这样来确保一个嵌入帧拥有大于嵌入所需的单元数量进而可以存储完整的水印信息。
F l = ⌈ t / n ⌉ × n × f s F_l = \lceil t/n \rceil ×n×f_s Fl=t/n×n×f

这篇关于一种自适应混合域音频无声水印的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/701710

相关文章

使用Python实现文本转语音(TTS)并播放音频

《使用Python实现文本转语音(TTS)并播放音频》在开发涉及语音交互或需要语音提示的应用时,文本转语音(TTS)技术是一个非常实用的工具,下面我们来看看如何使用gTTS和playsound库将文本... 目录什么是 gTTS 和 playsound安装依赖库实现步骤 1. 导入库2. 定义文本和语言 3

详解如何使用Python提取视频文件中的音频

《详解如何使用Python提取视频文件中的音频》在多媒体处理中,有时我们需要从视频文件中提取音频,本文为大家整理了几种使用Python编程语言提取视频文件中的音频的方法,大家可以根据需要进行选择... 目录引言代码部分方法扩展引言在多媒体处理中,有时我们需要从视频文件中提取音频,以便进一步处理或分析。本文

Python中__new__()方法适应及注意事项详解

《Python中__new__()方法适应及注意事项详解》:本文主要介绍Python中__new__()方法适应及注意事项的相关资料,new()方法是Python中的一个特殊构造方法,用于在创建对... 目录前言基本用法返回值单例模式自定义对象创建注意事项总结前言new() 方法在 python 中是一个

Python实现视频转换为音频的方法详解

《Python实现视频转换为音频的方法详解》这篇文章主要为大家详细Python如何将视频转换为音频并将音频文件保存到特定文件夹下,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. python需求的任务2. Python代码的实现3. 代码修改的位置4. 运行结果5. 注意事项

2.1/5.1和7.1声道系统有什么区别? 音频声道的专业知识科普

《2.1/5.1和7.1声道系统有什么区别?音频声道的专业知识科普》当设置环绕声系统时,会遇到2.1、5.1、7.1、7.1.2、9.1等数字,当一遍又一遍地看到它们时,可能想知道它们是什... 想要把智能电视自带的音响升级成专业级的家庭影院系统吗?那么你将面临一个重要的选择——使用 2.1、5.1 还是

C#中图片如何自适应pictureBox大小

《C#中图片如何自适应pictureBox大小》文章描述了如何在C#中实现图片自适应pictureBox大小,并展示修改前后的效果,修改步骤包括两步,作者分享了个人经验,希望对大家有所帮助... 目录C#图片自适应pictureBox大小编程修改步骤总结C#图片自适应pictureBox大小上图中“z轴

一种改进的red5集群方案的应用、基于Red5服务器集群负载均衡调度算法研究

转自: 一种改进的red5集群方案的应用: http://wenku.baidu.com/link?url=jYQ1wNwHVBqJ-5XCYq0PRligp6Y5q6BYXyISUsF56My8DP8dc9CZ4pZvpPz1abxJn8fojMrL0IyfmMHStpvkotqC1RWlRMGnzVL1X4IPOa_  基于Red5服务器集群负载均衡调度算法研究 http://ww

一种快速生成CSV的方法

事情是这个样子的 在QQ群在聊把如何100万数据导出成CSV文件?会不会很慢? 俺回了一句“现在的机器性能好,没啥问题”。 然后大家开始谈论机器的配置了。哎,俺的机器配置有点差。 然后俺就进行了一个测试。 测试数据 数据定义         public struct Rec         {             public int v1;             publi

2024 年高教社杯全国大学生数学建模竞赛 C 题 农作物的种植策略 参考论文 无水印

持续更新中,2024年数学建模比赛思路代码论文都会发布到专栏内,只需订阅一次!  完整论文+代码+数据结果链接在文末!  订阅后可查看参考论文文件 第一问 1.1 问题重述 这个问题围绕的是华北山区的某乡村,在有限的耕地条件下,如何制定最优的农作物种植策略。乡村有 34 块露天耕地和 20 个大棚,种植条件包括粮食作物、蔬菜、水稻和食用菌。除了要考虑地块的面积、种植季节等,还要确保

240907-Gradio插入Mermaid流程图并自适应浏览器高度

A. 最终效果 B. 示例代码 import gradio as grmermaid_code = """<iframe srcdoc='<!DOCTYPE html><html><head><meta charset="utf-8" /><meta name="viewport" content="width=device-width" /><title>My static Spa