Skip to main content
Custom dictionaries are per-project pronunciation and replacement lists. Each entry maps a written word to the text or IPA the TTS pipeline should pronounce instead. Use them for brand names, product names, acronyms, and domain vocabulary that should sound consistent across requests. To apply a dictionary when generating speech, pass its project_id; see Dictionaries at synthesis. For the full HTTP contract, field limits, master-key project_id rules, and error codes, see the Dictionaries API reference.

Create a Dictionary

Manage Dictionaries

Every dictionary and entry method accepts a keyword-only project_id. It is required only for master-key callers acting on a specific project; with a normal project-scoped API key, omit it.

Add and Manage Entries

Use replacement for normal spelling-based fixes. Use ipa when you need an exact phonetic pronunciation; IPA takes precedence over replacement.

Atomic Bulk Sync

replace_all upserts every entry in one transaction and deletes entries currently in the dictionary whose word is not in the payload. Use it to sync from a CMS, PIM, or internal glossary.
replace_all is intentionally destructive for omitted words. Only call it with the complete desired contents of that dictionary.

Dictionaries at synthesis

Dictionaries apply to a synthesis request only when it carries the dictionary’s project_id. Every generation and session method accepts a project_id keyword: generate(), generate_async(), stream(), stream_async(), streaming_session(), streaming_session_sync() and multi_context_session(). With project_id set, the project’s active dictionaries for the request language apply. Add dictionary_ids for an exact selection, or pass [] to disable dictionaries for the request. A non-empty dictionary_ids without project_id is rejected.

Clean up

Next steps

Last modified on September 23, 2026