/ Модель

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

Параметры
3,5 млн
Лицензия
CC BY-NC 4.0
Архитектура
vits · dense
Базовая модель
mms-tts-kus
Опубликована
30 авг 2026

tekyerema-tts-kus

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

Компактная модель VITS, синтезирующая речь на кусал из текста для озвучивания фраз и команд голосового агента.

90скачиваний за 30 дней0лайковвеса обновлены23 сен 2026

Бенчмарки

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

Тесты пользователейпока нет

Никто ещё не опубликовал тест этой модели. Соберите бенчмарк из своих задач — результат появится здесь.

  1. Добавьте модель в бенчмарк

    Вместе с другими моделями категории «Синтез речи» — сравнение идёт внутри одной категории.

  2. Опишите свои задачи

    Напишите запросы, при необходимости приложите файлы и эталонные ответы.

  3. Запустите и опубликуйте

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

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

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

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

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

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

Модель PrinceAlhassanNasamu/tekyerema-tts-kus — система синтеза речи на языке кусал, дообученная разработчиком на базе facebook/mms-tts-kus. Это компактная модель VITS с 3,5 млн параметров в формате Safetensors; обучение длилось 20 000 шагов на наборе kusaal_scripture. Модель преобразует текст в аудио и предназначена для озвучивания текстов на кусал, в том числе команд голосового агента.

Голос обучен на чтении священных текстов, поэтому звучит как чтение, а не как обычная разговорная речь. Проверка носителем языка показала обобщение фонетического покрытия на тексты вне обучающего набора, однако командах голосового агента длительность синтеза составляла около 54% от человеческой. Токенизатор посимвольный: символы вне словаря отбрасываются без предупреждения. Перед синтезом следует привести текст к нижнему регистру и преобразовать числа в слова; для кусал также остаются проблемными буква «c» и некоторые знаки препинания. Лицензия — CC BY-NC 4.0, допускающая использование с указанием авторства, но не коммерческое.

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

  • озвучивание текстов на кусал
  • синтез речи для команд голосового агента на кусал
  • создание аудио из текстов на кусал
  • озвучивание чисел после преобразования их в слова

Ограничения

Голос имеет манеру чтения священных текстов и может звучать неестественно в разговорных сценариях; неизвестные символы молча пропускаются, а команды агента заметно короче человеческой речи. Рекомендуется переводить текст в нижний регистр и проговаривать числа словами; звук «c» модель не покрывает.

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

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

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

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

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

Открыть на Hugging Face

Kusaal TTS (VITS)

Author: Prince Nasamu Alhassan

Overview

Fine-tuned from facebook/mms-tts-kus.

20,000 steps on kusaal_scripture.

Register warning. The only Kusaal voice data available is scripture, so this voice reads rather than speaks. That is the data, not the training. A native speaker confirmed it handles non-scripture text correctly, so the phoneme coverage generalises even though the register does not.

A truncation report, and what came of it. The same speaker reported that the 6,000-step version did not always finish a sentence. VITS trains its duration predictor more slowly than its acoustic model, which produces exactly that symptom, so the run was extended to 20,000 steps. TTS/measure_truncation.py in the project repository measures it rather than asking anyone to trust an ear: it synthesises sentences a human recorded and divides our duration by theirs.

What that measurement found. At 20,000 steps the voice reads scripture at 0.89 of human duration, and agent commands at 0.54. The cause is not the step count: MMS-VITS tokenisers are character-level, and a character outside the 35-entry Kusaal vocabulary is dropped silently. On agent commands, of the characters given to the voice:

text sent to the voicecharacters deleted
raw21.2%
after agent_core.verbalize_numbers, which the agent runtime calls1.3%
after TTS/speak_mixed.py also routes unsayable words0.0%

The remaining 1.3% was entirely c and q, so cedis was spoken as edis -- the word naming the money in a payment confirmation.

Re-measured 2026-09-23, and the original table was missing its largest term. On 1,411 Kusaal commands from tekyerema-distill-agent-v2 this voice drops 12.55% of raw characters, and the decomposition is 50.9% digits, 36.3% UPPERCASE LETTERS, 12.8% genuinely unsayable. The 35-entry vocabulary has no A-Z at all, so every capitalised word loses its first letter -- a cause verbalize_numbers does not touch. Lowercasing first takes 12.55% to 8.00%; lowercasing AND verbalising takes it to 1.72%, and that residual is still c plus punctuation, which agrees with the 1.3% above. The two tables are different corpora, not a contradiction -- but the earlier one could only reach 0.0% on text that was already lowercase, which was never stated.

