> Fetch clean Markdown by appending `.md` to any page URL under https://signalwire.com/docs or requesting it with the HTTP header `Accept: text/markdown`. The root index at https://signalwire.com/docs/llms.txt lists the available documentation indexes. # Amazon Polly > Learn how to use Polly TTS voices on the SignalWire platform. Amazon Web Services' Polly TTS engine includes several models to accommodate different use cases. ## Models SignalWire supports the following three Amazon models. #### [Standard](https://docs.aws.amazon.com/polly/latest/dg/standard-voices.html) 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](https://docs.aws.amazon.com/polly/latest/dg/neural-voices.html) Polly Neural produces more natural, human-like speech than Polly Standard. Example voice ID string: `amazon.Kendra:neural:en-US` #### [Generative](https://docs.aws.amazon.com/polly/latest/dg/generative-voices.html) Polly Generative is Amazon's largest and most realistic model. Example voice ID string: `amazon.Danielle:generative:en-US` ## Voices Browse Amazon's list of [available voices](https://docs.aws.amazon.com/polly/latest/dg/available-voices.html) and build the voice ID string as shown in the model cards above. ## 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](https://docs.aws.amazon.com/polly/latest/dg/available-voices.html) Most Amazon Polly voices support a single language. Select voices from this list, which includes Standard, Neural, and Generative models. #### [Bilingual pronunciation](https://docs.aws.amazon.com/polly/latest/dg/bilingual-voices.html#accented-bilingual) All Amazon Polly voices support accented bilingual pronunciation through the use of the SSML `lang` tag. #### [Fully bilingual voices](https://docs.aws.amazon.com/polly/latest/dg/bilingual-voices.html#true-bilingual) 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) > **Note** > > The `polly` engine code is being deprecated. Use `amazon` instead. > **Warning** > > 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 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." ``` #### Relay Realtime SDK ```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(); ``` #### Call Flow Builder In a **Play Audio or TTS** node, choose **Text to Speech** and select the Amazon Polly voice `amazon.Ruth:neural`. [polly]: https://docs.aws.amazon.com/polly/latest/dg/available-voices.html "Available Amazon Polly voices" > Text-to-speech