Представьте: у вас запись концерта, где вокал сливается с гитарой и ударными. Сделать чистую фонограмму для караоке — без 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} } Процесс работы
- Анализ задачи — определяем целевые стемы, требования к качеству и скорости.
- Выбор модели — подбираем оптимальную архитектуру (Demucs, MDX-Net, Spleeter).
- Интеграция — встраиваем модель в ваш пайплайн (API, batch, реальное время).
- Тестирование — оцениваем метрики (SDR, WER) на ваших данных.
- Деплой — разворачиваем на 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-разделения — мы поможем подобрать решение под ваши задачи.







