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.
Changes are available to synthesis after the dictionary mutation finishes.
Generation must send the dictionary’s project_id; omission loads no project
dictionary. See Dictionaries at Synthesis.
For the full HTTP contract, field limits, and error codes, see the Dictionaries API reference.
Create a Dictionary
Manage Dictionaries
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
replaceAll 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.
replaceAll is intentionally destructive for omitted words. Only call it
with the complete desired contents of that dictionary.
Delete a Dictionary
Deleting a dictionary also deletes its entries:
Dictionaries at Synthesis
Set .projectId(long) on GenerateRequest, StreamConfig or
MultiContextConfig. With the project set, its active dictionaries for the
request language apply. Add .dictionaryIds(...) for an exact selection, or
List.of() to disable dictionaries for the request. A non-empty
.dictionaryIds(...) without .projectId(...) is rejected.
Next steps
Last modified on September 23, 2026