Кенга / Пророк — F5-TTS, русский голос

F5-TTS (DiT, F5TTS_v1_Base), дообученный на русском Common Voice и адаптированный под один конкретный мужской голос.

Это не универсальная модель: она заточена под голос, на котором дообучалась, и звучит тем же голосом при любом входном тексте. Поддерживается только русский язык (плюс латиница и цифры).

Состав репозитория

Файл Что это
model.safetensors веса модели (EMA, fp32, 1286 МБ)
vocab.txt кастомный словарь модели, 2544 символа. Обязателен, без него модель не запустится
F5TTS_v1_Base.yaml конфигурация архитектуры (DiT dim 1024, depth 22, mel 100 каналов, vocos)

Как запустить

Нужен F5-TTS и vocoder charactr/vocos-mel-24khz.

pip install f5-tts
import os
import torch
from hydra.utils import get_class
from importlib.resources import files
from omegaconf import OmegaConf
from huggingface_hub import hf_hub_download
from f5_tts.infer.utils_infer import infer_process, load_model, load_vocoder

repo = "GermannM/Prophet-TTS-ru"
device = "cuda" if torch.cuda.is_available() else "cpu"

ckpt = hf_hub_download(repo, "model.safetensors")
vocab = hf_hub_download(repo, "vocab.txt")
config_path = hf_hub_download(repo, "F5TTS_v1_Base.yaml")

cfg = OmegaConf.load(config_path)
model_cls = get_class(f"f5_tts.model.{cfg.model.backbone}")
model = load_model(
    model_cls,
    cfg.model.arch,
    ckpt,
    mel_spec_type="vocos",
    vocab_file=vocab,
    device=device,
)
vocoder = load_vocoder(vocoder_name="vocos", device=device)

audio, sr, _ = infer_process(
    ref_audio="reference.wav",   # 5-11 секунд чистой речи
    ref_text="Точный текст референса.",
    gen_text="Любой текст, который нужно озвучить этим голосом.",
    model_obj=model,
    vocoder=vocoder,
    mel_spec_type="vocos",
    cfg_strength=2.0,
    nfe_step=32,
    sway_sampling_coef=0.0,
    speed=1.0,
    fix_duration=None,
    device=device,
)

reference.wav — это не голос, который нужно клонировать: референс задаёт просодию и тембр, а сам голос зашит в веса. Подойдёт любой отрезок чистой мужской речи на русском, 5-11 секунд, с точным текстом.

Параметры, которые стоит крутить

  • speed — 0.8-1.2, темп речи
  • cfg_strength — 1.5-2.5, ниже ближе к естественности, выше к стабильности артикуляции
  • nfe_step — 32 достаточно, 64 для экспериментов
  • torch.manual_seed(N) — фиксирует результат, можно перебрать несколько вариантов

Как обучалась

  1. Common Voice ru — 5142 клипа, 8.45 часа, ~30k update, F5TTS_v1_Base
  2. Голос — 51 сегмент, ~7 минут, 60 эпох, 1560 update, финальный loss ~0.5

Качество ограничено вторым этапом: 7 минут — нижняя граница для клонирования. Планируется добирать материал до 15-30 минут.

Ограничения

  • Только русский язык
  • Один голос, не универсальная модель
  • Требует vocab.txt из этого же репозитория
  • 5-7 минут референса вместо обучения — качество зависит от чистоты записи
Downloads last month
10
Safetensors
Model size
0.3B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support