Spaces:
Running
Running
File size: 1,441 Bytes
845ded6 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | ---
title: Kokoro TTS
emoji: 🗣️
colorFrom: indigo
colorTo: purple
sdk: gradio
sdk_version: 6.6.0
app_file: app.py
pinned: false
python_version: "3.11"
---
# Kokoro TTS (and optional LFM3 for comparison)
Kokoro-82M answers on `/` (Gradio) and `POST /tts/stream` (raw PCM16 mono, streamed).
## Optional second engine: LFM3-Audio-2B
Off by default. To compare it with Kokoro in the same Space, set the Space variable
`LFM3_ENABLED=1`. It adds routes with the same contract under `/lfm3/tts`:
- `POST /lfm3/tts/stream`: `{"text", "voice": "female" | "male" | "af_heart"-style, "sample_rate": 16000 | 24000}`;
`speed` is ignored (LFM3 has no speed control).
- `POST /lfm3/tts/bench`: seconds spent synthesizing vs seconds of audio, per piece.
The first call loads the model, so read the second.
- `GET /lfm3/tts/health`.
The ~8 GB model (float32 on CPU) loads on the first LFM3 request, not at start-up, so Kokoro
is unaffected until then. LFM3 and Kokoro share the 2 vCPUs: benchmark them one at a time.
`TTS_API_KEY`, when set, protects both engines' POST routes.
To make the tutor use LFM3, point `KOKORO_HF_SPACE_URL` at `https://<space>.hf.space/lfm3`
(the client appends `/tts/stream`). Compare both with
`python -m scripts.compare_tts_spaces --space kokoro=https://<space>.hf.space --space lfm3=https://<space>.hf.space/lfm3`.
License of the model: LFM Open License v1.0 (commercial use only below US$10M annual revenue).
|