*** id: f7fbcf5a-022b-4b2e-ae2b-fdad62017204 title: Amazon Polly description: Learn how to use Polly TTS voices on the SignalWire platform. slug: /voice/tts/amazon-polly ----------------------------- Amazon Web Services' Polly TTS engine includes several models to accommodate different use cases. ## Models SignalWire supports the following three Amazon models. 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` Polly Neural produces more natural, human-like speech than Polly Standard. Example voice ID string: `amazon.Kendra:neural:en-US` 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. Most Amazon Polly voices support a single language. Select voices from this list, which includes Standard, Neural, and Generative models. All Amazon Polly voices support accented bilingual pronunciation through the use of the SSML `lang` tag. Learn more about fully bilingual voices like `Aditi`, `Kajal`, `Hala`, and `Zayd`, which are designed to fluently speak two languages. ## Usage Amazon voice IDs conform to the following format: ``` amazon.:: ``` | Parameter | Possible values | Description | | :--------------------------------------------------------- | :---------------------------------------------------------------------------- | :-------------------------------------- | | `engine`
required |
  • `amazon`
  • `polly` (will be deprecated in the future)
| TTS engine | | `voice`
required | Choose from the [**Name/ID** column][polly] | Voice ID | | `model`
optional | `standard`, `neural`, or `generative` | Amazon Polly model. Default: `standard` | | `language`
optional | Choose from the [**Language code** column][polly] | Sets model language. Default: `en-US` | **Examples:** ``` amazon.Joanna amazon.Joanna:standard:en-US amazon.Kendra:neural:en-US amazon.Matthew:neural:en-US amazon.Danielle:generative:en-US amazon.Amy:generative:en-GB amazon.Aditi:standard:hi-IN ``` **Simplified Format:** For voices that only support one model, you can omit the model parameter: ``` amazon.: ``` Example: `amazon.Aditi:hi-IN` (Standard model implied) 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. Use the [**`languages`**](/docs/swml/reference/ai/languages#use-voice-strings) SWML method to set one or more voices for an [AI agent](/docs/swml/reference/ai). ```yaml 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](/docs/swml/reference/play#variables) of the [**`play`**](/docs/swml/reference/play) SWML method to select a voice for basic TTS. ```yaml 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." ``` ```javascript // 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(); ``` ![The Call Flow Builder interface. A voice is selected in the drop-down menu.](https://files.buildwithfern.com/signalwire.docs.buildwithfern.com/docs/ff0711b6accf078bb7ffef69b47e886e8d1cd241674e12020ed6428843a7181b/assets/images/call-flow/tts/polly-cfb-voice.webp) [polly]: https://docs.aws.amazon.com/polly/latest/dg/available-voices.html "Available Amazon Polly voices"