Text to speech, voice cloning and scripts
Type a line and get it read as a clip in your library. Clone a voice from a WAV you upload or a sound you already made, and use it anywhere a built-in speaker would go. Write a script with speakers, pauses and deliveries, and the studio reads it line by line onto a timeline you can rearrange. It runs on your own machine, with open-weight models you choose and download.
One line, one clip
The simplest case is a single read.
Type a line, pick a voice, press Speak. The result is an ordinary sound in your library: you can tag it, search for it and export it as WAV, and it stays there after you leave the page.
Delivery is set separately from the text. Writing (whispering) into the text makes the model say the word “whispering” out loud, so delivery has its own controls. Soundbox reads each model family's parameter table, and the controls you see are the ones that model accepts. A model with no delivery controls shows none.
The depot is empty by nine. Most nights, anyway.
A script that stays
A story is an ordered list of lines. Each line has a place in the script and a position on the timeline.
Write lines, give each a speaker, and voice them one at a time. Generation is per line, so when one read is wrong (a mispronounced word, a flat take) you regenerate that line and leave the rest of the script alone.
The lines sit on a multi-track timeline. You can move clips, split them, reorder them and mute a lane. When you are done, the story exports as one mixed WAV. Deleting a story keeps its audio in the library unless you choose to remove that as well.
A story can also start from existing audio: hand it a library sound and it opens as a story, optionally split into stems with each stem on its own lane.
Building a cast
Voices have a library of their own. Pick a built-in speaker or clone one from a clip.
Built-in voices
Many model families ship named speakers. Saving one as a voice gives it a name and notes of your own, so you can cast “the tired dispatcher” in every script and get the same speaker.
Cloned voices
Models that support cloning take a reference clip (a sound already in your library, or a WAV you upload) and read new text in that voice. In the Voice Lab you audition each voice with a test read before you use it in a script.
Almost none of these models' licences require a speaker's permission before you clone their voice. Getting that consent is your responsibility.
Controls for each model
The parameter panel is built from what each model accepts. Switching models rebuilds the controls.
Soundbox ships parameter definitions for 29 model families, 165 controls in total, across sliders, numbers, toggles, choices and text. They are vendored from audio.cpp's own parameter file and checked against its per-family source. Delivery settings (“how should this line be said”) and sampler settings (“how hard should the sampler work”) are grouped separately.
These are request options, and audio.cpp accepts unknown keys silently, so a misspelled parameter produces no error. Because the panel is built from the real definitions, it never shows a control that the model would ignore.
The demo shows two behaviours from the app. Some parameters do nothing until another is on, so dependent controls grey out until their gate is set. Only values you change are sent: if you change nothing, the request carries no options and the model's own defaults apply.
The same panel drives sound effects and music. It is shown here because voice models have the most to tune.
Four sliders. `exaggeration` is this family's own control — no other model here has it.
Delivery
Quality
Sampling
Sent with the request
{} — nothing changed, so the model's own defaults standAgents can write and voice scripts too
The story tools are on the same MCP surface as everything else in Soundbox.
A connected agent can speak a one-off line, create a story, add lines with speakers and per-line delivery, revise them, and voice the result, through the same endpoints the app uses. Every generated file comes back with an absolute path, so the agent can pass narration to ffmpeg or drop it into a video project.
The story page holds a live connection open, so lines an agent writes appear as they are written, without a refresh. The Agents page attributes every call to the client that made it.
35 voice models, each with its licence and verified status
Voice is the largest category in the catalog: 35 of 46 models are text-to-speech, voice conversion or cloning. Their licences also vary the most.
Every voice model in the catalog is opt-in: it appears in the app's picker only after you enable it on the Models page. One of the 35 has been verified end to end; the rest come from audio.cpp's shipped model list and are marked unverified. Each model page says which.
The licences vary widely. Of the 35: 3 are non-commercial, 13 permit commercial use only under conditions (revenue caps, attribution duties, per-speaker voice licences), and 2 have no confirmed licence and are treated as non-commercial. For commercial work, read the entry for the specific model before you generate anything you plan to ship.
Running it
Voices ship with the app
The Voice Studio, stories and the Voice Lab are part of Soundbox. They use the same local server on 127.0.0.1:17494 and the same library, with no account. Before your first read you need a text-to-speech model. Check its licence first: voice licences vary more than any other category in the catalog.