Phonon 0.7.0
Changes since 0.6.0.
- Default model: pinned to the current
gradium/phonon-31m-encommit, whose default voice is Reuben. The weights and tokenizer are unchanged (#337). - Browser, WebGPU:
phonon-ttshas 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 cudanow 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.zipis exported anew with this. - C, Swift and Android:
ptts_set_temperatureandptts_set_seedset the sampling temperature and seed, withsetTemperatureandsetSeedin the Swift package andPhononTTS.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::s2sand thes2sexample 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-mimiflag. It pays off withkaior xn's own kernels, not with Accelerate alone (#186). - Python: the macOS arm64 wheel is built on
macos-15(#331). - Contributing:
CONTRIBUTING.mdand a contributor license agreement (#324). - Rust API (breaking):
ptts::tts_model::TTSConfighas a new public field,audio_delay(#329), so code that builds aTTSConfigwith 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.