Ava 82M (آوا)

Ava is a lightweight, open-weight Persian text-to-speech model released by Nimruz. It is a Persian adaptation of Kokoro-82M, fine-tuned on an approximately 20-hour curated subset of Mana-TTS.

Ava produces 24 kHz, single-speaker Persian speech. v0.2 continues training from the listener-selected v0.1 model on approximately 20 total hours of Mana-TTS. The release includes a Persian text frontend, number/date normalization, contextual grapheme-to-phoneme conversion, pronunciation overrides, automatic long-text splitting, and conservative cleanup of leading and trailing synthesis artifacts.

Status: v0.2 research release. Informal native-speaker listening found improved tone, pace, pronunciation, and stability over v0.1. Occasional robotic pitch and synthesis artifacts remain; no formal MOS or Persian intelligibility benchmark has been completed yet.

Quick start

Python 3.11–3.13 and Git are required. Install the small Ava package directly from this repository:

python -m pip install \
  "https://huggingface.co/xmanii/Ava-82M/resolve/main/ava_tts-0.2.0-py3-none-any.whl"

Then generate speech:

from ava_tts import Ava

tts = Ava()
tts.save("سلام! من آوا هستم.", "ava.wav")

The first run downloads the 82M-parameter acoustic model and the pinned Persian G2P frontend. Later runs use the local cache.

Command line

ava "قیمت این محصول سه میلیون و چهارصد هزار تومان است." -o price.wav

Adjust speaking rate:

ava "امروز بیست و ششم تیر است." --speed 0.95 -o slower.wav

Boundary cleanup is enabled by default because listening tests found that it removes the short robotic noise that can occur before or after speech. To inspect the unprocessed model output:

ava "سلام، این خروجی خام مدل است." --raw-boundaries -o raw.wav

Reuse one model for multiple utterances

Loading the model once is faster:

from ava_tts import Ava

tts = Ava.from_pretrained("xmanii/Ava-82M")
tts.save("این جملهٔ اول است.", "first.wav")
tts.save("و این جملهٔ دوم است.", "second.wav", speed=1.05)

On the tested MacBook Air M4, CPU inference generated approximately 4.5 seconds of speech in roughly 0.9 seconds after loading. CPU is therefore selected automatically on Apple Silicon.

What is included

File Purpose
model.pth Selected 20-hour Stage-2 Epoch-1 acoustic checkpoint
voice.pt Persian single-speaker style/voice tensor
config.json Kokoro architecture and phoneme vocabulary
pronunciations.json Reviewed pronunciation correction layer
ava_tts-0.2.0-py3-none-any.whl Friendly Python API and ava command
samples/ava-v02-*.wav Boundary-cleaned v0.2 examples
artifact_manifest.json File sizes, hashes, and provenance

The package pins the exact Kokoro runtime revision used during local and cloud validation. The public kokoro==0.9.4 decoder is not weight-compatible with this checkpoint.

Architecture

Ava retains Kokoro's compact StyleTTS2/iSTFTNet-derived inference architecture:

  1. Persian text is normalized, including Persian/Arabic digits, ordinal month/day forms, times, percentages, and common numeric forms.
  2. The pinned Homo-GE2PE model converts contextual Persian writing into phonemes.
  3. Frontend v3 repairs high-confidence ژ errors, digit-nine ambiguity, and ezafe liaison before mapping phonemes into Kokoro's IPA vocabulary.
  4. The duration and prosody predictor estimates timing and pitch.
  5. The decoder/vocoder generates a 24 kHz waveform directly.
  6. Boundary-only cleanup trims synthesis artifacts without modifying internal pauses.

The acoustic network has 81,763,410 inference parameters. The separate G2P frontend is not included in that parameter count.

Training and checkpoint selection

  • Base model: hexgrad/Kokoro-82M
  • Fine-tuning data: 18.9965 training hours from MahtaFetrat/Mana-TTS
  • Frozen validation/test data: 1.0562 hours
  • Training recipe: continuation from v0.1, one Stage-1 stabilization epoch, then one complete non-joint Stage-2 epoch
  • Released checkpoint: 20-hour Stage 2, Epoch 1
  • Sample rate: 24 kHz
  • Voice count: one
  • Stage-2 validation mel loss: 0.443066
  • Stage-2 validation duration loss: 0.546
  • Stage-2 validation F0 loss: 2.880

The Stage-2 epoch completed 3,850 batch-4 updates on an L40S. All tensors in the saved checkpoint passed a direct finiteness audit. Joint adversarial training remains disabled because the earlier 10-hour experiment became numerically unstable and its listener-evaluated output was more robotic.

Evaluation

Evaluation for v0.2 is primarily structured human listening:

  • Tone, pace, pronunciation, and stability improved over v0.1 and the 20-hour Stage-1 checkpoint.
  • The output was described as clear and completely understandable.
  • Frontend v3 improves ezafe connection, ژ, digit nine, and ordinal dates without modifying the acoustic weights.
  • Boundary cleanup removed the brief synthetic onset/ending artifact without changing internal pauses.
  • The compact v0.2 inference export passed a local Mac generation smoke test.

Formal MOS, speaker-similarity, real-time-factor across platforms, and Persian phoneme-error-rate evaluations remain future work.

Limitations

  • Ava v0.2 has one voice and may preserve characteristics of the Mana-TTS narrator.
  • Some uncommon names, loanwords, homographs, and specialized terminology can still be mispronounced.
  • Tone can occasionally sound synthetic, and pace can vary.
  • Very long text is split automatically and may have noticeable joins.
  • The Persian frontend is a separate model, so first-run download and memory use are larger than the 82M acoustic parameter count suggests.
  • The model has been tested most thoroughly on contemporary Iranian Persian.
  • This research release is not guaranteed for safety-critical use.

Release history

  • main / v0.2.0: 20-hour Stage-2 Epoch-1 model and frontend v3.
  • v0.1 branch: preserved final v0.1 repository state.
  • v0.1.0 and v0.1.1 tags: original 10-hour releases.

Responsible use

Use Ava for ethical speech and accessibility applications. Do not use it for impersonation, identity theft, fraud, deception, harassment, or misleading claims that generated speech came from a real person. Clearly disclose synthetic speech where a listener could reasonably mistake it for authentic recorded speech.

The Mana-TTS maintainers specifically prohibit impersonation, identity theft, and fraudulent use in their ethical-use notice.

License and attribution

Ava code and weights are released under Apache License 2.0. See LICENSE and NOTICE.md.

This release depends on:

Citation

If you use Ava, please cite this repository as well as Kokoro, StyleTTS2, Mana-TTS, and Homo-GE2PE. Full upstream citations are included in CITATIONS.md.

Downloads last month
65
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for xmanii/Ava-82M

Finetuned
(48)
this model

Dataset used to train xmanii/Ava-82M

Space using xmanii/Ava-82M 1