Технические характеристики и архитектура
Модель pocket-tts-ru (автор amekhrishvili) представляет собой дообученную версию базовой модели english_2026-04_24l от Kyutai. Ключевая особенность — оптимизация для работы на CPU без потери качества, что делает её доступной для локального развертывания на обычных устройствах. Модель прошла дистилляцию от 24-слойного учителя, что позволило сократить количество параметров до 0.1B, сохранив при этом высокую интеллигибельность.
Обучение проводилось на корпусе ESpeech-podcasts объемом около 1200 часов. Лицензия модели — CC-BY-NC-4.0, что ограничивает использование некоммерческими, исследовательскими и образовательными целями.
Сравнение версий и производительность
В репозитории представлены две версии модели: финальная 6-слойная (ученик) и 24-слойная (учитель). Важно понимать разницу в их применении, так как прямое сравнение через стандартный CLI некорректно из-за различий в алгоритмах вывода (CFG).
| Характеристика | 6-слойная (pocket-tts-ru) | 24-слойная (teacher_24l) |
|---|---|---|
| Назначение | Готовый синтез речи (инференс) | Дообучение и дистилляция |
| Параметры | 0.1B | Информация недостаточна (значительно больше) |
| Токенизатор | SentencePiece BPE, 4000 токенов | Унаследован от базы |
| Температура | 0.7 (по умолчанию) | Требует CFG ~2.0 |
| Качество звука | Высокое (через стандартный CLI) | Ниже без Classifier-Free Guidance |
Критическое требование: подготовка текста
Главная причина плохого звучания модели — расхождение между этапами обучения и инференса. Модель обучена на тексте с проставленными ударениями (знак + перед ударной гласной) и полностью раскрытыми числами. Подача «сырой» строки приводит к непредсказуемому чтению цифр и сбиванию интонации.
Для корректной работы необходимо использовать препроцессинг. Пример на Python с использованием библиотек silero_stress и runorm:
- Нормализация чисел: преобразование «2026» в «две тысячи двадцать шесть».
- Расстановка ударений: автоматическое добавление знака
+.
Пример вывода после обработки: "в две т+ысячи двадц+ать шест+ом год+у ..."
Ограничения и рекомендации
Модель имеет ряд технических ограничений, о которых нужно знать перед внедрением:
- Длина текста: Лимит составляет 50 токенов на чанк. Из-за более длинных русских слов с ударениями длинные фразы могут обрезаться. Рекомендуется синтезировать текст по предложениям или увеличивать параметр
max_tokens. - Омографы: Модель не исправляет ошибки препроцессора. Если ударение в слове «замок» (дверь/форт) поставлено неверно, ошибка будет зафиксирована в аудио.
- Клонирование голоса: Качество промпта критично. Требуется 10–20 секунд чистой речи одного диктора. Шумная запись приведет к шумному синтезу.
Как запустить
Для генерации аудио используйте команду uvx. Не забудьте передать путь к файлу голоса и предварительно обработанный текст:
uvx pocket-tts generate \
--config hf://amekhrishvili/pocket-tts-ru/russian.yaml \
--voice ваш_голос.wav \
--text "прив+ет, +это т+ест" \
--out out.wav
Источник: Huggingface ↗
