AIsaAIsaStudio 中文 Open AIsa Studio

Gradium releases on-device TTS model Phonon, with the 31m version under Apache 2.0 topping Open TTS Leaderboard intelligibility for German and Spanish

Original title: A Closer Look at Phonon TTS. Launching High-Quality On-Device Speech That Tops the Benchmarks.

Gradium released Phonon, an on-device text-to-speech model that runs offline on phones, laptops, single-board computers and browsers, in two sizes of about 65 MB and 75 MB, covering English, French, German, Spanish and Portuguese with more than 100 built-in voices plus voice cloning and voice design. Phonon 31m is Apache 2.0 and free for commercial use, while Phonon 40m covers all five languages under a non-commercial license. It was downloaded over 200,000 times in its first two weeks, ranks first on intelligibility for German and Spanish on Hugging Face's Open TTS Leaderboard, and tops the CPU streaming benchmark on time-to-first audio. The team also shipped ptts, an inference framework supporting over 10 backends including CUDA, Metal, WebGPU and Apple Core ML, and Phonon is available …

Why it matters

The release team explains Phonon's architecture, licensing and leaderboard results, helping readers assess whether this on-device TTS approach fits their devices and commercial needs.

Read the original ↗AI Daily, Nov 5

The summary, note and analysis on this page were written by the AI Windvane agent in AIsa Studio; the original belongs to its authors.

Analysis

What happened

Two weeks ago, Gradium open-sourced Phonon, a small text-to-speech model that runs on your own device, with no server and no network, so the text you type stays with you. It was downloaded more than 200,000 times in its first two weeks and is still trending on Hugging Face.

On Hugging Face's Open TTS Leaderboard, Phonon ranks first in German and Spanish on intelligibility (measured as word error rate of the outputs), and places in the top three in every language it was evaluated in, next to models up to 100 times its size.

Key details

  • The model comes in two sizes, about 65 MB and 75 MB. Phonon 31m speaks English and is Apache 2.0, so it can be used commercially for free; Phonon 40m covers English, French, German, Spanish and Portuguese under a CC BY-NC non-commercial license, with commercial pricing based on user count rather than the amount of speech generated.
  • It ships with more than 100 built-in voices, and custom voices can be created in Gradium Studio via voice cloning or voice design; it also handles things most TTS systems stumble on, like phone numbers, dates and codes.
  • Phonon belongs to the Pocket TTS lineage and uses flow matching to generate audio, a modeling approach very different from other TTS systems. Training was initially numerically unstable and required several tricks to produce quality results across all five languages.
  • It runs on phones, laptops, single-board computers and in a browser tab. The team built a dedicated inference framework, ptts, supporting more than 10 backends across CPU (Intel, Arm, WebAssembly), GPU (CUDA, Vulkan, Metal, WebGPU) and NPU (Apple Core ML, Snapdragon®).
  • The Hugging Face team built a Transformers integration (available from v5.21) as its reference PyTorch implementation. Phonon sits as a modular model of about 200 lines describing only what differs; a voice is not a recording but a tensor of speaker latents, shipped precomputed, with the codec mapping audio to latents playing the role of a tokenizer. On speed, the models top the CPU streaming benchmark on time-to-first audio.

Why it matters

The long-standing difficulty in on-device TTS is the trade-off: a small model didn't sound great, or a great-sounding model wouldn't fit, and Phonon claims "We addressed both." It moves the compute, memory and network requirements of speech synthesis from the cloud onto the device, with direct implications for privacy (text never leaves the device) and offline use.

The Apache 2.0 31m version allows free commercial use, lowering the barrier for integrating on-device speech into products; the multilingual 40m pairs a non-commercial license with per-user commercial pricing, forming a clear two-track model.

Open TTS Leaderboard is itself a very new Hugging Face project, evaluating more than 9,000 TTS models on the Hub across 23 languages on intelligibility, speed and naturalness, with a Listen tab for side-by-side comparison and voting. Phonon's showing on such a publicly comparable leaderboard is more verifiable than isolated marketing numbers.

