A TTS benchmark harness, five models in, nine to go

Fourth write-up out of the experiment register, and the first one that isn't a pass/fail hypothesis test. feature/tts-voice-clone-benchmark is building a Concourse-orchestrated harness to compare roughly 14 local zero-shot voice-cloning models on identical inputs. This is a progress snapshot, not a verdict: five models are wired and validated so far, nine are not.

What it's actually testing

The source is a Reddit thread ("Best AI Voice Cloning in 2026") plus its top comments, cross-checked against what's actually feasible on this rig. Zero-shot cloning only: the source article's per-model rows used 45 minutes of fine-tuning data per voice, which isn't a fair "same inputs" comparison against a harness that hands every model the same short reference clip and walks away. That reference clip is fixed and documented: reference_24k_mono.wav, LibriSpeech test-clean speaker 6930, utterance 6930-75918-0003, 23.3 seconds, with the exact script text held constant across every model too.

Sample 0 from each of the five validated models, in order (XTTS-v2, Chatterbox Turbo, OmniVoice, dots.tts, MOSS-TTS-Local-Transformer-v1.5), pulled from the model's own /benchmark response rather than from git, since generated benchmark audio isn't committed. All five clone the same reference_24k_mono.wav speaker reading the same script text. Durations and formats check out against this article's own numbers: XTTS-v2 12.94s/24kHz mono, Chatterbox Turbo 13.88s/24kHz mono, OmniVoice 12.62s/24kHz mono, dots.tts 11.2s/48kHz mono, MOSS-TTS-Local-v1.5 12.72s/48kHz stereo (the only one of the five that renders in stereo, this model's own native audio-tokenizer format).

The first four models' own exited Docker containers (where the earlier pass of this article pulled its samples from) are still on disk, but the actual per-model Python environments that produced them are gone: the worktree this branch was registered against degraded into a broken, root-owned stub before this session started, taking every .venv/ with it. Re-running any of the first four from scratch means reinstalling each model's environment again, not just re-triggering the job; nothing about the harness pattern itself changed.

Every model gets its own directory under tools/tts-bench/<model>/ with a FastAPI server exposing /health, /load, /benchmark, and /unload, running as its own Docker Compose service so it gets real GPU access, the same host-level-passthrough pattern already used for comfyui-local. A tts-benchmark-<model> Concourse job, mutexed through gpu-lock, drives each one. Only one model's service can be up at a time: this rig's single 24GB 3090 and a home partition sitting at 98% full can't hold two models' weights simultaneously.

What "validated" means here

Validated means each model ran a real /benchmark call through Concourse and gpu-lock, produced actual generated audio, and returned real measured numbers: load time, per-sample generation time, peak VRAM via the model process's own torch.cuda stats, and real-time factor (RTF). It does not mean anyone listened to the output and judged voice-cloning quality; no MOS score or by-ear quality call is recorded for any of the four. This harness measures whether a model runs and how expensive it is, not whether it sounds right yet.

Five models cleared that bar, in this order:

Where the other ten stand

Of the roughly 14 candidates, this is where things actually sit as of this snapshot:

Where it actually stands

Ongoing, five of roughly fourteen wired and validated, nine remaining. This is not a hypothesis test with a pass/fail outcome: the register correctly tracks it as a non-A/B benchmark build-out. No cross-model comparison or ranking exists yet; what exists is a working harness pattern (proven four times over after the first model's install debugging) and five models' worth of raw performance numbers, with no quality assessment layered on top of any of them. The honest state of this branch today is "harness works, five data points collected," not "here's the best model."