Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
craw — Надёжный фреймворк для аудио-водяных знаков, встраивающий бинарные сообщения в амплитудные спектрограммы, с дифференцируемым моделированием атак, пулингом Q-Former, маскированием PESQ и кодами с исправлением ошибок для устойчивости к атакам кодеков и обработки сигналов. | Kitploit
Инструменты/GitHubGitHub/davidc1212/craw
СтеганографияКриптографияМашинное ОбучениеСтатьи и Исследования
GitHubdavidc1212/craw

craw

Надёжный фреймворк для аудио-водяных знаков, встраивающий бинарные сообщения в амплитудные спектрограммы, с дифференцируемым моделированием атак, пулингом Q-Former, маскированием PESQ и кодами с исправлением ошибок для устойчивости к атакам кодеков и обработки сигналов.

Репозиторий
9 дней назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CRAW: Codec Robust Audio Watermarking

Исходный код CRAW — устойчивого метода аудио-водяных знаков, основанного на внедрении в STFT-магнитудную область. Кодировщик внедряет бинарное сообщение в магнитудную спектрограмму аудиоклипа (фаза сохраняется из чистого сигнала); декодер восстанавливает сообщение при широком спектре атак, связанных с обработкой сигнала, нейрокодеками, шумоподавлением и вокодерами.

Этот репозиторий является форком TimbreWatermarking (NDSS 2024), расширенным следующими возможностями:

  • Устойчивый слой искажений — дифференцируемая симуляция атак (шум, фильтрация, FACodec, MP3, спектральное стробирование, ...) во время обучения.
  • Q-Former пулинг — агрегация извлечённых признаков водяного знака на основе внимания, заменяющая простое усреднение.
  • PESQ-маскирование — на этапе инференса поперёк каждого образца применяется маска, восстанавливающая чистый спектрограммный контент в ячейках, наименее полезных для устойчивости (по величине градиента PESQ), что позволяет обменять небольшой настраиваемый объём устойчивости на выигрыш в качестве.
  • Коды с исправлением ошибок (ECC) — кодеки с повторением, Рида–Соломона, LDPC и BCH, оборачивающие исходные биты сообщения.

Структура репозитория

  • watermarking_model/ — весь код модели водяных знаков: архитектура (model/), обучение (train.py), симуляция атак (distortions/, utils/distortions.py), оценка (eval/) и скрипты экспорта/экспериментов (scripts/).

Установка

Требуется Python 3.8.

Перечисленные ниже сторонние зависимости не включены в этот репозиторий. Они нужны только для конкретных атак FACodec/denoiser/TiCodec — не для базовой проверки внедрения/декодирования (см. раздел «Инференс» ниже). Если вы хотите запустить эти атаки, клонируйте публичные репозитории самостоятельно по указанным путям:

root@kitploit:~
git clone https://github.com/lifeiteng/naturalspeech3_facodec.git watermarking_model/naturalspeech3_facodec
git clone https://github.com/modelscope/ClearerVoice-Studio.git watermarking_model/ClearerVoice-Studio
git clone https://github.com/y-ren16/TiCodec.git watermarking_model/codecs/ticodec_repo

Зависимости Python для основного конвейера обучения/оценки перечислены в watermarking_model/requirements.txt. Для рендеринга атак кодеков (EnCodec, TiCodec) мы рекомендуем отдельное conda-окружение для каждого кодека, поскольку у каждого из них свои — иногда конфликтующие — зависимости; см. инструкции по настройке в docstring каждого скрипта (codecs/encode_*.py).

Данные

Для обучения и оценки используются LibriSpeech (разбиения train + test), а для экспериментов с кросс-доменным zero-shot — LJSpeech. Пути к наборам данных задаются в поле path.raw_path конфигурации обучения каждого эксперимента (watermarking_model/config/**/train_*.yaml), а также через --audio_dir в скриптах оценки/экспорта — укажите здесь пути к вашим локальным копиям LibriSpeech и LJSpeech.

Обучение

root@kitploit:~
cd watermarking_model
python3 train.py \
  -p config/process.yaml \
  -m config/craw/model.yaml \
  -t config/craw/train.yaml

Эта команда обучает полную модель (устойчивый слой искажений + Q-Former + ECC с повторением) — конфигурация, использованная для основных результатов CRAW. Журналы обучения записываются в Weights & Biases в проект craw; сначала задайте WANDB_ENTITY/войдите через wandb login для своей учётной записи.

Обучение использует фиксированное случайное зерно (2022, задано в train.py для random/numpy/torch/torch.cuda) для воспроизводимости.

PESQ-маскирование применяется на этапе экспорта/инференса, а не во время обучения — см. scripts/export_watermarked_dynamic.py --grad_mode spect_ft.

Инференс

Предобученная контрольная точка CRAW (эпоха 20, соответствует основным результатам статьи) включена непосредственно в эту поставку — загрузка не требуется — по адресу watermarking_model/results/craw/ckpt/pth/ (поле test.model_path в config/craw/model.yaml указывает сюда).

Чтобы внедрить сообщение в один WAV-файл и сразу же декодировать его обратно (без применения атак) в качестве быстрой проверки:

root@kitploit:~
cd watermarking_model
python3 -m scripts.infer \
  -p config/process.yaml \
  -m config/craw/model.yaml \
  -t config/craw/train.yaml \
  --input /path/to/clean.wav \
  --output /path/to/watermarked.wav \
  --ckpt 20

Эта команда выводит внедрённое/декодированное сообщение и точность по битам. Для полной оценки с набором атак, использованной в статье, см. eval/common_test.py ниже.

Оценка

eval/common_test.py запускает полный набор атак (классическая обработка сигнала, нейрокодеки, шумоподавители, вокодеры) против обученной контрольной точки и сообщает точность декодирования и качество (SI-SNR, PESQ, STOI) для каждой атаки.

eval/tpr_eval.py калибрует порог обнаружения для каждой модели на основе частоты ложных срабатываний на чистом аудио и сообщает TPR при общем FPR; eval/compare_tpr.py агрегирует результаты по экспериментам в сравнительные таблицы статьи с проверкой значимости парным бутстрэпом. scripts/plot_ablation_sweep.py, scripts/plot_fidelity_sweep.py, scripts/visualize_mask.py и scripts/visualize_mask_zoom.py генерируют рисунки статьи.

Благодарности

Основано на TimbreWatermarking (NDSS 2024). Используются NaturalSpeech3 FACodec, ClearerVoice-Studio, TiCodec и EnCodec для атак кодеков/шумоподавителей.

Скачать инструмент