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