Перейти к содержанию
Публикация AiManual

Tontaube V1.1: открытая TTS-модель с клонированием голоса, которая работает на CPU в реальном времени

Tontaube V1.1 - открытая TTS-модель на 2,9 млрд параметров: клонирование голоса по 5-60 секундам записи, 4-битная версия на 1,8 ГБ и примерно реальное время на

Коротко

Что будет в материале

  1. 01

    Что такое Tontaube V1.1 и что изменилось относительно V1

  2. 02

    Клонирование голоса и управление стилем: что реально можно настроить

  3. 03

    Сколько ресурсов нужно: VRAM, CPU и реальная скорость

  4. 04

    Как запустить Tontaube V1.1 локально: пошаговый разбор

Tontaube V1.1 - авторегрессионная TTS-модель примерно на 2,9 млрд параметров с открытыми весами. Она читает длинные тексты: главы аудиокниг, статьи, сценарии для голосовых агентов. Клонирование голоса работает в режиме zero-shot по 5-60 секундам эталонной записи, аудио уходит в поток по мере генерации. Первоисточник релиза - пост в r/LocalLLaMA.

Ключевое в версии 1.1 - доступность. 4-битная GPTQ-версия весит 1,8 ГБ, при загрузке занимает около 4 ГБ VRAM, пик на длинных текстах - примерно 6,5 ГБ. На 12-ядерном десктопном CPU с AVX2 модель идёт примерно в реальном времени. Ни vLLM, ни llama.cpp при этом не нужны: у проекта собственный сервер с Triton-ядрами для GPU и AVX2-ядрами для CPU.

В V1.1 добавили пять слайдеров стиля на каждый запрос, CPU-путь и адаптер, который чистит декодированное аудио. Прошлая V1 требовала много VRAM из-за связки с vLLM, и новый релиз решает именно эту проблему.

Что такое Tontaube V1.1 и что изменилось относительно V1

V1.1 - посттренированная версия Tontaube V1. Длинный текст автоматически режется на границах предложений и склеивается обратно, поэтому на вход можно отдать целую главу и не писать свой чанкер. Модель рассчитана на длинное чтение; для диалогов и ролей голосового ассистента у неё есть отдельный, менее надёжный режим.

Ключевые характеристики модели в двух словах

  • Архитектура: авторегрессионная, около 2,9 млрд параметров, аудио стримится по ходу генерации.
  • Клонирование голоса: zero-shot, нужно 5-60 секунд эталонной записи.
  • Готовые голоса: 46 штук в комплекте, стартовать можно без своей записи.
  • Длинные тексты: разбивка по границам предложений и склейка, одна подача - целая глава.
  • Языки: английский и немецкий основные, лучше всего модель говорит на английском. Испанский, французский, итальянский, нидерландский и португальский работают, но носителями языка не проверялись.
  • Лицензии: код под Apache 2.0, веса под собственной community-лицензией, не OSI.

Чем V1.1 отличается от V1

Список изменений короткий и проверяемый:

  1. 4-битная GPTQ-версия стала дефолтом: 1,8 ГБ загрузки вместо полноточных весов.
  2. Появился CPU-путь на AVX2-ядрах, то есть модель запускается без видеокарты.
  3. Добавлен адаптер, очищающий декодированное аудио.
  4. Пять слайдеров стиля на запрос: в V1 такой ручки не было.

Заявленных улучшений просодии или WER относительно V1 в релизе нет, и приписывать их версии 1.1 не стоит. Смысл апдейта другой: убрать VRAM-барьер, который мешал тем, кто хотел просто попробовать модель.

Клонирование голоса и управление стилем: что реально можно настроить

Zero-shot значит, что дообучения нет. Модель получает эталонную запись и текст, а на выходе читает новый текст голосом, похожим на эталон. Никаких шагов с файнтюнингом, датасетом и обучением.

Как подготовить эталонную запись для клонирования

Правила простые, но именно на них чаще всего спотыкаются:

  • Длительность 5-60 секунд. Короче пяти секунд модель получает мало материала, длиннее минуты выигрыша обычно нет, зато тянется лишний шум.
  • Одна речь: без музыки, эха, второго говорящего и уличного фона.
  • Ровная громкость без клиппинга. Запись с телефона в тихой комнате часто лучше, чем шумный фрагмент с обработкой.
  • Нейтральная подача: без смеха, покашливания и резких вдохов, если эти звуки не нужны в результате.

Тембр и манеру модель переносит, а точную эмоциональную окраску zero-shot не гарантирует. Если нужен конкретный оттенок, его проще добрать слайдерами, чем искать идеальный эталон.

Пять слайдеров стиля: что и когда крутить

Слайдеры задаются на запрос, поэтому стиль можно менять от главы к главе в пределах одной книги.

