• 大小: 4KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-01-09
  • 语言: Python
  • 标签: python  音频  水印  

资源简介

python实现音频添加隐写数据 1. 解析音频格式: 通过python自带的wav音频格式进行音频解析与输出 通过pydub解析任意格式音频进行解析,最后输出为wav格式音频文件 2. 添加隐写数据: 将解析的音频转为二进制并通过lsb算法进行隐写内容在最低位的添加 为了增强音频水印的鲁棒性,在通过判断音频文件的大小后选择相应的范围数添加隐写数据 从而使音频即便被截断也可通过相似度方式查看是否包含隐写数据

资源截图

代码片段和文件信息

# -*- coding: utf-8 -*-
import wave
from time import time
import math
from pydub import AudioSegment
import lsb_interleave_bytes lsb_deinterleave_bytes


# 通过解析wav文件进行隐写内容添加并输出添加后的文件(python中默认解析wav格式)
# sound_path:音频路径  file_data:隐写内容  output_path:文件输出路径  num_lsb:替换最低有效位位数
def add_steg_in_wav(sound_path file_data output_path num_lsb):
    start = time()  # 计算程序总运行时间
    sound = wave.open(sound_path “r“)  # 读取文件

    params = sound.getparams()  # 获取文件参数
    num_channels = sound.getnchannels()  # 单双声道
    sample_width = sound.getsampwidth()  # 字节宽度
    num_frames = sound.getnframes()  # 采样频率

    # 每个文件可以隐藏最多的num_lsb位
    num_samples = num_frames * num_channels
    max_bytes_to_hide = (num_samples * num_lsb) // 8
    file_data_size = len(file_data)
    print(f“Using {num_lsb} LSBs we c

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-08-14 05:48  AudioStegWaterMark-master\
     文件        4823  2019-08-14 05:48  AudioStegWaterMark-master\audio_steg_util.py
     文件        2844  2019-08-14 05:48  AudioStegWaterMark-master\lsb_steg_util.py
     文件         733  2019-08-14 05:48  AudioStegWaterMark-master\readme.md
     文件        1279  2019-08-14 05:48  AudioStegWaterMark-master\test.py

评论

共有 条评论