پرش به محتوا
← همهٔ یادداشت‌ها

Voicebox روی GPU ابری: ساخت صدا از متن و شبیه‌سازی صدا

·۸ دقیقه مطالعه·تیم جی‌پی‌یو

یک طوطی خاکستری آفریقایی با دم قرمز روی میلهٔ چوبی، در برابر پس‌زمینهٔ خاکستری ساده.

برای ساخت صدا از متن روی GPU ابری با یک ابزار آزاد و رابط وب ساده، Voicebox یکی از کامل‌ترین گزینه‌های امروز است: متن را می‌نویسید، یک صدای آماده یا صدای شبیه‌سازی‌شدهٔ خودتان را انتخاب می‌کنید و چند ثانیه بعد فایل صوتی تحویل می‌گیرید. در این آموزش یک ماشین با قالب Voicebox TTS در جی‌پی‌یو اجاره می‌کنیم، اولین صدا را می‌سازیم، از صدای خودمان یک پروفایل می‌سازیم و در آخر همین کار را با API و یک اسکریپت ساده انجام می‌دهیم.

یک نکتهٔ مهم را از همین اول بدانید: Voicebox فعلاً زبان فارسی را پشتیبانی نمی‌کند. فهرست زبان‌هایش ۲۲ زبان است؛ از جمله انگلیسی، عربی، ترکی، آلمانی، فرانسوی، روسی، اسپانیایی، چینی و ژاپنی. پس این ابزار به درد کسی می‌خورد که صداگذاری انگلیسی برای ویدیوی آموزشی، نریشن عربی برای مشتری خارجی، یا نسخهٔ ترکی یک تیزر لازم دارد. کل مسیر حدود نیم‌ساعت وقت می‌برد و روی یک کارت اقتصادی، در زمان نوشتن این مطلب، معمولاً کمتر از ۱۵ هزار تومان خرج دارد.

پیش‌نیازها

  • یک حساب در جی‌پی‌یو. اگر ندارید، از صفحهٔ ثبت‌نام شروع کنید.
  • یک کلید عمومی SSH ثبت‌شده در بخش /account. ورود به ماشین فقط با کلید است و رمز عبوری وجود ندارد. ساخت و ثبت کلید را در پست شروع اجاره GPU: اولین ماشین در ۱۰ دقیقه قدم‌به‌قدم گفته‌ایم.
  • موجودی کیف پول، دست‌کم به اندازهٔ یک ساعت از نرخ ماشینی که انتخاب می‌کنید. شارژ با کارت به کارت انجام می‌شود و کمترین مبلغ ۵۰ هزار تومان است؛ جزئیاتش در پست اجاره کارت گرافیک ساعتی: شارژ کیف پول و محاسبهٔ هزینه آمده.
  • اگر می‌خواهید صدای خودتان را شبیه‌سازی کنید: یک فایل صوتی تمیز ۱۰ تا ۳۰ ثانیه‌ای از صدای خودتان، به یکی از زبان‌های پشتیبانی‌شده، و متن دقیق همان جمله‌ها.

انتخاب کارت گرافیک برای ساخت صدا از متن

مدل‌های صوتی Voicebox در مقایسه با مدل‌های تصویر یا مدل‌های زبانی بزرگ سبک‌اند. موتور پیش‌فرض، Qwen3-TTS، دو اندازه دارد: 1.7B با حدود ۴٫۵ گیگابایت وزن و 0.6B با حدود ۲٫۵ گیگابایت. موتور Kokoro فقط ۸۲ میلیون پارامتر دارد و Chatterbox Turbo حدود ۳۵۰ میلیون. یعنی یک کارت با ۱۲ گیگابایت VRAM برای این کار کاملاً جا دارد.

دو پیشنهاد عملی:

  • اقتصادی: RTX 3060 با ۱۲ گیگابایت VRAM. برای نریشن‌های معمولی و آزمایش صداها کافی است. در زمان نوشتن این مطلب از حدود ۱۷ هزار تومان در ساعت شروع می‌شود.
  • سریع‌تر: RTX A4000 با ۱۶ گیگابایت (در زمان نوشتن این مطلب از حدود ۲۴ هزار تومان در ساعت) یا RTX 3090 با ۲۴ گیگابایت (در زمان نوشتن این مطلب از حدود ۴۷ هزار تومان در ساعت). اگر متن بلندی مثل یک کتاب صوتی یا چندین قسمت پادکست دارید، کارت قوی‌تر زودتر تمامش می‌کند.

قیمت‌های به‌روز را با فیلتر مدل کارت و حجم VRAM در بازار GPU ببینید. قیمت ساعتی در لحظهٔ اجاره قفل می‌شود و نوسان بعدی بازار روی هزینهٔ آن ماشین اثری ندارد.

اجاره و راه‌اندازی

