github gradium-ai/xn-ptts v0.7.0
Phonon 0.7.0

2 hours ago

Phonon 0.7.0

Changes since 0.6.0.

  • Default model: pinned to the current gradium/phonon-31m-en commit, whose default voice is Reuben. The weights and tokenizer are unchanged (#337).
  • Browser, WebGPU: phonon-tts has a WebGPU engine of its own, written for Phonon's architecture, in place of the generic xn WebGPU path. A frame is a fixed list of fused kernels that the GPU replays, with sampling and the end of speech on the GPU, so many frames go out in one submit. It is faster and starts speaking sooner on every GPU we measured, including Apple GPUs in Chrome and Safari and the iPhone. WebGPU stays opt in (device: 'webgpu', or 'auto' on a hardware adapter with q8 weights); a checkpoint the engine does not implement is refused before loading, and under 'auto' the CPU runs it instead (#330).
  • CUDA: decoding is several times faster. The flow LM's step is replayed as a CUDA graph (#297), Mimi runs on its own stream and thread, overlapping the next step (#294), the flow net's time conditioning is computed once at load (#296), and xn 0.2.14 brings faster norm and attention kernels (#334). --quant q8 --device cuda now runs the transformer's linears as q8_0 on the GPU instead of being refused (#295).
  • Core ML: the export takes a 200-token prefill, as long as the other frontends cut text to, so long sentences no longer get false sentence ends (#318, #326). The first audio comes a little later in exchange. The attached phonon-31m-en-coreml.zip is exported anew with this.
  • C, Swift and Android: ptts_set_temperature and ptts_set_seed set the sampling temperature and seed, with setTemperature and setSeed in the Swift package and PhononTTS.kt (#314).
  • Voices: priming a 17th voice evicts only the least recently used one, instead of clearing every primed voice (#325).
  • Speech-to-speech: ptts::s2s and the s2s example run checkpoints conditioned per frame on input audio instead of text (#329).
  • Experimental: an opt-in q8_0 Mimi decoder on the CPU, SynthBuilder::quantize_mimi(true) or the hidden --quantize-mimi flag. It pays off with kai or xn's own kernels, not with Accelerate alone (#186).
  • Python: the macOS arm64 wheel is built on macos-15 (#331).
  • Contributing: CONTRIBUTING.md and a contributor license agreement (#324).
  • Rust API (breaking): ptts::tts_model::TTSConfig has a new public field, audio_delay (#329), so code that builds a TTSConfig with a struct literal needs to set it. This is why the version is 0.7.0.

phonon-31m-en-qnn.zip is the one attached to 0.5.0 and 0.6.0, with the Snapdragon X Elite context, and still has the previous default voice.

Don't miss a new xn-ptts release

NewReleases is sending notifications on new releases.