
يوفر هذا المستودع التنفيذ الرسمي لبحثنا: تأثير العلامة المائية الصوتية على الإجراءات المضادة لمكافحة الانتحال الصوتي. استكشف العرض التفاعلي والتصورات هنا.
نشتق WSD من مجموعات عامة ونجري مقارنتها مع المجموعات الأصلية:
ASVspoof 2019 (LA) — تقسيم التدريب المستخدم لتدريب النموذج. التحميل: https://datashare.is.ed.ac.uk/handle/10283/3336
ASVspoof 2021 (LA & DF) — يُستخدم للتقييم.
-LA: https://zenodo.org/record/4837263 -DF: https://zenodo.org/record/4835108
In-the-Wild — يُستخدم للتقييم. التحميل: https://deepfake-total.com/in_the_wild
الإعداد النموذجي: التدريب على ASVspoof 2019 LA (train)؛ التقييم على ASVspoof 2021 LA/DF (eval) و In-the-Wild.
توجد أدوات توليد البيانات في data_generation/. اتبع ملف README الخاص بهذا المجلد لإعادة إنتاج WSD ومتغيراته (تقسيمات العلامة المائية المرئية/غير المرئية).
# 1) Clone
git clone https://github.com/Alphawarheads/Watermark_Spoofing.git
cd Watermark_Spoofing
# 2) (Optional) Use the bundled Fairseq snapshot
unzip fairseq-a54021305d6b3c4c5959ac9395135f63202db8f1.zip
# 3) Conda env
conda create -n kpwl python=3.7 -y
conda activate kpwl
# 4) PyTorch (adjust CUDA/ROCm wheels as needed)
pip install torch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1
# 5) Fairseq (editable)
cd fairseq-a54021305d6b3c4c5959ac9395135f63202db8f1
pip install --editable ./
cd ..
# 6) Project requirements
pip install -r requirements.txt
ملاحظات: تم تدريب تجاربنا الرئيسية على 4 GPUs/DCUs.
قم بتنزيل أوزان XLS-R من: https://github.com/pytorch/fairseq/tree/main/examples/wav2vec/xlsr
تُنتج الأوامر أدناه ثلاثة ملفات score.txt (ملف واحد لكل مجموعة تقييم). تُستخدم هذه الدرجات لاحقًا لحساب EER (%).
نصيحة: استخدم دائمًا العلامات الكاملة
--eval_trackو--eval_output(لا تختصرها إلى--eval).
الأصلي (بدون علامة مائية):
TRACK=LA
PROTOCOLS=/public/home/qinxy/.../ASVspoof2021.LA.cm.eval.trl.txt
DATABASE_PATH=/public/home/qinxy/AudioData/Antispoofing/ASVspoof2021/ASVspoof2021_LA_eval/flac/
EVAL_OUTPUT=/public/home/qinxy/.../test2/${COMMENT}_eval_ori_LA21.txt
CUDA_VISIBLE_DEVICES=0,1,2,3 \
torchrun --standalone --nproc_per_node=4 \
main_multinodes.py --track="$TRACK" --is_eval --eval \
--model_path models/model_4dcu_kpwl.pth \
--protocols_path="$PROTOCOLS" \
--database_path="$DATABASE_PATH" \
--eval_output="$EVAL_OUTPUT"
العلامة المائية والانتحال (مرئية):
TRACK=LA
PROTOCOLS=/public/home/qinxy/zhangzs/watermarking/The-A-Files-master/protocols/tagged/LA21/protocol_wm_75_only.txt
DATABASE_PATH=/public/home/qinxy/AudioData/Antispoofing/LA21_phase1/
EVAL_OUTPUT=/public/home/qinxy/.../test2/${COMMENT}_eval_wm_seen_LA21.txt
العلامة المائية والانتحال (غير مرئية):
TRACK=LA
PROTOCOLS=/public/home/qinxy/zhangzs/watermarking/The-A-Files-master/protocols/tagged_phase2/LA21/split/protocol_wm_75_only.txt
DATABASE_PATH=/public/home/qinxy/AudioData/Antispoofing/LA21_phase2/
EVAL_OUTPUT=/public/home/qinxy/.../test2/${COMMENT}_eval_wm_unseen_LA21.txt
راجع
eval.shللحصول على مجموعة نصوص التقييم الكاملة.
الاختبار باستخدام نماذجنا المُدرَّبة مسبقًا:
_wm_ في اسم الملف = الدرجات المُنتجة على الصوت الموسوم بمياه رقمية._ori_ في اسم الملف = الدرجات المُنتجة على الصوت الأصلي (بدون علامة مائية).# If auto_merge_scores is not in the same file, import it:
# from your_module import auto_merge_scores
TRACK = "ITW" # one of {"LA21", "DF21", "ITW"}
comment = "ori" # label used in your score filenames
outs = auto_merge_scores(
track=TRACK,
score_wm_path=f"/public/.../test2/{comment}_train_eval_wm_SLS_{TRACK}.txt",
score_ori_path=f"/public/.../test2/{comment}_train_eval_ori_SLS_{TRACK}.txt",
)
print("Output Results:")
for p in outs:
print(" -", p)
راجع README في generate_data/ للحصول على تفاصيل حول كيفية إنشاء البروتوكولات.
CUDA_VISIBLE_DEVICES=0,1,2,3 \
torchrun --standalone --nproc_per_node=4 \
main_multinodes.py \
--track=DF --lr=0.000001 --batch_size=5 --loss=WCE \
--num_epochs=50 --comment 4dcu_baseline
CUDA_VISIBLE_DEVICES=0,1,2,3 \
torchrun --standalone --nproc_per_node=4 \
main_kpwl.py \
--eval_track=DF --lr=5e-7 --batch_size=5 --num_epochs=2 \
--model_path best_model.pth \
--comment model_4dcu_kpwl
شكر وتقدير وكود من جهات خارجية
يبني هذا المستودع على المكونات التالية من المشاريع مفتوحة المصدر ويضم تعديلات عليها:
SLSforASVspoof-2021-DF — https://github.com/QiShanZhang/SLSforASVspoof-2021-DF.git
The-A-Files — https://github.com/pawel-kaczmarek/The-A-Files.git
تم اقتباس أجزاء من الكود من هذه المستودعات. تظل جميع أكواد الجهات الخارجية تحت تراخيصها الأصلية؛ يُرجى الرجوع إلى ملفات LICENSE الأصلية والاحتفاظ بجميع إشعارات حقوق النشر المعمول بها. إذا كان أي إسناد أو تفصيل ترخيص غير مكتمل، فأخبرنا وسنقوم بتصحيحه على الفور.
اتصال / استشهاد إذا استخدمت هذا المستودع أو WSD/KPWL في بحثك، فيُرجى الاستشهاد بالورقة والربط بهذا المستودع.