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-генерации музыки напишите нам.







