Lokutor said as Lokútor, Stranger Things in Spanish as Estrénjer Zings. Entries apply before numbers and symbols are read, so 4K, C++ or COVID-19 can be overridden too.
Entries live in pronunciation dictionaries on your account, and apply:
- to every synthesis your account makes, from its default dictionary;
- to an agent’s calls, from the dictionaries the agent uses (dashboard: the agent’s settings);
- to one request, from the dictionaries it names and the entries it carries.
Writing a good respelling
- Write it as it sounds in the language being spoken, with that language’s letters: Spanish
Guatsápfor WhatsApp, Catalan or French spellings for those languages. - Mark the stressed syllable with an accent where the language uses one:
Lokútor. - Lowercase. A short word in capitals (
NASA) is read letter by letter, so it is rejected. - No digits: they are read as numbers. Write them as words.
- Give a respelling per language you need. A term with no respelling for the language being spoken is said as written.
Entry
Matching. Longest term first, left to right, one pass (a respelling is never matched again). A term matches only as a whole word:
Teams matches in Teams. and Teams's, not in TeamsPro or Teams-like. In French, Catalan, Italian and Portuguese a term also matches after an elided article or preposition: l'iPhone, d'Amazon, dell'App, qu'Uber keep their l', d'… and respell only the term.
Dictionaries
Authenticate as for any API call (Authorization: Bearer or X-API-Key). An account has at most 50 dictionaries of at most 2,000 entries each, and at most one default.
GET /v1/pronunciation-dictionaries
POST /v1/pronunciation-dictionaries
Creates a dictionary. Body: name (1–100 characters), is_default (making one the default clears the previous one), entries. Returns 201 with the dictionary.
GET, PUT, DELETE /v1/pronunciation-dictionaries/{id}
PUT replaces the dictionary’s name, is_default and entries with the body’s. DELETE removes it; agents that used it simply stop using it.
Validation
Every save is checked by the same text processing the voice uses. A respelling the voice cannot say as written is refused with400 and the problems found:
index is the entry’s position. level is error (not saved) or warning (saved: digits, which are read as numbers). A save with warnings and no errors succeeds (201 or 200) and returns the dictionary with its warnings under problems, in the same shape.
Per request
POST /tts/synthesize and WS /ws/tts take:
Markup
Thetext of any request may carry:
Anything else that looks like a tag is read as written.