NeuTTS: On-Device TTS That Doesn’t Suck

The Problem

Text-to-speech (TTS) is everywhere—voice assistants, audiobooks, accessibility tools—but most solutions require hitting some cloud API. That’s great until you care about latency, privacy, or running offline. And good luck deploying those massive server-grade models on a Raspberry Pi. You either get terrible audio quality on smaller models or pay for a giant, overkill cloud solution that eats your wallet.

What This Does

neutts gives you a library of open-source TTS models optimized for on-device use. These models are small enough to run locally on phones, laptops, or even embedded devices like Raspberry Pis, but they still produce natural, human-like voices.

The repo is cleanly structured. The examples/ folder is where you’ll want to start—there’s a working basicexample.py script for simple TTS and interactiveexample.ipynb if you’re into notebooks. Need speaker cloning? Check out examples/encodereference.py. The main meat of the library is in neutts/, with neutts.py handling the heavy lifting and phonemizers.py managing the text-to-phoneme conversion.

For deployment, the models are already quantized into GGUF format (Q8 and Q4 variants). These are great for squeezing out performance on smaller hardware. If you're into CI/CD (or just want to see how they handle releases), there’s a publish.yaml workflow in .github/workflows/.

Real-World Use

Want to clone your voice in three seconds and make your Raspberry Pi whisper sweet nothings to you? Grab a sample audio file, load the examples/encodereference.py script, and point it to a samples/*.pt file. Then, fire up basicexample.py and feed it some text.

Boom. You’ve got a .wav file that sounds eerily human.

The Bottom Line

If you need lightweight, offline TTS with voice cloning, neutts is the real deal. It’s well-documented, easy to play with, and the audio quality is shockingly good for the model size. That said, the repo is sparse on tests (tests/testneutts.py is doing all the work here), and if you’re not already comfortable with Python, the setup might be a bit intimidating.

For hackers, indie devs, and anyone building on-device voice applications, this is a no-brainer. For massive enterprise projects, go pay for cloud APIs—this isn’t for you.