AI-генерація музики Suno/Udio в мобільному додатку
Ви розробляєте додаток для створення контенту — рілсів, кліпів, презентацій — і розумієте, що кожен трек потрібно ліцензувати окремо. Це дорого і сповільнює реліз. Рішення — вбудувати AI-генерацію музики прямо в додаток. Клієнт вводить текстовий промпт, обирає жанр і настрій, а через 15–40 секунд отримує унікальний трек без відрахувань за копірайт. Ми вже реалізували такі інтеграції для замовників у сфері fitness, fashion та edutainment. Наш досвід — 5+ років мобільної розробки та 20+ проєктів з AI-фічами.
Suno та Udio — два основні AI-сервіси для генерації повноцінних треків з вокалом. Обидва приймають текстовий промпт, обидва повертають mp3/wav через асинхронне завдання. Інтеграція технічно простіша, ніж відеогенерація, — файли менші, час генерації коротший — але є кілька нюансів.
Які API реально доступні?
Suno офіційно не надає публічного REST API — він у closed beta. Пряма інтеграція можлива через unofficial API-обгортки (нестабільно) або через Replicate, де задеплоєні open-source альтернативи: MusicGen від Meta, AudioCraft.
Для продакшену ми рекомендуємо використовувати перевірені рішення. У таблиці нижче — порівняння трьох основних варіантів:
| Провайдер | Якість | Час генерації | Ліцензування | Комерційне використання |
|---|---|---|---|---|
| ElevenLabs AI Music | Висока (з вокалом) | 15–40 с | Передача прав при paid | Так |
| Replicate + MusicGen | Середня (інструментал) | 10–30 с | MIT (неявно) | Ризиковано |
| Udio API (early access) | Висока (стиль + вокал) | 20–50 с | За ToS користувачеві | При paid |
Приклад запиту до ElevenLabs Music:
POST https://api.elevenlabs.io/v1/sound-generation xi-api-key: <key> { "text": "Upbeat electronic music for a fitness app, 120 BPM, energetic", "duration_seconds": 30, "prompt_influence": 0.5 } Відповідь через 15–40 секунд — бінарний mp3 або JSON з URL.
Як побудовано асинхронний флоу на iOS?
class MusicGenerationService { func generate(prompt: String, duration: Int) async throws -> URL { // Для довгих треків - async job let jobId = try await elevenLabsClient.createMusicJob( prompt: prompt, duration: duration ) // ElevenLabs: polling або webhook for delay in [5.0, 8.0, 10.0, 15.0, 20.0, 30.0] { try await Task.sleep(nanoseconds: UInt64(delay * 1e9)) let status = try await elevenLabsClient.getJobStatus(id: jobId) if status.state == "complete", let url = status.audioURL { return try await downloadAudio(from: url) } if status.state == "error" { throw MusicGenError.failed } } throw MusicGenError.timeout } } Час генерації 30-секундного треку — 15–30 секунд. Спіннер + прогрес достатньо, push не обов'язковий для таких коротких завдань.
Відтворення та управління аудіо
На iOS аудіогенерацію потрібно правильно інтегрувати з AVAudioSession:
Детальне налаштування AVAudioSession
// Налаштування сесії: відтворення навіть з беззвучним режимом try AVAudioSession.sharedInstance().setCategory( .playback, mode: .default, options: [.mixWithOthers] ) try AVAudioSession.sharedInstance().setActive(true) Якщо не налаштувати .playback category, музика замовкне при блокуванні екрану. Це часта помилка в MVP-реалізаціях.
На Android: MediaPlayer для простого відтворення, ExoPlayer для черги треків з плавними переходами (DefaultCrossfadeHandler).
Ліцензування та авторські права
Головне юридичне питання: кому належать права на згенерований трек? ElevenLabs: при paid плані — користувачеві. MusicGen: MIT-ліцензія моделі, але статус комерційного використання треків не врегульований явно. Suno: за ToS треки належать користувачеві за наявності платної підписки.
У додатку: явно інформувати користувачів про умови ліцензування обраного AI-сервісу. Якщо трек використовуватиметься в комерційних відео — рекомендувати paid план провайдера.
Інтеграція з відео
Частий кейс — підібрати або згенерувати музику до відеокліпу. Потрібно: біт треку підігнати під довжину відео (loop/trim), накласти через FFmpeg, зберегти результат.
Простий loop на FFmpeg:
ffmpeg -stream_loop -1 -i music.mp3 -i video.mp4 \ -shortest -map 0:a -map 1:v \ -c:v copy -c:a aac output.mp4 Якщо трек довший за відео — trim з fade out: додаємо -af "afade=t=out:st={fade_start}:d=2".
Що входить в роботу?
| Етап | Опис | Результат |
|---|---|---|
| Аналітика | Вибір провайдера, оцінка навантаження, юридичний check | Специфікація |
| Проєктування | Архітектура флоу генерації, схема ліцензування | Діаграма, API-контракти |
| Реалізація | Код інтеграції, UI вибору стилю, прогрес, відтворення | Робочий прототип |
| Тестування | Швидкість, стабільність, покриття edge case | Test report |
| Деплой | CI/CD, моніторинг, документація | Доступ в App Store/Google Play |
Додатково передаємо:
- Документацію щодо API та ліцензування
- Інструкцію для користувачів з комерційного використання треків
- Підтримку протягом 30 днів після запуску
Чому варто довірити інтеграцію нам?
Ми — команда з 5+ річним досвідом у мобільній розробці та понад 20 проєктів з AI-функціями. Наші рішення працюють у продакшені з навантаженням до 10 000 генерацій на день. Використовуємо перевірений стек: Swift 5.9, Kotlin, Flutter 3.x. Гарантуємо прозорість коду та дотримання App Store Review Guidelines.
Як замовити інтеграцію?
Зв'яжіться з нами — ми оцінимо ваш проєкт, підберемо оптимального провайдера та запропонуємо терміни. Базова інтеграція (генерація → відтворення → збереження) займає від 4 днів. Повний цикл з відеоредактором та історією треків — до 2 тижнів. Вартість розраховується індивідуально. Для отримання консультації з AI-генерації музики напишіть нам.







