Sonex Labs

Open-source Hindi text to speech in 2026: licences, size, streaming and what to test before you choose

Open text-to-speech (TTS) models for Hindi have multiplied since 2025, from AI4Bharat's IndicF5 and Indic Parler-TTS to 3-billion-parameter models such as Indic-Speak and Veena. No independent benchmark has yet compared them on the same sentences and hardware, so any ranking of the best open-source Hindi TTS rests on someone's own test. What can be compared is what each model documents: its licence, languages, size, streaming support and how actively it is maintained. Those properties settle the first decisions, starting with whether you may use the audio commercially at all, and they narrow the list to the two or three models worth testing on your own sentences.

Open-source Hindi TTS: Open-source Hindi text to speech in 2026: licences, size, streaming and what to test before you choose
Written by
Anmol Agarwal
Published
Last updated
Reading time
10 min read
On this page
  1. Why there is no ranking of open-source Hindi TTS yet
  2. The licence decides first
  3. Languages, voices and model size
  4. Streaming and hardware for live calls
  5. Maintenance and the failures users report
  6. What you have to test yourself
  7. Sources

Why there is no ranking of open-source Hindi TTS yet

Most "best Hindi TTS" lists rank models on someone's listening impressions, or on speed and quality figures that each model's authors published about their own work. Those figures use different sentences, different hardware and different scoring, so they cannot be lined up against each other. The large Indian-language listening studies of 2026 rank listener preference and accent rather than self-hosted speed, and none was designed to pick a model for your workload; what the published Indic TTS benchmarks measure explains each one.

So this guide does not rank. It compares seven models on properties you can check on their model pages: licence, languages, voices, size, output, streaming and maintenance, each read on 24 October 2026. Then it sets out the test that would rank them for your use, and which failures to look for first.

"Open source" is used loosely here, as it is in most threads. Strictly, these are open-weight models: anyone can download the trained weights, but what you may do with them, and with the audio they produce, depends on the licence. Sonex Labs, which publishes this page, sells its own text-to-speech model, Pāṇini, with native Hindi voices. It is not open source and is not part of this comparison.

The licence decides first

A model whose licence forbids commercial use is out for a business, however good it sounds, so read the licence before any listening test. The seven models fall into three groups.

Permissive licences: MIT and Apache 2.0

IndicF5 is released under the MIT licence, and a member of the AI4Bharat organisation wrote on its discussion board that it is "completely open for commercial usage" (IndicF5 discussion 34). Its card adds a condition of use: clone only voices you have explicit permission to clone (IndicF5 model card). The files are gated, which means you log in and accept those terms before downloading.

Indic Parler-TTS, Veena and Kokoro-82M are under Apache 2.0, another permissive licence. One open question remains for Indic Parler-TTS. A user asked in September whether conditions from its training datasets, which include GLOBE, IndicTTS, LIMMITS and Rasa, carry over to generated audio used commercially, and the question had no reply when we read it (Indic Parler-TTS discussion 31). Veena's card says its training data is proprietary and not public (Veena model card).

Commercial use with conditions: Indic-Speak

Indic-Speak, released by Bodhan AI in early September 2026 and now recommended on both AI4Bharat model cards in their place, uses its own Indic Open Model License v1.0 (Indic-Speak model card). Its card describes no-cost commercial use, with conditions: credit the authors, release derivatives under the same licence, and get Bodhan AI's written sign-off before offering the model to others as an API or hosted service.

That last condition matters if you are building a voice platform rather than a product for your own callers. A separate commercial licence is also needed above 500 million monthly active users or $250 million in annual revenue, and cloning real people's voices without consent is prohibited.

Non-commercial: XTTS-v2 and MMS-TTS

XTTS-v2 uses the Coqui Public Model License, which "allows only non-commercial use of a machine learning model and its outputs" (XTTS-v2 licence). Companies may use it for testing and evaluation, but not to produce audio they earn from. Coqui stopped its paid services in December 2023 and has since shut down (Analytics India Magazine), so there is no longer anyone selling a commercial licence.

