← Все гайды AI Release
EN Подписаться на @ai_release1

Как генерировать музыку и звуковые эффекты локально через ИИ: Stable Audio 3 и MCP-серверы

Обновлено: 19.10.2026 · AI Release · @ai_release1
Как генерировать музыку и звуковые эффекты локально через ИИ: Stable Audio 3 и MCP-серверы

TL;DR

Требования и подготовка

Иллюстрация к разделу «Требования и подготовка»
Иллюстрация к разделу «Требования и подготовка»

Общая схема пайплайна, которую вы соберёте:

1. Промпт (текст) → 2. локальная модель Stable Audio 3 → 3. WAV в каталоге out/ → 4. MCP-сервер отдаёт агенту путь к файлу как результат инструмента (tool).

MCP (Model Context Protocol) — открытый протокол, который описывает, как ИИ-клиент вызывает внешние инструменты по стандартной схеме: сервер объявляет список tools, клиент их вызывает и получает результат. Для генерации аудио это удобно тем, что агент не «изобретает» команды, а вызывает объявленный инструмент.

Способ запускаЧто делаетКогда выбирать
Скрипт/CLI напрямуюВы сами передаёте промпт и параметры, получаете файлОтладка модели, разовые генерации, батчи
MCP-серверОборачивает ту же модель в tool, который вызывает ИИ-клиентАгентские сценарии: «сгенерируй джингл и положи в проект»

Шаг 1. Проверка окружения и изоляция зависимостей

Что сделать: убедиться, что Python, ffmpeg и (опционально) GPU доступны, затем создать отдельное виртуальное окружение и каталоги проекта.

Зачем: модель Stable Audio 3 тянет тяжёлые зависимости (torch и аудио-библиотеки), которые конфликтуют с системным Python. Виртуальное окружение (venv) — изолированная папка с пакетами: ставите что угодно, системный Python не ломается.

python3 --version
ffmpeg -version | head -n 1
nvidia-smi --query-gpu=name,memory.total --format=csv

Ожидаемый вывод: строка вида Python 3.11.9, строка ffmpeg version ..., и таблица с именем GPU и объёмом памяти. Если nvidia-smi пишет command not found — у вас нет драйвера NVIDIA или карты; работайте в CPU-режиме.

mkdir -p ~/audio-lab/models ~/audio-lab/out
cd ~/audio-lab
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip

Пример: после активации which python печатает /home/<user>/audio-lab/.venv/bin/python, а pip -V — путь внутри ~/audio-lab/.venv. Если путь другой, окружение не активировалось.

Как проверить: выполните

python -c "import sys; print(sys.prefix)"

Успех — вывод заканчивается на /audio-lab/.venv. Это значит, что все дальнейшие pip install пойдут в изолированную папку, а не в систему.

Шаг 2. Установка модели и подключение MCP-сервера

Иллюстрация к разделу «Шаг 2. Установка модели и подключение MCP-сервера»
Иллюстрация к разделу «Шаг 2. Установка модели и подключение MCP-сервера»

Что сделать: установить пакет с моделью/инференсом, скачать веса, затем описать MCP-сервер в конфиге вашего ИИ-клиента.

Зачем: сам по себе файл весов ничего не умеет — нужен код инференса (загрузка модели, подготовка промпта, сэмплирование, запись WAV). MCP-сервер — тонкая обёртка над этим кодом, которая объявляет инструмент вида «сгенерируй аудио по описанию».

Установка (имя пакета и точную команду возьмите из документации модели — здесь шаблон, подставьте своё):

pip install "<имя-пакета-из-документации>"
python -c "import <модуль>; print(getattr(<модуль>, '__version__', 'ok'))"

Пример: если в документации указан пакет stable-audio-tools, команда будет pip install stable-audio-tools, а проверка — python -c "import stable_audio_tools; print('ok')". Сверьтесь с документацией: набор пакетов и имя модуля у разных сборок отличаются.

Веса положите в ~/audio-lab/models (или дайте библиотеке скачать их самой — как именно, указано в документации; размер и лицензию смотрите там же).

Теперь конфиг MCP. Для Claude Desktop файл лежит по пути ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) или %APPDATA%\Claude\claude_desktop_config.json (Windows). Добавьте сервер:

{
  "mcpServers": {
    "stable-audio": {
      "command": "/home/<user>/audio-lab/.venv/bin/python",
      "args": ["-m", "<модуль-сервера-из-документации>"],
      "env": {
        "AUDIO_OUT_DIR": "/home/<user>/audio-lab/out",
        "AUDIO_MODEL_PATH": "/home/<user>/audio-lab/models",
        "AUDIO_DEVICE": "cuda"
      }
    }
  }
}

