README.md

September 11, 2026 ยท View on GitHub

Inno Clone Tuner

Python codecov CI

Try on Spaces Weights

PyPI License

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
from inno_kokoro.enroll import Tuner, enroll, read
from kokoro import KPipeline

tuner = Tuner() # downloads the weights to the huggingface cache on first use
pack, _ = enroll(*read("my_ref.wav"), tuner)

pipe = KPipeline(lang_code="a")
wav = next(pipe("Hello from a tuned voice.", voice=pack)).audio

Tuner("/models/model.safetensors") loads from a path of your own instead of the cache.

Currently only available for English; prefixes work like the stock packs e.g: af_, am_, bf_, bm_.

Command line

Write a voice pack plus a test render to disk:

inno-kokoro my_ref.wav am_me # -> voices/am_me.pt + voices/am_me_test.wav
inno-kokoro my_ref.wav am_me packs/ # write somewhere else
inno-kokoro my_ref.wav am_me --fmax 300 # override the pitch ceiling (set automatically otherwise)

Weights download on first use. To pre-fetch them instead (Dockerfile layer, offline machine):

inno-kokoro --fetch /models # -> /models/model.safetensors

Integrated into remsky/Kokoro-FastAPI (v0.9.0+) with ENABLE_INNO_TUNER=true


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.

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.

systemSIM-onormalizedUTMOSRTF
ground truth (second recording)0.6951.004.10
F5-TTS v1 base0.6500.943.860.48
StyleTTS2 (LibriTTS zero-shot)0.3860.464.400.06
Inno v0.20.2880.324.450.07
OpenVoice v20.2270.233.800.12
Kokoro, nearest stock pack0.1670.154.250.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.