--- name: music-generation description: Unified music-generation wrapper — never-stop cascade Suno V5_5 → Lyria 3 Pro → MiniMax 2.6 → ElevenLabs Music. Closes FEAT-20260522-001. Live-tested 2026-08-26. ---
🎵 Music Generation (Unified Wrapper)
سدّ فجوة FEAT-20260522-001: نملك كل مفاتيح الموسيقى (Suno + Lyria + MiniMax + ElevenLabs) لكن بلا wrapper موحّد. هذا الـ wrapper يوحّدها بسلسلة never-stop.
متى تُستخدم
- أي طلب توليد موسيقى/أغنية/جينغل/موسيقى تصويرية.
- أغنية كاملة بغناء → Suno (SOTA، الطبقة الأولى تلقائياً).
- موسيقى تصويرية/instrumental → أي طبقة تكفي (Lyria سريع وعالي الجودة).
الأمر
bash
توليد (السلسلة الكاملة never-stop):
python3 skills/music-generation/music_gen.py generate "<وصف/style>" \
[--lyrics "..."] [--instrumental] [--title "..."] [--out DIR] [--only PROVIDER]فحص جاهزية المزوّدين:
python3 skills/music-generation/music_gen.py selftest
السلسلة (never-stop، best→cheap — مُثبتة حيّاً 2026-08-26)
1. Suno V5_5 — SOTA أغنية كاملة بغناء (skills/suno-music/suno.py).
2. Lyria 3 Pro — Google، عالي الجودة (Gemini API، lyria-3-pro-preview).
3. MiniMax Music 2.6 — رخيص (api.minimaxi.chat/v1/music_generation).
4. ElevenLabs Music — غناء واقعي (api.elevenlabs.io/v1/music).أي فشل/timeout/مفتاح مفقود في أي طبقة → الانتقال للتالية تلقائياً. كل الطبقات تفشل → JSON {ok:false, errors[]} + exit 1 (لا انهيار).
الإخراج
JSON:{"ok": true, "provider": "<اسم>", "files": ["<path.mp3>"], "errors_before": [...]}
الملفات في /data/.openclaw/media/outbound/ افتراضياً.اختبار حيّ (2026-08-26 — صفر سلبيات)
- selftest: 4/4 مزوّدين جاهزين ✅
- Lyria: أنتج MP3 حقيقي 176s / 192kbps / stereo ✅
- Ultimate Case: Suno بمفتاح خاطئ (401) → السلسلة انتقلت لـ Lyria وأنتجت ملفاً بلا توقّف ✅
- degradation-safe: مفتاح مفقود = طبقة تُتخطّى بصمت ✅