/ Модель

Характеристики

Лицензия
MIT
Опубликована
27 июл 2026

HolosTTS

Синтез речиТекст → аудио

HolosTTS синтезирует украинскую речь из фонемной записи текста с выбором готового голоса или голосом по аудиозразцу.

0скачиваний за 30 дней5лайковвеса обновлены7 окт 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

HolosTTS — модель синтеза речи, представленная пользователем patriotyk. Она принимает фонемную запись текста и генерирует аудиосигнал; для подготовки входа нужно расставить ударения и преобразовать текст в фонемы. Репозиторий содержит варианты PyTorch и ONNX: модель FP32 для ONNX Runtime, а также вариант INT8 для CPU, который занимает меньше места и работает быстрее на CPU по утверждению карточки. Для исполнения на NVIDIA GPU можно использовать ONNX Runtime с CUDA.

Модель поддерживает готовые голосовые векторы размерностью 256 и создание вектора голоса по аудиозаписи без музыки и посторонних голосов. Длинный текст рекомендуется синтезировать по предложениям. Указанный в метаданных язык — украинский; лицензия — MIT. В карточке не приведены размер модели, контекстный лимит или оценки качества.

Сценарии применения

  • озвучивание украинского текста после преобразования в фонемы
  • синтез речи готовым голосом из набора голосов модели
  • создание речи с голосовой характеристикой по аудиозаписи
  • локальная генерация речи на CPU через ONNX INT8
  • ускоренный синтез речи на NVIDIA GPU через ONNX Runtime

Ограничения

На вход требуется фонемная запись, поэтому текст нужно предварительно преобразовать, включая расстановку ударений. Для хорошего результата с длинным текстом рекомендуется обрабатывать его по предложениям; для голоса по аудиозразцу требуется запись без музыки и посторонних голосов.

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

Використання в PyTorch

Встановіть пакет і залежності (потрібен Git):

python -m pip install git+https://github.com/patriotyk/HolosTTS.git

Для NVIDIA GPU потрібна збірка PyTorch із підтримкою CUDA. Модель автоматично завантажує holos.pt та voices.pt із Hugging Face і кешує їх локально.

Синтез тексту

generate() приймає фонеми, тому спочатку розставляємо наголоси й отримуємо фонетичний запис:

import torch
import soundfile as sf
from ipa_uk import ipa
from ukrainian_word_stress import Stressifier
from holos.models import HolosTTS

device = "cuda" if torch.cuda.is_available() else "cpu"
model = HolosTTS("patriotyk/HolosTTS", device=device)
stressify = Stressifier()

phonemes = ipa(stressify("Привіт! Це український синтез мовлення."))
print(model.list_voices())
voice = model.list_voices()[0]  # Можна вибрати іншу назву зі списку.
audio = model.generate(phonemes, voice=voice)
sf.write("speech.wav", audio.squeeze().cpu().numpy(), 24000)

Довгі тексти озвучуйте окремими реченнями. Для локальних файлів передайте HolosTTS("holos.pt", device=device, voices_path="voices.pt").

Голос з аудіозразка

Продовження попереднього прикладу: reference.wav — запис потрібного голосу без музики та сторонніх голосів.

from holos.models import VoiceEncoder

encoder = VoiceEncoder("patriotyk/HolosTTS", device=device)
custom_voice = encoder.encode("reference.wav")
audio = model.generate(phonemes, voice=custom_voice)
sf.write("custom_voice.wav", audio.squeeze().cpu().numpy(), 24000)

voice_encoder.pt завантажується автоматично; для готових голосів цей файл не потрібен.

ONNX

У репозиторії є дві альтернативні повні моделі — для запуску достатньо однієї:

  • holos.onnx — модель із вагами FP32 для ONNX Runtime, зокрема з CUDA на NVIDIA GPU.
  • holos_cpu_int8.onnx — модель із частиною ваг в INT8 для CPU; займає менше місця, і швидша від FP32 на CPU.

Встановіть ONNX Runtime:

python -m pip install onnxruntime

Приклад самостійного запуску INT8-моделі. PyTorch тут лише читає словник фонем із holos.pt та голоси з voices.pt; синтез виконує ONNX Runtime.

import numpy as np
import onnxruntime as ort
import soundfile as sf
import torch
from huggingface_hub import hf_hub_download
from ipa_uk import ipa
from ukrainian_word_stress import Stressifier

repo = "patriotyk/HolosTTS"
checkpoint = torch.load(
    hf_hub_download(repo, "holos.pt"), map_location="cpu", weights_only=True
)
vocab = {symbol: i for i, symbol in enumerate(checkpoint["vocab"])}
del checkpoint
voices = torch.load(
    hf_hub_download(repo, "voices.pt"), map_location="cpu", weights_only=True
)
print(list(voices))
voice = voices[next(iter(voices))].reshape(1, 256).float().numpy()
phonemes = ipa(Stressifier()("Привіт! Це український синтез мовлення."))
tokens = [0] + [vocab[c] for c in phonemes if c in vocab] + [0]

session = ort.InferenceSession(
    hf_hub_download(repo, "holos_cpu_int8.onnx"),
    providers=["CPUExecutionProvider"],
)
audio, lengths = session.run(["audio", "audio_lengths"], {
    "tokens": np.array([tokens], dtype=np.int64),
    "voice": voice,
    "speed": np.array([1.0], dtype=np.float32),
})
sf.write("speech_onnx.wav", audio.reshape(-1)[:int(lengths[0])], 24000)

Входи: tokens — індекси фонем із нульовим токеном на початку та в кінці, int64 [1, T]; voice — вектор голосу, float32 [1, 256]; speed — темп, float32 [1] (1.0 — звичайний, більше — швидше, менше — повільніше; значення має бути додатним). Виходи: audio — аудіосигнал, audio_lengths — його довжина у відліках.

Для FP32 на CPU замініть назву файла на holos.onnx. Для CUDA встановіть onnxruntime-gpu замість onnxruntime у середовищі з сумісними CUDA/cuDNN, виберіть holos.onnx та задайте providers=["CUDAExecutionProvider", "CPUExecutionProvider"].

Файли на Hugging Face

ФайлПризначення
holos.ptВаги PyTorch-моделі та словник фонем vocab.
voices.ptГотові голоси: словник назв і векторів розмірності 256 для PyTorch та ONNX.
voice_encoder.ptВаги моделі, що отримує вектор голосу з аудіозразка.
holos.onnxПовна FP32-модель для синтезу через ONNX Runtime.
holos_cpu_int8.onnxКомпактніша INT8-модель для синтезу на CPU.

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

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм

Нельзя запустить

В репозитории нет config.json: не понять архитектуру модели.

Ревизия весов
12fbe72

0 моделей