Speech-to-text, the language model and text-to-speech run together on hardware you own and stream into each other, so a reply starts playing while it's still being generated. No per-minute API bills. No audio leaves your machine.
Everything below runs in-process today — no network hop between stages.
A barge-in watcher runs alongside the pipeline: talk over the reply and generation and playback stop. The server decides that, because it hears clean audio — echo cancellation happens on the device, in the browser or in the terminal client, so it works on laptop speakers without headphones.
RTX 3090 at $0.50/hour, Qwen 7B, Whisper and Kokoro all on the one card. Nine-turn conversation through the browser client, 19 September 2026.
| Median | Range | |
|---|---|---|
| Response — caller stops, audio comes back | 472 ms | 169–706 ms |
| Speech-to-text | 109 ms | 37–477 ms |
| LLM first token | 28 ms | 20–199 ms |
| LLM tokens per second | ~105 | 92–122 |
| Text-to-speech, first chunk | 442 ms | 147–619 ms |
Interruptions fired on six of six attempts, and correctly ignored 192 ms of speech over the agent. The point isn't that a GPU beats a laptop — it's that a 7 B model answers as fast as a 0.5 B did on an 8 GB MacBook Air, because the pause you configure and the first sentence of speech dominate, not the model. Every figure comes from the runtime's own per-turn telemetry, so you can reproduce them on your own hardware.
The runtime serves the browser client it uses itself, so the page you demo with is the one your site embeds.
<script src="https://your-server/fusion-runtime.js"></script>
<button id="talk"></button>
<script>FusionRuntime.attach({ button: "#talk" });</script>
The browser's own echo canceller handles the speaker, the microphone is resampled off the
main thread, and replies are scheduled slightly ahead of real time so network jitter doesn't
leave gaps. The page never holds an API key — your backend mints it a token that works once.
Microphones need https://, so a deployment needs TLS and wss://.
Browser client docs →
Every stage runs in your process. Profile and fix any millisecond yourself instead of waiting on a vendor's queue or incident.
Audio and transcripts stay local by default. No third-party inference call in the default path — an architecture, not a config flag.
No API metering per stage. It runs on hardware you already pay for, so the marginal cost of another conversation is compute, not a bill.
Whisper tiny isn't Nova-3. Qwen 0.5B/7B isn't GPT-4o. Kokoro isn't ElevenLabs. That trade is right for some teams and not others.
llama-server and that goes away; shared-model scaling for speech-to-text is the next piece of work
Not everyone wants to run their own GPU. We're planning a hosted version of fusion-runtime —
no date yet, and it isn't built. If you'd rather not run infrastructure yourself, leave your
email and we'll tell you when it's real. This isn't a waitlist for the open-source runtime —
that's just pip install away.
No spam, one email when it ships. Unsubscribe anytime.