Instructions to use amekhrishvili/pocket-tts-ru with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Pocket-TTS
How to use amekhrishvili/pocket-tts-ru with Pocket-TTS:
from pocket_tts import TTSModel import scipy.io.wavfile tts_model = TTSModel.load_model("amekhrishvili/pocket-tts-ru") voice_state = tts_model.get_state_for_audio_prompt( "hf://kyutai/tts-voices/alba-mackenna/casual.wav" ) audio = tts_model.generate_audio(voice_state, "Hello world, this is a test.") # Audio is a 1D torch tensor containing PCM data. scipy.io.wavfile.write("output.wav", tts_model.sample_rate, audio.numpy()) - Notebooks
- Google Colab
- Kaggle
pocket-tts-ru
Русская модель для pocket-tts: 6-слойный синтезатор речи с клонированием голоса, работающий на CPU.
Получена дообучением english_2026-04_24l на русском корпусе и дистилляцией 24-слойного учителя.
Использование
uvx pocket-tts generate \
--config hf://amekhrishvili/pocket-tts-ru/russian.yaml \
--voice ваш_голос.wav \
--text "прив+ет, +это т+ест" \
--out out.wav
Текст обязательно нужно готовить
Модель обучена на тексте с ударениями (знак + перед ударной гласной) и
с раскрытыми числами. Сырую строку подавать нельзя: ударения поедут, а
цифры прочитаются непредсказуемо.
from silero_stress import load_accentor
from runorm import RUNorm
accentor = load_accentor()
normalizer = RUNorm()
normalizer.load(model_size="small", device="cpu")
text = normalizer.norm("В 2026 году вышло 5 моделей.")
text = accentor(text) # -> "в две т+ысячи двадц+ать шест+ом год+у ..."
Те же самые шаги применялись при подготовке обучающих данных. Расхождение между обучением и инференсом — главная причина плохого звучания.
Ограничения
- Длинный текст. В pocket-tts зашит предел в 50 токенов на чанк,
откалиброванный на английском токенизаторе. Русский с ударениями даёт больше
токенов на секунду речи, поэтому длинные фразы обрезаются. Синтезируйте по
предложениям либо поднимайте
max_tokens. - Омографы. Ударения расставляет внешний препроцессор; ошибки на «замок/замок» наследуются от него, модель их не исправляет.
- Качество промпта воспроизводится. Шумная запись голоса даст шумный синтез. Нужно 10–20 секунд чистой речи одного диктора.
Данные и лицензия
Обучено на ESpeech-podcasts (около 1200 часов). Датасет распространяется под CC-BY-NC-4.0, и это ограничение переходит на модель: только некоммерческое, исследовательское и образовательное использование.
Базовая модель — kyutai/pocket-tts.
Параметры обучения
- база:
english_2026-04_24l, текстовый эмбеддинг переинициализирован - токенизатор: SentencePiece BPE, 4000 токенов, обучен на русском с ударениями
- слоёв: 6
- температура по умолчанию: 0.7
24-слойная модель-учитель (teacher_24l/)
Тот же корпус, но 24 слоя вместо 6. Опубликована как база для дообучения и дистилляции, а не как готовый синтезатор.
# в своём training-конфиге pocket-tts
model_config: pocket_tts/config/english_2026-04_24l.yaml
model_overrides:
flow_lm.lookup_table.tokenizer_path: hf://amekhrishvili/pocket-tts-ru/tokenizer.model
start_from_pretrained: true
reset_text_embedding: false # токенизатор тот же, эмбеддинг сбрасывать не нужно
Веса подставляются через weights_path в конфиге модели:
hf://amekhrishvili/pocket-tts-ru/teacher_24l/model.safetensors
Важно: через обычный инференс она звучит хуже, чем есть
24-слойной модели нужен classifier-free guidance с коэффициентом около 2.0.
Публичный путь pocket-tts generate работает без CFG — он рассчитан на
6-слойного ученика, в которого guidance запечён на дистилляции. Так что
прямое сравнение учителя и ученика через CLI некорректно и не в пользу
учителя.
Для чего её стоит брать:
- дообучение на свой домен или своего диктора (быстрее, чем от английской базы);
- дистилляция в собственного 6-слойного ученика с другими настройками;
- исследования, где нужен доступ к CFG через тренировочный код.
Для синтеза берите 6-слойную модель из корня репозитория: она быстрее на CPU и звучит лучше через стандартный путь.
- Downloads last month
- -
Model tree for amekhrishvili/pocket-tts-ru
Base model
kyutai/pocket-tts