Introduction

VoxRT (Wiseport Ltd.) just shipped Linnet linnet-en-35m — a lightweight English on-device text-to-speech stack that streams from the first frame. GitHub released the weights as weights-v1 at 2026-11-04T06:36Z, the Hugging Face mirror VoxRT/linnet-en-35m landed the same minute, and runtime v0.1.0 followed at 2026-11-04T08:02Z with Linux, Python wheels, Android AAR, and iOS xcframework.

This is a maker-ready phone/desktop TTS drop, not a research card with no binary.

What Shipped

  • Vendor / product: Linnet linnet-en-35m — VoxRT
  • Modality: generative TTS (English, streaming, on-device)
  • Open vs closed: code Apache-2.0; weights under Linnet Weights License 1.0 (free commercial inference with the built-in voices; custom voices, fine-tunes, and general-purpose TTS APIs need a separate written license)
  • Runnable today: unpack weights-v1 into local/, then pip install linnet-tts or the Rust synth example; also Android AAR + iOS Swift package from v0.1.0
  • Concrete fact: ~41.4M params end-to-end (31.5M flow LM + 9.9M Vocos-style decoder); fp16 runtime file ~83 MB; 24 kHz mono at 1 NFE / 80 ms frame; measured RTF about 9% on iPhone 11 and 7% on iPhone 13 Pro Max (1 thread)

Repo: VoxRT/LinnetTTS.

Architecture, Briefly

Linnet is an autoregressive flow language model over continuous 48-dim latents (one LM step = 80 ms = two 24-dim codec frames at 25 Hz), then a causal Vocos-style neural codec decoder to 24 kHz. Everything is causal — no lookahead — so chunks concatenate bit-for-bit to the offline result. Two built-in voices ship as linnet-en-f1 and linnet-en-m1; the voice encoder that would mint new prompts from recordings is not in this release.

Run It

pip install linnet-tts

Unpack GitHub weights-v1 (or the HF mirror) into local/. Voices are linnet-en-f1 and linnet-en-m1; defaults are temp 0.3 and cfg 2.0. Follow the package README for Session / synthesize + stream APIs.

import linnet_tts

Or use the Rust example after cloning the repo and placing weights under local/. Mobile makers get linnet-tts-0.1.0.aar and LinnetTTS-0.1.0.xcframework.zip on the same v0.1.0 release.

License Caveats

  • Built-in voices: free to ship inside your own products, including commercial / closed-source apps.
  • Reserved without a separate VoxRT license: custom voice creation, modifying the weights, training, and offering a general-purpose TTS API.
  • Read WEIGHTS_LICENSE.md — the license text governs.

Limits Worth Knowing

  • English only — other languages produce garbage.
  • No text normalisation inside the model: write numbers, dates, currencies, and phones as words before synthesis.
  • A slight roughness can show up on headphones.
  • Browser/WASM and an int8 W8A8 weight file are planned later, not day-0.

Original Source

Conclusion

If you want on-device English TTS that actually streams on a phone CPU today, with day-0 Python/Rust/Android/iOS bindings and clear commercial rules for the two built-in voices, Linnet linnet-en-35m is the November 4 file to grab.

—Anabel ♡