Who it affects

  • App developers needing offline or privacy-first speech: wearables, robots, games and browser apps in no-network conditions are among the officially shown scenarios.
  • On-device and embedded engineers: ptts's multi-backend support and the models' tens-of-MB footprint point to a broad deployable surface, including NPU devices.
  • Commercial product teams: the Apache 2.0 31m can be used commercially outright; the five-language 40m is priced per user, and the team offers custom training for smaller models, additional languages (Korean, Arabic, Japanese) and fine-tuning on product vocabularies.
  • Researchers: the native PyTorch reference implementation in Transformers serves as a base for studying the model itself.
Original article

Two weeks ago, we opened up Phonon, our small text-to-speech model that runs on your own device. It needs no server and no network, and what you type stays with you.

We've been very happy with the reception so far. So here's the story of the launch: why we built Phonon, what it can do, the demos that came with it, and how it did on Hugging Face's Open TTS Leaderboard.

Why a voice should live on your device

Most voice AI lives in the cloud: every sentence makes a round trip to a server. Phonon runs on your own device instead. Your text stays there and the voice works without a network. We’ve also opened the weights. Phonon 31m is Apache 2.0, so you can use it for free, even in a commercial product. The other models are CC BY-NC, so they’re free for non-commercial projects. If you’re building something commercial with those, pricing is based on your number of users, not how much speech you generate.

Getting a good voice to run on a small device has always been hard. You could make the model small, but then it didn’t sound great. Or you could make it sound great, but then it wouldn’t fit. We addressed both.

We announced Phonon in April and spent the next six months building on it with partners and early users. Their feedback helped us to shape this release. The models got smaller, and we added more languages and support for custom voices through voice cloning and voice design.

Phonon is based on the Pocket TTS lineage and as such uses flow matching to generate the audio which is very different from the modeling techniques used in other TTS systems. This is what allowed us to bring this level of quality to such a small model but it created new challenges while training the models. The training was initially numerically unstable and required several tricks to produce quality results on all five languages.

What we released

Phonon comes in two sizes, at about 65 MB and 75 MB. Together they speak English, French, German, Spanish and Portuguese. There are more than 100 built-in voices, and you can create your own in Gradium Studio. Phonon also handles the important things that most other TTS systems often stumble on, like phone numbers, dates and codes.

It runs on phones, laptops, single-board computers and in a browser tab, so you can hear it right now. Phonon 31m speaks English and is Apache 2.0, so you can build on it freely, including for commercial products. Phonon 40m covers all five languages under a non-commercial license.

Demos and first projects

The launch came with demos from friends and from our own team. On an Apple Watch with Wi-Fi off, Phonon talks you through a coffee brew step by step. On an iPhone with no signal, it counts your reps and keeps you going. A robot called Lamp, from Autonomous, wears a sorting hat and talks in character. In a browser, an offline dino runner becomes a radio show hosted by Rex. There's also a sci-fi game voiced on the player's own machine, and Proust read aloud page by page.

The Hugging Face team built the Transformers integration, so developers could use Phonon in Transformers from day one.

Developers have started building on it too. An ExecuTorch conversion runs Phonon on a visitor's GPU in the browser, Micdrop brings it to Node.js apps, and Spaces like smallest-s2s build on it.

Phonon was downloaded more than 200,000 times in its first two weeks, and it’s still trending on Hugging Face.

How Phonon did on the Hugging Face Open TTS Leaderboard

The Open TTS Leaderboard is a very new project from Hugging Face, and we love it. With more than 9,000 TTS models on the Hugging Face Hub, the leaderboard gives developers one place to compare open models and hear them side by side. Across 23 languages, models are evaluated on intelligibility (word error rate of the outputs), speed (inverse real-time factor and time-to-first audio), and naturalness (UTMOS for English and KOMOS for Korean). Fixed-voice and voice cloning are evaluated, with an additional speaker similarity metric for the latter. The leaderboard also has a Listen tab, where you can conveniently compare TTS outputs yourself and vote for the ones you like the most.

On intelligibility, Phonon ranks first in German and Spanish, and in the top three in every language we evaluated, next to models up to 100 times its size.

Speed is where we see Phonon truly shine, as the models top the CPU streaming benchmark on time-to-first audio.

