File size: 3,448 Bytes
998a84c
a454062
 
 
 
998a84c
a454062
 
998a84c
 
 
a454062
 
 
 
 
998a84c
 
a454062
 
 
 
 
b1872be
a454062
b1872be
 
 
 
 
 
a454062
 
 
 
 
 
 
 
 
b1872be
 
 
 
 
 
 
a454062
 
 
 
 
b1872be
a454062
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
---
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.