СлайдерЧто регулируетКуда крутить
Темп речиСкорость чтенияАудиокнига: умеренно. Статья: ровно, без ускорения
ПаузыДлину остановок между фразамиАудиокнига: заметные паузы на границах абзацев
ИнтонацияШкала от плоской подачи к очень выразительнойХудожественный текст: выразительная. Справочный: ближе к плоской
Высота тонаШкала от низкого голоса к высокомуПодгонка под эталон или под героя
АртикуляцияШкала от чёткой к обычнойТермины, числа, аббревиатуры: чёткая

Для аудиокниги разумный старт - умеренный темп, выразительная интонация и заметные паузы на границах абзацев. Для озвучки статьи темп держат ровным, артикуляцию чёткой, интонацию ближе к плоской: слушателю важнее не сбиться, чем восхититься. Для реплик голосового агента слайдеры помогают слабо, потому что сама разговорная манера у модели менее надёжна. Что смотреть в таких движках помимо интонаций, разобрано в материале про выбор TTS для аудиокниг.

Сколько ресурсов нужно: VRAM, CPU и реальная скорость

Цифры ниже взяты из релиза: независимых замеров на момент публикации нет.

Вариант запускаПамятьСкорость
4-битная GPTQ на GPU (дефолт)1,8 ГБ загрузки, около 4 ГБ VRAM, пик примерно 6,5 ГБ на длинных текстахЗависит от карты
RTX 5090Полноточные веса требуют 24 ГБ и большеОколо 13x реального времени на один запрос, 21-23x в батче
RTX 309024 ГБ VRAMОколо 6-7x реального времени
CPU: Ryzen 9 5900X, 12 ядер, двухканальная DDR4Системная RAMПримерно реальное время
Стриминг (GPU)-Около 190 мс до первого аудио

CPU-путь: когда реального времени действительно хватает

Авторегрессионная генерация устроена так, что каждый следующий токен зависит от предыдущих, а веса читаются заново. На CPU узкое место - пропускная способность памяти, а не число ядер. 12-ядерный Ryzen 9 5900X с двухканальной DDR4 даёт примерно реальное время, и это единственная конфигурация, для которой такая цифра заявлена. Восьмиядерник с той же памятью или ноутбук на LPDDR никто не мерил, экстраполировать не надо.

Практический сценарий: статья на 10-15 минут озвучивается примерно за столько же времени. Для фоновой пакетной озвучки этого достаточно, для интерактивного агента с ответом за секунду - нет. Обязательное условие - AVX2, без него CPU-путь просто не поедет.

Если нужен совсем лёгкий синтез на процессоре, имеет смысл посмотреть на более компактные модели: Pocket TTS от Kyutai весит десятки мегабайт и рассчитан именно на CPU. Есть и вариант Sopro V2 Turbo 2610: около 300 мс до первого аудио на ноутбучном процессоре, но звучание проще, чем у модели на 2,9 млрд параметров.

GPU-путь: что даёт ускорение и когда нужен vLLM

Модель поставляется с собственным сервером, Triton-ядрами для GPU и AVX2-ядрами для CPU. vLLM и llama.cpp для базового запуска не требуются: сервер поднимается сам и отдаёт HTTP API. vLLM-бэкенд и полноточные веса нужны, когда есть 24 ГБ памяти и больше, а задача упирается в пропускную способность на множестве параллельных запросов.

Из GPU поддерживаются NVIDIA: RTX 30-й серии и новее, а также GTX 10-й серии. Для одного запроса на RTX 5090 заявлено ускорение около 13x реального времени, в батче 21-23x; на RTX 3090 - 6-7x. При стриминге первое аудио приходит примерно через 190 мс. Все эти цифры приводит сам релиз, и на практике они зависят от драйверов, версии Triton и длины текста.

Как запустить Tontaube V1.1 локально: пошаговый разбор

Порядок такой:

  1. Проверить ОС: Linux x86-64. На Windows единственный путь - WSL2, на macOS модель не запустится.
  2. Проверить железо: NVIDIA GPU (RTX 30-й серии и новее либо GTX 10-й серии) или CPU с AVX2.
  3. Заложить место на диске: около 8 ГБ моделей при первом старте плюс окружение Python примерно на 9 ГБ.
  4. Поставить зависимости и поднять сервер командой uv run --python 3.12 --frozen tontaube serve.
  5. Для проверки голоса и слайдеров запустить браузерный интерфейс: uv run tontaube ui.

Точные шаги клонирования репозитория и версию ветки (в релизе упоминается v1.1.0) сверяйте с официальной документацией проекта: команды и параметры меняются от версии к версии.

Первый запуск: сколько ждать и что качается

