Zero-shot voice tuner for Kokoro-82M.
A 5-30 second reference clip in, a stock-shaped [510, 1, 256] voice pack out in about 0.3 seconds.
Usage
pip install inno-kokoro
inno-kokoro --fetch /models # -> /models/model.safetensors, e.g. in a Dockerfile; skips if present
inno-kokoro my_ref.wav am_me # -> voices/am_me.pt + voices/am_me_test.wav
inno-kokoro my_ref.wav am_me --fmax 300 # override pitch ceiling
Currently only available for English; prefixes work like the stock packs e.g: af_, am_, bf_, bm_.
from inno_kokoro.enroll import Tuner, enroll, read
from kokoro import KPipeline
tuner = Tuner() # huggingface cache; or Tuner("/models/model.safetensors") for a path of your own
pack, _ = enroll(*read("my_ref.wav"), tuner)
pipe = KPipeline(lang_code="a")
wav = next(pipe("Hello from a tuned voice.", voice=pack)).audio
For best results, the reference audio should be:
- 3-second minimum, up to the first 30-seconds
- Single speaker (english).
- Reasonably clear of audio artifacts
Voice pack generation time:
- about 0.05 s per second of reference on CPU
- 0.1 to 0.3 s total on a GPU (after the model is loaded).
Identity benchmarking
LibriSpeech test-clean, F5-TTS cross-sentence split: 1127 utterances, 39 held-out speakers.
Reference in, new sentence out, scored against the speaker's real recording. Normalized scores compare the render between sounding like a stranger (0) and a second sample of the same benchmark speaker (1).
RTF on an RTX 4060 Ti.
| system | SIM-o | normalized | UTMOS | RTF |
|---|---|---|---|---|
| ground truth (second recording) | 0.695 | 1.00 | 4.10 | |
| F5-TTS v1 base | 0.650 | 0.94 | 3.86 | 0.48 |
| StyleTTS2 (LibriTTS zero-shot) | 0.386 | 0.46 | 4.40 | 0.06 |
| Inno v0.2 | 0.288 | 0.32 | 4.45 | 0.07 |
| OpenVoice v2 | 0.227 | 0.23 | 3.80 | 0.12 |
| Kokoro, nearest stock pack | 0.167 | 0.15 | 4.25 | 0.06 |
UTMOS scoring stays high which reflects the priority placed on maintaining Kokoro's voice quality.
Inno can match about a third of the way to most identities, and avoids copying recording artifacts etc.
License and Attributions
Apache-2.0. The speaker encoder is CC BY-SA 3.0.
Full model card available on HuggingFace: remsky/kokoro-inno-clone-tuner.
Only clone voices you have permission to clone, even the shallow cloning provided by this model and technique.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file inno_kokoro-0.2.0.tar.gz.
File metadata
- Download URL: inno_kokoro-0.2.0.tar.gz
- Upload date:
- Size: 21.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
913cf4244d836fe4be8db9ad15ba1940a1780b65d834a6fe3da88b8dcecb8223
|
|
| MD5 |
3e208acd59deee488a9a50544d622ed9
|
|
| BLAKE2b-256 |
4c25fc62c06761866e9e645556b942cf49daf62fb5801b340ae775ded3e45a33
|
File details
Details for the file inno_kokoro-0.2.0-py3-none-any.whl.
File metadata
- Download URL: inno_kokoro-0.2.0-py3-none-any.whl
- Upload date:
- Size: 18.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
faebd4006d939f99cf3a8b30c6bdc280f74309c42b88887362e4d28995601664
|
|
| MD5 |
67eead9dfc2ec8270126e71d79f94771
|
|
| BLAKE2b-256 |
d57e6dcee78130103f41c7e8a0143aa040a8ce330e5553bf5719642a174ad1d9
|