| --- |
| 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. |
|
|