در بازار، ماشین موردنظر را انتخاب کنید و موقع اجاره قالب Voicebox TTS را بردارید. دکمهٔ اجاره را بزنید و صبر کنید تا وضعیت ماشین «در حال اجرا» شود؛ معمولاً یکی دو دقیقه طول می‌کشد.

صفحهٔ ماشین بعد از آن این‌ها را یک‌کلیک در اختیارتان می‌گذارد: دستور آمادهٔ SSH، دکمهٔ «پنل ماشین» برای باز کردن رابط وب، دستور «تونل امن» برای وقتی که می‌خواهید رابط وب را از طریق SSH باز کنید، و فهرست پورت‌های منتشرشده. روی «پنل ماشین» بزنید تا رابط وب Voicebox باز شود. اگر صفحه بالا نیامد، یکی دو دقیقه صبر کنید؛ سرویس کمی دیرتر از خود ماشین آماده می‌شود.

اولین صدا با یک صدای آماده

ساده‌ترین شروع، صداهای آماده است و به هیچ فایل صوتی نیاز ندارد:

  1. در رابط وب یک پروفایل صدای تازه بسازید و نوع آن را «آماده» (preset) بگذارید.
  2. موتور را انتخاب کنید. Kokoro حدود ۵۰ صدای آماده دارد و بسیار سریع است؛ Qwen CustomVoice ۹ صدای منتخب با کیفیت بالاتر دارد.
  3. زبان پروفایل را تعیین کنید، مثلاً انگلیسی.
  4. متن را بنویسید و دکمهٔ ساخت را بزنید.

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

متن‌های بلند را نگران نباشید. Voicebox متن را خودش به تکه‌های کوچک‌تر تقسیم می‌کند، هر تکه را جدا می‌سازد و با یک هم‌پوشانی کوتاه به هم می‌چسباند.

شبیه‌سازی صدای خودتان

قابلیت اصلی Voicebox ساخت پروفایل از صدای خود شماست. Qwen3-TTS با یک نمونهٔ کوتاه کار می‌کند، اما نمونهٔ تمیزتر خروجی طبیعی‌تری می‌دهد.

  1. یک پروفایل تازه با نوع «شبیه‌سازی‌شده» (cloned) بسازید و زبانش را تعیین کنید.
  2. فایل نمونه را اضافه کنید. فرمت‌های wav، mp3، m4a، ogg، flac و opus پذیرفته می‌شوند.
  3. متن دقیق همان چیزی را که در نمونه گفته‌اید در کادر متن مرجع بنویسید. این متن باید کلمه‌به‌کلمه با صدا یکی باشد.
  4. حالا هر متنی را با همین پروفایل بسازید.

چند نکته برای نمونهٔ خوب: در اتاق ساکت ضبط کنید، فاصله از میکروفون ثابت باشد، موسیقی پس‌زمینه نداشته باشد، و با لحن طبیعی خودتان بخوانید. یک نمونهٔ ۱۵ ثانیه‌ای تمیز از یک نمونهٔ یک‌دقیقه‌ای پرنویز بهتر است.

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

ساخت صدا با API

همان سرویسی که رابط وب را نشان می‌دهد، یک API هم دارد. مستندات کامل و تعاملی‌اش در مسیر /docs همان نشانی پنل ماشین است. برای مثال زیر، نشانی پنل (یا نشانی محلی‌ای که تونل امن روی لپ‌تاپتان می‌سازد) را در یک متغیر بگذارید:

VB="<نشانی پنل ماشین>"

اول یک پروفایل بسازید:

curl -s -X POST "$VB/profiles" \
  -H "Content-Type: application/json" \
  -d '{"name": "my-voice", "language": "en"}'

پاسخ یک id دارد. نمونهٔ صدا را به آن اضافه کنید:

curl -s -X POST "$VB/profiles/<PROFILE_ID>/samples" \
  -F "file=@sample.wav" \
  -F "reference_text=The exact words I said in this recording."

حالا متن را بفرستید:

curl -s -X POST "$VB/generate" \
  -H "Content-Type: application/json" \
  -d '{"profile_id": "<PROFILE_ID>", "text": "Welcome to our new product tutorial.", "language": "en"}'

ساخت صدا در پس‌زمینه انجام می‌شود و پاسخ فوراً با یک id و وضعیت generating برمی‌گردد. وضعیت را دنبال کنید تا completed شود:

curl -N "$VB/generate/<GENERATION_ID>/status"

و فایل نهایی را بگیرید:

curl -s "$VB/audio/<GENERATION_ID>" -o voice.wav

با همین چند دستور می‌توانید یک فایل متنی بلند را خط‌به‌خط بخوانید و برای هر بخش یک فایل صوتی بسازید؛ مثلاً برای نریشن قسمت‌های یک دورهٔ آموزشی.

