ffmpeg в PATH, Node.js + npx для MCP Inspector, GPU NVIDIA с драйвером или CPU-режим, свободное место под веса модели и выходные WAV-файлы, каталог с правами на запись
C:\audio-lab.torch и т. п.) сверьте с документацией модели — от этого зависит, какая версия Python реально подойдёт.ffmpeg — утилита для чтения/конвертации аудио. Нужна для проверки результата через ffprobe и для конвертации WAV в mp3/ogg.npx — нужны только для отладки MCP-сервера через MCP Inspector (официальный отладочный клиент протокола). Версию Node.js сверьте с документацией Inspector.Общая схема пайплайна, которую вы соберёте:
1. Промпт (текст) → 2. локальная модель Stable Audio 3 → 3. WAV в каталоге out/ → 4. MCP-сервер отдаёт агенту путь к файлу как результат инструмента (tool).
MCP (Model Context Protocol) — открытый протокол, который описывает, как ИИ-клиент вызывает внешние инструменты по стандартной схеме: сервер объявляет список tools, клиент их вызывает и получает результат. Для генерации аудио это удобно тем, что агент не «изобретает» команды, а вызывает объявленный инструмент.
| Способ запуска | Что делает | Когда выбирать |
|---|---|---|
| Скрипт/CLI напрямую | Вы сами передаёте промпт и параметры, получаете файл | Отладка модели, разовые генерации, батчи |
| MCP-сервер | Оборачивает ту же модель в tool, который вызывает ИИ-клиент | Агентские сценарии: «сгенерируй джингл и положи в проект» |
Что сделать: убедиться, что 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 пойдут в изолированную папку, а не в систему.

Что сделать: установить пакет с моделью/инференсом, скачать веса, затем описать 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 и в списке есть инструмент генерации аудио.

Что сделать: сгенерировать один короткий файл и убедиться, что он физически существует, читается как аудио и возвращается агенту как результат 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. Конкретные частота дискретизации и формат сэмплов зависят от настроек генерации — сверьтесь с документацией модели.
Чек-лист приёмки:
nvidia-smi или CPU-режим выбран осознанно, AUDIO_DEVICE соответствует железуpython -c "import sys; print(sys.prefix)" указывает на venv проекта~/audio-lab/out появился WAV, ffprobe видит аудиопотокПоследний пункт — главный признак, что MCP-обвязка работает: результат инструмента должен содержать путь или содержимое файла, который вы можете открыть.
Проблема. Генерация падает на середине, GPU переполнен
torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate ... MiBnvidia-smi
Если память всё равно не влезает — переключите сервер в CPU-режим, поправив env в конфиге MCP:
"env": { "AUDIO_OUT_DIR": "/home/<user>/audio-lab/out", "AUDIO_DEVICE": "cpu" }
Проблема. Сервер не стартует, клиент пишет, что процесс завершился
ModuleNotFoundError: No module named '<модуль>' в логе MCP-сервераcommand указан системный python, а пакет установлен в venv; либо venv пересоздали и путь устарел./home/<user>/audio-lab/.venv/bin/python -m <модуль-сервера-из-документации>
Если команда в терминале отрабатывает без ошибки, а клиент — нет, перезапустите клиент полностью (правка JSON не подхватывается на лету).
Проблема. Inspector не запускается
Error: spawn npx ENOENTnpx отсутствует в PATH (часто после установки Node.js без перезапуска терминала).node -v && npx -v
Обе команды должны печатать номера версий. После этого повторите npx @modelcontextprotocol/inspector.
Вы подняли изолированное окружение, подключили локальную модель генерации аудио и обёрнули её в MCP-сервер, который ИИ-клиент вызывает как обычный инструмент. Дальше имеет смысл собрать батч-скрипт для пачки промптов и добавить постобработку через ffmpeg — базовые приёмы локального запуска моделей разобраны в гайде Как запустить ИИ-модель локально на своём компьютере: гайд для начинающих.
Нужна ли видеокарта, чтобы генерировать музыку локально?
Нет, но на CPU генерация заметно медленнее. Точные цифры зависят от модели, длины фрагмента и вашего железа — измеряйте сами и фиксируйте время команды time.
Работает ли всё без интернета?
После установки пакетов и скачивания весов — да, инференс локальный. Интернет нужен только для первичной установки, загрузки весов и обновлений.
Можно ли использовать сгенерированные треки в коммерческом проекте?
Это определяется лицензией конкретной модели и весов, а не протоколом MCP. Сверьтесь с лицензией на странице загрузки модели — универсального ответа нет.
Зачем вообще MCP-сервер, если есть скрипт?
Скрипт вызываете вы руками, а MCP-сервер объявляет инструмент, который ИИ-клиент вызывает сам в рамках задачи. Для разовой генерации хватит скрипта, для агентских сценариев — сервера.