Meta's MMS-TTS Hindi model, part of its Massively Multilingual Speech project, is under CC BY-NC 4.0, where NC means non-commercial (MMS-TTS Hindi model card). Both are useful for research and for hearing what an open model can do, and neither belongs in a commercial product.

Languages, voices and model size

After the licence, the next filter is whether a model covers your languages and offers the kind of voice control you need. The table summarises what each model page documents; blank or "not documented" entries mean the page does not say, not that the feature is missing.

How each model chooses a voice

The models give you voices in three different ways. IndicF5 and XTTS-v2 clone a voice from a short reference recording; IndicF5 also needs the exact transcript of that clip, and XTTS-v2 asks for about 6 seconds of audio. Indic Parler-TTS has 69 named speakers and lets you describe the voice in a sentence of English, such as a female speaker with a moderate pace and clear, close-up audio.

Indic-Speak offers 95 library voices recorded by contracted artists and does not support cloning. Veena has four voices for Hindi and English. Kokoro has four Hindi voices, and its own voice list grades each one C and puts its total Hindi training data at between 1 and 10 hours (Kokoro VOICES.md). For cloning, the legal question is consent as much as quality: India's rules on voice cloning cover what you need from the speaker.

What size tells you about memory

Size is the best documented clue to hardware. The weights alone of a model stored in 32-bit floating point take 4 bytes per parameter, and 16-bit weights take 2. By that arithmetic, IndicF5's 0.35 billion parameters need about 1.4 GB and Indic Parler-TTS's 0.94 billion about 3.8 GB. A 3.8-billion-parameter model such as Veena needs about 7.6 GB in 16-bit form, or roughly a quarter of that with the 4-bit loading its card shows.

Kokoro, at 82 million parameters, is small enough to try on a CPU. These figures cover the weights only: generation also needs memory for intermediate results, and that grows with sentence length and the number of streams. Treat them as a floor and measure the peak on your own hardware.

Seven open-weight models that speak Hindi, as documented on their model pages on 24 October 2026
Model (maker)LicenceLanguagesSizeOutputStreaming documentedPage last updated
IndicF5 (AI4Bharat)MIT; clone only with permission11 Indian0.35B24 kHzNoOct 2026
Indic Parler-TTS (AI4Bharat, Hugging Face)Apache 2.0; output terms asked, unanswered21 incl. English0.94BSet in model configYes, via the parler-tts libraryOct 2026
Indic-Speak (Bodhan AI)Indic Open Model License: commercial with conditions13, plus 10 in preview3B-class (Llama 3.2 3B base)24 kHzNot statedSep 2026
Veena (Maya Research)Apache 2.0Hindi, English3B-class (3.8B weights)24 kHzListed as future workOct 2025
Kokoro-82M (hexgrad)Apache 2.08, incl. Hindi (4 voices, grade C)82M24 kHzSegment by segmentApr 2025
XTTS-v2 (Coqui)Coqui Public Model License: non-commercial17, incl. HindiNot stated24 kHzYesDec 2023
MMS-TTS Hindi (Meta)CC BY-NC 4.0: non-commercialHindi (one model per language)36M16 kHzNoSep 2023

Streaming and hardware for live calls

For narration, a model can take its time. For a phone agent, what matters is how soon the first audio arrives, and that depends on whether the model streams, meaning it hands over audio in pieces while it is still generating the rest. A model that returns audio only when the whole sentence is finished makes the caller wait for the full generation time.

Three of the seven document some form of streaming. The parler-tts library has a streamer that starts playback after a set number of decoding steps, and its inference guide claims first audio in less than half a second on a modern GPU with its optimisations (Parler-TTS inference tips). XTTS-v2's documentation describes streaming inference and notes that it is typically slower overall but delivers a first chunk sooner (XTTS documentation). Kokoro's pipeline yields audio one text segment at a time, so playback can start after the first sentence (Kokoro model card).

IndicF5's card documents no streaming mode, Veena lists streaming as future work, and Indic-Speak's card gives a response time before audio starts but describes no streaming mode. Treat every published speed figure, including those above, as the author's claim until you have timed it on your own hardware.

