whatmodel.sh / tts / Nabra-82M v0.1

Nabra-82M v0.1 is an open-weights text-to-speech model from oddadmix, released July 2026. Its published size is 0.082B parameters. Licence: apache-2.0.

Catalogue identity notes

oddadmix/Nabra-82M-v0.1 @ adf6abf35c46db5f2b08803b5067a12c759b1ee1 (created 2026-07-01, Apache-2.0): Kokoro-82M fine-tuned for Modern Standard Arabic, single female voice af_msa, needs diacritized input. Arena identity: Arabic TTS Arena model_id nabra_82m 'Nabra 82M'; the arena wrapper models/nabra_82m.py pins MODEL_REPO oddadmix/Nabra-82M-v0.1 at MODEL_REVISION adf6abf35c46db5f2b08803b5067a12c759b1ee1 (the same revision). Distinct from kokoro-82m (English base) and the MLX conversion oddadmix/Nabra-82M-MLX.

Model information sources

Release date ↗ · Weights licence ↗ · Parameter count ↗

Card: 'an 82M-parameter neural text-to-speech model' (Model Details: Parameters ~82M).

41.5±9.7#83 of 118 text-to-speech modelsfrom 1 benchmark result across 1 source* thinly tested, treat the rank as provisional

Score within the Vapi Humanness · Bradley–Terry rating, 2026-09-25 snapshot comparison set only.

$ how it compares

The text-to-speech models ranked either side of Nabra-82M v0.1, out of 148 with a score.

#modelscorewhereRAMreleased
104Parler-TTS Mini v1 Hugging Face (Parler-TTS)44±6local~3.5GB2024-08
105Sonic (1) Cartesia42±3comparison only2024-05
106Nabra-82M v0.1 oddadmix42±10local~0.3GB2026-07
107OpenAudio S1 Mini Fish Audio41±5api price unknown +local~1.7GB2025-06
108Fish Speech 1.5 Fish Audio41±3local~1.5GB2024-12

see all text-to-speech models · find the ones that fit your machine

$ what it's good at

other tests1 not in a task · 62% of its score
testresultvs the others in its rundifficultycountswhy
Arabic TTS Arena · community blind A/B rating, 2026-09-24 snapshot965.0 ✎▂▃··▃·█▅···▂ beats 1/12avg 1018▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 62%blunt

$ where to run it

Other ways to run it

  1. Run it as published · needs ~0.33 GB · from huggingface.co/oddadmix (official)
    pip install "kokoro @ git+https://github.com/Oddadmix/kokoro.git@main" torch soundfile huggingface_hub misaki camel-tools && camel_data -i disambig-mle-calima-msa-r13 && wget https://gist.githubusercontent.com/Oddadmix/dc699f7942a9516ce29d4842c7aed756/raw/827b541c892a862f9ef3b44006a6e27b100d1bdd/arabic_g2p.py && python -c "import numpy as np, torch, soundfile as sf; from huggingface_hub import hf_hub_download; from arabic_g2p import ArabicG2P, EXTRA_SYMBOLS, clean_phonemes, normalize_text; from kokoro import KModel, KPipeline; from kokoro import pipeline as kpipeline_mod; R = 'oddadmix/Nabra-82M-v0.1'; kmodel = KModel(repo_id=R, config=hf_hub_download(R, 'config.json'), model=hf_hub_download(R, 'kokoro_arabic.pth'), disable_complex=True).eval(); kmodel.vocab.update(EXTRA_SYMBOLS); kpipeline_mod.LANG_CODES.setdefault('ar', 'ar'); pipeline = KPipeline(lang_code='ar', repo_id=R, model=kmodel); _orig_g2p = pipeline.g2p; pipeline.g2p = lambda t: (clean_phonemes(_orig_g2p(t)[0]), _orig_g2p(t)[1]); voice = torch.load(hf_hub_download(R, 'af_msa.pt'), map_location='cpu', weights_only=True); text_norm, _ = normalize_text('مرحبا بك في نبرة'); diac = ArabicG2P(diacritize=True).diacritize(text_norm); sf.write('nabra.wav', np.concatenate([a.detach().cpu().numpy() for _, _, a in pipeline(diac, voice=voice, speed=1.0)]).astype(np.float32), 24000)"

Official weights and documentation: huggingface.co/oddadmix ↗

$ how the score was worked out · Arabic TTS Arena (Navid AI) ·… 62%

Each result implies a score on its own, after adjusting for how hard its test is and who ran it. The score is their weighted average, with a small pull toward the middle for thinly tested models. Each test's weight is its counts column above; here it's added up by who ran the tests. How it works

sourceresultsshare of the scorelicence
Arabic TTS Arena (Navid AI) · leaderboard snapshot 2026-09-241▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 62%Apache-2.0
prior · pull toward the middle▇▇▇▇▇▇▇▇▇▇▇ 38%
weighted average= 41.5

$ improve this page

Use a short GitHub form or edit the data through a pull request. Every number needs a source; here's which ones we can use.

data updated · sources and licences · json