Skip to main content
A pronunciation dictionary is a named set of substitution rules that fix how an agent speaks particular words. Bind one to an agent and, just before each line is spoken, the agent rewrites the matching text — so “Lehar” becomes “luh-har” no matter which TTS provider is running.

The model

A pronunciation dictionary is a named entity in your workspace, created and edited independently of any agent. An agent points at one through pronunciation_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

Set pronunciation_dictionary_id on the agent — on create or while it is a draft:
The dictionary must belong to the same workspace. Deleting a dictionary that agents still reference simply unbinds them — their pronunciation_dictionary_id becomes null, and nothing else changes.

Agents

Bind a dictionary to an agent.

Providers & Models

Where voices are chosen.