r/LocalLLaMA · · 2 min read

You can now fine-tune my 3.96M-parameter TTS on your own voice or language

Mirrored from r/LocalLLaMA for archival readability. Support the source by reading on the original site.

When I released Inflect v2 last week, I thought most people would ask whether a TTS model this small actually sounded decent.

Instead, I kept getting two questions:

“Can I train it on my own voice?”

“Can I move it to another language?”

At the time, my answer was basically: technically yes, but not with any public workflow I’d trust someone else to use.

So I spent the weekend building one.

Quick context if you missed the original release:

  • Inflect-Nano-v2: 3,966,721 parameters, 15.97 MB FP32
  • Inflect-Micro-v2: 9,356,513 parameters, 37.53 MB FP32

Those are the learned text-to-waveform models, including the 24 kHz waveform decoder. eSpeak-ng handles phonemization separately and isn’t included in the parameter count.

Micro is the better-sounding version. If you haven’t heard it yet, start here:

https://huggingface.co/owensong/Inflect-Micro-v2

The new toolkit lets you bring your own single-speaker recordings and transcripts, warm-start Nano or Micro, resume training, inspect held-out output, and export the result to PyTorch or ONNX.

The two awkward parts were rebuilding the training-only components that aren’t present in the release checkpoints and handling new phoneme inventories without resetting every embedding shared with English. The toolkit now handles both.

I tested the full software path with Nano: a real CUDA training step, save and resume, strict PyTorch loading, and ONNX Runtime parity.

Toolkit:

https://github.com/owenawsong/Inflect/tree/main/finetune

I haven’t trained a non-English model that I’d call release-quality yet. The pipeline works, but that doesn’t tell me whether a model this small will transfer cleanly to another language. Each run also creates one fixed voice for one configured language. This is supervised adaptation, not zero-shot cloning.

I only have enough compute to investigate one language properly first, so I made a short form. Only the first question is required:

https://tally.so/r/44RBvB

The existing English weights haven’t changed.

If you’ve adapted a small TTS model before, what failed first when you changed languages? That’s the part I want to measure before starting the first serious run.

submitted by /u/b111ue
[link] [comments]

Discussion (0)

Sign in to join the discussion. Free account, 30 seconds — email code or GitHub.

Sign in →

No comments yet. Sign in and be the first to say something.

More from r/LocalLLaMA