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

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

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

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

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

Категории

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

craw

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

Репозиторий
7532 месяцев назадЕщё не проверено

Популярное

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

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

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

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

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

CRAW: робастное аудиоводяное маркирование, устойчивое к кодекам

Исходный код 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/денойзера/TiCodec — не для базовой проверки встраивания/декодирования (см. раздел «Инференс» ниже). Если вы хотите запустить эти атаки, склонируйте публичные репозитории самостоятельно в указанные пути:

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 cross-domain — LJSpeech. Пути к наборам данных задаются в поле path.raw_path конфигурации обучения каждого эксперимента (watermarking_model/config/**/train_*.yaml) и через --audio_dir в скриптах eval/export — укажите в них пути к вашим собственным локальным копиям LibriSpeech и LJSpeech.

Обучение

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-файл и сразу декодировать его обратно (без применения атаки) в качестве быстрой проверки работоспособности:

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 генерируют рисунки статьи.

Цитирование

Если вы используете этот код, пожалуйста, цитируйте:

@article{chernin2026craw,
  title={CRAW: Codec Robust Audio Watermarking},
  author={Chernin, David and Fetaya, Ethan},
  journal={arXiv preprint arXiv:2609.03107},
  year={2026},
  url={https://arxiv.org/abs/2609.03107}
}

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

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

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