Apart from the small Kokoro, these models expect a GPU for live use, and silent fall-back to the CPU is the most common reason for very slow results in public threads. On a phone line the output is also converted from 24 kHz to 8 kHz, which the guide to 8 kHz phone audio explains. How many simultaneous calls a card can carry is a separate measurement, covered in concurrent calls per 24 GB GPU.

Maintenance and the failures users report

Maintenance matters because Hindi failures get fixed only where someone is still working on the code. IndicF5's GitHub code last changed in September 2025, and both AI4Bharat cards now point users to Indic-Speak, which suggests where the team's effort has moved. The parler-tts library's last commit was in December 2024. Coqui's original repository has had no new commit since early 2024, and development of its toolkit continues in a fork run by the Idiap Research Institute (idiap/coqui-ai-TTS), though the XTTS-v2 weights and their licence are unchanged.

Each model also has open reports of Hindi going wrong, mostly on ordinary input: long paragraphs, numbers or short phrases. The list at the end of this section is a test plan rather than a verdict, because each item is one user's report with their own settings.

Two patterns run through those reports. Long input fails more often than short input, which is why the usual workaround is to split text into sentences before synthesis. Numbers break more often than words, so the suggested fix is a text normaliser that writes ₹1,499 or 4582 out in Hindi words first. How Hindi TTS should read rupees, lakh, crore and dates covers what it must handle.

  • IndicF5 skipping or half-saying many Hindi words in long paragraphs, despite good voice cloning, clean reference audio and chunked text (Hugging Face discussion 39).
  • IndicF5 producing garbled fragments, different on every run, when a user tried Telugu with the model's own reference prompts (discussion 25).
  • IndicF5 failing to load with "Cannot copy out of meta tensor; no data!" on Colab and Kaggle; a user's .to_empty() workaround stopped the error but sometimes gave wrong audio (GitHub issue 10, open).
  • IndicF5 turning OTPs, amounts and dates into garbled noise until they were spelt out as words (GitHub issue 31, open).
  • Kokoro crashing on a long Hindi passage; another user found the same text generated fine and recommended splitting long text (kokoro issue 241).
  • XTTS-v2 adding unintelligible extra sounds to a short Hindi phrase; a project contributor replied that this can happen with short text, and that fine-tuning helps but cannot avoid it completely (coqui-ai/TTS issue 4125).

What you have to test yourself

Once the licence and languages have narrowed the list, only a test on your own sentences and hardware can choose between the survivors. Use the same GPU, driver and library versions for every model, and write them down, because results change with each.

Measure five things. Time to first audio is how long a listener waits before hearing anything. Real-time factor (RTF) is synthesis time divided by the length of the audio produced, so 0.5 means a 4-second sentence takes 2 seconds, and anything at or above 1.0 cannot keep up with speech. Peak VRAM is the most GPU memory the model used. Concurrency is how many streams can run at once while each stays below an RTF of 1.0 and your first-audio target. Number and Hinglish handling is scored right or wrong per item by native listeners.

Decide what matters before you listen. A phone agent needs fast first audio and steady output on short sentences, and can live with less expressive speech. Narration and dubbing can wait longer for each sentence but punish skipped words and odd pacing across a long script. Self-hosting also costs money whether or not anyone is calling, so the break-even guide to self-hosting voice models is worth reading before you commit.

Getting a model running on Colab or a first GPU

Most questions on these models' discussion boards are about getting them to run at all. Confirm that PyTorch can see the GPU before loading anything, because a CPU fall-back is silent and very slow. Install each model's package from its own repository, as the cards instruct: Indic Parler-TTS from the parler-tts GitHub repository, and IndicF5 from its GitHub repository in a Python 3.10 environment.

For IndicF5, pass a reference clip together with its exact transcript, because a mismatched transcript is a common cause of strange output. The script below wraps the Indic Parler-TTS example from its model card with the measurements above, and the same timing wrapper works around any model's generate call.

# pip install git+https://github.com/huggingface/parler-tts.git soundfile
import time

import soundfile as sf
import torch
from parler_tts import ParlerTTSForConditionalGeneration
from transformers import AutoTokenizer

