فاز 6 · درس 8

شبیه‌سازی و تبدیل صدا: جداسازی هویت و واترمارک‌گذاری

نوع
ساختنی
زمان
حدود 75 دقیقه
زبان‌ها
Python
پیش‌نیاز
فاز 6 · درس 06 (تشخیص گوینده)، فاز 6 · درس 07 (سنتز گفتار یا TTS)
یک موج صوتی درخشان که از یک منبع نوری جدا شده و به دو بخش محتوا و شناسه گوینده تجزیه می‌شود
فهرست مطالب
  1. صورت مسئله
  2. درک مفاهیم
  3. بخش اخلاقی ماجرا؛ یک ضرورت، نه امکان اختیاری
  4. ارقام و آمار (2026)
  5. پیاده‌سازی از صفر
  6. مرحله‌ی 1: تجزیه با رویکرد بازشناسی-سنتز (دموی کدمحور در main.py)
  7. مرحله‌ی 2: شبیه‌سازی صفر-نمونه با F5-TTS
  8. مرحله‌ی 3: تبدیل صدا با KNN-VC
  9. مرحله‌ی 4: درج واترمارک
  10. مرحله‌ی 5: گیت احراز رضایت
  11. استفاده از ابزارهای واقعی
  12. چالش‌ها و خطاهای رایج
  13. خروجی این درس
  14. تمرین‌ها
  15. اصطلاحات کلیدی
  16. برای مطالعه‌ی بیشتر

شبیه‌سازی صدا (Voice Cloning) و تبدیل صدا (Voice Conversion) مرزهای تولید محتوا، دوبله و دستیارهای صوتی را متحول کرده‌اند؛ به‌طوری‌که تنها با چند ثانیه نمونه‌ی صوتی می‌توان هویت یک صدا را بازتولید کرد یا گفتار فردی را به فرد دیگر تغییر داد. در این درس می‌آموزید که مدل‌های صوتی نوین چگونه ویژگی‌های هویت گوینده را از محتوای کلام تفکیک می‌کنند و چطور بدون آموزش سنگین، خروجی‌های واقعی بسازید.

اگر از داخل ایران قصد دانلود مدل‌های متن‌باز صوتی از Hugging Face را داشته باشید یا بخواهید بسته‌های پایتونی را نصب کنید، احتمالاً با ناپایداری یا کندی شبکه مواجه می‌شوید؛ در چنین شرایطی تنظیم میرورهای معتبر یا استفاده از ابزارهای مدیریت دانلود راهگشاست. از سوی دیگر، سرویس‌های تجاری کلود مانند ElevenLabs نیازمند پرداخت ارزی مستقیم هستند که با کارت‌های بانکی داخلی ممکن نیست؛ با این حال، اجرای مدل‌های متن‌باز این درس با پردازنده‌های گرافیکی معمولی در دسترس خواهد بود.

شبیه‌سازی صدا متن شما را با صدای فردی دیگر می‌خواند. تبدیل صدا، صدای شما را به صدای فردی دیگر بازنویسی می‌کند و در عین حال گفته‌هایتان را دست‌نخورده نگه می‌دارد. هر دو متکی بر یک تجزیه‌اند: جداسازی هویت گوینده از محتوا.

صورت مسئله

در سال 2026، یک قطعه صوتی 5 ثانیه‌ای برای ساخت کلونی باکیفیت از صدای هر فردی روی یک پردازنده گرافیکی (GPU) معمولی کفایت می‌کند. سرویس‌های ElevenLabs، F5-TTS، OpenVoice v2 و VoiceBox همگی شبیه‌سازی صفر-نمونه (Zero-shot) یا چند-نمونه ارائه می‌دهند. این فناوری هم موهبت است (تبدیل متن به گفتار برای دسترسی‌پذیری، دوبله، صداهای کمکی) و هم سلاح (تماس‌های کلاهبرداری، دیپ‌فیک‌های سیاسی، سرقت مالکیت فکری).

