Speech Products: TTS

Text-to-Speech (TTS) gives an application a voice—turning generated or stored text into natural-sounding audio on demand. It is what lets an IVR read back an account balance, a virtual agent answer in conversation, or a notification system speak an alert, without recording every phrase in advance.


Text-to-Speech (TTS)

Overview

Neural Text-to-Speech converts supplied text into an audio file or audio stream. Input is provided either as plain text or as a Speech Synthesis Markup Language (SSML) document, and the resulting audio can be retrieved as a single byte array or in segments (chunks) for low-latency playback. Client applications play the audio back as required.

Every supported language ships with a choice of distinctive male and female voices, so an implementation can respond to users in the voice that best fits its audience and brand. For the full list of available voices, see TTS Languages (Neural).


SSML

SSML gives applications precise, standards-based control over how text is synthesized—a way to instruct the synthesizer rather than leave pronunciation to its defaults. The platform supports SSML 1.0 to control the pronunciation, tone, and stress of synthesized speech. Within an SSML document you can select a language, choose a voice, and fine-tune the result where needed. For the full element reference, see SSML Elements.

Text Normalization for TTS

Input text contains more than words—numbers, dates, acronyms, abbreviations, symbols, and punctuation all appear in real-world content. Before synthesis, each of these must be converted into the words or pauses a listener expects to hear. The synthesizer performs this conversion internally, following W3C standards for normalization.

Extending Text Normalization

For some voices, customers can extend the default normalization to handle additional cases—domain-specific terms, product names, or formats unique to their application. This is accomplished through PLS lexicons (see the “lexicon” element).

The “say-as” Element

The SSML “say-as” element lets you annotate a fragment of text to force a specific interpretation or pronunciation—for example, reading a string of digits as a phone number rather than a single value. Reserve it for cases where the default normalization rules produce speech that differs from what users expect.


Related Articles


Was this article helpful?