Amazon Polly
Amazon Web Services' Polly TTS engine includes several models to accommodate different use cases.
Models​
SignalWire supports the following three Amazon models.
Standard
Polly Standard is a traditional, cost-effective, and reliable TTS model.
Example voice ID string: amazon.Emma:en-GB
or amazon.Emma:standard:en-GB
Neural
Polly Neural produces more natural, human-like speech than Polly Standard.
Example voice ID string: amazon.Kendra:neural:en-US
Generative
Polly Generative is Amazon's largest and most realistic model.
Example voice ID string: amazon.Danielle:generative:en-US
Languages​
Consult AWS documentation for a comprehensive and up-to-date list of supported voices, as well as information on accented and fully bilingual voices.
List of supported voices
Most Amazon Polly voices support a single language. Select voices from this list, which includes Standard, Neural, and Generative models.
Bilingual pronunciation
All Amazon Polly voices support accented bilingual pronunciation through the use of the SSML lang
tag.
Fully bilingual voices
Learn more about fully bilingual voices like Aditi
, Kajal
, Hala
, and Zayd
,
which are designed to fluently speak two languages.
Voice IDs​
Amazon voice IDs are composed of four sections:
Parameter | Possible values | Description |
---|---|---|
engine required |
| TTS engine |
voice required | Choose from the Name/ID column | Voice ID |
model optional | standard , neural , or generative | Amazon Polly model. Default: standard |
language optional | Choose from the Language code column | Sets model language. Default: en-US |
Create the voice string according to the following pattern:
amazon.voice:model:language
Examples​
# The Danielle voice, which supports the default Standard model and en-US language
amazon.Danielle
# Two equivalent strings for the Standard-model Aditi bilingual voice in the Hindi language
amazon.Aditi:standard:hi-IN
amazon.Aditi:hi-IN
# The Amy Generative model in British English
amazon.Amy:generative:en-GB
The polly
engine code is being deprecated. Use amazon
instead.
Amazon Polly has a limit of 3000 chargeable characters in a single request. If your TTS request is longer than 3000 characters, you will experience silence.
Examples​
See how to use Amazon Polly voices on the SignalWire platform.
- SWML
- RELAY Realtime SDK
- Call Flow Builder
- cXML
Use the
languages
SWML method to set one or more voices for an AI agent.
version: 1.0.0
sections:
main:
- ai:
prompt:
text: Have an open-ended conversation about flowers.
languages:
- name: English
code: en-US
voice: amazon.Ruth:neural
Alternatively, use the say_voice
parameter
of the play
SWML method to select a voice for basic TTS.
version: 1.0.0
sections:
main:
- set:
say_voice: "amazon.Ruth:neural"
- play: "say:Greetings. This is the Ruth voice from Amazon Polly's Neural text-to-speech model."
// This example uses the Node.js SDK for SignalWire's RELAY Realtime API.
const playback = await call.playTTS({
text: "Greetings. This is the Ruth voice from Amazon Polly's Neural text-to-speech model.",
voice: "amazon.Ruth:neural",
});
await playback.ended();

<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Say voice="amazon.Ruth:neural">
Greetings. This is the Ruth voice from Amazon Polly's Neural text-to-speech model.
</Say>
</Response>