چیت‌شیت

تأیید هویت گوینده، جعل و واترمارک‌ها

Speaker Verification, Spoofing and Watermarks

ثبت‌نام، امتیازدهی و آستانه‌گذاری گویندگان، تشخیص صوت جعلی، و نشانه‌گذاری هر خروجی با واترمارک و C2PA.

  • ۱۲ بخش
  • ۳ درس مرتبط
  • کد و دستورها عیناً از دوره‌ی اصلی
فهرست مطالب
  1. تأیید و نشانه‌گذاری
  2. وظایف در کد
  3. تأیید با ECAPA
  4. جاسازی و تشخیص AudioSeal
  5. عرضه‌ی صدای تولیدی
  6. فرمول‌ها
  7. خانواده‌های واترمارک
  8. اعداد
  9. کوته‌نوشت‌ها
  10. عیب‌یابی
  11. چه زمانی از چه روشی استفاده کنیم؟
  12. پرسش‌ها

تأیید و نشانه‌گذاری

معماری
واقعی یا جعلیواقعیمبنا (anchor)امضاگفتار آزمون3 ثانیه یا بیشترراهکار مقابله (Countermeasure)AASIST یا RawNet2انکودر گویندهECAPA-TDNN، ابعاد 192امتیاز کسینوسیآستانه از مجموعه‌ی توسعه (dev set)خروجی TTSهر بار تولیدAudioSealبار داده‌ی (payload) 16 بیتیمانیفست C2PAمتادیتای امضاشدهثبت‌نام3 تا 5 کلیپ تمیز، میانگین

وظایف در کد

کار و کد
وظیفهکد
تأیید هویت یک گویندهverify(enroll, test, threshold=0.75)
EER و آستانه‌ی آنeer(same_scores, diff_scores)
تفکیک گویندگان یک جلسهPipeline.from_pretrained("pyannote/speaker-diarization-3.1")
بارگذاری مولد واترمارکAudioSeal.load_generator("audioseal_wm_16bits")
تشخیص واترمارکdetector.detect_watermark(watermarked, sample_rate=16000)
ویژگی ساده‌ی جعل (Toy)spectral_rolloff(spec, percentile=0.85)
واترمارک ساده‌ی متن (Toy)watermarked_sample(n, seed_prefix, bias=0.9)
امتیاز z توکن‌های سبزdetect(tokens)

تأیید با ECAPA

کد
python
from speechbrain.pretrained import EncoderClassifier
clf = EncoderClassifier.from_hparams(source="speechbrain/spkrec-ecapa-voxceleb")
enroll = torch.stack([clf.encode_batch(load(x))            # 3-5 نمونه‌ی تمیز
                      for x in enrollment_clips]).mean(0)  # میانگین‌گیری از آن‌ها
score = clf.similarity(enroll, clf.encode_batch(load("test.wav"))).item()
verdict = score > 0.25                                     # تنظیم بر اساس داده‌های خودتان

جاسازی و تشخیص AudioSeal

کد
python
generator = AudioSeal.load_generator("audioseal_wm_16bits")
detector = AudioSeal.load_detector("audioseal_detector_16bits")
audio = load_wav("generated.wav", sr=16000)[None, None, :]
payload = torch.tensor([[1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0]])
watermark = generator.get_watermark(audio, sample_rate=16000, message=payload)
watermarked = audio + watermark
result, decoded_payload = detector.detect_watermark(watermarked, sample_rate=16000)

عرضه‌ی صدای تولیدی

گام‌به‌گام
  1. رضایتدر صورت استفاده از مرجع کلون، ابتدا verify_consent(user_id, clone_reference).
  2. سنتزtts_model.synthesize(text, voice).
  3. واترمارکaudioseal_embed(audio, payload=build_payload(user_id, model_id)).
  4. امضاخروجی c2pa_sign(audio_with_wm, user_id, timestamp=now()) مانیفست است.
  5. لاگنگهداری یک لاگ بازرسی سازگار با سیاست‌های نگهداری داده.
  6. بررسیاجرای آشکارساز در CI.

فرمول‌ها

مفهوم‌ها
EER
آستانه‌ای که در آن نرخ پذیرش نادرست با نرخ رد نادرست برابر است.
AAM-softmax
تابع $\cos(\theta + m)$ برای کلاس صحیح. معمولاً $m = 0.2$ و $s = 30$.
تأیید هویت
1:1. شناسایی: 1:N. مجموعه‌باز: حضور گویندگان ثبت‌نشده در مجموعه‌ی آزمون.
لیست سبز
هش کردن K توکن قبلی، افزودن $\delta$ به لاجیت‌های سبز.
امتیاز z
برابر با (تعداد سبز - مورد انتظار) تقسیم بر $\sqrt{n p (1 - p)}$، با $p = 0.5$.
دقت بازیابی بیت
کسری از بیت‌های بار داده که پس از حمله بازیابی می‌شوند.

خانواده‌های واترمارک

مفهوم‌ها
AudioSeal
محلی، برای هر فریم. مقاوم در برابر MP3، AAC، اکولایزر، سرعت 10٪± و نویز SNR تا 10+ دسی‌بل.
WavMark
نرخ 32 بیت بر ثانیه. نویز گوسی یا فشرده‌سازی MP3 آن را حذف می‌کند.
WaveVerify
مولد FiLM، آشکارساز Mixture-of-Experts. مقاوم در برابر معکوس‌سازی و تغییر سرعت.
Stable Signature
دکودر تصویر فاین‌تیون‌شده. فاین‌تیونینگ دکودر آن را حذف می‌کند.
SynthID-text
نمونه‌برداری سوگیرانه از توکن بعدی. پارافریز آن را از بین می‌برد.
تغییر زیروبمی صدا
دقت بازیابی بیت زیر 0.6 برای تمام واترمارک‌ها.

