loudkit / README.md
jer3mi's picture
one screen: English first, language filter, text box; clone examples, no download
b1872be verified
|
Raw
History Blame Contribute Delete
3.45 kB
---
title: loudkit
emoji: ๐Ÿ”Š
colorFrom: gray
colorTo: red
sdk: gradio
sdk_version: 5.50.0
python_version: "3.12.12"
app_file: app.py
pinned: false
license: apache-2.0
short_description: On-device TTS. Twenty voices, ten languages, one engine.
models:
- loudreader/loudr-1
preload_from_hub:
- loudreader/loudr-1 loudr-1.safetensors,loudr-1-enrollment.safetensors,ve.safetensors,manifest.json,release.json,SHA256SUMS,voices/carmen.safetensors,voices/colette.safetensors,voices/dante.safetensors,voices/darkman.safetensors,voices/dave.safetensors,voices/freja.safetensors,voices/gosia.safetensors,voices/henri.safetensors,voices/ines.safetensors,voices/joe.safetensors,voices/kathleen.safetensors,voices/kerstin.safetensors,voices/nathalie.safetensors,voices/nils.safetensors,voices/paola.safetensors,voices/pim.safetensors,voices/selma.safetensors,voices/soren.safetensors,voices/thorsten.safetensors,voices/tugao.safetensors
---
# loudkit
Twenty voices across ten languages, from [loudreader/loudr-1](https://huggingface.co/loudreader/loudr-1),
running the [loudkit](https://github.com/loudreader/loudkit) engine on ZeroGPU.
## Two tabs
- **Voices.** Twenty voices, each beside the reference recording it was enrolled
from. English first, with a dropdown for the other nine languages. The samples
were rendered ahead of time and ship in this repo, so playing them uses no GPU.
Under them is a box for your own text, up to 1,000 characters.
- **Clone.** A voice from about ten seconds of audio. Try a shipped example, or
record yourself.
ZeroGPU bills GPU time to the visitor, not to the owner. An anonymous visitor
gets about two minutes a day. A signed-in free account gets about five. Listening
costs none of it.
## Cloning and consent
Clone your own voice, or a voice you have permission to use.
- Four shipped examples let you hear cloning without recording anything. Their
donors released them for building TTS voices.
- Recording yourself is the next path. It clears the example.
- An upload is last, and needs an explicit confirmation.
- Recordings are deleted when the request ends. The voice embeddings are never
written to disk and never leave the process.
- Cloned audio carries no download button.
See [RESPONSIBLE_USE](https://github.com/loudreader/loudkit/blob/main/RESPONSIBLE_USE.md).
## Determinism
The Voices tab has a determinism check. It renders the same text twice at the same
seed and prints the SHA-256 of both waveforms. They match.
That holds within this build and this device. loudkit promises a bit-identical
waveform for the same seed, build, backend and input. It does not promise that
your machine matches this GPU. See the
[identity contract](https://github.com/loudreader/loudkit/blob/main/docs/reference/IDENTITY-CONTRACT.md).
## Run it locally
```bash
pip install "loudkit[torch,audio,enroll,hub]"
```
```python
import loudkit as lk
engine = lk.load("loudreader/loudr-1")
voice = lk.voice("kathleen", repo="loudreader/loudr-1")
engine.synthesize_long("Hello from loudkit.", voice, seed=7).save("hello.wav")
```
Audio in this Space, and from `Result.save`, carries C2PA provenance: the
algorithm fingerprint, the recipe and the seed.
## Voice sources
Every voice is enrolled from a public-domain or openly licensed recording.
`voices.json` in this repo carries the full record for each one: donor, source,
licence, consent, and the SHA-256 of both the reference and the sample.