Soprano TTS: установка на CUDA, MPS, ROCm, CPU - полный гайд | AiManual
AiManual Logo Ai / Manual.
15 Янв 2026 Инструмент

Soprano TTS: полный гайд по установке и использованию на CUDA, MPS, ROCm и CPU

Пошаговая инструкция по установке Soprano TTS на все платформы: NVIDIA CUDA, Apple MPS, AMD ROCm и CPU. WebUI, ComfyUI, OpenAI API.

Soprano TTS: что это и почему все о нем говорят

Если вы устали платить ElevenLabs за каждый символ или ждать ответа от облачных API, Soprano TTS выглядит как спасательный круг. Это open-source движок синтеза речи, который работает локально на чем угодно - от игровой видеокарты до старого ноутбука. И да, качество голоса здесь не уступает студийному.

Но главная фишка Soprano - универсальность. Один инструмент, четыре способа запуска (CLI, WebUI, ComfyUI плагин, OpenAI-совместимый API) и поддержка всех аппаратных платформ. Хотите встроить его в голосового ассистента на RTX 3090? Легко. Нужно запустить на MacBook с Apple Silicon? Без проблем. Даже AMD карты с ROCm теперь в деле.

Soprano использует ONNX Runtime для инференса, что дает кроссплатформенность и оптимизацию под разные железяки. Модели весят от 100 МБ до 1 ГБ - не сравнить с монстрами вроде XTTS.

Установка: выбирайте свою платформу

Здесь начинается самое интересное. В зависимости от того, какое железо у вас под рукой, установка будет отличаться. Не пытайтесь запустить CUDA-версию на Mac - это не сработает. (Проверено, потратил час на эту ошибку).

1Для NVIDIA (CUDA)

Самый простой вариант. Убедитесь, что у вас стоит CUDA 11.8 или новее. Потом:

git clone https://github.com/opentts/soprano-tts
cd soprano-tts
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
pip install -r requirements.txt
pip install onnxruntime-gpu

Если у вас несколько GPU, добавьте флаг --device cuda:1 при запуске. Для RTX 4090/5090 может потребоваться обновить драйверы - старые версии CUDA иногда конфликтуют с новыми архитектурами.

2Для Apple Silicon (MPS)

На Mac все работает, но есть нюанс. MPS (Metal Performance Shaders) ускоряет только PyTorch, а ONNX Runtime использует CPU. Установка:

pip install torch torchvision torchaudio
pip install onnxruntime-silicon  # специальная сборка для Apple Silicon
pip install -r requirements.txt

При запуске укажите --device mps. Скорость будет в 2-3 раза выше CPU, но не догонит CUDA. Зато работает из коробки, без танцев с драйверами.

3Для AMD (ROCm)

Самая сложная настройка. ROCm - это боль, но Soprano делает ее терпимой. Сначала установите ROCm 5.7+ (для Radeon RX 6000/7000 или Radeon AI Pro R9700). Потом:

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm5.7
pip install onnxruntime-rocm
pip install -r requirements.txt

Проверьте поддержку вашей карты в списке совместимости ROCm. Некоторые потребительские модели RX все еще требуют патчей. Если столкнулись с проблемами, посмотрите наш гайд по генерации изображений на AMD - там похожие грабли.

4Для CPU (если совсем нет GPU)

Просто пропустите установку GPU-специфичных пакетов:

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
pip install onnxruntime
pip install -r requirements.txt

Скорость: 2-3 секунды на предложение на современном процессоре. Для коротких фраз сойдет, для аудиокниг - готовьтесь ждать.

Четыре лица Soprano: как запускать

Установили? Теперь выбирайте интерфейс. Soprano не заставляет вас использовать один способ - их четыре, и каждый для своих задач.

СпособДля чегоКоманда запуска
CLIПакетная обработка, скриптыpython soprano_cli.py --text "Привет" --output hello.wav
WebUIИнтерактивное тестирование, демоpython webui.py --port 7860
ComfyUI плагинВизуальные пайплайны с Stable DiffusionУстановить в custom_nodes/
OpenAI APIИнтеграция с существующими приложениямиpython openai_api.py --host 0.0.0.0

OpenAI-совместимый API - гениальная идея

Это то, что отличает Soprano от других open-source TTS. Запускаете сервер:

python -m soprano.api.openai_server --model soprano-1.0 --device cuda

И теперь любой код, который работает с OpenAI TTS, заработает с вашим локальным сервером. Просто замените base_url:

from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:8000/v1",
    api_key="not-needed"
)

response = client.audio.speech.create(
    model="soprano-1.0",
    voice="alloy",
    input="Привет, это локальный TTS!"
)

response.stream_to_file("speech.mp3")

Хотите собрать голосового ассистента? Подключите Soprano к вашему локальному LLM и получите полностью автономную систему.

ComfyUI плагин для визуальных нарративов

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

cd ComfyUI/custom_nodes
git clone https://github.com/opentts/comfyui-soprano-tts
cd comfyui-soprano-tts
pip install -r requirements.txt

Перезапустите ComfyUI - появится нода SopranoTTS. Подключите ее после текстового генератора, и ваши AI-персонажи заговорят. Идеально для создания анимированных историй или игровых диалогов.

Сравнение с альтернативами: зачем выбирать Soprano

