Scylla's Band v4 Sings From a JSON Score

Introduction
Scylla's Band v4 just taught a tiny on-device TTS to sing. Release v4-20261106 landed on Hugging Face at spybyscript/scyllasband (commit 2026-11-05 ~23:38 UTC), with the runtime at lowkeytea/scyllasband on GitHub. It is a one-developer project, Apache-2.0, and it ships ready bundles for LiteRT, ONNX, WebGPU, Core ML, Core AI and PyTorch.
The new trick: speech and singing come from one flow model, switched by a delivery mode. You hand it lyrics plus notes and beats in a JSON score, and it sings them in any of its fourteen voices. No cloud, no API key.
What Shipped
- Vendor / product: Scylla's Band (spybyscript / lowkeytea), release
v4-20261106 - Modality: open-weight text-to-speech plus score-driven singing voice synthesis
- Open vs closed: Apache-2.0 weights and runtime; HF repo is ungated
- Runnable today: Python runtime from the GitHub checkout, native C runtime (ABI 3.1.0) on Linux, Windows, macOS, iOS, visionOS and Android, plus a WebGPU bundle for the browser
- Concrete fact: the card measures a 71 s pop song in 0.98 s (about 73× real time) on an M5 Max through Core ML GPU, and 19.2 s on a Galaxy Z Fold 8 with the BigVGAN decoder on GPU
What Changed From v3
- Singing. Pop and ballad delivery from a melody score, in all fourteen voices. Singing is English only for now; speech still covers English (US/UK), Spanish, Italian, French, German and Vietnamese
- Singing at speech cost. The sung paths were distilled a second time so the flow runs 4 Euler steps with no guidance, the same as speech, instead of 32 guided evaluations in the unpublished
v4-20261105candidate - Second decoder. Sung output goes through a fine-tuned BigVGAN v2 decoder (112M parameters); speech keeps Vocos. Use
--decoder vocosfor a much faster "turbo" sing with some artefacts on held notes - Breaking graph contract. Flow graphs take a new
delivery_mode_idinput, so runtimes built for v3 stay on thev3-20261104tags
Speech controls are unchanged: intensity, pace and pitch, each from −2 to 2, applied per request. Audio is mono 24 kHz.
Pro Tip
The model never free-sings. Every song needs a score, so treat it like a vocal synth you feed from a sketch: write the melody in a DAW, export note names and beat lengths, and let Scylla's Band voice it. Split a word across notes with ~1, ~2 suffixes and use - for rests.
How to Run It
Clone the runtime, install it, pull a bundle, then speak or sing:
git clone https://github.com/lowkeytea/scyllasband
cd scyllasband
pip install -e .
python -m scyllasband download --flavor litert
python -m scyllasband speak --voice ariadne --language en_us --intensity 1 --pace -0.5 -o hello.wav "It is a pleasure to meet you."
python -m scyllasband sing --voice gwen --score scyllasband/models/melodies/phrase_pop_00.json -o ring.wavOn a Mac, swap in --flavor coreml or --flavor coreai. python -m scyllasband build-native builds the faster native runtime that the same commands then use. The download includes twenty example scores (four whole songs, sixteen phrases).
A score looks like this:
{
"text": "give me a ring baby make me feel so",
"bpm": 108,
"style": "pop",
"notes": [
["give", "C4", 0.5], ["me", "D4", 0.5], ["a", "E4", 0.5], ["ring", "G4", 1.0],
["-", "rest", 0.5],
["baby~1", "E4", 0.5], ["baby~2", "D4", 0.5],
["make", "C4", 0.5], ["me", "D4", 0.5], ["feel", "E4", 1.0], ["so", "C4", 1.5]
]
}Notes for Makers
- Voices: Ariadne, Felix, Gwen, Ink, Kincade, Max, Orpheus, Poppy, Priya, Rex, Scylla, Stone, Thistle and Tuesday, for 84 trained voice and locale pairs
- Bundle sizes: LiteRT 471 MB, Core ML 406 MB, Core AI 418 MB, WebGPU 782 MB, ONNX and PyTorch about 1.1 GB each
- Speech speed: warm first audio of about 30 ms on an M5 Max (Core ML GPU), 70 ms on an iPhone 17 Pro Max (Core AI GPU) and 120 ms on the Fold's CPU via LiteRT
- Phone singing is heavier: BigVGAN costs about 90× Vocos per second of audio, so the 71 s song takes 12.5 s on the iPhone's GPU but 71 s on the Fold's CPU
- All benchmark numbers are the developer's own, measured through the native runtime; no third-party arena scores yet
- This sits next to our recent OmniSinger piece, but that one is a 2.45 GB OmniVoice fine-tune for GPUs. Scylla's Band is the phone and browser option
Conclusion
If you want an open voice that both talks and sings on a phone, with a commercial-friendly license, Scylla's Band v4 is the one to try this week. Write a JSON score, pick one of fourteen voices, and you get a sung phrase back in a few seconds on device.
—Anabel ♡