Ключевые моменты: command — абсолютный путь к Python внутри venv (иначе клиент запустит системный Python и получит ModuleNotFoundError); AUDIO_DEVICE переключите на cpu, если GPU нет; имена переменных окружения сверьте с README сервера — они задаются автором пакета.

Как проверить: запустите отладочный клиент:

npx @modelcontextprotocol/inspector

Он печатает в консоль URL (по умолчанию http://localhost:6274 — точный адрес смотрите в выводе команды). Откройте его, в панели Connect укажите команду и аргументы из конфига, нажмите Connect → вкладка Tools. Успех — сервер в статусе connected и в списке есть инструмент генерации аудио.

Шаг 3. Проверка работы и финальный результат

Иллюстрация к разделу «Шаг 3. Проверка работы и финальный результат»
Иллюстрация к разделу «Шаг 3. Проверка работы и финальный результат»

Что сделать: сгенерировать один короткий файл и убедиться, что он физически существует, читается как аудио и возвращается агенту как результат tool-вызова.

Зачем: «зелёный» статус сервера ничего не говорит о том, что модель реально отработала: частая ситуация — tool вызывается, но падает на записи файла или на нехватке памяти.

Запустите генерацию из панели Inspector: выберите инструмент, передайте описание, например warm lo-fi drum loop, 90 bpm, no vocals, и короткую длительность (точные имена и допустимые значения параметров — в схеме инструмента, которую Inspector показывает автоматически).

Затем проверьте файл:

ls -lh ~/audio-lab/out
ffprobe -hide_banner ~/audio-lab/out/test.wav

Ожидаемый вывод: в ls появляется файл ненулевого размера (например, -rw-r--r-- 1 user user 1.4M ... test.wav), а ffprobe печатает блок Input #0 и строку вида Stream #0:0: Audio: pcm_s16le, <частота> Hz, stereo. Конкретные частота дискретизации и формат сэмплов зависят от настроек генерации — сверьтесь с документацией модели.

Чек-лист приёмки:

Последний пункт — главный признак, что MCP-обвязка работает: результат инструмента должен содержать путь или содержимое файла, который вы можете открыть.

Возможные проблемы и решения

Проблема. Генерация падает на середине, GPU переполнен

nvidia-smi

Если память всё равно не влезает — переключите сервер в CPU-режим, поправив env в конфиге MCP:

"env": { "AUDIO_OUT_DIR": "/home/<user>/audio-lab/out", "AUDIO_DEVICE": "cpu" }

Проблема. Сервер не стартует, клиент пишет, что процесс завершился

/home/<user>/audio-lab/.venv/bin/python -m <модуль-сервера-из-документации>

Если команда в терминале отрабатывает без ошибки, а клиент — нет, перезапустите клиент полностью (правка JSON не подхватывается на лету).

Проблема. Inspector не запускается

node -v && npx -v

Обе команды должны печатать номера версий. После этого повторите npx @modelcontextprotocol/inspector.

Резюме и следующие шаги

Вы подняли изолированное окружение, подключили локальную модель генерации аудио и обёрнули её в MCP-сервер, который ИИ-клиент вызывает как обычный инструмент. Дальше имеет смысл собрать батч-скрипт для пачки промптов и добавить постобработку через ffmpeg — базовые приёмы локального запуска моделей разобраны в гайде Как запустить ИИ-модель локально на своём компьютере: гайд для начинающих.

FAQ

Нужна ли видеокарта, чтобы генерировать музыку локально?

Нет, но на CPU генерация заметно медленнее. Точные цифры зависят от модели, длины фрагмента и вашего железа — измеряйте сами и фиксируйте время команды time.

Работает ли всё без интернета?

После установки пакетов и скачивания весов — да, инференс локальный. Интернет нужен только для первичной установки, загрузки весов и обновлений.

Можно ли использовать сгенерированные треки в коммерческом проекте?

Это определяется лицензией конкретной модели и весов, а не протоколом MCP. Сверьтесь с лицензией на странице загрузки модели — универсального ответа нет.

Зачем вообще MCP-сервер, если есть скрипт?

Скрипт вызываете вы руками, а MCP-сервер объявляет инструмент, который ИИ-клиент вызывает сам в рамках задачи. Для разовой генерации хватит скрипта, для агентских сценариев — сервера.

🤖 Кратко для ИИ