دو وظیفه با ارتباط بسیار نزدیک:

  • شبیه‌سازی صدا (سمت TTS): متن + صدای مرجع 5 ثانیه‌ای ← خروجی صوتی با همان صدا.
  • تبدیل صدا (سمت گفتار): صوت مبدأ (شخص A که عبارت X را می‌گوید) + صدای مرجع شخص B ← خروجی صوتی از گفتن عبارت X با صدای شخص B.

هر دو روش، شکل موج صوتی را به سه بخش (محتوا، گوینده، عروض) تجزیه می‌کنند و محتوای یک منبع را با گوینده‌ی منبع دیگر درمی‌آمیزند.

محدودیت کلیدی انتشار محصول در سال 2026: درج واترمارک و گیت‌های احراز رضایت طبق قوانین اتحادیه اروپا (AI Act، لازم‌الاجرا از اوت 2026) و کالیفرنیا (AB 2905، لازم‌الاجرا از 2025) الزامی هستند. پایپ‌لاین شما باید واترمارکی ناملموس درج کند و از کلون‌های بدون رضایت سر باز زند.

درک مفاهیم

شبیه‌سازی صدا در برابر تبدیل صدا: تجزیه، تعویض گوینده، ترکیب مجدد

شبیه‌سازی صفر-نمونه. یک کلیپ 5 ثانیه‌ای را به مدلی می‌دهید که روی صدای هزاران گوینده آموزش دیده است. انکودر گوینده این کلیپ را به یک امبدینگ گوینده نگاشت می‌کند؛ دیکودر TTS نیز بر اساس آن امبدینگ به‌همراه متن ورودی، صدا را تولید می‌کند.

موارد استفاده: F5-TTS (2024)، YourTTS (2022)، XTTS v2 (2024)، OpenVoice v2 (2024).

فاین‌تیونینگ چند-نمونه. بین 5 تا 30 دقیقه از صدای هدف را ضبط می‌کنید. مدل پایه را به مدت یک ساعت با LoRA فاین‌تیون می‌کنید. کیفیت خروجی از حد «قابل قبول» به سطحی جهش می‌کند که با صدای واقعی «غیرقابل تشخیص» است. Coqui و ElevenLabs هر دو از این الگو پشتیبانی می‌کنند؛ کامیونیتی نیز از آن همراه با F5-TTS بهره می‌برد.

تبدیل صدا (VC). شامل دو رویکرد اصلی:

  • بازشناسی-سنتز (Recognition-synthesis). اجرای مدلی شبیه به ASR برای استخراج بازنمایی محتوا (مانند احتمالات پسین واج‌ها به‌صورت نرم یا همان PPGها)، و سپس سنتز مجدد آن با امبدینگ گوینده‌ی هدف. این روش در برابر زبان و لهجه مقاوم است. موارد استفاده: KNN-VC (2023)، Diff-HierVC (2023).
  • جداسازی ویژگی‌ها (Disentanglement). آموزش یک اتوانکودر که محتوا، گوینده و عروض را در فضای نهان (latent space) و در گلوگاه شبکه از یکدیگر تفکیک می‌کند. در زمان استنتاج، امبدینگ گوینده جایگزین می‌شود. کیفیت پایین‌تر اما سرعت بالاتری دارد. موارد استفاده: AutoVC (2019)، گونه‌های مختلف VITS-VC.

شبیه‌سازی مبتنی بر کدک عصبی (از سال 2024 به بعد). مدل‌های VALL-E، VALL-E 2، NaturalSpeech 3 و VoiceBox با صوت مانند توکن‌های گسسته‌ی حاصل از SoundStream یا EnCodec برخورد می‌کنند و یک مدل بزرگ خودبازگشتی (Autoregressive) یا تطبیق جریان (Flow-matching) را روی این توکن‌های کدک آموزش می‌دهند. کیفیت این روش در پرامپت‌های کوتاه تنه به تنه‌ی ElevenLabs می‌زند.

بخش اخلاقی ماجرا؛ یک ضرورت، نه امکان اختیاری