При первом старте скачивается около 8 ГБ: веса самой модели плюс кодек и энхансер, от которых она зависит. Параллельно собирается окружение Python объёмом примерно 9 ГБ. Первый запуск заметно дольше последующих, и это нормально. Диск лучше брать с запасом: свободные 20 ГБ выглядят разумным минимумом, а на медленном канале скачивание стоит запустить заранее.

HTTP API и браузерный интерфейс: как встроить в свой пайплайн

Сервер отдаёт HTTP API на порту 8080. Поддерживаются обычные запросы, SSE-стриминг и WebSocket-стриминг. Для сценариев с малой задержкой нужны последние два: стриминг позволяет начать воспроизведение примерно через 190 мс, не дожидаясь готового файла целиком. Браузерный UI через uv run tontaube ui удобен, чтобы быстро сравнить голоса и покрутить слайдеры до того, как зашивать параметры в код.

Схемы запросов и точные имена полей в релизе не расписаны, их нужно смотреть в документации проекта. Придумывать параметры по аналогии с другими TTS-серверами не стоит: получите ошибку 422 и потратите вечер.

Ограничения и совместимость: кому Tontaube V1.1 не подойдёт

Платформы и железо: что поддерживается, а что нет

КонфигурацияСтатус
Linux x86-64Поддерживается
WindowsТолько через WSL2
macOSНе поддерживается
NVIDIA RTX 30-й серии и новееПоддерживается
NVIDIA GTX 10-й серииРаботает
AMD GPUНе поддерживается
Intel GPUНе поддерживается
CPU с AVX2Поддерживается, примерно реальное время на 12-ядерном десктопе
CPU без AVX2Не работает

Для владельцев Apple Silicon и видеокарт AMD это стоп-сигнал: дело не в скорости, а в отсутствии пути запуска. WSL2 на Windows работает, но добавляет свой слой: диск, память и проброс GPU живут по правилам виртуальной машины.

Языки и типы текста: где модель сильна, а где нет

Аудиокнижное чтение - сильнейший режим модели. Разговорные и агентские реплики менее надёжны: там чаще сбивается интонация и ритм. Озвучка статей держится близко к аудиокнижному режиму, особенно если текст разбит на аккуратные абзацы.

По языкам картина такая: английский даёт лучший результат, немецкий идёт вторым основным. Испанский, французский, итальянский, нидерландский и португальский работают, но носители языка их не проверяли, поэтому на слух результат может оказаться хуже, чем в промо-примерах. Русского в списке основных языков нет: для русскоязычного контента модель не заявлена, и строить на ней продакшен без собственной проверки рискованно.

Лицензия: код Apache 2.0, веса под community-лицензией

Здесь два разных объекта. Код открыт под Apache 2.0, это стандартная разрешительная лицензия. Веса распространяются по собственной community-лицензии проекта, и она не входит в список OSI. Исследовательское и личное использование бесплатны.

Для коммерческого продукта этого недостаточно: нужно открыть текст community-лицензии и прочитать условия под свой случай. Утверждать, что коммерческое использование разрешено или запрещено, по релизному посту нельзя. Держите в голове простое различие: open-weights и open-source - не одно и то же, и для продукта с юристами эта разница решает.

Для каких задач Tontaube V1.1 стоит попробовать, а для каких - нет

Стоит:

  • Озвучка длинных текстов и аудиокниг на английском или немецком, где нужен ровный голос на десятки тысяч слов.
  • Локальный пайплайн без облака: сервер на порту 8080 встраивается в собственный процесс озвучки.
  • Прототипы с клонированием голоса по короткой записи, когда нет датасета и времени на файнтюнинг.
  • Машина без GPU: 12-ядерный десктоп с AVX2 и двухканальной памятью даёт примерно реальное время.

Не стоит:

  • macOS или AMD/Intel GPU: поддержки нет.
  • Русский как основной язык: модель для него не заявлена.
  • Интерактивные голосовые агенты с жёсткими требованиями к разговорной речи: этот режим у модели слабее.
  • Коммерческий продукт без проверки community-лицензии.

Из ориентиров для сравнения в релизе упоминается Fish Audio S2 Pro: в слепом тесте с 400 попарными сравнениями слушатели предпочли просодию модели V1 примерно в 70% случаев, детали в статье проекта. Сравнение относится к V1, а не к V1.1, и опирается на данные разработчика, так что воспринимать его стоит как повод проверить оба варианта на своих текстах. Формулировки и оговорки - в исходном посте.

Итог без пафоса: V1.1 закрывает конкретную дыру, даёт длинную озвучку на железе, которое уже стоит на столе, и не требует vLLM. Универсальным инструментом она при этом не стала: языки, платформа и жанр текста ограничены. Проверять пользу стоит на реальной главе своей книги или статье: 5-60 секунд эталонной записи, один прогон на CPU и один на GPU дадут больше, чем любой обзор.

Подписаться на канал