/ Модель

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

Контекст
512 токенов
Лицензия
Apache 2.0
Архитектура
style_text_to_speech_2 · dense
Базовая модель
Kokoro-82M
Библиотека
transformers.js
Опубликована
21 фев 2025

Kokoro-82M-v1.0-ONNX-timestamped

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

Kokoro-82M-v1.0-ONNX-timestamped — компактная модель синтеза речи, представленная сообществом onnx-community на базе hexgrad/Kokoro-82M.

13 127скачиваний за 30 дней10лайковвеса обновлены21 фев 2025

Бенчмарки

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

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

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

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

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

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

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

Модель содержит около 82 миллионов параметров. Для работы используется ONNX Runtime; доступны варианты в форматах FP32, FP16, Q8, Q4 и других квантованных конфигурациях. Максимальная длина входного контекста составляет 512 токенов, при этом для специальных токенов рекомендуется оставлять запас, ограничивая последовательность 510 токенами. Выходной звук имеет частоту дискретизации 24 кГц. Для подготовки входа требуется преобразование текста в фонемы, например с помощью инструмента misaki.

К сильным сторонам относятся небольшой размер, наличие квантованных вариантов, возможность локального запуска и выбор различных голосов. Ограничения включают заявленную поддержку только английского языка, необходимость отдельной фонематизации текста и ограничение длины входной последовательности; сведения о мультиязычности, клонировании голоса и расширенном управлении просодией не указаны. Модель распространяется по лицензии Apache-2.0.

Для каких профессий подходит3

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

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

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

Открыть на Hugging Face

Kokoro TTS

Kokoro is a frontier TTS model for its size of 82 million parameters (text in/audio out).

Table of contents

Usage

JavaScript

First, install the kokoro-js library from NPM using:

npm i kokoro-js

You can then generate speech as follows:

import { KokoroTTS } from "kokoro-js";

const model_id = "onnx-community/Kokoro-82M-ONNX";
const tts = await KokoroTTS.from_pretrained(model_id, {
  dtype: "q8", // Options: "fp32", "fp16", "q8", "q4", "q4f16"
});

const text = "Life is like a box of chocolates. You never know what you're gonna get.";
const audio = await tts.generate(text, {
  // Use `tts.list_voices()` to list all available voices
  voice: "af_bella",
});
audio.save("audio.wav");

Python

import os
import numpy as np
from onnxruntime import InferenceSession

# You can generate token ids as follows:
#   1. Convert input text to phonemes using https://github.com/hexgrad/misaki
#   2. Map phonemes to ids using https://huggingface.co/hexgrad/Kokoro-82M/blob/785407d1adfa7ae8fbef8ffd85f34ca127da3039/config.json#L34-L148
tokens = [50, 157, 43, 135, 16, 53, 135, 46, 16, 43, 102, 16, 56, 156, 57, 135, 6, 16, 102, 62, 61, 16, 70, 56, 16, 138, 56, 156, 72, 56, 61, 85, 123, 83, 44, 83, 54, 16, 53, 65, 156, 86, 61, 62, 131, 83, 56, 4, 16, 54, 156, 43, 102, 53, 16, 156, 72, 61, 53, 102, 112, 16, 70, 56, 16, 138, 56, 44, 156, 76, 158, 123, 56, 16, 62, 131, 156, 43, 102, 54, 46, 16, 102, 48, 16, 81, 47, 102, 54, 16, 54, 156, 51, 158, 46, 16, 70, 16, 92, 156, 135, 46, 16, 54, 156, 43, 102, 48, 4, 16, 81, 47, 102, 16, 50, 156, 72, 64, 83, 56, 62, 16, 156, 51, 158, 64, 83, 56, 16, 44, 157, 102, 56, 16, 44, 156, 76, 158, 123, 56, 4]

# Context length is 512, but leave room for the pad token 0 at the start & end
assert len(tokens) <= 510, len(tokens)

# Style vector based on len(tokens), ref_s has shape (1, 256)
voices = np.fromfile('./voices/af.bin', dtype=np.float32).reshape(-1, 1, 256)
ref_s = voices[len(tokens)]

# Add the pad ids, and reshape tokens, should now have shape (1, <=512)
tokens = [[0, *tokens, 0]]

model_name = 'model.onnx' # Options: model.onnx, model_fp16.onnx, model_quantized.onnx, model_q8f16.onnx, model_uint8.onnx, model_uint8f16.onnx, model_q4.onnx, model_q4f16.onnx
sess = InferenceSession(os.path.join('onnx', model_name))

audio = sess.run(None, dict(
    input_ids=tokens,
    style=ref_s,
    speed=np.ones(1, dtype=np.float32),
))[0]

Optionally, save the audio to a file:

import scipy.io.wavfile as wavfile
wavfile.write('audio.wav', 24000, audio[0])

Voices/Samples

Life is like a box of chocolates. You never know what you're gonna get.

NameNationalityGenderSample
af_heartAmericanFemale
af_alloyAmericanFemale
af_aoedeAmericanFemale
af_bellaAmericanFemale
af_jessicaAmericanFemale
af_koreAmericanFemale
af_nicoleAmericanFemale
af_novaAmericanFemale
af_riverAmericanFemale
af_sarahAmericanFemale
af_skyAmericanFemale
am_adamAmericanMale
am_echoAmericanMale
am_ericAmericanMale
am_fenrirAmericanMale
am_liamAmericanMale
am_michaelAmericanMale
am_onyxAmericanMale
am_puckAmericanMale
am_santaAmericanMale
bf_aliceBritishFemale
bf_emmaBritishFemale
bf_isabellaBritishFemale
bf_lilyBritishFemale
bm_danielBritishMale
bm_fableBritishMale
bm_georgeBritishMale
bm_lewisBritishMale

Quantizations

The model is resilient to quantization, enabling efficient high-quality speech synthesis at a fraction of the original model size.

How could I know? It's an unanswerable question. Like asking an unborn child if they'll lead a good life. They haven't even been born.

ModelSize (MB)Sample
model.onnx (fp32)326
model_fp16.onnx (fp16)163
model_quantized.onnx (8-bit)92.4
model_q8f16.onnx (Mixed precision)86
model_uint8.onnx (8-bit & mixed precision)177
model_uint8f16.onnx (Mixed precision)114
model_q4.onnx (4-bit matmul)305
model_q4f16.onnx (4-bit matmul & fp16 weights)154

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

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

GPU в ailist

Универсальный рантайм · transformers.js

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

Модель выложена для браузера (ONNX / transformers.js), для GPU-рантайма нет весов.

Ревизия весов
dd4401a

0 моделей