واترمارک‌گذاری. ابزارهای PerTh (Perth) و SilentCipher (2024) یک شناسه‌ی حدوداً 16 تا 32 بیتی را به‌شکلی ناملموس درون صوت تعبیه می‌کنند. این شناسه در برابر فشرده‌سازی مجدد، استریمینگ و ویرایش‌های معمول دست‌نخورده باقی می‌ماند. این ابزارها متن‌باز و آماده‌ی محیط پروداکشن هستند.

گیت‌های احراز رضایت. هر خروجی شبیه‌سازی‌شده باید به یک سند رضایت قابل‌راستی‌آزمایی متصل باشد؛ مثلاً: «اینجانب روهیت، در تاریخ 2026-04-22، اجازه‌ی استفاده از این صدا را برای هدف X صادر می‌کنم.» این داده‌ها باید در یک لاگ ضد‌دستکاری ذخیره شوند.

تشخیص جعل. مدل‌های AASIST، RawNet2 و Wav2Vec2-AASIST به‌عنوان ابزارهای تشخیص دیپ‌فیک عرضه شده‌اند. مسابقه‌ی ASVspoof 2025 نرخ‌های خطای مساوی (EER) بین 0.8 تا 2.3 درصد را برای مدل‌های مدرن تشخیص‌دهنده در برابر خروجی‌های ElevenLabs، VALL-E 2 و Bark گزارش کرده است.

ارقام و آمار (2026)

مدل بدون نمونه قبلی؟ SECS (شباهت به هدف) WER (وضوح گفتار) تعداد پارامترها
F5-TTS بله 0.72 2.1% 335M
XTTS v2 بله 0.65 3.5% 470M
OpenVoice v2 بله 0.70 2.8% 220M
VALL-E 2 بله 0.77 2.4% 370M
VoiceBox بله 0.78 2.1% 330M

امتیاز SECS بالاتر از 0.70 معمولاً از نظر بیشتر شنوندگان تفاوت محسوسی با صدای هدف ندارد.

تجزیه صداتفکیک، تعویض گوینده و ترکیب مجدد
VOICE FACTORIZECloning and conversion rest on one decomposition: separate what was said from who said it. The source clip is factorized into a content representation and a speaker embedding; the source speaker is dropped and a reference embedding from a five-second clip of person B is swapped in. Recombining content with the new speaker yields B saying the same words, which is why a consent gate and watermark are mandatory.مبدأ: فرد A می‌گوید «hello»تجزیهمحتواگوینده A (حذف‌شده)مرجع: 5 ثانیه از فرد Brecombine -> B says "hello"محتوای یکسان با هویت تعویض‌شده؛ واترمارک ناشنیدنی الزامی است
شبیه‌سازی و تبدیل صدا بر پایه‌ی یک تفکیک استوار است: جدا کردن «آنچه گفته شده» از «کسی که آن را گفته است». کلیپ مبدأ به یک بازنمایی محتوا و یک امبدینگ گوینده تجزیه می‌شود؛ گوینده‌ی مبدأ کنار گذاشته شده و امبدینگ مرجع برگرفته از یک کلیپ 5 ثانیه‌ای از فرد B جایگزین آن می‌شود. ترکیب مجدد محتوا با گوینده‌ی جدید باعث می‌شود فرد B همان کلمات را بیان کند؛ به همین دلیل است که تأیید رضایت و درج واترمارک اجباری هستند.

پیاده‌سازی از صفر

مرحله‌ی 1: تجزیه با رویکرد بازشناسی-سنتز (دموی کدمحور در main.py)

def clone_pipeline(ref_audio, text, target_embedder, tts_model):
    speaker_emb = target_embedder.encode(ref_audio)
    mel = tts_model(text, speaker=speaker_emb)
    return vocoder(mel)

از نظر مفهومی ساده است؛ بخش اصلی پیاده‌سازی در tts_model و انکودر گوینده قرار دارد.

مرحله‌ی 2: شبیه‌سازی صفر-نمونه با F5-TTS

from f5_tts.api import F5TTS
tts = F5TTS()
wav = tts.infer(
    ref_file="rohit_5s.wav",
    ref_text="The quick brown fox jumps over the lazy dog.",
    gen_text="Please add milk and bread to my list.",
)