assert torch.cuda.is_available(), "No GPU visible: check the runtime type and your CUDA build"
device = "cuda:0"

model = ParlerTTSForConditionalGeneration.from_pretrained("ai4bharat/indic-parler-tts").to(device)
tokenizer = AutoTokenizer.from_pretrained("ai4bharat/indic-parler-tts")
description_tokenizer = AutoTokenizer.from_pretrained(model.config.text_encoder._name_or_path)

prompt = "आपकी EMI पंद्रह तारीख तक भरनी है, यानी अगले गुरुवार तक।"
description = ("A female speaker delivers a slightly expressive and animated speech with a moderate "
               "speed and pitch. The recording is of very high quality, with the speaker's voice "
               "sounding clear and very close up.")

description_ids = description_tokenizer(description, return_tensors="pt").to(device)
prompt_ids = tokenizer(prompt, return_tensors="pt").to(device)

torch.cuda.reset_peak_memory_stats()
torch.cuda.synchronize()
t0 = time.perf_counter()
generation = model.generate(
    input_ids=description_ids.input_ids,
    attention_mask=description_ids.attention_mask,
    prompt_input_ids=prompt_ids.input_ids,
    prompt_attention_mask=prompt_ids.attention_mask,
)
torch.cuda.synchronize()
seconds = time.perf_counter() - t0

audio = generation.cpu().numpy().squeeze()
rate = model.config.sampling_rate
duration = len(audio) / rate
print(f"generated {duration:.2f} s of audio in {seconds:.2f} s, RTF {seconds / duration:.2f}, "
      f"peak VRAM {torch.cuda.max_memory_allocated() / 2**30:.1f} GiB")
sf.write("indic_parler_hi.wav", audio, rate)
Based on the usage example on the Indic Parler-TTS model card, with timing and memory added. Run it twice and report the second run; the first includes one-off warm-up.
Flowchart of an open source Hindi TTS test measuring latency, real-time factor and VRAM on a 24 GB GPU
Five steps for testing open-source Hindi TTS models on one GPU, from a pinned setup to scored audio.

Sources

  1. ai4bharat/IndicF5 model cardOfficial
  2. ai4bharat/IndicF5 discussion 34: licenceSecondary
  3. ai4bharat/indic-parler-tts model cardOfficial
  4. ai4bharat/indic-parler-tts discussion 31: Apache-2.0 scope for outputsSecondary
  5. huggingface/parler-tts: inference tips (streaming)Official
  6. bodhan-ai/indic-speak model card and Indic Open Model License v1.0Official
  7. maya-research/Veena model cardOfficial
  8. hexgrad/Kokoro-82M model cardOfficial
  9. hexgrad/Kokoro-82M VOICES.mdOfficial
  10. coqui/XTTS-v2 model cardOfficial
  11. Coqui Public Model License (XTTS-v2 LICENSE.txt)Official
  12. Coqui TTS documentation: XTTS (streaming inference)Official
  13. idiap/coqui-ai-TTS: maintained fork of the Coqui TTS toolkitOfficial
  14. Analytics India Magazine: Conversational AI startup Coqui shuts downSecondary
  15. facebook/mms-tts-hin model cardOfficial
  16. ai4bharat/IndicF5 discussion 39: skipping words during generationSecondary
  17. ai4bharat/IndicF5 discussion 25: random garbled fragmentsSecondary
  18. AI4Bharat/IndicF5 issue 10: meta tensor errorSecondary
  19. AI4Bharat/IndicF5 issue 31: numbers causing gibberish noiseSecondary
  20. hexgrad/kokoro issue 241: Running Hindi, kokoro crashesSecondary
  21. coqui-ai/TTS issue 4125: Random Talk (XTTS Hindi)Secondary

Change log: 24 Oct 2026, Rewritten for publication without the planned GPU results: retitled, no ranking; expanded from four to seven models (added Indic-Speak, Veena and MMS-TTS Hindi) compared on documented licence, languages, size, streaming and maintenance; corrected the Kokoro and XTTS-v2 failure reports

Questions about your calling setup?

Tell us what you call about, where and in which languages.