The toolset
The whole SpeechForge pipeline, exposed to an agent.
SpeechForge has no toolset of its own. The sibling plugin exposes the whole pipeline, and adds nothing.
Coverage, grouped by what it is for — and it is the whole panel, not a subset.
| Group | Tools |
|---|---|
| Discovery | ListSpeechAssets, ListSpeakers, ListVoiceProfiles, ListSpeechProviders, ListSpeechTranslationProviders, ListProviderVoices |
| Status | GetSpeechLineStatus, GetSpeechBankSource, CheckSpeechSourceDrift, DetectEditedSpeechAudio, GetSpeechLocalizationStatus |
| Authoring | CreateOrUpdateSpeechBank, UpdateSpeechLine, RemoveSpeechLines, ClearSpeechBank |
| Casting | CreateOrUpdateSpeaker, CreateVoiceProfile, SetSpeechLineVoiceOverride, ResolveSpeechVoice |
| Cost | EstimateSpeechCost, EstimateSpeechConversionCost |
| Generation | GenerateSpeech, GenerateSpeechTake, ProduceSpeechBank, RefetchSpeechLine |
| Conversion | ConvertSpeechLine, ConvertSpeechTake |
| Takes | ListSpeechTakes, ApplySpeechTake, MarkSpeechTakeChosen, SetSpeechTakeVariant, RemoveSpeechTake, RemoveSpeechTakeVariant |
| Graduation | MarkSpeechLineRecorded, RegisterRecordedSpeechTake, ApplyRecordedAudio, AcceptCurrentSpeechAudio |
| Localisation | LocalizeSpeechBank, DubSpeechLine |
| Providers and paths | GetSpeechProviderCapabilities, GetSpeechCredentialStatus, TestSpeechProviderConnection, GetSpeechOutputPaths, SetSpeechOutputRoot |
| Navigation | OpenSpeechLibrary |
ResolveSpeechVoice is the one to reach for when a voice is wrong. It
reports which voice a line would actually be spoken in and why — which of
the four resolution steps
answered. Without it, a wrong voice is an archaeology expedition.
| Plugin | Role | Licence | Version |
|---|---|---|---|
| SpeechForge source | coreThe subsystem. Install this one. | Open | 0.2.2 |
| SpeechForgeDeepL | providerA route to a generator — a vendor API, or a container on your own GPU. | Paid | 0.1.2 |
| SpeechForgeElevenLabs source | providerA route to a generator — a vendor API, or a container on your own GPU. | Open | 0.1.1 |
| SpeechForgeToolset source | toolsetThe same subsystem as typed MCP tools, for an agent. Adds nothing of its own. | Open | 0.2.2 |
Casting from an agent
The casting tools are the ones worth knowing about, because a voice cast by an agent and a voice cast by a person must end up identical:
- Create a voice profile, create or update a speaker, list either.
- Set a per-line voice override, update a line.
- Dedupe a remote voice into a profile — ask for a profile for a provider's voice and get the existing one if there is one, rather than a second profile pointing at the same voice.
That last one exists because an agent casting forty speakers from a vendor library will otherwise create forty profiles for the eight voices it actually used.
Migration is a tool, not a redirect
When the casting model changed, the old assets were deleted and the data migrated live through the toolset rather than carried forward on redirects.
That is the general rule here: redirects are migration scaffolding. Bake them in by resaving, then delete them. A project carrying redirects for a rename that happened months ago is carrying a liability nobody remembers.
What an agent may not do
- Write a credential. It can report whether one is present and where it was read from.
- Overwrite a recording. A forced regeneration refuses anything whose
origin is not
Generated, and the refusal says which. - Create or delete a voice on the provider. A key that can create one can generally delete one, and deleting a voice loses every line it ever spoke, unrecoverably. There is no tool for it at all.
The second one is the whole point of the two-axis graduation model. An agent asked to "regenerate everything stale" must not be able to destroy a line an actor recorded.
Two estimate tools, because two things bill differently.
EstimateSpeechCost prices synthesis per character and can quote a figure.
EstimateSpeechConversionCost prices re-voicing, which bills by the second of
audio that does not exist yet. The panel's own estimate line says both halves
separately for the same reason.