Use it

import torch, soundfile as sf
from transformers import AutoTokenizer, VitsModel

repo  = "PrinceAlhassanNasamu/tekyerema-tts-kus"
tok   = AutoTokenizer.from_pretrained(repo)
model = VitsModel.from_pretrained(repo).eval()

text = "your text here".lower()          # LOWERCASE IS NOT OPTIONAL -- see below
with torch.no_grad():
    wav = model(**tok(text, return_tensors="pt")).waveform[0]
sf.write("out.wav", wav.numpy(), model.config.sampling_rate)

Read this before sending it real text. These VITS tokenisers are CHARACTER-level, and a character outside the vocabulary is dropped silently -- no error, no gap in the audio.

Measured 2026-09-23 on 6,945 real agent commands (tekyerema-distill-agent-v2, the utterance-disjoint corpus), per voice, not borrowed from a sibling:

voiceraw textafter .lower()after .lower() + number verbalisation
tekyerema-tts-eng6.8%1.2%0.00%
tekyerema-tts-twi10.4%5.5%0.01%
tekyerema-tts-hau12.0%6.8%0.00%
tekyerema-tts-kus12.6%8.0%1.72%
tekyerema-tts-ewe12.8%7.6%0.00%

Between 98% and 100% of real commands lose at least one character if you send them raw.

The single largest cause is capitalisation, and it was missing from every earlier version of this card. None of these five vocabularies contains A-Z. Uppercase accounts for 36-82% of everything dropped -- 81.8% for English. "Send Kwame 50 cedis" loses its S, its K and its digits. text.lower() is a one-line fix and it is the highest-value thing on this page.

Digits are the second cause. Vocabulary coverage is erratic rather than absent: Ewe and Kusaal have no digits, Hausa has only 6, Twi has only 2 and 3, and English has 0-6 but not 7, 8 or 9 -- which is worse than having none, because it fails invisibly. Spell numbers into words before synthesis.

Kusaal keeps a 1.72% residual after both fixes that the other voices do not: its 35-character vocabulary has no c, so cedis is spoken as edis -- the word naming the money in a payment confirmation. Route words whose letters this voice lacks to a voice that has them. AGENT/agent_core.py does the number and routing halves (verbalize_numbers, sayable_segments); the lowercasing is on you.

Reproduce: overnight/exp003_tts_coverage.py and overnight/exp003b_tts_fix.py in the Tɛkyerɛma repo.

Training data

Trained on the Ghana Speech dataset and related Ghanaian corpora, licensed CC BY-NC 4.0.

Intended use & license

Non-commercial use only (CC BY-NC 4.0). This is inherited from the training data and required by the terms under which the compute was granted: models trained in that window are non-commercial by condition of access, not by inference.

Limitations, stated plainly

  • Dagbani did get a recogniser, and the claim that it could not was wrong twice over. Every card on this account used to say that "one fine-tuning session on 74 validation rows would not change that". Those 74 rows are the eng-dag machine-translation validation split; the Dagbani speech data in this same account is waxal_dag — 13,228 training rows, 1,750 validation rows, ~71 hours, 1,041 speakers with the largest at 1%. Trained on it, tekyerema-asr-mms-dag scores 36.94 / 11.71, against the 86.59 / 33.95 this project had believed was the ceiling. It still loses to FarmerlineML/w2v-bert-2.0_2026_dagbani_ASR at 29.20 / 9.27, which is what the agent actually serves. A number carried across from a translation table into a speech claim was then repeated on every card here until 2026-09-22.
  • Evaluation is on read and machine-translated text. No recordings of people speaking agent commands in these languages exist. Numbers measured this way are optimistic about phrasing and pessimistic about code-switching, and should not be read as field performance.
  • Research work from a hackathon entry, not a supported product.

The rest of the family

Recognisers

Voices

Agent models

Translation

Routing

Acknowledgements

Compute resources provided by AI Skills and Compute Africa (AISCA). Trained on the Ghana NLP H200 GPU. Please keep derivatives non-commercial and share improvements back with the Ghana NLP community (ghananlpcommunity).

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

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

GPU в ailist

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

Можно запустить

Подбираем GPU…

Класс архитектуры
VitsModel
Ревизия весов
583e3cd

0 моделей