SpeechForge
Core
Resolve the voice, price it, synthesize, import, cache.
Open source · Fab
Plugins / SpeechForge
What it does
Voice a whole script in one pass, on your own provider account
See the price of a run before a single line is generated
Re-run safely: unchanged lines are skipped, not re-bought
Get character-level timing with every take — dialogue times itself to its own audio
Keep your key yours: credentials live in the OS vault, and no tool can write or read them
Seen, not described
What it is
SpeechForge resolves the voice, prices the request, synthesizes, imports and caches. Timing data comes back attached to the wave, so a line can time itself to its own audio with no authoring.
It is standalone on purpose: no dialogue system, no subtitles, no gameplay framework. Binding it to a particular dialogue system is an add-on — which is why the same plugin serves a project built on something else entirely.
Pricing before committing matters here more than anywhere, because a loop over a script is the one place this family can spend real money quickly. So a run is costed first, and the cache means a second pass over an unchanged script spends nothing.
Measured on our own project
$0.35placeholder
to voice a 95-line scene from scratch
$0placeholder
a second pass over an unchanged script
What is in the set
Install what you need. A toolset can be deleted and the capability beside it behaves identically; a provider can be deleted and the core still loads, with one fewer option.
Chosen per asset, not per project
No stage hard-depends on a particular model, and every stage records what produced its output. A better model arrives as a config change, not a rewrite — today’s is the worst one this will ever run on.
Hosted
The rate we measured is about $100 per million characters — which is how a 95-line scene costs $0.35. The ledger records the model used per line.
You need
Your ElevenLabs account and key.
Hosted and local
Coming
Behind the same provider interface, exactly as local motion now sits beside hosted. The pipeline you build today keeps working when you switch.
Asked first
Yours. The plugin is free and generation runs on your own ElevenLabs account, at the provider’s rates. Your key is held in the OS vault, and no tool — human-driven or agent-driven — can write a credential or read one out.
Runs are priced before they commit, and a guard refuses to regenerate lines that already have audio. On our own project, a full re-run over 95 voiced lines touched none of them.
You can prove two takes are identical; you cannot ask the provider for the same take again, because its seed is best-effort. The tooling is built around that: takes are cached, the cache is the source of truth, and no tool deletes a take.
SpeechForge stops at the wave and its timing, on purpose. Add-ons carry it the rest of the way — the Narrative Pro bridge casts speakers to voices, harvests every line in a dialogue, and writes the audio back onto the right node.
Next
Opens a message to bojan@blackcode.ch. One email when something ships. Not a newsletter.