IT SPEAKS · ENTIRELY IN YOUR BROWSER

The Monster Voice Engine.

A clean-room, pure-Rust port of Qwen3-TTS-12Hz-0.6B voice cloning — no Python, no PyTorch, no GPU, no server. The same engine that runs faster than real time as a native CLI, compiled to WebAssembly and stitched into this page. Nothing you type or record ever leaves the tab.

⚡ Enter the Laboratory Read the source
The FrankenTTS monster at its mixing desk, stitching voices together
SPECIMEN_001 · LIVE EXPERIMENT

The Operating Theater.

Download the model once, then type on the left and listen on the right. The actual engine — compiled to WebAssembly, running in a worker in your browser — synthesizes every sample locally. No server. No mock. The monster itself.

01 · The Specimen (model)

First use downloads the quantized model (≈2.0 GB) into this browser's private storage — verified against pinned SHA-256 digests, resumable, cached until you clear it. After that, the page loads it straight from storage.

Model not loaded.
02 · The Voice

Cloning runs the speaker encoder locally on your recording; the audio is discarded once the 4 KB voice vector exists. Clone only voices you have the right to use.

03 · The Utterance

Speed honesty: this build is single-threaded WASM at roughly 0.2–0.3× real time — a five-second line takes twenty-odd seconds. The native CLI runs faster than real time; browser threads are the roadmap. Desktop browsers only: the engine needs several GB of memory.

THE ANATOMY

Three Organs, One Heartbeat.

Every 80 ms frame of speech passes through the whole creature — and the hidden middle organ is the real monster.

01 · The Talker

A 28-layer transformer predicts each frame's first, semantic-rich codec token — int8 kernels with exact i32 accumulation, argmax-verified against the PyTorch oracle through every layer.

02 · The Microdecoder

The hidden monster: a 5-layer residual-code predictor that runs fifteen sequential times inside every frame — per-depth embeddings, per-depth 2,048-way heads. franken_tts treats it as the design center, not a liability.

03 · The Codec

A fully causal decoder turns 16 code groups into 1,920 samples of 24 kHz audio per frame — streaming output bit-identical to offline decoding under every packet schedule.

THE CHOIR

Seven Voices In the Jar.

Built-in voices ship inside the binary as 4 KB x-vectors — matt (the default), james, leo, robert, judy, aria, and ember — and a ten-second recording of your own voice becomes the eighth.

TAKE IT HOME

Faster Than Real Time, Natively.

The CLI runs the same engine with native int8 kernels and a persistent worker team — faster than real time on Apple Silicon.

# macOS / Linux
brew install dicklesworthstone/tap/franken-tts
# or the installer
curl -fsSL https://raw.githubusercontent.com/Dicklesworthstone/franken_tts/main/install.sh | bash
# then
ftts pull
ftts say "Now is the time for all good men to come to the aid of the agents" out.m4a