
إطار عمل قوي للعلامات المائية الصوتية يدمج الرسائل الثنائية في المخططات الطيفية للمطال، مع محاكاة هجمات قابلة للتفاضل، وتجميع Q-Former، وإخفاء PESQ، ورموز تصحيح الأخطاء لتحقيق المرونة ضد هجمات الترميز ومعالجة الإشارات.
الشيفرة المصدرية لـ CRAW، وهي طريقة قوية للعلامة المائية الصوتية مبنية على التضمين في مجال مقدار STFT. يقوم المُرمِّز بتضمين رسالة ثنائية في مخطط الطيف المقداري لمقطع صوتي (تُحفظ الطور من الإشارة النظيفة)؛ ويستعيد المُفكِّك الرسالة في ظل مجموعة واسعة من الهجمات المتعلقة بمعالجة الإشارة، والترميزات العصبية، وإزالة الضوضاء، والمُركِّبات الصوتية (vocoders).
هذا المستودع هو تفرّع (fork) من TimbreWatermarking (NDSS 2024)، موسَّع بما يلي:
watermarking_model/ — جميع شيفرة نموذج العلامة المائية:
البنية (model/)، والتدريب (train.py)، ومحاكاة الهجمات
(distortions/، utils/distortions.py)، والتقييم
(eval/)، ونصوص التصدير/التجارب (scripts/).يتطلب Python 3.8.
الاعتماديات الخارجية المضمَّنة أدناه غير مجمَّعة في هذا المستودع. وهي مطلوبة فقط لهجمات FACodec/denoiser/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 (مجموعتا التدريب والاختبار) في التدريب والتقييم، ويُستخدم
LJSpeech في تجارب النقل عبر النطاقات دون تدريب مسبق (zero-shot). تُضبط مسارات
مجموعات البيانات في حقل path.raw_path ضمن إعداد التدريب الخاص بكل تجربة
(watermarking_model/config/**/train_*.yaml) وعبر --audio_dir في سكربتات
التقييم/التصدير — وجّه هذه المسارات إلى نسخك المحلية من
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 لهجمات الترميز/إزالة الضوضاء.