mithi-v2-flash

Oomni/mithi-v2-flash

作者
Oomni
任务
语音合成
下载量
62
点赞数
6
趋势分
6
许可证
apache-2.0
收录时间
2026/11/13

license: apache-2.0 language:

  • hi
  • en
  • bn
  • gu
  • kn
  • ml
  • mr
  • or
  • pa
  • ta
  • te pipeline_tag: text-to-speech tags:
  • text-to-speech
  • tts
  • indic
  • bf16

Mithi v2 Flash

A small text-to-speech model for 11 Indian languages, with 10 voices: 5 male and 5 female.

  • Languages: Hindi, English, Bengali, Gujarati, Kannada, Malayalam, Marathi, Odia, Punjabi, Tamil, Telugu.
  • Voices: Satvik, Anirban, Nakul, Vasant, Siddhant (male); Charvi, Ahana, Vaidehi, Malini, Jahnavi (female).
  • Size: 99.1 M parameters, 199 MB.
  • Weights: bf16 safetensors.
  • Output: 24 kHz mono audio.
  • License: Apache-2.0, free to use, including commercially. See License.

Demo

All voices in the video are generated by Mithi v2 Flash.

License

Mithi is released under the Apache License 2.0 (see LICENSE). It is free to use, for personal, research and commercial projects alike: you can use, modify and redistribute the model and code, and build products on it. Keep the license and the credits (see Acknowledgements) with any copy you share.

Mithi was built entirely on open-source models and tools, each under a permissive license:

ComponentLicense
Maya2-nativeApache-2.0
Kokoro-82MApache-2.0
indic-bertMIT
Maya text normaliserApache-2.0
misakiApache-2.0

Packages installed with pip keep their own licenses.

Quick start

1. Download the model and install the dependencies (Python 3.10 or newer):

pip install -U huggingface_hub
hf download Oomni/mithi-v2-flash --local-dir mithi-v2-flash
cd mithi-v2-flash
pip install "torch>=2.4" "transformers>=5.0" "safetensors>=0.4" "sentencepiece>=0.2" "numpy>=1.26" "soundfile>=0.12" \
    "misaki[en]>=0.9.4" "espeakng-loader>=0.2.4" "phonemizer-fork>=3.3.2" "spacy>=3.8" "num2words>=0.5"
python -m spacy download en_core_web_sm

espeak-ng comes with the espeakng-loader package, so no system install is needed. A GPU is used if there is one; the model also runs on CPU.

2. Run it from the command line:

python run.py --lang hi --voice ahana --text "आज मौसम कितना अच्छा है! चलो, शाम को कहीं बाहर घूमने चलते हैं।" --out hindi.wav
python run.py --lang en --voice anirban --text "Your appointment is confirmed for Monday at 10:30 AM." --out english.wav

3. Or from Python, inside the mithi-v2-flash folder:

from run import Mithi

tts = Mithi()                                      # loads the model from this folder
audio = tts.synthesize("नमस्ते! आप कैसे हैं?", lang="hi", voice="vaidehi")
tts.save(audio, "namaste.wav")                     # 24 kHz WAV

for voice in tts.voices:                           # all 10 voices
    tts.save(tts.synthesize("வணக்கம்! எப்படி இருக்கீங்க?", lang="ta", voice=voice), f"hello_ta_{voice}.wav")

4. Run on CPU (laptops, Raspberry Pi, phones, servers without a GPU):

python run.py --device cpu --threads 4 --lang hi --voice charvi --text "आज मौसम कितना अच्छा है! चलो, शाम को कहीं बाहर घूमने चलते हैं।" --out hindi_cpu.wav

--threads sets how many CPU cores to use; without it PyTorch uses all of them. From Python:

import torch
torch.set_num_threads(4)

from run import Mithi
tts = Mithi(device="cpu")
tts.save(tts.synthesize("नमस्ते! आप कैसे हैं?", lang="hi", voice="nakul"), "namaste_cpu.wav")

Measured speed for an average 15-word sentence (about 7 s of speech), on a server CPU (AMD EPYC 9554):

CPU threadsTime per sentence
1~8 s
4~3 s

Slower CPUs, such as a Raspberry Pi, take proportionally longer.

Languages: hi Hindi · en English · bn Bengali · gu Gujarati · kn Kannada · ml Malayalam · mr Marathi · or Odia · pa Punjabi · ta Tamil · te Telugu

Long text is read sentence by sentence automatically.

Voices

Ten voices, five male and five female. Every voice speaks all 11 languages.

Voice--voiceGenderSince
SatviksatvikMalev1
CharvicharviFemalev1
AhanaahanaFemalev2
VaidehivaidehiFemalev2
MalinimaliniFemalev2
JahnavijahnaviFemalev2
AnirbananirbanMalev2
NakulnakulMalev2
VasantvasantMalev2
SiddhantsiddhantMalev2

Files

FileContents
run.pyeverything needed to run the model: command line and Python API
config.jsonlanguages, voices and settings
*.safetensors, indic_encoder/model weights
LICENSEApache License 2.0
assets/demo video and its thumbnail

Limitations

  • Expressiveness: intonation and emotion are flatter than in natural human speech.
  • Kannada, Malayalam, Marathi, Odia: speech can come out a little faster than natural.
  • Punjabi with Jahnavi or Vasant may sound less natural than with the other voices.
  • Pronunciation: some words, especially rare names and loanwords, can be mispronounced.
  • Numbers, dates, currency, URLs are read only as well as the text normaliser expands them.
  • Long text is read sentence by sentence; each sentence is spoken without seeing the others.
  • No published evaluation yet: no automated scores and no human listening study (MOS).

Acknowledgements

内容来源:Hugging Face 模型卡

在 Hugging Face 查看