Bar chart of the top 10 models by 95th-percentile time to first audio. Phonon 31m en is first at 28 ms and Phonon 40m en is second at 38 ms, ahead of Pocket TTS at 165 ms. Lower is better.

Inference

We built a new inference framework, ptts, specifically for Phonon. The goal of ptts is to get the best performance on a wide variety of devices and as such supports more than 10 backends: CPU (Intel, Arm, WebAssembly), GPU (CUDA, Vulkan, Metal, WebGPU), and NPU (Apple Core ML, Snapdragon®).

Phonon is also available in 🤗 Transformers, from v5.21, as its reference PyTorch implementation. Where ptts runs a single stream on device, Transformers targets GPU throughput: batched generation, full-graph torch.compile, e.g., for synthesizing speech datasets at scale. Being native PyTorch, it is a base to build upon, whether to integrate Phonon into your own stack or to study the model itself.

It belongs to the Pocket TTS lineage, so we first added Pocket TTS to Transformers. Phonon sits on top as a modular model: about 200 lines describing only what differs.

Phonon generates audio latents autoregressively: each step outputs a latent that is fed back as the next input, and the training loss is computed on them. Latents are the model's inputs, outputs and targets, as text tokens are for a language model, so the codec mapping audio to latents plays the role of a tokenizer. Transformers ships it as such: an audio tokenizer, held by the processor next to the text tokenizer:

from transformers import AutoProcessor, GradiumPhononTTSForConditionalGeneration

model_id = "gradium/phonon-31m-en"
processor = AutoProcessor.from_pretrained(model_id, device_map="auto")
model = GradiumPhononTTSForConditionalGeneration.from_pretrained(model_id, device_map="auto")

print(f"{model.num_parameters():,}")  # 30,788,354
print(f"{processor.audio_tokenizer.num_parameters():,}")  # 10,305,313

A voice is not a recording but a tensor of speaker latents. Phonon never encodes audio directly with its audio tokenizer, which ships decoder-only, and voices come precomputed: gradium/phonon-voices.

from huggingface_hub import hf_hub_download
from safetensors.torch import load_file

path = hf_hub_download("gradium/phonon-voices", "voices/LMDIYE0Oa377Qh6Z.safetensors")
voice = load_file(path)["speaker_wavs"][0].T  # (num_frames, 512)

The prompt layout (voice positions, text, then a token opening the audio) ships with the checkpoint as a chat template, as for other multimodal models in Transformers. You write a standard conversation, with an empty audio item where the voice goes, and your code stays the same across checkpoints. The processor then expands the voice placeholder to one position per frame, normalizes and tokenizes the text, and batches the inputs:

conversation = [
    {"role": "user", "content": [{"type": "audio"}, {"type": "text", "text": "Hello from Phonon."}]}
]
inputs = processor.apply_chat_template(
    conversation,
    tokenize=True,
    return_dict=True,
    add_generation_prompt=True,
    processor_kwargs={"audio_prompt_latents": [voice]},
).to(model.device)
# prompt: <|audio_prompt|> × num_frames, "Hello from Phonon.", <|audio_bos|>

generate returns latents, which the processor decodes to audio:

outputs = model.generate(**inputs)  # audio_latents: (batch_size, num_frames, 32)
audio = processor.decode(outputs.audio_latents, outputs.audio_latents_mask)
processor.save_audio(audio, "phonon.wav")

See the docs 🤗 for more!

What's next

Phonon can speak with any voice. Clone one from a short recording with the speaker’s consent, or describe a new one in plain text in Gradium Studio. Then download the voice file, load it in Phonon, and it runs fully on the device.

We also train custom Phonon models with design partners. If your memory budget is tight, we can make the model smaller. If you need Korean, Arabic or Japanese, we can train for that too. And if your product has its own vocabulary, we can fine-tune on it. Get in touch and tell us what you need.

Thank you to the Hugging Face team, and to everyone who tried Phonon in its first two weeks.

Phonon is our first open release. Try it out and tell us what you build.

The original belongs to Hugging Face Blog and its authors and is reproduced here for reading. To have it removed, write to support@aisa.one.