Introducing Phonon ・ Our first open, on-device TTS model

Introducing

Phonon

Gradium's open-weight text-to-speech, small enough to ship in any app. Private, and it works offline.

Already trusted by

NVIDIA
Arm KleidiAI
Qualcomm
Hugging Face
Forvia
LM Studio
Pipecat
Modal
Xybrid
Ollama
Open WebUI
MLX Audio
SurrealDB

1.7%

Word Error Rate (WER)

Phonon 31m · English Tested on 500 sentences that other models get wrong: phone numbers, email addresses, postal codes.

Read the blog post
1.70%
Phonon 31m
2.11%
Phonon 40m multilingual
2.22%
Phonon 40m
3.50%
Kokoro
7.40%
Kitten TTS
8.71%
NeuTTS Nano

Phonon 1.0

Three models,
One for every device.

  • Phonon 31m

    Languages
    English
    Size
    64 MB
    Parameters
    31M
    Licence
    Apache 2.0
  • Phonon 40m

    Languages
    English, French, German, Spanish, Portuguese, one model per language
    Size
    74.6 MB
    Parameters
    40M
  • Phonon 40m multilingual

    Languages
    English, French, German, Spanish, Portuguese in a single model
    Size
    74.6 MB
    Parameters
    40M

Where it runs

One model,
All of your hardware.

  • Any processor

    Laptops, desktops, Android phones, even a Raspberry Pi 5. No graphics card needed.

  • iPhone, iPad and Mac

    On Apple's own AI chip, through a Swift package. Up to 22× faster than real time on an iPhone 16 Pro.

  • In a web page

    Runs in the visitor's browser, so their text never leaves their device. The demo at the top of this page is it.

  • On a graphics card

    When there is one, for the fastest speech: NVIDIA, Apple, Vulkan or WebGPU, chosen when you build it.

Compatible with

macOS
iOS
Android
Raspberry Pi
Intel AVX2
Arm Neon
Core ML
WebAssembly
NVIDIA CUDA
Vulkan
WebGPU

No cloud,
just your hardware

Paste one of these prompts into your coding agent and it will read the README, build Phonon and make it speak. Or take the code.

~/phonon/cli.prompt
Set up Phonon, Gradium's on-device text-to-speech, from https://github.com/gradium-ai/xn-ptts.

Read the README first and follow it over anything you assume.

1. Install the Rust CLI from the repository root with
   cargo install --path ptts --locked --features cli.
2. Point MODEL_DIR at the model folder (config.json, model.q8.gguf,
   tokenizer.json and the voices).
3. Synthesize "Hello world" with --lang en --quant q8 --voice Freya
   to out.wav.

Verify the file plays and tell me how to change the voice.

Text in, a WAV out. The fastest way to hear it.

Apps builtUsing Phonon

Questions?We’re here to help

[ 4 ]

Start
Building

[ 1 ] Creazione di Adamo, by Michelangelo Buonarroti. Date: c. 1511, part of the ceiling painted 1508-1512. Material: fresco. Dimensions: 280 × 570 cm. Current location: Cappella Sistina, volta, Musei Vaticani, Vatican City.

[ 2 ] Les trois Grâces. Artist: unknown; Roman, with restorations by Nicolas Cordier and Amainci, 1609. Date: 2nd century AD (?). Material: marble, probably Greek. Dimensions: h. 123 cm, w. 86 cm, d. 29 cm. Current location: Musée du Louvre, Aile Sully, Salle 348, Paris. Inventory number: Ma 287; MR 211; N 642.

[ 3 ] Victoire de Samothrace. Artist: unknown, Rhodes (?). Date: c. 200-175 BC. Material: Parian marble for the figure, grey Lartos marble for the ship. Dimensions: h. 328 cm overall. Current location: Musée du Louvre, Aile Denon, Escalier Daru, Salle 703, Paris. Inventory number: Ma 2369; NIII 2447; MNB 2118; MNC 1433.

[ 4 ] Portrait de Juliette Récamier, née Bernard (1777-1849), by Jacques-Louis David. Date: 1800. Material: oil on canvas. Dimensions: h. 174 cm, w. 244 cm. Current location: Musée du Louvre, Aile Denon, Salle 702, Salle Daru, néoclassicisme, Paris. Inventory number: INV 3708; C 124.