اعداد

پیش‌فرض‌ها
تنظیمپیش‌فرضنکته
ECAPA embedding192-dمدل WavLM-large ابعاد 256 دارد
ECAPA threshold0.25مقدار معمول SpeechBrain، نیاز به تنظیم دارد
Enrollment samples3-5نمونه‌های تمیز، میانگین‌گیری‌شده
ECAPA on VoxCeleb1-O0.87%EER، 15 میلیون پارامتر
ASVspoof 5 SOTA~7.23%EER؛ در محیط واقعی انتظار 5-10٪ داشته باشید
AudioSeal payload16-bitبر حسب هر فریم در 16 کیلوهرتز
AudioSeal detector485× realtime1000 برابر سریع‌تر از WavMark
Text watermark z4مقدار z >= 4 شواهد بسیار قوی است

کوته‌نوشت‌ها

اصطلاح‌ها
ECAPA-TDNN
کانولوشن یک‌بعدی، Squeeze-Excitation، استخرسازی اتنشن تا ابعاد 192.
PLDA
تحلیل متمایز خطی احتمالاتی. امتیازدهی بر پایه‌ی نسبت درست‌نمایی روی کسینوس.
AS-norm
نرمال‌سازی هر امتیاز در برابر یک گروه جعل‌کننده (Cohort).
CM
راهکار مقابله. تشخیص گفتار واقعی از مصنوعی.
SASV
تأیید هویت گوینده به‌همراه راهکار مقابله در یک سیستم بیومتریک واحد.
AASIST
اتنشن گرافی روی ویژگی‌های طیفی. SOTA در مقابله با جعل (Anti-spoofing).
C2PA
متادیتای منشأ و سندیتِ آشکارساز دستکاری با امضای رمزنگاری‌شده.
SynthID
واترمارک برای متن، تصویر، صوت و ویدیو.

عیب‌یابی

عیب‌یابی
  • افزایش EER در تماس‌های تلفنی

    علت
    آموزش‌دیده روی ویدیوهای وب VoxCeleb
    راه‌حل
    ارزیابی روی کانال هدف
  • افت شدید EER

    علت
    صوت آزمون زیر 3 ثانیه
    راه‌حل
    دریافت صوت آزمون طولانی‌تر
  • شکست مبنا (Anchor) برای یک گوینده

    علت
    یک نمونه‌ی ثبت‌نام نویزی
    راه‌حل
    میانگین‌گیری از 3 نمونه‌ی تمیز یا بیشتر
  • بزرگی بردار بر امتیاز غالب است

    علت
    امبدینگ‌ها نرمال‌سازی نشده‌اند
    راه‌حل
    ابتدا نرمال‌سازی L2 را انجام دهید
  • شکست آشکارساز در محیط واقعی

    علت
    اورفیت شدن AASIST روی ASVspoof LA
    راه‌حل
    کالیبراسیون روی دامنه‌ی اختصاصی خودتان
  • حذف واترمارک پس از ویرایش

    علت
    تغییر زیروبمی صدای شدید
    راه‌حل
    نگهداری یک طرح پشتیبان برای تشخیص
  • فقدان مانیفست هنگام میزبانی مجدد

    علت
    حذف متادیتا و انکود مجدد
    راه‌حل
    افزودن واترمارک در کنار آن
  • از بین رفتن واترمارک متن

    علت
    پارافریز
    راه‌حل
    تنها به آن اتکا نکنید

چه زمانی از چه روشی استفاده کنیم؟

نکته‌ها
  • مجموعه‌بسته 1:1 روی لبه: ECAPA-TDNN به‌همراه آستانه‌ی کسینوسی.
  • مجموعه‌باز در کلود: WavLM-SV به‌همراه AS-norm.
  • جلسات و پادکست‌ها: pyannote/speaker-diarization-3.1.
  • عرضه‌ی مدل TTS یا کلونینگ: اعمال AudioSeal روی تمامی خروجی‌ها.
  • بازگشایی با صدا: انسمبل AASIST و ECAPA به‌همراه چالش زنده‌بودن (Liveness).
  • کلاهبرداری در مرکز تماس: AASIST روی نمونه‌ی 20 درصدی از تماس‌ها.

پرسش‌ها

پرسش و پاسخ
واترمارک یا آشکارساز؟
هر دو. تغییر زیروبمی صدا بیشتر واترمارک‌ها را حذف می‌کند.
آیا عبارت بررسی زنده‌بودن جلوی کلون‌ها را می‌گیرد؟
جلوی بازپخش را می‌گیرد، نه کلونینگ بی‌درنگ را.
عدم وجود سیگنال SynthID یعنی صوت واقعی است؟
خیر؛ مدل‌های دیگر آن را اضافه نمی‌کنند.
چرا هم C2PA و هم واترمارک؟
متادیتا جامع است ولی قابل حذف؛ واترمارک ماندگار است اما ظرفیت بیتی دارد.
همراه با EER چه چیزی را گزارش کنیم؟
خود EER و آستانه در نقطه‌ی EER.