Когда в очередной раз понадобилось нарезать голосовые фразы для pet-проекта, я полез в ElevenLabs — и тут же упёрся в лимиты бесплатного тарифа. Гугление привело к Voicebox от Jamie Pine, который за неделю собрал почти 3к звёзд на GitHub. Решил разобраться, стоит ли переносить голосовые эксперименты в open-source.
Что умеет Voicebox
Проект позиционируется как “AI voice studio” с тремя ключевыми фичами:
- Клонирование голоса по 30-секундной аудиодорожке
- Режим диктовки с live-транскрипцией (полезно для подкастеров)
- Генерация речи с тонкой настройкой параметров вроде pitch и speed
Под капотом — комбинация Whisper для транскрибации и собственной TTS-модели. В отличие от ElevenLabs, здесь нет веб-интерфейса — только API и CLI. Зато можно развернуть локально или на своём сервере.
Разворачиваем локально
Установка стандартная для Python-проектов:
git clone https://github.com/jamiepine/voicebox.git
cd voicebox
pip install -r requirements.txt
Но вот первый подводный камень — для работы с GPU потребуется CUDA 11.8 и torch с правильными версиями. В моём случае (Ubuntu 22.04, RTX 3090) пришлось делать:
pip uninstall torch torchaudio
pip install torch torchaudio --index-url https://download.pytorch.org/whl/cu118
После этого стартуем демо-сервер:
python -m voicebox.demo
И получаем доступ к веб-интерфейсу на localhost:8000. Здесь уже можно загружать аудио для клонирования и генерировать речь.
Клонируем голос
Попробовал записать 30 секунд своего голоса — результат узнаваемый, но с артефактами. По сравнению с ElevenLabs:
- Pros: Бесплатно, можно дообучать на своих данных
- Cons: Требует больше аудиодорожек для качественного клонирования (автор рекомендует 5-10 минут)
Интересно, что модель неплохо справляется с эмоциональной окраской. Если в исходнике есть интонационные скачки, она их воспроизводит — не идеально, но осмысленно.
Генерация речи через API
Для интеграции в свои проекты есть REST API. Пример запроса на генерацию:
import requests
response = requests.post(
"http://localhost:8000/api/generate",
json={
"text": "Привет, это тестовая фраза",
"voice_id": "my_cloned_voice",
"speed": 1.2,
"pitch": 0.8
}
)
with open("output.wav", "wb") as f:
f.write(response.content)
Параметры вроде скорости и тона работают предсказуемо, что удобно для тонкой настройки под конкретный сценарий.
Где это имеет смысл использовать
Из практических кейсов, где Voicebox выглядит лучше коммерческих альтернатив:
- Локализация игр — когда нужно быстро нагенерить вариаций фраз для NPC
- Прототипирование голосовых интерфейсов — прежде чем платить за коммерческие API
- Контент для соцсетей — если привычные TTS-сервисы блокируют ваш акцент
Но для продакшена пока не хватает:
- Поддержки batch-обработки
- Мультиязычности (лучше всего работает с английским)
- Стабильности при долгой работе
Что дальше
Автор активно развивает проект — в планах добавление:
- Поддержки большего количества языков
- Веб-интерфейса с историей генераций
- Интеграции с Discord/Telegram ботами
Если нужно просто потестить голосовые технологии без лимитов — Voicebox отличный вариант. Для коммерческих проектов пока советую присмотреться к fine-tuning’у модели на своих данных. Мой эксперимент с датасетом из 2 часов аудио дал заметно лучшие результаты, чем “из коробки”.
Источник: https://github.com/jamiepine/voicebox