July 6, 2026

Voicebox vs pocket-tts

Comparing pocket-tts against voicebox's chatterbox backend for cloned-voice narration, on the same laptop CPU, same reference clip, same test sentences.

AITTSVoice CloningVideo Production

I been testing text-speech voice cloning. Until this week that meant voicebox, a Docker-packaged fork running Resemble AI’s chatterbox model (1.7B parameters) entirely on CPU, no GPU in this machine. It works, but it has crashed my machine due to resources.

This week I installed pocket-tts, a 100M parameter CPU-native TTS model from Kyutai Labs, and ran it against the same reference clip and the same test sentences to see if it actually holds up.

The test

Same 12 second reference clip of my own voice for both. Same two sentences: a short one (“Welcome back.”) and a 24 word line pulled from an actual video script. Both models running on the same laptop, no GPU involved either way.

The short line is the interesting one. It’s exactly the length where chatterbox has clipped audio before. Pocket-tts rendered it as a clean 1.4 second clip. No truncation, no artifacts.

The numbers

pocket-ttsvoicebox (chatterbox)
Parameters100M1.7B
Installpip/uv packageDocker image
Short sentence handlingFull 1.4s clip, no clippingClipped a 5 word line to 0.32s
Speed on CPU1.6 to 1.7x realtimeSlow cold start, workable after
Voice cloningYes, gated model + HF token requiredYes, no gating
LicenseMITMIT (chatterbox)

My machine

Nothing exotic: an AMD Ryzen 5 7520U (4 cores, 8 threads), 14GB of RAM, Ubuntu 26.04. No discrete GPU. Both models ran entirely on CPU, which is the whole point of testing them here rather than reaching for a cloud TTS API. I do use elevenlabs though but I would like to avoid the extra cost if possible.

Resources: this is where it gets lopsided

Pocket-tts, installed in its own virtual environment with the CPU build of PyTorch: 1GB for the environment, plus about 425MB across the two model downloads (the base model and the voice cloning variant). Call it 1.4GB total, and that’s with a full PyTorch install included.

One gotcha worth naming: the default pip install pocket-tts pulls the CUDA build of PyTorch even though the model never touches a GPU, which balloons the install to nearly 5GB for nothing. Installing the CPU-only PyTorch wheel first and letting pocket-tts build on top of that gets you back to the 1GB figure.

Voicebox is a different animal. It’s not just a model, it’s a full application: a Tauri desktop shell, a web frontend, multiple TTS backends (chatterbox, LuxTTS, others), an MCP server, all baked into a Docker image alongside a 1.7B parameter model. I didn’t pull an exact byte count on the image itself, but a 1.7B parameter model alone is multiple gigabytes of weights before you add the rest of the stack. It’s a heavier tool because it’s solving a broader problem.

That difference matters more than it looks like on paper. A 100M parameter model on a laptop CPU means near instant iteration. A 1.7B parameter model on the same CPU means a real wait on the first generation of a session.

What about maintenance

Pocket-tts is a versioned package on PyPI (currently 2.1.0). Upgrading is pip install --upgrade pocket-tts. The model weights are pulled from Hugging Face and pinned to a specific commit hash automatically, so what runs today is what runs in six months unless you deliberately update. Small footprint, small blast radius when something changes upstream.

Voicebox is a git fork with backend code baked into a custom-built Docker image, not bind mounted. That has a real consequence: if I want to tweak a backend setting, I have to copy the file into the running container and restart it, and that patch survives a docker stop and start but gets wiped out the moment I run docker compose up fresh, since that pulls the original image again. Keeping a hand-patched Docker image up to date means either remembering every patch I’ve applied and reapplying them after a rebuild, or never rebuilding. Neither is a great long-term position.

With pocket-tts side you have to accept the model’s terms on its page and authenticate with a token before it will clone a voice at all. It’s a one-time setup step, but it’s friction voicebox doesn’t have.

Verdict

I like pocket-tts better. Smaller footprint, a normal package upgrade path instead of a hand-patched Docker image. The gated model is a minor annoyance. It’s not wired into my actual video pipeline yet, that’s the next step, but it’s now the tool to beat.