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

ساخت موسیقی با هوش مصنوعی: ACE Step 1.5 روی GPU ابری

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

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

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

کل مسیر، از اجاره تا دانلود اولین فایل صوتی، حدود ۲۰ دقیقه طول می‌کشد. روی یک کارت اقتصادی، در زمان نوشتن این مطلب، هزینه‌اش معمولاً به ۱۰ هزار تومان هم نمی‌رسد.

پیش‌نیازها

انتخاب کارت گرافیک برای ساخت موسیقی با هوش مصنوعی

ACE Step 1.5 دو بخش دارد. بخش اصلی یک مدل DiT است که صدا را می‌سازد. نسخهٔ معمولی‌اش حدود ۲ میلیارد پارامتر دارد و نسخهٔ XL حدود ۴ میلیارد. بخش دوم یک مدل زبانی کمکی (LM) است که توضیح شما را باز می‌کند، ساختار آهنگ را می‌چیند و کیفیت را بالا می‌برد. هرچه VRAM بیشتر باشد، مدل‌های بزرگ‌تری را می‌شود هم‌زمان بالا آورد.

جدول پیشنهادی مستندات رسمی پروژه، خلاصه‌شده:

VRAM کارت مدل DiT پیشنهادی مدل زبانی کمکی
تا ۶ گیگ acestep-v15-turbo خاموش
۸ تا ۱۶ گیگ acestep-v15-turbo یا acestep-v15-sft acestep-5Hz-lm-0.6B یا acestep-5Hz-lm-1.7B
۱۶ تا ۲۴ گیگ acestep-v15-xl-turbo acestep-5Hz-lm-1.7B
بیش از ۲۴ گیگ acestep-v15-xl-sft acestep-5Hz-lm-4B

طبق همین مستندات، نسخه‌های XL بدون آفلود دست‌کم ۲۰ گیگابایت VRAM می‌خواهند.

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

  • اقتصادی: RTX 3060 با ۱۲ گیگابایت VRAM. مدل turbo به‌همراه مدل زبانی کوچک را راحت اجرا می‌کند. در زمان نوشتن این مطلب از حدود ۱۷ هزار تومان در ساعت شروع می‌شود.
  • کیفیت بالاتر: RTX 3090 با ۲۴ گیگابایت. جای کافی برای نسخهٔ XL دارد. سازندگان پروژه زمان ساخت یک آهنگ کامل روی این کارت را زیر ۱۰ ثانیه گزارش کرده‌اند. در زمان نوشتن این مطلب از حدود ۴۶ هزار تومان در ساعت شروع می‌شود.

اگر چیزی بین این دو می‌خواهید، RTX A4000 با ۱۶ گیگابایت در زمان نوشتن این مطلب از حدود ۳۱ هزار تومان در ساعت شروع می‌شود. قیمت‌های به‌روز و فیلتر بر اساس مدل کارت و حجم VRAM در بازار GPU هست. قیمت ساعتی هم در لحظهٔ اجاره قفل می‌شود و نوسان بعدی بازار روی هزینهٔ آن ماشین اثری ندارد.

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

در بازار، ماشین موردنظر را انتخاب کنید و موقع اجاره، قالب ACE Step 1.5 UI & API را بردارید. این قالب ماشین را با رابط وب و API آمادهٔ ACE Step بالا می‌آورد و لازم نیست چیزی نصب کنید.

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

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

ساخت اولین آهنگ روی GPU ابری با رابط وب

روی «پنل ماشین» بزنید تا رابط وب ACE Step باز شود. حالت Custom کنترل کامل روی همهٔ تنظیمات می‌دهد؛ حالت Simple برای وقتی است که فقط یک توضیح کوتاه دارید و بقیه را به مدل می‌سپارید.

توضیح سبک (Music Caption)

در کادر Music Caption به انگلیسی بنویسید چه می‌خواهید: سبک، سازها، حال‌وهوا و نوع صدای خواننده. برای نمونه:

warm acoustic folk, fingerpicked guitar, soft piano, light percussion, gentle male vocal, nostalgic mood

شعر (Lyrics)

شعر را با برچسب‌های ساختار بنویسید تا مدل بفهمد کجا بند است و کجا ترجیع:

[Verse 1]
Morning light on an empty street
Coffee cold and the city asleep

[Chorus]
Take me home, take me home
Where the old roads go

اگر فقط موسیقی بی‌کلام می‌خواهید، تیک Instrumental را بزنید و کادر شعر را خالی بگذارید. برای آهنگ با کلام، زبان را در Vocal Language دستی تعیین کنید. فارسی (fa) در فهرست زبان‌های پشتیبانی‌شدهٔ پروژه هست، اما کیفیت تلفظ از زبانی به زبان دیگر فرق می‌کند؛ اول یک قطعهٔ کوتاه بسازید و گوش کنید.

تنظیمات زمان و ریتم

  • Audio Duration: طول قطعه، از ۱۰ ثانیه تا ۱۰ دقیقه. برای آزمایش اول ۶۰ ثانیه بگذارید.
  • BPM، Key Scale و Time Signature: اگر خالی بمانند، مدل خودش انتخاب می‌کند. اگر سرعت یا گام مشخصی می‌خواهید، این‌جا تعیینش کنید.
  • Batch Size: چند نسخه از یک درخواست هم‌زمان ساخته شود؛ حداکثر ۸.
  • Audio Format: پیش‌فرض mp3 است. برای ادیت بعدی در نرم‌افزار صدا، wav یا flac بگیرید.

دکمهٔ ساخت را بزنید. با مدل turbo که فقط ۸ گام دارد، خروجی معمولاً در کمتر از یک دقیقه آماده است. هر قطعه را همان‌جا گوش کنید و نسخه‌ای را که دوست دارید دانلود کنید. اگر یک برداشت را پسندیدید، مقدار Seed آن را یادداشت کنید تا با تغییرات کوچک، نتیجهٔ مشابه بگیرید.