متن مرجع باید موبه‌مو با فایل صوتی همخوانی داشته باشد؛ هرگونه ناهمخوانی فرآیند هم‌ترازی را بر هم می‌زند.

مرحله‌ی 3: تبدیل صدا با KNN-VC

import torch
from knnvc import KNNVC  # 2023 model, https://github.com/bshall/knn-vc
vc = KNNVC.load("wavlm-base-plus")
out_wav = vc.convert(source="my_voice.wav", target_pool=["alice_1.wav", "alice_2.wav"])

مدل KNN-VC با استفاده از WavLM، امبدینگ‌های فریم‌به‌فریم را برای فایل صوتی مبدأ و مجموعه‌ی هدف استخراج می‌کند؛ سپس هر فریم مبدأ را با نزدیک‌ترین همسایه‌اش در مجموعه‌ی هدف جایگزین می‌سازد. این روش ناپارامتری است و حتی با یک دقیقه گفتار از صدای هدف به‌خوبی کار می‌کند.

مرحله‌ی 4: درج واترمارک

from silentcipher import SilentCipher
sc = SilentCipher(model="2024-06-01")
payload = b"consent_id:abc123;ts:1745353200"
watermarked = sc.embed(wav, sr=24000, message=payload)
detected = sc.detect(watermarked, sr=24000)   # returns payload bytes

یک داده‌ی حدوداً 32 بیتی که حتی پس از تبدیل مجدد به MP3 و اعمال نویز جزئی، قابل شناسایی است.

def cloned_inference(text, ref_audio, consent_record):
    assert verify_signature(consent_record), "Signed consent required"
    assert consent_record["speaker_id"] == hash_speaker(ref_audio)
    wav = tts.infer(ref_file=ref_audio, gen_text=text)
    wav = watermark(wav, payload=consent_record["id"])
    return wav

استفاده از ابزارهای واقعی

استک پیشنهادی سال 2026:

سناریو انتخاب
شبیه‌سازی 5 ثانیه‌ای بدون نمونه قبلی، متن‌باز F5-TTS یا OpenVoice v2
شبیه‌سازی تجاری در محیط پروداکشن ElevenLabs Instant Voice Clone v2.5
تبدیل صدا (بازنویسی) KNN-VC یا Diff-HierVC
فاین‌تیونینگ برای چندین گوینده StyleTTS 2 + آداپتور گوینده
شبیه‌سازی چندزبانه XTTS v2 یا VALL-E X
تشخیص دیپ‌فیک Wav2Vec2-AASIST

چالش‌ها و خطاهای رایج

  • ناهمخوانی متن و صوت مرجع. مدل‌هایی مثل F5-TTS الزام دارند که متن مرجع، حتی در علائم نگارشی، دقیقاً با صوت مرجع همخوانی داشته باشد.
  • وجود بازگشت صدا (Reverb) در فایل مرجع. پژواک، کیفیت کلون را نابود می‌کند. صدا را خشک و با میکروفون نزدیک ضبط کنید.
  • تضاد احساسی. اگر صدای مرجع «شاد و پرانرژی» باشد، تمام جملات بعدی با همان لحن شاد شبیه‌سازی می‌شوند. لحن صدای مرجع را متناسب با کاربرد نهایی انتخاب کنید.
  • نشت زبان (Language leakage). شبیه‌سازی صدای یک انگلیسی‌زبان و وادار کردن مدل به فرانسوی صحبت کردن، اغلب لهجه‌ی زبان مبدأ را منتقل می‌کند؛ برای این سناریوها از مدل‌های چندزبانه (مانند XTTS و VALL-E X) استفاده کنید.
  • نبود واترمارک. ارائه‌ی محصول بدون واترمارک از اوت 2026 در اتحادیه اروپا منع قانونی دارد.

خروجی این درس

خروجی کار را در مسیر outputs/skill-voice-cloner.md ذخیره کنید. یک پایپ‌لاین شبیه‌سازی یا تبدیل صدا طراحی کنید که مجهز به گیت احراز رضایت، سیستم واترمارک‌گذاری و شاخص‌های کیفی مشخص باشد.

