Top AI Repos — open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
A high-quality rapid TTS voice cloning model that reaches speeds of 150x realtime.
| Date | Stars |
|---|---|
| 2026-07-31 | 4888 |
| 2026-08-01 | 4893 |
| 2026-08-02 | 4893 |
| 2026-08-06 | 4893 |
Today
— stars today
This week
— stars this week
This month
— stars this month
Momentum
0.0
growth rate 0.00%/day
# LuxTTS
<p align="center">
<a href="https://huggingface.co/YatharthS/LuxTTS">
<img src="https://img.shields.io/badge/%F0%9F%A4%97%20Hugging%20Face-Model-FFD21E" alt="Hugging Face Model">
</a>
<a href="https://huggingface.co/spaces/YatharthS/LuxTTS">
<img src="https://img.shields.io/badge/%F0%9F%A4%97%20Hugging%20Face-Space-blue" alt="Hugging Face Space">
</a>
<a href="https://colab.research.google.com/drive/1cDaxtbSDLRmu6tRV_781Of_GSjHSo1Cu?usp=sharing">
<img src="https://img.shields.io/badge/Colab-Notebook-F9AB00?logo=googlecolab&logoColor=white" alt="Colab Notebook">
</a>
</p>
LuxTTS is an lightweight zipvoice based text-to-speech model designed for high quality voice cloning and realistic generation at speeds exceeding 150x realtime.
https://github.com/user-attachments/assets/a3b57152-8d97-43ce-bd99-26dc9a145c29
### The main features are
- Voice cloning: SOTA voice cloning on par with models 10x larger.
- Clarity: Clear 48khz speech generation unlike most TTS models which are limited to 24khz.
- Speed: Reaches speeds of 150x realtime on a single GPU and faster then realtime on CPU's as well.
- Efficiency: Fits within 1gb vram meaning it can fit in any local gpu.
## Usage
You can try it locally, colab, or spaces.
[](https://colab.research.google.com/drive/1cDaxtbSDLRmu6tRV_781Of_GSjHSo1Cu?usp=sharing)
[](https://huggingface.co/spaces/YatharthS/LuxTTS)
#### Simple installation:
```
git clone https://github.com/ysharma3501/LuxTTS.git
cd LuxTTS
pip install -r requirements.txt
```
#### Load model:
```python
from zipvoice.luxvoice import LuxTTS
# load model on GPU
lux_tts = LuxTTS('YatharthS/LuxTTS', device='cuda')
# load model on CPU
# lux_tts = LuxTTS('YatharthS/LuxTTS', device='cpu', threads=2)
# load model on MPS for macs
# lux_tts = LuxTTS('YatharthS/LuxTTS', device='mps')
```
#### Simple inference
```python
import soundfile as sf
from IPython.display import Audio
text = "Hey, what's up? I'm feeling really great if you ask me honestly!"
## change this to your reference file path, can be wav/mp3
prompt_audio = 'audio_file.wav'
## encode audio(takes 10s to init because of librosa first time)
encoded_prompt = lux_tts.encode_prompt(prompt_audio, rms=0.01)
## generate speech
final_wav = lux_tts.generate_speech(text, encoded_prompt, num_steps=4)
## save audio
final_wav = final_wav.numpy().squeeze()
sf.write('output.wav', final_wav, 48000)
## display speech
if display is not None:
display(Audio(final_wav, rate=48000))
```
#### Inference with sampling params:
```python
import soundfile as sf
from IPython.display import Audio
text = "Hey, what's up? I'm feeling really great if you ask me honestly!"
## change this to your reference file path, can be wav/mp3
prompt_audio = 'audio_file.wav'
rms = 0.01 ## higher makes it sound louder(0.01 or so recommended)
t_shift = 0.9 ## sampling param, higher can sound better but worse WER
num_steps = 4 ## sampling param, higher sounds better but takes longer(3-4 is best for efficiency)
speed = 1.0 ## sampling param, controls speed of audio(lower=slower)
return_smooth = False ## sampling param, makes it sound smoother possibly but less cleaner
ref_duration = 5 ## Setting it lower can speedup inference, set to 1000 if you find artifacts.
## encode audio(takes 10s to init because of librosa first time)
encoded_prompt = lux_tts.encode_prompt(prompt_audio, duration=ref_duration, rms=rms)
## generate speech
final_wav = lux_tts.generate_speech(text, encoded_prompt, num_steps=num_steps, t_shift=t_shift, speed=speed, return_smooth=return_smooth)
## save audio
final_wav = final_wav.numpy().squeeze()
sf.write('output.wav', final_wav, 48000)
## display speech
if display is not None:
display(Audio(final_wav, rate=48000))
```
## Tips
- Please use at minimum a 3 seExcerpt of 5,597 characters
Read on GitHub22
2
Naoki Kishida
1
1
Would you bet a product on this? Bounded 0–100 and slow moving.
matched fp:9e9b6e13e0840f9d, desc:voice cloning