На рынке локальных TTS есть варианты. Но у каждого свои тараканы.

  • XTTS - качество топ, но модель весит 3 ГБ+ и требует 8 ГБ VRAM. Soprano работает на 2 ГБ.
  • Coqui TTS - гибкая, но сложная в настройке. Soprano запускается одной командой.
  • Edge TTS - облачная, хоть и бесплатная. Soprano полностью локальный.
  • VITS - отличное качество, но только для английского. Soprano поддерживает мультиязычность из коробки.

Если нужен детальный разбор, у нас есть большое сравнение open-source TTS моделей с тестами качества.

💡
Soprano выигрывает в балансе: качество голоса на уровне XTTS, скорость как у Coqui, простота установки как у Edge TTS. И эта кроссплатформенность - редкий зверь в мире локального AI.

Практические примеры: где это реально нужно

Теория - это хорошо, но что делать с Soprano в реальных проектах?

Аудиокниги для нишевой аудитории

У вас есть техническая документация или узкоспециализированная литература? Нанять диктора дорого, а облачные TTS вроде ElevenLabs съедят бюджет. Soprano + скрипт на Python:

import soprano

with open("book.txt", "r", encoding="utf-8") as f:
    chapters = f.read().split("\n\n")

for i, chapter in enumerate(chapters):
    audio = soprano.generate(chapter, voice="professional-male")
    audio.save(f"chapter_{i:03d}.mp3")

За ночь получаете полную аудиокнигу. Качество? Слушатели отмечают естественность интонаций - Soprano хорошо справляется с техническими терминами.

Локальный голосовой агент для бизнеса

Представьте call-центр, где AI-оператор отвечает на частые вопросы. С локальным LLM типа Mistral Vibe для понимания запроса и Soprano для ответа. Все работает на одной серверной видеокарте, без облачных подписок.

Латентность: 1-2 секунды от вопроса до ответа. Месячная стоимость: только электричество. Конфиденциальность: данные никуда не уходят.

Озвучка обучающих материалов

Создаете курс? Вместо того чтобы записывать голос для каждого обновления контента, генерируйте аудио на лету. Soprano + система управления обучением = динамическая озвучка лекций. Даже имена студентов можно вставлять в текст - модель корректно их произносит.

Кому подойдет Soprano (а кому нет)

Это не серебряная пуля. Есть случаи, где Soprano блестящ, и ситуации, где лучше выбрать другое решение.

Выбирайте Soprano если:Ищите альтернативу если:
Нужен локальный TTS без интернетаТребуется эмоциональный голос с смехом/плачем
Работаете с конфиденциальными даннымиНужно клонирование конкретного голоса
Имеете разнородный парк устройств (NVIDIA, AMD, Apple)Требуется поддержка редких языков
Хотите интегрировать TTS в существующий пайплайн через OpenAI APIРаботаете исключительно на Windows без WSL
Бюджет ограничен, а объемы текстов большиеНужна реальная человеческая дикция для коммерческого продукта

Для клонирования голоса или обучения кастомных моделей смотрите Soprano-Factory - отдельный инструмент для тонкой настройки.

Типичные ошибки и как их избежать

Запускал Soprano на десятке конфигураций. Вот что ломается чаще всего:

  • "No module named 'onnxruntime'" - установили не ту версию. Для CUDA нужен onnxruntime-gpu, для CPU - onnxruntime, для Apple - onnxruntime-silicon.
  • Медленная работа на CUDA - проверьте, что torch установлен с CUDA-индексом. Иногда pip ставит CPU-версию поверх GPU.
  • Тишина вместо голоса - модель не загрузилась. Скачайте веса вручную: python -m soprano.download --model soprano-1.0
  • Странные артефакты в аудио - попробуйте другой голос или уменьшите скорость. Некоторые голоса лучше работают с определенными языками.
  • ROCm падает с ошибкой памяти - выделите меньше VRAM: --max-vram 4000 для 4 ГБ.

Самая частая проблема? Люди пытаются запустить CUDA-версию без CUDA-совместимой видеокарты. Если у вас интегрированная графика Intel или старая AMD без ROCm поддержки - используйте CPU-версию. Она медленнее, но работает везде.

На Windows с AMD картами может потребоваться WSL2 для ROCm. Microsoft до сих пор не сделала нативную поддержку ROCm в Windows, и это раздражает. Альтернатива - использовать CPU или перейти на Linux для AI-работ.

Что дальше? Будущее локального TTS

Soprano - не конечная точка. Сообщество уже работает над:

  • Поддержкой большего количества языков (сейчас 10+, планируется 50+)
  • Эмоциональными моделями с контролем интонации
  • Еще более легкими версиями для мобильных устройств
  • Интеграцией с RAG-системами для контекстно-зависимой озвучки

Через год, возможно, мы будем говорить о Soprano как о стандарте для локального синтеза речи. Пока что это самый сбалансированный вариант из того, что можно поставить одной командой и забыть о проблемах совместимости.

Попробуйте запустить его на своем железе. Даже если у вас только CPU - сгенерируйте пару фраз и сравните с облачными решениями. Разница в цене (ноль рублей против 10-20$ в месяц) того стоит. А если есть GPU - вы удивитесь, насколько быстро и качественно можно работать локально.

Главный совет: не зацикливайтесь на одной платформе. Мир железа разнообразен - сегодня у вас NVIDIA, завтра купите Mac, послезавтра соберете сервер на AMD. Soprano покрывает все эти сценарии, и это его главное преимущество в эпоху, когда AI-инструменты должны адаптироваться к вам, а не наоборот.