تمرین‌ها

  1. ساده. اسکریپت code/main.py را اجرا کنید. این اسکریپت جابه‌جایی امبدینگ گوینده را با محاسبه‌ی شباهت کسینوسی میان دو «گوینده» قبل و بعد از جابه‌جایی نمایش می‌دهد.
  2. متوسط. با استفاده از OpenVoice v2 صدای خودتان را کلون کنید. شاخص SECS میان صدای مرجع و صدای شبیه‌سازی‌شده را اندازه بگیرید. میزان CER را با استفاده از Whisper محاسبه کنید.
  3. پیشرفته. با SilentCipher روی 20 فایل شبیه‌سازی‌شده واترمارک درج کنید؛ آن‌ها را به فرمت MP3 با نرخ بیت 128 kbps انکود و دیکود کنید؛ سپس داده‌ی تعبیه‌شده را استخراج و نرخ دقت بیت‌ها (bit-accuracy) را گزارش دهید.

اصطلاحات کلیدی

اصطلاح آنچه به زبان می‌آورند معنای واقعی آن
کلون صفر-نمونه (Zero-shot clone) 5 ثانیه صدا برای کار کافی است مدل پیش‌آموزش‌دیده + امبدینگ گوینده؛ بدون نیاز به بازآموزی.
PPG نگاره‌ی پسین واج‌شناختی (Phonetic posteriorgram) مقادیر پسین واج‌ها در هر فریم ASR به‌عنوان بازنمایی مستقل از زبان محتوا.
KNN-VC تبدیل بر اساس نزدیک‌ترین همسایه جایگزینی هر فریم مبدأ با نزدیک‌ترین فریم موجود در مجموعه‌ی هدف.
کدک عصبی TTS رویکرد سبک VALL-E مدل AR روی توکن‌های EnCodec یا SoundStream.
واترمارک (Watermark) امضای ناملموس بیت‌های تعبیه‌شده درون صوت که در فشرده‌سازی مجدد از بین نمی‌روند.
SECS میزان شباهت شبیه‌سازی شباهت کسینوسی میان امبدینگ‌های گوینده‌ی هدف و خروجی شبیه‌سازی‌شده.
AASIST تشخیص‌دهنده‌ی دیپ‌فیک مدل ضدجعل که گفتار سنتز‌شده را شناسایی می‌کند.

برای مطالعه‌ی بیشتر

سؤالات متداول

تفاوت شبیه‌سازی صدا (Voice Cloning) با تبدیل صدا (Voice Conversion) چیست؟

در شبیه‌سازی صدا، متن ورودی به همراه یک نمونه‌ی کوتاه از صدای مرجع به گفتار تبدیل می‌شود (سمت TTS)، اما در تبدیل صدا، گفتار یک گوینده مستقیماً با حفظ محتوا به لحن و صدای گوینده‌ی دیگر بازنویسی می‌شود (سمت گفتار به گفتار).

چرا متن مرجع در شبیه‌سازی صفر-نمونه با F5-TTS باید دقیق باشد؟

مدل‌هایی مانند F5-TTS برای انطباق گفتار با ویژگی‌های آوایی به هم‌ترازی دقیق نیاز دارند؛ هرگونه تفاوت در واژگان یا علائم نگارشی بین متن و فایل صوتی مرجع، این هم‌ترازی را بر هم زده و کیفیت کلون را کاهش می‌دهد.

واترمارک صوتی در پروداکشن چه کاربردی دارد و آیا حذف می‌شود؟

واترمارک‌های مدرن (مانند SilentCipher) داده‌هایی حدود 16 تا 32 بیت را به‌صورت ناملموس در سیگنال صوت تعبیه می‌کنند تا منشأ هوش مصنوعی را ثبت کنند. این شناسه حتی در برابر فشرده‌سازی با MP3 و نویز سبک پایدار باقی می‌ماند.

ما رو توی گوگل بیشتر ببین

با افزودن نکست ادمین به «منابع ترجیحی» گوگل، درس‌ها و مطالب ما را در بخش اخبار برتر جستجو بیشتر می‌بینید.