چیتشیت
تأیید هویت گوینده، جعل و واترمارکها
Speaker Verification, Spoofing and Watermarks
ثبتنام، امتیازدهی و آستانهگذاری گویندگان، تشخیص صوت جعلی، و نشانهگذاری هر خروجی با واترمارک و C2PA.
فهرست مطالب
تأیید و نشانهگذاری
معماریوظایف در کد
کار و کد| وظیفه | کد |
|---|---|
| تأیید هویت یک گوینده | 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)
عرضهی صدای تولیدی
گامبهگام- رضایتدر صورت استفاده از مرجع کلون، ابتدا
verify_consent(user_id, clone_reference). - سنتز
tts_model.synthesize(text, voice). - واترمارک
audioseal_embed(audio, payload=build_payload(user_id, model_id)). - امضاخروجی
c2pa_sign(audio_with_wm, user_id, timestamp=now())مانیفست است. - لاگنگهداری یک لاگ بازرسی سازگار با سیاستهای نگهداری داده.
- بررسیاجرای آشکارساز در 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 embedding | 192-d | مدل WavLM-large ابعاد 256 دارد |
ECAPA threshold | 0.25 | مقدار معمول SpeechBrain، نیاز به تنظیم دارد |
Enrollment samples | 3-5 | نمونههای تمیز، میانگینگیریشده |
ECAPA on VoxCeleb1-O | 0.87% | EER، 15 میلیون پارامتر |
ASVspoof 5 SOTA | ~7.23% | EER؛ در محیط واقعی انتظار 5-10٪ داشته باشید |
AudioSeal payload | 16-bit | بر حسب هر فریم در 16 کیلوهرتز |
AudioSeal detector | 485× realtime | 1000 برابر سریعتر از WavMark |
Text watermark z | 4 | مقدار 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.