ساخت دسته‌ای موسیقی با API

اگر برای یک بازی، ویدیو یا پادکست چند ده قطعه لازم دارید، کار با API سریع‌تر است. با دستور SSH صفحهٔ ماشین وارد شوید. سرور API در پیکربندی پیش‌فرض پروژه روی پورت 8001 گوش می‌دهد. اول سلامتش را چک کنید:

curl http://localhost:8001/health

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

یک درخواست ساخت بفرستید:

curl -X POST http://localhost:8001/release_task \
  -H 'Content-Type: application/json' \
  -d '{
    "prompt": "calm indie pop, mellow piano, soft drums, female vocal",
    "lyrics": "[Verse 1]\nRain on the window, slow and kind\n\n[Chorus]\nStay a little longer tonight",
    "vocal_language": "en",
    "audio_duration": 90,
    "inference_steps": 8,
    "batch_size": 2,
    "audio_format": "mp3"
  }'

پاسخ یک task_id دارد. با آن وضعیت کار را بپرسید:

curl -X POST http://localhost:8001/query_result \
  -H 'Content-Type: application/json' \
  -d '{"task_id_list": ["<TASK_ID>"]}'

در پاسخ، status برابر 0 یعنی هنوز در حال ساخت، 1 یعنی آماده و 2 یعنی خطا. وقتی آماده شد، فیلد result نشانی فایل را به شکل /v1/audio?path=... می‌دهد. همان را دانلود کنید:

curl "http://localhost:8001/v1/audio?path=<PATH>" -o song.mp3

مقدار <PATH> را دقیقاً همان‌طور که در پاسخ آمده (کدشده) بگذارید.

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

  • خطای CUDA out of memory: مدل XL یا مدل زبانی بزرگ برای کارتتان سنگین است. به acestep-v15-turbo و مدل زبانی 0.6B برگردید، Batch Size را کم کنید، یا کارتی با VRAM بیشتر بگیرید.
  • رابط وب باز نمی‌شود: بار اول، دانلود مدل‌ها چند دقیقه طول می‌کشد و سرویس دیرتر از خود ماشین بالا می‌آید. کمی صبر کنید؛ اگر باز هم باز نشد، از دستور «تونل امن» صفحهٔ ماشین استفاده کنید.
  • خواننده کلمات را نامفهوم می‌خواند: زبان را در Vocal Language دستی بگذارید، شعر را کوتاه‌تر کنید و برای هر بند برچسب ساختار بزنید.
  • آهنگ با توضیح جور نیست: توضیح را مشخص‌تر کنید؛ به‌جای «یک آهنگ شاد» بنویسید کدام ساز، چه سرعتی، چه حسی.

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

هزینه دقیقه‌ای از کیف پول کم می‌شود و ماشین متوقف‌شده هزینه‌ای ندارد. برای این آموزش، از اجاره تا گرفتن چند قطعهٔ یک‌دقیقه‌ای، معمولاً ۲۰ تا ۳۰ دقیقه کافی است. روی RTX 3060 که در زمان نوشتن این مطلب از حدود ۱۷ هزار تومان در ساعت شروع می‌شود، یعنی کمتر از ۱۰ هزار تومان.

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

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

قدم بعدی

اگر برای آهنگ‌هایتان کاور یا تصویر هم لازم دارید، آموزش ComfyUI روی GPU ابری را ببینید. برای ساخت زیرنویس متن آهنگ یا ویدیوی همراهش هم پست تبدیل گفتار به متن فارسی با Whisper به کارتان می‌آید. مستندات کامل ACE Step 1.5 در مخزن رسمی پروژه در گیت‌هاب است.

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

آیا برای ساخت موسیقی با هوش مصنوعی کارت گرافیک لازم است؟

برای سرعت قابل‌قبول، بله. ACE Step 1.5 روی پردازنده هم اجرا می‌شود، اما ساخت هر قطعه بسیار کندتر است. با یک کارت گرافیک اجاره‌ای ساعتی، بدون خرید سخت‌افزار، همین کار را در چند ثانیه تا چند ده ثانیه انجام می‌دهید.

ACE Step 1.5 چقدر VRAM می‌خواهد؟

مستندات پروژه می‌گوید نسخهٔ turbo با کمتر از ۶ گیگابایت هم اجرا می‌شود. برای مدل زبانی کمکی و کیفیت بهتر، ۱۲ گیگابایت مناسب است و نسخهٔ XL بدون آفلود دست‌کم ۲۰ گیگابایت لازم دارد.

آیا ACE Step آهنگ فارسی می‌سازد؟

فارسی در فهرست زبان‌های پشتیبانی‌شدهٔ پروژه هست و می‌توانید شعر فارسی بدهید. کیفیت تلفظ را با یک قطعهٔ کوتاه امتحان کنید؛ توضیح سبک را همچنان به انگلیسی بنویسید.

حداکثر طول آهنگ در ACE Step 1.5 چقدر است؟

هر قطعه بین ۱۰ ثانیه تا ۱۰ دقیقه می‌تواند باشد.

آیا می‌توانم از موسیقی ساخته‌شده در پروژهٔ تجاری استفاده کنم؟

کد ACE Step 1.5 با مجوز MIT منتشر شده است. شرایط استفاده از خروجی‌ها را قبل از کار تجاری در مخزن رسمی پروژه بخوانید و از شعر یا نمونه‌هایی که حق نشرشان مال دیگری است استفاده نکنید.

تصویر کاور: «Musical box open» اثر Simon A. Eugster، از ویکی‌مدیا کامنز، لایسنس CC BY-SA 3.0.