اگر به مشکل خوردید

  • خطای زبان نامعتبر: کد زبان باید یکی از ۲۲ کد پشتیبانی‌شده باشد (en، ar، tr، de، fr و…). fa پذیرفته نمی‌شود و درخواست با خطا برمی‌گردد.
  • صدای شبیه‌سازی‌شده شبیه شما نیست: تقریباً همیشه به نمونه برمی‌گردد. نمونهٔ تمیزتری ضبط کنید و مطمئن شوید متن مرجع دقیقاً همان چیزی است که گفته‌اید.
  • اولین ساخت خیلی طول کشید: بار اول وزن موتور دانلود می‌شود. صبر کنید تا تمام شود؛ دفعه‌های بعد سریع است.
  • CUDA out of memory: اندازهٔ کوچک‌تر موتور (0.6B به‌جای 1.7B) یا موتور سبک‌تری مثل Kokoro را امتحان کنید. اگر باز جا نشد، کارتی با VRAM بیشتر اجاره کنید.
  • پنل ماشین باز نمی‌شود: چند لحظه صبر کنید و بعد از دستور «تونل امن» صفحهٔ ماشین استفاده کنید.

هزینه و صرفه‌جویی

هزینه دقیقه‌ای از کیف پول کم می‌شود و ماشین متوقف‌شده هزینه‌ای ندارد. برای این آموزش، از راه‌اندازی و دانلود مدل تا ساخت چند فایل صوتی، معمولاً ۳۰ تا ۴۵ دقیقه کافی است. روی RTX 3060 که در زمان نوشتن این مطلب از حدود ۱۷ هزار تومان در ساعت شروع می‌شود، یعنی چیزی حدود ۹ تا ۱۳ هزار تومان.

برای کم کردن هزینه، متن‌ها را از قبل آماده کنید و همه را در یک نشست بسازید. موتور را هم اول با چند جملهٔ کوتاه امتحان کنید و بعد سراغ متن بلند بروید.

دیسک ماشین با حذف ماشین پاک می‌شود و فضای ذخیره‌سازی دائمی وجود ندارد. قبل از حذف، همهٔ فایل‌های صوتی لازم را روی سیستم خودتان بیاورید؛ اگر دستور curl مسیر /audio را روی لپ‌تاپ خودتان زده باشید، فایل همان‌جا ذخیره شده است. نمونهٔ صدای اصلی‌تان را هم نگه دارید تا دفعهٔ بعد دوباره پروفایل بسازید. و تا کار تمام شد، ماشین را متوقف یا حذف کنید.

قدم بعدی

اگر عکس قضیه را لازم دارید، یعنی تبدیل صدای فارسی به متن، پست تبدیل گفتار به متن فارسی با Whisper روی GPU ابری را بخوانید. اگر هم می‌خواهید بدانید کدام کار به چه کارت گرافیکی نیاز دارد، انتخاب کارت گرافیک هوش مصنوعی: راهنمای VRAM هر کار کمکتان می‌کند. کد منبع و مستندات Voicebox هم در مخزن رسمی پروژه در گیت‌هاب است.

پرسش‌های متداول

آیا Voicebox زبان فارسی را پشتیبانی می‌کند؟

نه، در زمان نوشتن این مطلب فارسی در فهرست ۲۲ زبان آن نیست. برای صداگذاری انگلیسی، عربی، ترکی و زبان‌های اروپایی و آسیای شرقی مناسب است، اما خروجی فارسی نمی‌دهد.

برای ساخت صدا از متن چقدر VRAM لازم است؟

مدل‌های Voicebox سبک‌اند. بزرگ‌ترین اندازهٔ Qwen3-TTS حدود ۴٫۵ گیگابایت وزن دارد، پس یک کارت ۱۲ گیگابایتی مثل RTX 3060 برای بیشتر کارها کافی است.

برای شبیه‌سازی صدا چند ثانیه صدا لازم است؟

یک نمونهٔ تمیز ۱۰ تا ۳۰ ثانیه‌ای معمولاً کافی است. کیفیت نمونه از طول آن مهم‌تر است: اتاق ساکت، بدون موسیقی، و متن مرجعی که دقیقاً با صدا یکی باشد.

آیا می‌توانم صدای شخص دیگری را شبیه‌سازی کنم؟

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

آیا Voicebox بدون کارت گرافیک هم اجرا می‌شود؟

روی CPU هم اجرا می‌شود، اما بسیار کندتر. برای متن‌های بلند یا کار مداوم، اجارهٔ ساعتی یک کارت گرافیک ارزان زمان انتظار را از چند دقیقه به چند ثانیه می‌رساند.


تصویر کاور: «African Grey Parrot, full body» اثر Found Animals Foundation، از ویکی‌مدیا کامنز، لایسنس CC BY-SA 2.0.