Skip to main content

rhapsode-engine-phonon

Phonon as a rhapsode engine, through Gradium's ptts runtime. It runs on the CPU and brings no torch, its download is 75 MB, and it streams many times faster than realtime.

pnpm wizard install phonon

It needs nothing beyond the Python the SDK does. On Linux and Windows x86_64, the runtime's wheels need a CPU with AVX2.

What it can do​

One build, 31m: English, with no cues and no deliveries. It does not clone or blend, and it speaks 38 voices: the checkpoint's own default, which a request naming no voice gets, and the 37 English voices in gradium/phonon-voices. Voice ids are the catalog's names with spaces replaced, so Zoey is Zoey and The Thing Under the Stairs is The-Thing-Under-the-Stairs.

Two dials:

  • durationDelta (-0.5 to 0.5, default 0) changes the pace. Negative is faster. It is a condition the model was trained on rather than a ratio, so it is not named speed, and the OpenAI shim's speed is refused here rather than approximated. On an 8.08 s line, -0.5 gave 5.92 s and 0.5 gave 10.08 s.
  • temperature (0 to 1, default 0.3) changes the take rather than the pace.

Numbers, currency, symbols, email addresses and URLs are spelled out before speaking, so $5 is read as "5 dollars". Times and numeric dates are read as written. Markdown marks may be read aloud, so give it the text you want spoken.

What it does not promise​

A seed nearly holds a take still, and does not reproduce it. Repeats with one seed differ by under 1e-6 in a sample, and that is enough to flip a rounding: 9 of 20 repeats of one line were the same 16-bit PCM. rhapsode-conform skips the check, as § 6 allows, and with it the comparisons that depend on it.

Long text has joints. A request may carry 4,096 characters, and the runtime splits it into sentences itself, so prosody does not carry across the whole text.

Licences​

The runtime is MIT or Apache-2.0, this package is MIT, and the 31M weights, tokenizer and voices are Apache-2.0, so all of it is commercially usable. Upstream asks that it not be used to impersonate a real person, to deceive listeners about who is speaking, or to clone a voice without consent.

Gradium's 40M builds, which add French, German, Spanish and Portuguese, are CC BY-NC 4.0 and gated. They are phonon-40m, a separate engine from this same package, because a licence here belongs to an engine rather than to a variant.

What it costs​

Measured on an M5 Pro with 18 cores, on the CPU, November 2026, for an 8 s line, median of five:

ThreadsSpeed
157.6x realtime
266.7x
475.0x
862.8x
1850.5x

The runtime defaults to every core, which is the slowest of these, so the adapter uses 4. It loads in 0.1 s with all its voices. Its peak was about 400 MB, speaking a 4,096-character request: 225 s of audio in 2.7 s, with the first of it out in 11 ms. Ollama's figures put this runtime at 84x on the CPU and 38x on Metal on an M5 Max, which is why this adapter stays on the CPU even where Metal is available.

Why not through Ollama​

Ollama serves the same model over the same OpenAI route, and rhapsode could have proxied it. Ollama's Phonon packages need Apple Silicon for now, so that route would not have run on Linux or in the Docker image, and it would have put a second server with its own residency underneath this one's.

Tests​

The tests stub the runtime and the download, so they need neither. rhapsode-conform against a real install is where the weights themselves get asked.