Engines

Somebody has to keep these running

Open-source speech models are extraordinary and they are mostly unpaid work. A model with thousands of stars and a stunning demo can have had no commit in a year, no release to pin to, and a dependency floor that fights whatever Python you actually run. That gap is invisible when you pick the model and expensive every month afterwards — and on a hosted product it lands on us rather than on you.

Nobody owes anybody a commit. Every project below was given away for free by people who had no obligation to keep going, and several of them changed what is possible in this field. None of this is a complaint about them. It is a description of what a hosted product has to absorb, with the numbers attached so you can check them. VoiceLabs is also pre-launch: the engines below are what ships at launch, and the studio is in development.

The upstreams behind the engines we run

Read from the GitHub API on 2026-09-03 — last commit on the default branch, open issues excluding pull requests, and the newest published release. Shown warts and all: the busiest project here also has the largest issue backlog, and a table that hid that would not be worth reading.

Repository maintenance state for the open-source projects behind the engines VoiceLabs runs, read on 2026-09-03.
PROJECTLAST COMMITOPEN ISSUESLATEST RELEASE
Chatterbox — the 23-language cloning engineresemble-ai/chatterbox2026-07-212 months ago276v0.1.2 (2025-06-13)
Kokoro — the 82M-parameter CPU-realtime enginehexgrad/kokoro2025-08-0613 months ago172never tagged a release
Qwen3-TTS — the multilingual defaultQwenLM/Qwen3-TTS2026-03-176 months ago14never tagged a release

What we actually do about it

Five specific things, each with the file in our repository that proves it. This is integration work rather than model research: we do not retrain anybody’s weights, and the section after this one says what that leaves unfixed.

Dense scripts stopped being silently cut in half

What upstream does: Chatterbox hardcodes a 1,000-token generation ceiling it does not expose, while the text splitter budgets in characters. One Devanagari, Thai or CJK character costs several times what a Latin one costs, so a script well under the character limit blows the token ceiling — and the request still returns as completed, with no error and a plausible-looking duration. Upstream measured 43% of a 409-character Hindi script lost that way.

What we do: Chunks are priced in estimated tokens with a per-script cost, so the character budget shrinks for dense writing systems and never rises above what the caller asked for. Latin text is unchanged byte for byte.

backend/voicekit_text_budget.py

Two engines install against dependency pins nothing else can satisfy

What upstream does: Chatterbox pins numpy below 1.26 and torch at exactly 2.6; HumeAI TADA pins torch to 2.7.x. Neither set is compatible with the Python and torch the rest of the stack runs on, so a plain install resolves to a broken environment or refuses outright.

What we do: Both are installed without their dependency graphs and their real requirements are declared explicitly and tested, so the engines run on one shared torch instead of three mutually exclusive ones.

backend/requirements.txt

A 400 MB dependency replaced by the one class that was actually used

What upstream does: TADA pulls in descript-audio-codec, which drags onnx and tensorboard along behind it, to reach a single activation function.

What we do: A small shim provides that one class. The image stays shippable and the transitive surface shrinks.

backend/utils/dac_shim.py

Git-sourced models pinned to commit SHAs, not to branches

What upstream does: Two of the cloning engine's dependencies exist only as Git repositories with no release to install. Tracking a branch means the build silently changes whenever someone else pushes — a supply-chain risk as much as a reproducibility one.

What we do: Both are pinned to explicit commit SHAs, so a rebuild a year from now produces the same engine.

backend/requirements.txt

Transcription past the first 30 seconds

What upstream does: Whisper's sequential long-form decoding — the loop that continues past the first 30-second window — landed in a specific transformers version. Below that floor every recording longer than 30 seconds is truncated without an error.

What we do: The floor is declared explicitly rather than inherited by accident from whatever the image happened to resolve, and the long-form path is a module of ours with its own tests.

backend/voicekit_stt_longform.py

What we do not fix

Model quality. If an engine mispronounces a name, or a voice sounds wrong in a language it nominally supports, that is the model, and pinning or patching a dependency does not touch it — the honest answer is to pick a different engine for that job, which is why there are seven rather than one.

A concrete example, still open: Kokoro can take a very short line, speak it correctly, repeat it, and then trail off into noise. It is a known upstream defect, it is recorded as a known defect in our engine configuration too, and it is not fixed here. We would rather name it than let you find it.

The projects people ask us about

These are not in the product, and their repositories are the reason. Read on 2026-09-03, same method. Two rows deserve a note rather than a raw number:

  • Coqui TTS is not archived, and anyone telling you otherwise has not checked. The company shut down; the repository is still open. Its two open issues look like a healthy tracker and mean the opposite — the backlog was cleared at shutdown, and the default branch has not moved since February 2024. That pair is exactly why this table never shows an issue count without a commit date beside it.
  • Piper moved out from under its users. The original repository is archived and its README is now a single line pointing elsewhere; the successor lives in a different organisation under a different licence and is genuinely active. That is the failure mode nobody plans for — not a project dying, but a project relocating and relicensing while your build keeps pointing at the old address.
Repository maintenance state for open-source speech projects VoiceLabs does not run, read on 2026-09-03.
PROJECTLAST COMMITOPEN ISSUESLATEST RELEASE
Coqui TTScoqui-ai/TTS2024-02-1031 months ago2v0.22.0 (2023-12-12)
StyleTTS 2yl4579/StyleTTS22024-03-0730 months ago104never tagged a release
MeloTTSmyshell-ai/MeloTTS2024-12-2421 months ago213v0.1.2 (2024-03-01)
ZonosZyphra/Zonos2025-03-0518 months ago134never tagged a release
Spark-TTSSparkAudio/Spark-TTS2025-04-0917 months ago188never tagged a release
Piper (original repository)rhasspy/piper2025-08-2613 months ago3962023.11.14-2 (2023-11-14)repository archived
Piper (the successor, alive)OHF-Voice/piper1-gpl2026-08-291 month ago88v1.7.0 (2026-08-15)

Four of the projects on this page have never cut a release or a tag at all. That is the quiet version of the problem: there is no version to pin to, so anyone depending on them is pinning a commit hash or pinning nothing — and pinning nothing means the build changes whenever somebody else pushes.

VoiceLabs is itself built on the open-source VoiceBox project (MIT), and that attribution is permanent.

Every repository figure above was read from the GitHub REST API on 2026-09-03and is reproducible in one request each. Project names and marks belong to their respective owners; VoiceLabs is not affiliated with, endorsed by, or sponsored by any of them. If a number here has gone stale, tell us and we will re-read it.