The model
A pronunciation dictionary is a named entity in your workspace, created and edited independently of any agent. An agent points at one throughpronunciation_dictionary_id:
- One dictionary per agent. An agent applies exactly the dictionary it is bound to.
- Many agents per dictionary. Several agents can share one dictionary.
- Provider-agnostic. Rules are applied as a text substitution before the words reach text-to-speech, so they behave identically for Sarvam, Murf, ElevenLabs, Edge, and every other provider.
- Read for all, write for admins. Every workspace member can list and attach dictionaries (
pronunciation_dictionary:read); only admins can create, edit, or delete them (pronunciation_dictionary:write). - Names are unique within a workspace; creating a duplicate returns
409.
Manage dictionaries
Entry shape
Each entry is a single rule. A dictionary holds up to 500 entries.
Two entries may not share the same
grapheme + language, so a match is always unambiguous. substitution rewrites the spoken text and works with every provider; ipa is reserved for a future provider-native path (stored today, applied only where the catalog lists the provider under pronunciation_dictionary_ipa_providers).
Attach to an agent
Setpronunciation_dictionary_id on the agent — on create or while it is a draft:
pronunciation_dictionary_id becomes null, and nothing else changes.
Agents
Bind a dictionary to an agent.
Providers & Models
Where voices are chosen.

