Интеграция AI-разделения аудио: Source Separation для бизнеса

Представьте: у вас запись концерта, где вокал сливается с гитарой и ударными. Сделать чистую фонограмму для караоке — без AI невозможно. Старые методы (ICA, NMF) дают артефакты, а ручная обработка занимает часы. Мы решаем эту задачу с помощью современных нейросетей. Наш опыт — 5+ лет в аудиообработк

Направления AI-разработки

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1441
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1302
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    998
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1267
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    714
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    1006

Представьте: у вас запись концерта, где вокал сливается с гитарой и ударными. Сделать чистую фонограмму для караоке — без AI невозможно. Старые методы (ICA, NMF) дают артефакты, а ручная обработка занимает часы. Мы решаем эту задачу с помощью современных нейросетей. Наш опыт — 5+ лет в аудиообработке, более 30 проектов по внедрению source separation в медиа и музыкальный продакшн. Гарантируем качество разделения и соответствие вашим срокам.

Source separation — выделение отдельных источников звука из смешанного сигнала. Это применяется в музыкальном продакшне (стемы), обработке речи (удаление фоновой музыки), видеопостпродакшне и ремастеринге архивных записей.

Какие проблемы решаем?

Низкое качество разделения. Старые методы (ICA, NMF) дают сильные артефакты. Современные модели на основе глубокого обучения — Demucs, Spleeter, MDX-Net — достигают SDR > 9 dB, что означает чистое разделение без заметных посторонних шумов.

Скорость обработки. Для пакетной обработки сотен треков критична производительность. Spleeter работает в 100 раз быстрее реального времени на GPU, Demucs — в 1.5 раза. Мы оптимизируем пайплайны под ваше оборудование.

Интеграция в существующие процессы. API на FastAPI, пакетная обработка через очереди, поддержка популярных форматов — всё это реализуем под ключ.

Как выбрать модель для разделения аудио?

Выбор зависит от трёх факторов: целевые стемы, требуемое качество и скорость. В таблице — сравнение основных моделей:

Модель Тип разделения Качество (SDR) Скорость
Demucs v4 (htdemucs) Вокал/барабаны/бас/прочее 9.0 dB 1.5× realtime на GPU
Spleeter (Deezer) 2/4/5 стемов 6.8 dB 100× realtime
Open-Unmix (UMX) 4 стема 7.2 dB 10× realtime
MDX-Net Конкурсный (MDX Challenge) 9.5 dB 2× realtime
BS-RoFormer SOTA 10.1 dB 0.8× realtime

SDR (Signal-to-Distortion Ratio) — основная метрика: выше = чище разделение.

Почему Demucs v4 — лучший выбор для продакшена?

Demucs v4 (htdemucs) даёт лучший баланс качества и скорости среди open-source решений. Он обучен на больших датасетах и стабильно работает на любых жанрах. Ниже — сравнение моделей по latency (время обработки 1 минуты аудио на GPU A100):

Модель Latency (сек) Потребление VRAM
Demucs v4 0.8 2.1 ГБ
MDX-Net 1.2 3.8 ГБ
Spleeter 0.1 1.0 ГБ

Для production мы рекомендуем Demucs v4 или его облегчённую версию htdemucs_ft.

Что даёт интеграция Demucs в конвейер обработки?

Мы используем Demucs v4 в продакшне. Ниже — пример класса для инференса:

import torch from demucs.pretrained import get_model from demucs.apply import apply_model from demucs.audio import AudioFile, save_audio import torchaudio class AudioSourceSeparator: def __init__(self, model_name: str = "htdemucs"): self.model = get_model(model_name) self.model.eval() if torch.cuda.is_available(): self.model.cuda() def separate( self, audio_path: str, output_dir: str, stems: list[str] = None # None = все стемы ) -> dict[str, str]: """Разделяем трек на стемы, возвращаем пути к файлам""" wav = AudioFile(audio_path).read( streams=0, samplerate=self.model.samplerate, channels=self.model.audio_channels ) ref = wav.mean(0) wav = (wav - ref.mean()) / ref.std() sources = apply_model( self.model, wav[None], device="cuda" if torch.cuda.is_available() else "cpu", progress=True, num_workers=2 )[0] sources = sources * ref.std() + ref.mean() result = {} available_stems = self.model.sources # ['drums', 'bass', 'other', 'vocals'] target_stems = stems or available_stems for stem, source in zip(available_stems, sources): if stem in target_stems: output_path = f"{output_dir}/{stem}.wav" save_audio(source, output_path, samplerate=self.model.samplerate) result[stem] = output_path return result 

Разделение речи от фоновой музыки

Для контент-обработки мы используем модель htdemucs_ft (fine-tuned на вокал). Пример:

from demucs.pretrained import get_model class SpeechFromMusicExtractor: """Извлечение речи из видео""" def __init__(self): self.model = get_model("htdemucs_ft") async def process_video_audio( self, video_path: str, output_speech: str, output_music: str ) -> dict: import subprocess audio_path = video_path.replace(".mp4", "_audio.wav") subprocess.run([ "ffmpeg", "-i", video_path, "-ac", "2", "-ar", "44100", "-vn", audio_path ], check=True) stems = self.separate(audio_path, output_dir="/tmp/stems") speech_stems = ["vocals"] music_stems = ["drums", "bass", "other"] return { "speech": stems.get("vocals"), "music_components": {k: stems[k] for k in music_stems if k in stems} } 

Процесс работы

  1. Анализ задачи — определяем целевые стемы, требования к качеству и скорости.
  2. Выбор модели — подбираем оптимальную архитектуру (Demucs, MDX-Net, Spleeter).
  3. Интеграция — встраиваем модель в ваш пайплайн (API, batch, реальное время).
  4. Тестирование — оцениваем метрики (SDR, WER) на ваших данных.
  5. Деплой — разворачиваем на GPU/CPU, настраиваем мониторинг.

Что входит в работу

  • Выбор и адаптация модели.
  • Реализация API или пакетного обработчика.
  • Документация по эксплуатации.
  • Обучение команды (1-2 часа).
  • Техническая поддержка 1 месяц.

Типовые применения

Музыкальный продакшн: remixing — изолируем барабаны или бас для переработки; karaoke — удаляем вокал, оставляем инструментал; mastering стемов — обрабатываем каждый слой независимо.

Контент и медиа: удаление фоновой музыки перед STT — WER снижается с 18% до 4%; ремастер архивных записей — разделение + денойз каждого стема; локализация видео — изолируем речь, заменяем дубляжом.

Постпродакшн: ADR (Automated Dialogue Replacement) — чистый вокал для замены реплик; музыкальное оформление — извлечение музыки для переиспользования.

Ограничения и нюансы

Demucs работает хуже при:

  • Очень громкой перкуссии поверх речи (SDR падает на 2–3 dB).
  • Монозаписях низкого качества (< 22 kHz).
  • Сложных полифонических наложениях (4+ источника одновременно).

Для максимального качества вокала — mdx_extra или htdemucs_ft. Для скорости в batch-режиме — Spleeter (в 10–15 раз быстрее Demucs на CPU).

Сроки: интеграция Demucs в пайплайн обработки медиафайлов — 1–2 недели. Полноценный сервис с очередью и веб-интерфейсом — 3–4 недели. Стоимость рассчитывается индивидуально, экономия времени на обработке снижает затраты до 70% по сравнению с ручным трудом. Свяжитесь с нами для оценки вашего проекта. Получите консультацию по внедрению AI-разделения — мы поможем подобрать решение под ваши задачи.