Text To Speech (TTS), also known as speech synthesis, is a process in which text is converted into a human-sounding voice. Developers and business users alike use TTS to turn traditional human-to-human interactions into seamless, machine-to-human interactions, and make every interaction over voice a frictionless and first-class experience.
Instead of recording audio files with human voices to play back in a call, which has limited flexibility and is not a scalable option, TTS prompts can be dynamically, programmatically generated from raw text as a response to events in your application. Whether the use case is an Interactive Voice Response (IVR), a conversational assistant for scaling contact centers, or Voice notifications to deliver critical messages over a phone call, Text To Speech capabilities enable efficiency at global scale while enhancing customer engagement.
Click on a section name below to jump to that section.
You can provide text and Twilio will synthesize speech in real time and speak back the audio in any call or conference. TTS is available via the <Say>
TwiML verb and Studio's Say/Play Widget.
The <Say> verb allows you to provide plain text that Twilio converts to synthesized speech.
For example, when Twilio executes the following TwiML during a call, the caller hears "Hello world!" The synthesized voice the caller hears is the default voice and language of the Twilio Account (configured in the Twilio Console).
1<Response>2<Say>Hello world!</Say>3</Response>
<Say>
also allows you to modify the language, accent, and voice of the synthesized speech via the language
and voice
attributes. The example below uses Amazon Polly's "Joanna" voice and American English:
1<Response>2<Say language="en-US" voice="Polly.Joanna">Hello. I am Joanna and I speak American English!</Say>3</Response>
<Say>
offers different options for voices, each with its own supported set of languages and genders, so you can customize your application with Text To Speech capabilities according to your needs and preferences.
To start using TTS, complete the following steps:
Twilio Studio is a visual, serverless tool that uses Widgets to represent various parts of Twilio's platform features and functionality to design and build applications with little or no code.
The Say/Play Widget allows you to add Text To Speech capabilities to your application with ease, including embedding SSML for supported voices.
To start using TTS with Studio, complete the following steps:
Twilio's Text To Speech offering has a variety of different voices in multiple languages and locales with their associated accents and pronunciations. There are three types of voices with different quality, language coverage and pricing: Basic, Standard, and Premium.
Basic voices are first-generation voices. They can be used to get started and familiarize yourself with Text To Speech capabilities using <Say>, but may not have enough human-like qualities to build conversational applications and deliver superior user experiences over a voice call. The voices in this tier are available in a limited number of languages at no cost.
Standard voices offer standard TTS technology and produce natural-sounding synthesized speech with a variety of lifelike voices. The voices in this tier are provided by Amazon (Amazon Polly) and Google (Standard), with support for SSML (Speech Synthesis Markup Language), which allows developers to control many aspects of the synthesized speech.
Effective June 26 2023, Alice voices are no longer supported for Text-To-Speech and any request will be redirected to an alternate voice. It is recommended to update configuration in your Console, Studio Flows, and backend application to remove any references to alice
voices. For more information, visit the Changelog.
Google voices (Standard, WaveNet and Neural2) are available in Public Beta
The following table contains all voices available for each language and locale. You can test the different voices from the TTS Settings page in the Twilio Console.
Note: Invalid combination of voice
and language
attributes may result in error and <Say>
instruction failure.
Voices listed with (*) are fully bilingual voices. At the moment only Amazon Polly has this capability for a limited number of voices. Learn more by visiting Amazon's Bilingual Voices documentation.
Language (Locale) | ID | Type | Gender | Voice name |
---|---|---|---|---|
Afrikaans (South Africa) | af-ZA | Standard | Female | Google.af-ZA-Standard-A |
Arabic (Standard) | arb | Standard | Female | Polly.Zeina |
Arabic (Standard) | ar-XA | Standard | Female | Google.ar-XA-Standard-A |
Arabic (Standard) | ar-XA | Standard | Male | Google.ar-XA-Standard-B |
Arabic (Standard) | ar-XA | Standard | Male | Google.ar-XA-Standard-C |
Arabic (Standard) | ar-XA | Standard | Female | Google.ar-XA-Standard-D |
Arabic (Standard) | ar-XA | Premium | Female | Google.ar-XA-Wavenet-A |
Arabic (Standard) | ar-XA | Premium | Male | Google.ar-XA-Wavenet-B |
Arabic (Standard) | ar-XA | Premium | Male | Google.ar-XA-Wavenet-C |
Arabic (Standard) | ar-XA | Premium | Female | Google.ar-XA-Wavenet-D |
Arabic (Gulf) | ar-AE | Premium | Female | Polly.Hala-Neural * |
Arabic (Gulf) | ar-AE | Premium | Male | Polly.Zayd-Neural * |
Basque (Spain) | eu-ES | Standard | Female | Google.eu-ES-Standard-A |
Bengali (India) | bn-IN | Standard | Female | Google.bn-IN-Standard-C |
Bengali (India) | bn-IN | Standard | Male | Google.bn-IN-Standard-D |
Bengali (India) | bn-IN | Premium | Female | Google.bn-IN-Wavenet-C |
Bengali (India) | bn-IN | Premium | Male | Google.bn-IN-Wavenet-D |
Bulgarian (Bulgaria) | bg-BG | Standard | Female | Google.bg-BG-Standard-A |
Catalan (Spain) | ca-ES | Premium | Female | Polly.Arlet-Neural |
Catalan (Spain) | ca-ES | Standard | Female | Google.ca-ES-Standard-A |
Chinese Cantonese | yue-CN | Premium | Female | Polly.Hiujin-Neural |
Chinese Cantonese (Hong Kong) | yue-HK | Standard | Female | Google.yue-HK-Standard-A |
Chinese Cantonese (Hong Kong) | yue-HK | Standard | Male | Google.yue-HK-Standard-B |
Chinese Cantonese (Hong Kong) | yue-HK | Standard | Female | Google.yue-HK-Standard-C |
Chinese Cantonese (Hong Kong) | yue-HK | Standard | Male | Google.yue-HK-Standard-D |
Chinese Mandarin | cmn-CN | Standard | Female | Polly.Zhiyu |
Chinese Mandarin | cmn-CN | Premium | Female | Polly.Zhiyu-Neural |
Chinese Mandarin | cmn-CN | Standard | Female | Google.cmn-CN-Standard-A |
Chinese Mandarin | cmn-CN | Standard | Male | Google.cmn-CN-Standard-B |
Chinese Mandarin | cmn-CN | Standard | Male | Google.cmn-CN-Standard-C |
Chinese Mandarin | cmn-CN | Standard | Female | Google.cmn-CN-Standard-D |
Chinese Mandarin | cmn-CN | Premium | Female | Google.cmn-CN-Wavenet-A |
Chinese Mandarin | cmn-CN | Premium | Male | Google.cmn-CN-Wavenet-B |
Chinese Mandarin | cmn-CN | Premium | Male | Google.cmn-CN-Wavenet-C |
Chinese Mandarin | cmn-CN | Premium | Female | Google.cmn-CN-Wavenet-D |
Chinese Mandarin (Taiwan) | cmn-TW | Standard | Female | Google.cmn-TW-Standard-A |
Chinese Mandarin (Taiwan) | cmn-TW | Standard | Male | Google.cmn-TW-Standard-B |
Chinese Mandarin (Taiwan) | cmn-TW | Standard | Male | Google.cmn-TW-Standard-C |
Chinese Mandarin (Taiwan) | cmn-TW | Premium | Female | Google.cmn-TW-Wavenet-A |
Chinese Mandarin (Taiwan) | cmn-TW | Premium | Male | Google.cmn-TW-Wavenet-B |
Chinese Mandarin (Taiwan) | cmn-TW | Premium | Male | Google.cmn-TW-Wavenet-C |
Czech (Czech Republic) | cs-CZ | Standard | Female | Google.cs-CZ-Standard-A |
Czech (Czech Republic) | cs-CZ | Premium | Female | Google.cs-CZ-Wavenet-A |
Danish (Denmark) | da-DK | Standard | Male | Polly.Mads |
Danish (Denmark) | da-DK | Standard | Female | Polly.Naja |
Danish (Denmark) | da-DK | Premium | Female | Polly.Sofie-Neural |
Danish (Denmark) | da-DK | Standard | Female | Google.da-DK-Standard-A |
Danish (Denmark) | da-DK | Standard | Male | Google.da-DK-Standard-C |
Danish (Denmark) | da-DK | Standard | Female | Google.da-DK-Standard-D |
Danish (Denmark) | da-DK | Standard | Female | Google.da-DK-Standard-E |
Danish (Denmark) | da-DK | Premium | Female | Google.da-DK-Wavenet-A |
Danish (Denmark) | da-DK | Premium | Male | Google.da-DK-Wavenet-C |
Danish (Denmark) | da-DK | Premium | Female | Google.da-DK-Wavenet-D |
Danish (Denmark) | da-DK | Premium | Female | Google.da-DK-Wavenet-E |
Dutch (Belgium) | nl-BE | Premium | Female | Polly.Lisa-Neural |
Dutch (Belgium) | nl-BE | Standard | Female | Google.nl-BE-Standard-A |
Dutch (Belgium) | nl-BE | Standard | Male | Google.nl-BE-Standard-B |
Dutch (Belgium) | nl-BE | Premium | Female | Google.nl-BE-Wavenet-A |
Dutch (Belgium) | nl-BE | Premium | Male | Google.nl-BE-Wavenet-B |
Dutch (Netherlands) | nl-NL | Standard | Female | Polly.Lotte |
Dutch (Netherlands) | nl-NL | Standard | Male | Polly.Ruben |
Dutch (Netherlands) | nl-NL | Premium | Female | Polly.Laura-Neural |
Dutch (Netherlands) | nl-NL | Standard | Female | Google.nl-NL-Standard-A |
Dutch (Netherlands) | nl-NL | Standard | Male | Google.nl-NL-Standard-B |
Dutch (Netherlands) | nl-NL | Standard | Male | Google.nl-NL-Standard-C |
Dutch (Netherlands) | nl-NL | Standard | Female | Google.nl-NL-Standard-D |
Dutch (Netherlands) | nl-NL | Standard | Female | Google.nl-NL-Standard-E |
Dutch (Netherlands) | nl-NL | Premium | Female | Google.nl-NL-Wavenet-A |
Dutch (Netherlands) | nl-NL | Premium | Male | Google.nl-NL-Wavenet-B |
Dutch (Netherlands) | nl-NL | Premium | Male | Google.nl-NL-Wavenet-C |
Dutch (Netherlands) | nl-NL | Premium | Female | Google.nl-NL-Wavenet-D |
Dutch (Netherlands) | nl-NL | Premium | Female | Google.nl-NL-Wavenet-E |
English (Australia) | en-AU | Standard | Female | Polly.Nicole |
English (Australia) | en-AU | Standard | Male | Polly.Russell |
English (Australia) | en-AU | Premium | Female | Polly.Olivia-Neural |
English (Australia) | en-AU | Standard | Female | Google.en-AU-Standard-A |
English (Australia) | en-AU | Standard | Male | Google.en-AU-Standard-B |
English (Australia) | en-AU | Standard | Female | Google.en-AU-Standard-C |
English (Australia) | en-AU | Standard | Male | Google.en-AU-Standard-D |
English (Australia) | en-AU | Premium | Female | Google.en-AU-Wavenet-A |
English (Australia) | en-AU | Premium | Male | Google.en-AU-Wavenet-B |
English (Australia) | en-AU | Premium | Female | Google.en-AU-Wavenet-C |
English (Australia) | en-AU | Premium | Male | Google.en-AU-Wavenet-D |
English (Australia) | en-AU | Premium | Female | Google.en-AU-Neural2-A |
English (Australia) | en-AU | Premium | Male | Google.en-AU-Neural2-B |
English (Australia) | en-AU | Premium | Female | Google.en-AU-Neural2-C |
English (Australia) | en-AU | Premium | Male | Google.en-AU-Neural2-D |
English (India) | en-IN | Standard | Female | Polly.Aditi * |
English (India) | en-IN | Standard | Female | Polly.Raveena |
English (India) | en-IN | Premium | Female | Polly.Kajal-Neural * |
English (India) | en-IN | Standard | Female | Google.en-IN-Standard-A |
English (India) | en-IN | Standard | Male | Google.en-IN-Standard-B |
English (India) | en-IN | Standard | Male | Google.en-IN-Standard-C |
English (India) | en-IN | Standard | Female | Google.en-IN-Standard-D |
English (India) | en-IN | Premium | Female | Google.en-IN-Wavenet-A |
English (India) | en-IN | Premium | Male | Google.en-IN-Wavenet-B |
English (India) | en-IN | Premium | Male | Google.en-IN-Wavenet-C |
English (India) | en-IN | Premium | Female | Google.en-IN-Wavenet-D |
English (India) | en-IN | Premium | Female | Google.en-IN-Neural2-A |
English (India) | en-IN | Premium | Male | Google.en-IN-Neural2-B |
English (India) | en-IN | Premium | Male | Google.en-IN-Neural2-C |
English (India) | en-IN | Premium | Female | Google.en-IN-Neural2-D |
English (Ireland) | en-IE | Premium | Female | Polly.Niamh-Neural |
English (New Zealand) | en-NZ | Premium | Female | Polly.Aria-Neural |
English (South African) | en-ZA | Premium | Female | Polly.Ayanda-Neural |
English (UK) | en-GB | Basic | Male | Man |
English (UK) | en-GB | Basic | Female | Woman |
English (UK) | en-GB | Standard | Female | Polly.Amy |
English (UK) | en-GB | Standard | Male | Polly.Brian |
English (UK) | en-GB | Standard | Female | Polly.Emma |
English (UK) | en-GB | Premium | Female | Polly.Amy-Neural |
English (UK) | en-GB | Premium | Female | Polly.Emma-Neural |
English (UK) | en-GB | Premium | Male | Polly.Brian-Neural |
English (UK) | en-GB | Premium | Male | Polly.Arthur-Neural |
English (UK) | en-GB | Standard | Female | Google.en-GB-Standard-A |
English (UK) | en-GB | Standard | Male | Google.en-GB-Standard-B |
English (UK) | en-GB | Standard | Female | Google.en-GB-Standard-C |
English (UK) | en-GB | Standard | Male | Google.en-GB-Standard-D |
English (UK) | en-GB | Standard | Female | Google.en-GB-Standard-F |
English (UK) | en-GB | Premium | Female | Google.en-GB-Wavenet-A |
English (UK) | en-GB | Premium | Male | Google.en-GB-Wavenet-B |
English (UK) | en-GB | Premium | Female | Google.en-GB-Wavenet-C |
English (UK) | en-GB | Premium | Male | Google.en-GB-Wavenet-D |
English (UK) | en-GB | Premium | Female | Google.en-GB-Wavenet-F |
English (UK) | en-GB | Premium | Female | Google.en-GB-Neural2-A |
English (UK) | en-GB | Premium | Male | Google.en-GB-Neural2-B |
English (UK) | en-GB | Premium | Female | Google.en-GB-Neural2-C |
English (UK) | en-GB | Premium | Male | Google.en-GB-Neural2-D |
English (UK) | en-GB | Premium | Female | Google.en-GB-Neural2-F |
English (US) | en-US | Basic | Male | Man |
English (US) | en-US | Basic | Female | Woman |
English (US) | en-US | Standard | Female | Polly.Ivy |
English (US) | en-US | Standard | Female | Polly.Joanna |
English (US) | en-US | Standard | Male | Polly.Joey |
English (US) | en-US | Standard | Male | Polly.Justin |
English (US) | en-US | Standard | Female | Polly.Kendra |
English (US) | en-US | Standard | Female | Polly.Kimberly |
English (US) | en-US | Standard | Male | Polly.Matthew |
English (US) | en-US | Standard | Female | Polly.Salli |
English (US) | en-US | Premium | Female (child) | Polly.Ivy-Neural |
English (US) | en-US | Premium | Female | Polly.Joanna-Neural* |
English (US) | en-US | Premium | Female | Polly.Kendra-Neural |
English (US) | en-US | Premium | Male (child) | Polly.Kevin-Neural |
English (US) | en-US | Premium | Female | Polly.Kimberly-Neural |
English (US) | en-US | Premium | Female | Polly.Salli-Neural |
English (US) | en-US | Premium | Male | Polly.Joey-Neural |
English (US) | en-US | Premium | Male (child) | Polly.Justin-Neural |
English (US) | en-US | Premium | Male | Polly.Matthew-Neural* |
English (US) | en-US | Premium | Female | Polly.Ruth-Neural |
English (US) | en-US | Premium | Male | Polly.Stephen-Neural |
English (US) | en-US | Premium | Male | Polly.Gregory-Neural |
English (US) | en-US | Premium | Female | Polly.Danielle-Neural |
English (US) | en-US | Standard | Male | Google.en-US-Standard-A |
English (US) | en-US | Standard | Male | Google.en-US-Standard-B |
English (US) | en-US | Standard | Female | Google.en-US-Standard-C |
English (US) | en-US | Standard | Male | Google.en-US-Standard-D |
English (US) | en-US | Standard | Female | Google.en-US-Standard-E |
English (US) | en-US | Standard | Female | Google.en-US-Standard-F |
English (US) | en-US | Standard | Female | Google.en-US-Standard-G |
English (US) | en-US | Standard | Female | Google.en-US-Standard-H |
English (US) | en-US | Standard | Male | Google.en-US-Standard-I |
English (US) | en-US | Standard | Male | Google.en-US-Standard-J |
English (US) | en-US | Premium | Male | Google.en-US-Wavenet-A |
English (US) | en-US | Premium | Male | Google.en-US-Wavenet-B |
English (US) | en-US | Premium | Female | Google.en-US-Wavenet-C |
English (US) | en-US | Premium | Male | Google.en-US-Wavenet-D |
English (US) | en-US | Premium | Female | Google.en-US-Wavenet-E |
English (US) | en-US | Premium | Female | Google.en-US-Wavenet-F |
English (US) | en-US | Premium | Female | Google.en-US-Wavenet-G |
English (US) | en-US | Premium | Female | Google.en-US-Wavenet-H |
English (US) | en-US | Premium | Male | Google.en-US-Wavenet-I |
English (US) | en-US | Premium | Male | Google.en-US-Wavenet-J |
English (US) | en-US | Premium | Male | Google.en-US-Neural2-A |
English (US) | en-US | Premium | Female | Google.en-US-Neural2-C |
English (US) | en-US | Premium | Male | Google.en-US-Neural2-D |
English (US) | en-US | Premium | Female | Google.en-US-Neural2-E |
English (US) | en-US | Premium | Female | Google.en-US-Neural2-F |
English (US) | en-US | Premium | Female | Google.en-US-Neural2-G |
English (US) | en-US | Premium | Female | Google.en-US-Neural2-H |
English (US) | en-US | Premium | Male | Google.en-US-Neural2-I |
English (US) | en-US | Premium | Male | Google.en-US-Neural2-J |
English (Welsh) | en-GB-WLS | Standard | Male | Polly.Geraint |
Filipino (Philippines) | fil-PH | Standard | Female | Google.fil-PH-Standard-A |
Filipino (Philippines) | fil-PH | Standard | Female | Google.fil-PH-Standard-B |
Filipino (Philippines) | fil-PH | Standard | Male | Google.fil-PH-Standard-C |
Filipino (Philippines) | fil-PH | Standard | Male | Google.fil-PH-Standard-D |
Filipino (Philippines) | fil-PH | Premium | Female | Google.fil-PH-Wavenet-A |
Filipino (Philippines) | fil-PH | Premium | Female | Google.fil-PH-Wavenet-B |
Filipino (Philippines) | fil-PH | Premium | Male | Google.fil-PH-Wavenet-C |
Filipino (Philippines) | fil-PH | Premium | Male | Google.fil-PH-Wavenet-D |
Finnish (Finland) | fi-FI | Premium | Female | Polly.Suvi-Neural |
Finnish (Finland) | fi-FI | Standard | Female | Google.fi-FI-Standard-A |
Finnish (Finland) | fi-FI | Premium | Female | Google.fi-FI-Wavenet-A |
French (Belgium) | fr-BE | Premium | Female | Polly.Isabelle-Neural |
French (Canada) | fr-CA | Standard | Female | Polly.Chantal |
French (Canada) | fr-CA | Premium | Female | Polly.Gabrielle-Neural |
French (Canada) | fr-CA | Premium | Male | Polly.Liam-Neural |
French (Canada) | fr-CA | Standard | Female | Google.fr-CA-Standard-A |
French (Canada) | fr-CA | Standard | Male | Google.fr-CA-Standard-B |
French (Canada) | fr-CA | Standard | Female | Google.fr-CA-Standard-C |
French (Canada) | fr-CA | Standard | Male | Google.fr-CA-Standard-D |
French (Canada) | fr-CA | Premium | Female | Google.fr-CA-Wavenet-A |
French (Canada) | fr-CA | Premium | Male | Google.fr-CA-Wavenet-B |
French (Canada) | fr-CA | Premium | Female | Google.fr-CA-Wavenet-C |
French (Canada) | fr-CA | Premium | Male | Google.fr-CA-Wavenet-D |
French (Canada) | fr-CA | Premium | Female | Google.fr-CA-Neural2-A |
French (Canada) | fr-CA | Premium | Male | Google.fr-CA-Neural2-B |
French (Canada) | fr-CA | Premium | Female | Google.fr-CA-Neural2-C |
French (Canada) | fr-CA | Premium | Male | Google.fr-CA-Neural2-D |
French (France) | fr-FR | Basic | Male | Man |
French (France) | fr-FR | Basic | Female | Woman |
French (France) | fr-FR | Standard | Female | Polly.Céline/Polly.Celine |
French (France) | fr-FR | Standard | Female | Polly.Léa/Polly.Lea |
French (France) | fr-FR | Standard | Male | Polly.Mathieu |
French (France) | fr-FR | Premium | Female | Polly.Lea-Neural |
French (France) | fr-FR | Premium | Male | Polly.Remi-Neural |
French (France) | fr-FR | Standard | Female | Google.fr-FR-Standard-A |
French (France) | fr-FR | Standard | Male | Google.fr-FR-Standard-B |
French (France) | fr-FR | Standard | Female | Google.fr-FR-Standard-C |
French (France) | fr-FR | Standard | Male | Google.fr-FR-Standard-D |
French (France) | fr-FR | Standard | Female | Google.fr-FR-Standard-E |
French (France) | fr-FR | Premium | Female | Google.fr-FR-Wavenet-A |
French (France) | fr-FR | Premium | Male | Google.fr-FR-Wavenet-B |
French (France) | fr-FR | Premium | Female | Google.fr-FR-Wavenet-C |
French (France) | fr-FR | Premium | Male | Google.fr-FR-Wavenet-D |
French (France) | fr-FR | Premium | Female | Google.fr-FR-Wavenet-E |
French (France) | fr-FR | Premium | Female | Google.fr-FR-Neural2-A |
French (France) | fr-FR | Premium | Male | Google.fr-FR-Neural2-B |
French (France) | fr-FR | Premium | Female | Google.fr-FR-Neural2-C |
French (France) | fr-FR | Premium | Male | Google.fr-FR-Neural2-D |
French (France) | fr-FR | Premium | Female | Google.fr-FR-Neural2-E |
Galician (Spain) | gl-ES | Standard | Female | Google.gl-ES-Standard-A |
German (Austria) | de-AT | Premium | Female | Polly.Hannah-Neural |
German (Germany) | de-DE | Basic | Male | Man |
German (Germany) | de-DE | Basic | Female | Woman |
German (Germany) | de-DE | Standard | Male | Polly.Hans |
German (Germany) | de-DE | Standard | Female | Polly.Marlene |
German (Germany) | de-DE | Standard | Female | Polly.Vicki |
German (Germany) | de-DE | Premium | Female | Polly.Vicki-Neural |
German (Germany) | de-DE | Premium | Male | Polly.Daniel-Neural |
German (Germany) | de-DE | Standard | Female | Google.de-DE-Standard-A |
German (Germany) | de-DE | Standard | Male | Google.de-DE-Standard-B |
German (Germany) | de-DE | Standard | Female | Google.de-DE-Standard-C |
German (Germany) | de-DE | Standard | Male | Google.de-DE-Standard-D |
German (Germany) | de-DE | Standard | Male | Google.de-DE-Standard-E |
German (Germany) | de-DE | Standard | Female | Google.de-DE-Standard-F |
German (Germany) | de-DE | Premium | Female | Google.de-DE-Wavenet-A |
German (Germany) | de-DE | Premium | Male | Google.de-DE-Wavenet-B |
German (Germany) | de-DE | Premium | Female | Google.de-DE-Wavenet-C |
German (Germany) | de-DE | Premium | Male | Google.de-DE-Wavenet-D |
German (Germany) | de-DE | Premium | Male | Google.de-DE-Wavenet-E |
German (Germany) | de-DE | Premium | Female | Google.de-DE-Wavenet-F |
German (Germany) | de-DE | Premium | Female | Google.de-DE-Neural2-A |
German (Germany) | de-DE | Premium | Male | Google.de-DE-Neural2-B |
German (Germany) | de-DE | Premium | Female | Google.de-DE-Neural2-C |
German (Germany) | de-DE | Premium | Male | Google.de-DE-Neural2-D |
German (Germany) | de-DE | Premium | Female | Google.de-DE-Neural2-F |
Greek (Greece) | el-GR | Standard | Female | Google.el-GR-Standard-A |
Greek (Greece) | el-GR | Premium | Female | Google.el-GR-Wavenet-A |
Gujarati (India) | gu-IN | Standard | Female | Google.gu-IN-Standard-C |
Gujarati (India) | gu-IN | Standard | Male | Google.gu-IN-Standard-D |
Gujarati (India) | gu-IN | Premium | Female | Google.gu-IN-Wavenet-C |
Gujarati (India) | gu-IN | Premium | Male | Google.gu-IN-Wavenet-D |
Hebrew (Israel) | he-IL | Standard | Female | Google.he-IL-Standard-A |
Hebrew (Israel) | he-IL | Standard | Male | Google.he-IL-Standard-B |
Hebrew (Israel) | he-IL | Standard | Female | Google.he-IL-Standard-C |
Hebrew (Israel) | he-IL | Standard | Male | Google.he-IL-Standard-D |
Hebrew (Israel) | he-IL | Premium | Female | Google.he-IL-Wavenet-A |
Hebrew (Israel) | he-IL | Premium | Male | Google.he-IL-Wavenet-B |
Hebrew (Israel) | he-IL | Premium | Female | Google.he-IL-Wavenet-C |
Hebrew (Israel) | he-IL | Premium | Male | Google.he-IL-Wavenet-D |
Hindi (India) | hi-IN | Standard | Female | Polly.Aditi * |
Hindi (India) | hi-IN | Premium | Female | Polly.Kajal-Neural * |
Hindi (India) | hi-IN | Standard | Female | Google.hi-IN-Standard-A |
Hindi (India) | hi-IN | Standard | Male | Google.hi-IN-Standard-B |
Hindi (India) | hi-IN | Standard | Male | Google.hi-IN-Standard-C |
Hindi (India) | hi-IN | Standard | Female | Google.hi-IN-Standard-D |
Hindi (India) | hi-IN | Premium | Female | Google.hi-IN-Wavenet-A |
Hindi (India) | hi-IN | Premium | Male | Google.hi-IN-Wavenet-B |
Hindi (India) | hi-IN | Premium | Male | Google.hi-IN-Wavenet-C |
Hindi (India) | hi-IN | Premium | Female | Google.hi-IN-Wavenet-D |
Hindi (India) | hi-IN | Premium | Female | Google.hi-IN-Neural2-A |
Hindi (India) | hi-IN | Premium | Male | Google.hi-IN-Neural2-B |
Hindi (India) | hi-IN | Premium | Male | Google.hi-IN-Neural2-C |
Hindi (India) | hi-IN | Premium | Female | Google.hi-IN-Neural2-D |
Hungarian (Hungary) | hu-HU | Standard | Female | Google.hu-HU-Standard-A |
Hungarian (Hungary) | hu-HU | Premium | Female | Google.hu-HU-Wavenet-A |
Icelandic (Iceland) | is-IS | Standard | Female | Polly.Dóra/Polly.Dora |
Icelandic (Iceland) | is-IS | Standard | Male | Polly.Karl |
Icelandic (Iceland) | is-IS | Standard | Female | Google.is-IS-Standard-A |
Indonesian (Indonesia) | id-ID | Standard | Female | Google.id-ID-Standard-A |
Indonesian (Indonesia) | id-ID | Standard | Male | Google.id-ID-Standard-B |
Indonesian (Indonesia) | id-ID | Standard | Male | Google.id-ID-Standard-C |
Indonesian (Indonesia) | id-ID | Standard | Female | Google.id-ID-Standard-D |
Indonesian (Indonesia) | id-ID | Premium | Female | Google.id-ID-Wavenet-A |
Indonesian (Indonesia) | id-ID | Premium | Male | Google.id-ID-Wavenet-B |
Indonesian (Indonesia) | id-ID | Premium | Male | Google.id-ID-Wavenet-C |
Indonesian (Indonesia) | id-ID | Premium | Female | Google.id-ID-Wavenet-D |
Italian (Italy) | it-IT | Basic | Male | Man |
Italian (Italy) | it-IT | Basic | Female | Woman |
Italian (Italy) | it-IT | Standard | Female | Polly.Bianca |
Italian (Italy) | it-IT | Standard | Female | Polly.Carla |
Italian (Italy) | it-IT | Standard | Male | Polly.Giorgio |
Italian (Italy) | it-IT | Premium | Female | Polly.Bianca-Neural |
Italian (Italy) | it-IT | Premium | Male | Polly.Adriano-Neural |
Italian (Italy) | it-IT | Standard | Female | Google.it-IT-Standard-B |
Italian (Italy) | it-IT | Standard | Male | Google.it-IT-Standard-C |
Italian (Italy) | it-IT | Standard | Male | Google.it-IT-Standard-D |
Italian (Italy) | it-IT | Premium | Female | Google.it-IT-Wavenet-B |
Italian (Italy) | it-IT | Premium | Male | Google.it-IT-Wavenet-C |
Italian (Italy) | it-IT | Premium | Male | Google.it-IT-Wavenet-D |
Italian (Italy) | it-IT | Premium | Female | Google.it-IT-Neural2-A |
Italian (Italy) | it-IT | Premium | Male | Google.it-IT-Neural2-C |
Japanese (Japan) | ja-JP | Standard | Female | Polly.Mizuki |
Japanese (Japan) | ja-JP | Standard | Male | Polly.Takumi |
Japanese (Japan) | ja-JP | Premium | Male | Polly.Takumi-Neural |
Japanese (Japan) | ja-JP | Premium | Female | Polly.Kazuha-Neural |
Japanese (Japan) | ja-JP | Premium | Female | Polly.Tomoko-Neural |
Japanese (Japan) | ja-JP | Standard | Female | Google.ja-JP-Standard-B |
Japanese (Japan) | ja-JP | Standard | Male | Google.ja-JP-Standard-C |
Japanese (Japan) | ja-JP | Standard | Male | Google.ja-JP-Standard-D |
Japanese (Japan) | ja-JP | Premium | Female | Google.ja-JP-Wavenet-B |
Japanese (Japan) | ja-JP | Premium | Male | Google.ja-JP-Wavenet-C |
Japanese (Japan) | ja-JP | Premium | Male | Google.ja-JP-Wavenet-D |
Kannada (India) | kn-IN | Standard | Female | Google.kn-IN-Standard-C |
Kannada (India) | kn-IN | Standard | Male | Google.kn-IN-Standard-D |
Kannada (India) | kn-IN | Premium | Female | Google.kn-IN-Wavenet-C |
Kannada (India) | kn-IN | Premium | Male | Google.kn-IN-Wavenet-D |
Korean (South Korea) | ko-KR | Standard | Female | Polly.Seoyeon |
Korean (South Korea) | ko-KR | Premium | Female | Polly.Seoyeon-Neural |
Korean (South Korea) | ko-KR | Standard | Female | Google.ko-KR-Standard-A |
Korean (South Korea) | ko-KR | Standard | Female | Google.ko-KR-Standard-B |
Korean (South Korea) | ko-KR | Standard | Male | Google.ko-KR-Standard-C |
Korean (South Korea) | ko-KR | Standard | Male | Google.ko-KR-Standard-D |
Korean (South Korea) | ko-KR | Premium | Female | Google.ko-KR-Wavenet-A |
Korean (South Korea) | ko-KR | Premium | Female | Google.ko-KR-Wavenet-B |
Korean (South Korea) | ko-KR | Premium | Male | Google.ko-KR-Wavenet-C |
Korean (South Korea) | ko-KR | Premium | Male | Google.ko-KR-Wavenet-D |
Korean (South Korea) | ko-KR | Premium | Female | Google.ko-KR-Neural2-A |
Korean (South Korea) | ko-KR | Premium | Female | Google.ko-KR-Neural2-B |
Korean (South Korea) | ko-KR | Premium | Male | Google.ko-KR-Neural2-C |
Latvian (Latvia) | lv-LV | Standard | Male | Google.lv-LV-Standard-A |
Lithuanian (Lithuania) | lt-LT | Standard | Male | Google.lt-LT-Standard-A |
Malay (Malaysia) | ms-MY | Standard | Female | Google.ms-MY-Standard-A |
Malay (Malaysia) | ms-MY | Standard | Male | Google.ms-MY-Standard-B |
Malay (Malaysia) | ms-MY | Standard | Female | Google.ms-MY-Standard-C |
Malay (Malaysia) | ms-MY | Standard | Male | Google.ms-MY-Standard-D |
Malay (Malaysia) | ms-MY | Premium | Female | Google.ms-MY-Wavenet-A |
Malay (Malaysia) | ms-MY | Premium | Male | Google.ms-MY-Wavenet-B |
Malay (Malaysia) | ms-MY | Premium | Female | Google.ms-MY-Wavenet-C |
Malay (Malaysia) | ms-MY | Premium | Male | Google.ms-MY-Wavenet-D |
Malayalam (India) | ml-IN | Premium | Female | Google.ml-IN-Wavenet-C |
Malayalam (India) | ml-IN | Premium | Male | Google.ml-IN-Wavenet-D |
Marathi (India) | mr-IN | Standard | Female | Google.mr-IN-Standard-A |
Marathi (India) | mr-IN | Standard | Male | Google.mr-IN-Standard-B |
Marathi (India) | mr-IN | Standard | Female | Google.mr-IN-Standard-C |
Marathi (India) | mr-IN | Premium | Female | Google.mr-IN-Wavenet-A |
Marathi (India) | mr-IN | Premium | Male | Google.mr-IN-Wavenet-B |
Marathi (India) | mr-IN | Premium | Female | Google.mr-IN-Wavenet-C |
Norwegian (Norway) | nb-NO | Standard | Female | Polly.Liv |
Norwegian (Norway) | nb-NO | Premium | Female | Polly.Ida-Neural |
Norwegian (Norway) | nb-NO | Standard | Female | Google.nb-NO-Standard-A |
Norwegian (Norway) | nb-NO | Standard | Male | Google.nb-NO-Standard-B |
Norwegian (Norway) | nb-NO | Standard | Female | Google.nb-NO-Standard-C |
Norwegian (Norway) | nb-NO | Standard | Male | Google.nb-NO-Standard-D |
Norwegian (Norway) | nb-NO | Standard | Female | Google.nb-NO-Standard-E |
Norwegian (Norway) | nb-NO | Premium | Female | Google.nb-NO-Wavenet-A |
Norwegian (Norway) | nb-NO | Premium | Male | Google.nb-NO-Wavenet-B |
Norwegian (Norway) | nb-NO | Premium | Female | Google.nb-NO-Wavenet-C |
Norwegian (Norway) | nb-NO | Premium | Male | Google.nb-NO-Wavenet-D |
Norwegian (Norway) | nb-NO | Premium | Female | Google.nb-NO-Wavenet-E |
Polish (Poland) | pl-PL | Standard | Male | Polly.Jacek |
Polish (Poland) | pl-PL | Standard | Male | Polly.Jan |
Polish (Poland) | pl-PL | Standard | Female | Polly.Ewa |
Polish (Poland) | pl-PL | Standard | Female | Polly.Maja |
Polish (Poland) | pl-PL | Premium | Female | Polly.Ola-Neural |
Polish (Poland) | pl-PL | Premium | Female | Google.pl-PL-Standard-A |
Polish (Poland) | pl-PL | Premium | Male | Google.pl-PL-Standard-B |
Polish (Poland) | pl-PL | Premium | Male | Google.pl-PL-Standard-C |
Polish (Poland) | pl-PL | Premium | Female | Google.pl-PL-Standard-D |
Polish (Poland) | pl-PL | Premium | Female | Google.pl-PL-Standard-E |
Polish (Poland) | pl-PL | Premium | Female | Google.pl-PL-Wavenet-A |
Polish (Poland) | pl-PL | Premium | Male | Google.pl-PL-Wavenet-B |
Polish (Poland) | pl-PL | Premium | Male | Google.pl-PL-Wavenet-C |
Polish (Poland) | pl-PL | Premium | Female | Google.pl-PL-Wavenet-D |
Polish (Poland) | pl-PL | Premium | Female | Google.pl-PL-Wavenet-E |
Portuguese (Brazil) | pt-BR | Standard | Female | Polly.Camila |
Portuguese (Brazil) | pt-BR | Standard | Male | Polly.Ricardo |
Portuguese (Brazil) | pt-BR | Standard | Female | Polly.Vitória/Polly.Vitoria |
Portuguese (Brazil) | pt-BR | Premium | Female | Polly.Camila-Neural |
Portuguese (Brazil) | pt-BR | Premium | Female | Polly.Vitoria-Neural |
Portuguese (Brazil) | pt-BR | Premium | Male | Polly.Thiago-Neural |
Portuguese (Brazil) | pt-BR | Standard | Male | Google.pt-BR-Standard-B |
Portuguese (Brazil) | pt-BR | Standard | Female | Google.pt-BR-Standard-C |
Portuguese (Brazil) | pt-BR | Premium | Male | Google.pt-BR-Wavenet-B |
Portuguese (Brazil) | pt-BR | Premium | Female | Google.pt-BR-Wavenet-C |
Portuguese (Brazil) | pt-BR | Premium | Female | Google.pt-BR-Neural2-A |
Portuguese (Brazil) | pt-BR | Premium | Male | Google.pt-BR-Neural2-B |
Portuguese (Brazil) | pt-BR | Premium | Female | Google.pt-BR-Neural2-C |
Portuguese (Portugal) | pt-PT | Standard | Male | Polly.Cristiano |
Portuguese (Portugal) | pt-PT | Standard | Female | Polly.Inês/Polly.Ines |
Portuguese (Portugal) | pt-PT | Premium | Female | Polly.Ines-Neural |
Portuguese (Portugal) | pt-PT | Standard | Female | Google.pt-PT-Standard-A |
Portuguese (Portugal) | pt-PT | Standard | Male | Google.pt-PT-Standard-B |
Portuguese (Portugal) | pt-PT | Standard | Male | Google.pt-PT-Standard-C |
Portuguese (Portugal) | pt-PT | Standard | Female | Google.pt-PT-Standard-D |
Portuguese (Portugal) | pt-PT | Premium | Female | Google.pt-PT-Wavenet-A |
Portuguese (Portugal) | pt-PT | Premium | Male | Google.pt-PT-Wavenet-B |
Portuguese (Portugal) | pt-PT | Premium | Male | Google.pt-PT-Wavenet-C |
Portuguese (Portugal) | pt-PT | Premium | Female | Google.pt-PT-Wavenet-D |
Punjabi (India) | pa-IN | Standard | Female | Google.pa-IN-Standard-A |
Punjabi (India) | pa-IN | Standard | Male | Google.pa-IN-Standard-B |
Punjabi (India) | pa-IN | Standard | Female | Google.pa-IN-Standard-C |
Punjabi (India) | pa-IN | Standard | Male | Google.pa-IN-Standard-D |
Punjabi (India) | pa-IN | Premium | Female | Google.pa-IN-Wavenet-A |
Punjabi (India) | pa-IN | Premium | Male | Google.pa-IN-Wavenet-B |
Punjabi (India) | pa-IN | Premium | Female | Google.pa-IN-Wavenet-C |
Punjabi (India) | pa-IN | Premium | Male | Google.pa-IN-Wavenet-D |
Romanian (Romania) | ro-RO | Standard | Female | Polly.Carmen |
Romanian (Romania) | ro-RO | Standard | Female | Google.ro-RO-Standard-A |
Romanian (Romania) | ro-RO | Premium | Female | Google.ro-RO-Wavenet-A |
Russian (Russia) | ru-RU | Standard | Male | Polly.Maxim |
Russian (Russia) | ru-RU | Standard | Female | Polly.Tatyana |
Russian (Russia) | ru-RU | Standard | Female | Google.ru-RU-Standard-A |
Russian (Russia) | ru-RU | Standard | Male | Google.ru-RU-Standard-B |
Russian (Russia) | ru-RU | Standard | Female | Google.ru-RU-Standard-C |
Russian (Russia) | ru-RU | Standard | Male | Google.ru-RU-Standard-D |
Russian (Russia) | ru-RU | Standard | Female | Google.ru-RU-Standard-E |
Russian (Russia) | ru-RU | Premium | Female | Google.ru-RU-Wavenet-A |
Russian (Russia) | ru-RU | Premium | Male | Google.ru-RU-Wavenet-B |
Russian (Russia) | ru-RU | Premium | Female | Google.ru-RU-Wavenet-C |
Russian (Russia) | ru-RU | Premium | Male | Google.ru-RU-Wavenet-D |
Russian (Russia) | ru-RU | Premium | Female | Google.ru-RU-Wavenet-E |
Serbian (Cyrillic) | sr-RS | Standard | Female | Google.sr-RS-Standard-A |
Slovak (Slovakia) | sk-SK | Standard | Female | Google.sk-SK-Standard-A |
Slovak (Slovakia) | sk-SK | Premium | Female | Google.sk-SK-Wavenet-A |
Spanish (Mexico) | es-MX | Basic | Male | Man |
Spanish (Mexico) | es-MX | Basic | Female | Woman |
Spanish (Mexico) | es-MX | Standard | Female | Polly.Mia |
Spanish (Mexico) | es-MX | Premium | Female | Polly.Mia-Neural |
Spanish (Mexico) | es-MX | Premium | Male | Polly.Andres-Neural |
Spanish (Spain) | es-ES | Basic | Male | Man |
Spanish (Spain) | es-ES | Basic | Female | Woman |
Spanish (Spain) | es-ES | Standard | Female | Polly.Conchita |
Spanish (Spain) | es-ES | Standard | Male | Polly.Enrique |
Spanish (Spain) | es-ES | Standard | Female | Polly.Lucia |
Spanish (Spain) | es-ES | Premium | Female | Polly.Lucia-Neural |
Spanish (Spain) | es-ES | Premium | Male | Polly.Sergio-Neural |
Spanish (Spain) | es-ES | Standard | Male | Google.es-ES-Standard-B |
Spanish (Spain) | es-ES | Standard | Female | Google.es-ES-Standard-C |
Spanish (Spain) | es-ES | Standard | Female | Google.es-ES-Standard-D |
Spanish (Spain) | es-ES | Premium | Male | Google.es-ES-Wavenet-B |
Spanish (Spain) | es-ES | Premium | Female | Google.es-ES-Wavenet-C |
Spanish (Spain) | es-ES | Premium | Female | Google.es-ES-Wavenet-D |
Spanish (Spain) | es-ES | Premium | Female | Google.es-ES-Neural2-A |
Spanish (Spain) | es-ES | Premium | Male | Google.es-ES-Neural2-B |
Spanish (Spain) | es-ES | Premium | Female | Google.es-ES-Neural2-C |
Spanish (Spain) | es-ES | Premium | Female | Google.es-ES-Neural2-D |
Spanish (Spain) | es-ES | Premium | Female | Google.es-ES-Neural2-E |
Spanish (Spain) | es-ES | Premium | Male | Google.es-ES-Neural2-F |
Spanish (US) | es-US | Basic | Male | Man |
Spanish (US) | es-US | Basic | Female | Woman |
Spanish (US) | es-US | Standard | Female | Polly.Lupe |
Spanish (US) | es-US | Standard | Male | Polly.Miguel |
Spanish (US) | es-US | Standard | Female | Polly.Penélope/Polly.Penelope |
Spanish (US) | es-US | Premium | Female | Polly.Lupe-Neural |
Spanish (US) | es-US | Premium | Male | Polly.Pedro-Neural |
Spanish (US) | es-US | Standard | Female | Google.es-US-Standard-A |
Spanish (US) | es-US | Standard | Male | Google.es-US-Standard-B |
Spanish (US) | es-US | Standard | Male | Google.es-US-Standard-C |
Spanish (US) | es-US | Premium | Female | Google.es-US-Wavenet-A |
Spanish (US) | es-US | Premium | Male | Google.es-US-Wavenet-B |
Spanish (US) | es-US | Premium | Male | Google.es-US-Wavenet-C |
Spanish (US) | es-US | Premium | Female | Google.es-US-Neural2-A |
Spanish (US) | es-US | Premium | Male | Google.es-US-Neural2-B |
Spanish (US) | es-US | Premium | Male | Google.es-US-Neural2-C |
Swedish (Sweden) | sv-SE | Standard | Female | Polly.Astrid |
Swedish (Sweden) | sv-SE | Premium | Female | Polly.Elin-Neural |
Swedish (Sweden) | sv-SE | Standard | Female | Google.sv-SE-Standard-A |
Swedish (Sweden) | sv-SE | Standard | Female | Google.sv-SE-Standard-B |
Swedish (Sweden) | sv-SE | Standard | Female | Google.sv-SE-Standard-C |
Swedish (Sweden) | sv-SE | Standard | Male | Google.sv-SE-Standard-D |
Swedish (Sweden) | sv-SE | Standard | Male | Google.sv-SE-Standard-E |
Swedish (Sweden) | sv-SE | Premium | Female | Google.sv-SE-Wavenet-A |
Swedish (Sweden) | sv-SE | Premium | Female | Google.sv-SE-Wavenet-B |
Swedish (Sweden) | sv-SE | Premium | Male | Google.sv-SE-Wavenet-C |
Swedish (Sweden) | sv-SE | Premium | Female | Google.sv-SE-Wavenet-D |
Swedish (Sweden) | sv-SE | Premium | Male | Google.sv-SE-Wavenet-E |
Tamil (India) | ta-IN | Standard | Female | Google.ta-IN-Standard-C |
Tamil (India) | ta-IN | Standard | Male | Google.ta-IN-Standard-D |
Tamil (India) | ta-IN | Premium | Female | Google.ta-IN-Wavenet-C |
Tamil (India) | ta-IN | Premium | Male | Google.ta-IN-Wavenet-D |
Telugu (India) | te-IN | Standard | Female | Google.te-IN-Standard-A |
Telugu (India) | te-IN | Standard | Male | Google.te-IN-Standard-B |
Thai (Thailand) | th-TH | Standard | Female | Google.th-TH-Standard-A |
Turkish (Turkey) | tr-TR | Standard | Female | Polly.Filiz |
Turkish (Turkey) | tr-TR | Standard | Female | Google.tr-TR-Standard-A |
Turkish (Turkey) | tr-TR | Standard | Male | Google.tr-TR-Standard-B |
Turkish (Turkey) | tr-TR | Standard | Female | Google.tr-TR-Standard-C |
Turkish (Turkey) | tr-TR | Standard | Female | Google.tr-TR-Standard-D |
Turkish (Turkey) | tr-TR | Standard | Male | Google.tr-TR-Standard-E |
Turkish (Turkey) | tr-TR | Premium | Female | Google.tr-TR-Wavenet-A |
Turkish (Turkey) | tr-TR | Premium | Male | Google.tr-TR-Wavenet-B |
Turkish (Turkey) | tr-TR | Premium | Female | Google.tr-TR-Wavenet-C |
Turkish (Turkey) | tr-TR | Premium | Female | Google.tr-TR-Wavenet-D |
Turkish (Turkey) | tr-TR | Premium | Male | Google.tr-TR-Wavenet-E |
Ukrainian (Ukraine) | uk-UA | Standard | Female | Google.uk-UA-Standard-A |
Ukrainian (Ukraine) | uk-UA | Premium | Female | Google.uk-UA-Wavenet-A |
Vietnamese (Vietnam) | vi-VN | Standard | Female | Google.vi-VN-Standard-A |
Vietnamese (Vietnam) | vi-VN | Standard | Male | Google.vi-VN-Standard-B |
Vietnamese (Vietnam) | vi-VN | Standard | Female | Google.vi-VN-Standard-C |
Vietnamese (Vietnam) | vi-VN | Standard | Male | Google.vi-VN-Standard-D |
Vietnamese (Vietnam) | vi-VN | Premium | Female | Google.vi-VN-Wavenet-A |
Vietnamese (Vietnam) | vi-VN | Premium | Male | Google.vi-VN-Wavenet-B |
Vietnamese (Vietnam) | vi-VN | Premium | Female | Google.vi-VN-Wavenet-C |
Vietnamese (Vietnam) | vi-VN | Premium | Male | Google.vi-VN-Wavenet-D |
Welsh | cy-GB | Standard | Female | Polly.Gwyneth |
The Text To Speech page in the Twilio Console allows you to define a default voice and language for your Account. These defaults are used when no language
or voice
attribute is provided in your <Say>
TwiML. If you are using Studio, the defaults are used when "Default" is selected.
You can test different voices and messages in this section of the Console.
In the screenshot above, the DEFAULT PROVIDER is set to Basic and the DEFAULT VOICE is set to Man, en-US. With these TTS settings, Twilio uses the Man voice and the en-US (American English) accent and pronunciation when executing the following TwiML:
1<Response>2<Say>Hello. I am a man!</Say>3</Response>
Twilio updates the Text To Speech voices offering regularly. In order to have access to the latest voices without the need to review your code to change a voice for a new one, it is recommended to use the Language Mapping feature. Your application only needs the language and the text, and Twilio will automatically select and use the corresponding voice that can be updated any time from the Console.
On the Text to Speech page in the Console, you can set a voice for every locale. This means that you can specify the language
without needing to specifying the voice
when using TTS capabilities in your application.
To set a voice for a locale, complete the following:
For example, if you configure English (British)(en-GB) to use Amazon Polly and Emma, Twilio uses the Amazon Polly Emma voice when executing <Say>
with the language
attribute set to en-GB
and no voice
attribute (see TwiML example below).
1<Response>2<Say language="en-GB">Hello. I am Emma!</Say>3</Response>
<Say>
's voice
attribute allows you to override any default provider/voice settings that were configured in the Console (i.e. Account-level and Language Mapping defaults).
For example, if your Account's default TTS voice is Amazon Polly Salli but you want to use Amazon Polly Joanna for a specific call, set the voice
attribute to Polly.Joanna
:
1<Response>2<Say voice="Polly.Joanna">Hello. I am Joanna!</Say>3</Response>
You can also use the voice
attribute to override a Language Mapping's defaults.
For example, if your Language Mapping for English (British)(en-GB) uses Amazon Polly and Emma but you want to use the Amazon Polly Joanna voice for a specific <Say>
instruction, you would use the voice
attribute set to Polly.Joanna
. The TwiML below causes Twilio to use the Amazon Polly Joanna voice, which overrides your Account's default Language Mapping:
1<Response>2<Say language="en-GB" voice="Polly.Joanna">Hello. I am Joanna!</Say>3</Response>
<Say>
's language
attribute allows you to override any default language/locale settings that were configured in the Console.
For example, if your Account's default TTS Language is English (US) (en-US), but wish to use German for a specific call, set the language
attribute to de-DE
in your TwiML:
1<Response>2<Say language="de-DE">Hallo. Ich spreche Deutsch!</Say>3</Response>
SSML support is only available in Standard and Premium voices.
Speech Synthesis Markup Language (SSML) uses XML-based tags that allow you to fine-tune the synthesized speech generated by TTS. SSML functionality includes the ability to: specify where pauses should be, provide pronunciations for acronyms, abbreviations, dates and times, and increase or decrease the speed at which text is spoken.
The SSML <prosody>
tag allows you to control the volume, rate, and pitch of synthesized speech.
1<Response>2<Say voice="Polly.Joanna">3Prosody can be used to change the way words sound. The following words are4<prosody volume="x-loud"> quite a bit louder than the rest of this passage.5</prosody> Each morning when I wake up, <prosody rate="x-slow">I speak slowly and6deliberately until I have my coffee.</prosody> I can also change the pitch of my voice7using prosody. Do you like <prosody pitch="+5%"> speech with a pitch higher,</prosody>8or <prosody pitch="-10%"> is a lower pitch preferable?</prosody>9</Say>10</Response>
The SSML <say-as>
tag allows you to indicate specific categories of text, so that the synthesized speech pronounces the text correctly.
Without <say-as>
, a phone number would be pronounced as a number, e.g. "four billion, one hundred fifty-five million, five hundred fifty-one thousand, two hundred twelve."
The TwiML example below uses <say-as>
so that the synthesized speech reads the phone number as "four one five, five five five, one two one two."
1<Response>2<Say voice="Polly.Joanna">John's phone number is, <say-as interpret-as="telephone">4155551212</say-as></Say>3</Response>
You can generate TwiML with SSML within the <Say>
verb using one of Twilio's helper libraries for C#, Java, Node.js, PHP, Python, Ruby, or Go.
The code sample below shows Helper Library code that generates the following SSML and TwiML:
1<Response>2<Say voice="Polly.Joanna">3Hi4<break strength="x-weak" time="100ms"/>5<emphasis level="moderate">Words to emphasize</emphasis>6<p>Words to speak</p>7aaaaaa8<phoneme alphabet="x-sampa" ph="pɪˈkɑːn">Words to speak</phoneme>9bbbbbbb10<prosody pitch="-10%" rate="85%" volume="-6dB">Words to speak</prosody>11<s>Words to speak</s>12<say-as interpret-as="spell-out">Words to speak</say-as>13<sub alias="alias">Words to be substituted</sub>14<w>Words to speak</w>15</Say>16</Response>
1const VoiceResponse = require('twilio').twiml.VoiceResponse;23const response = new VoiceResponse();4const say = response.say({5voice: 'Polly.Joanna'6}, 'Hi');7say.break({8strength: 'x-weak',9time: '100ms'10});11say.emphasis({12level: 'moderate'13}, 'Words to emphasize');14say.p('Words to speak');15say.addText('aaaaaa')16say.phoneme({17alphabet: 'x-sampa',18ph: 'pɪˈkɑːn'19}, 'Words to speak');20say.addText('bbbbbbb')21say.prosody({22pitch: '-10%',23rate: '85%',24volume: '-6dB'25}, 'Words to speak');26say.s('Words to speak');27say.sayAs({28'interpret-as': 'spell-out',29role: 'yyyymmdd'30}, 'Words to speak');31say.sub({32alias: 'alias'33}, 'Words to be substituted');34say.w('Words to speak');3536console.log(response.toString());
1<Response>2<Say voice="Polly.Joanna">3Hi4<break strength="x-weak" time="100ms"/>5<emphasis level="moderate">Words to emphasize</emphasis>6<p>Words to speak</p>7aaaaaa8<phoneme alphabet="x-sampa" ph="pɪˈkɑːn">Words to speak</phoneme>9bbbbbbb10<prosody pitch="-10%" rate="85%" volume="-6dB">Words to speak</prosody>11<s>Words to speak</s>12<say-as interpret-as="spell-out">Words to speak</say-as>13<sub alias="alias">Words to be substituted</sub>14<w>Words to speak</w>15</Say>16</Response>
<Say>
can process with Basic voices (
man
and
woman
).
man
and
woman
) don't support SSML tags.
<Say>
can process with Amazon Polly voices.
<amazon:auto-breath>
or
<amazon:effect>
among others are not currently supported.
Note: Use of unsupported SSML tags with any TTS provider may result in error and <Say>
instruction failure. Please review provider-specific SSML documentation and test your application
Basic voices (man
and woman
) are free of charge.
Standard voices (Amazon Polly and Google Standard) pricing starts at $0.0008 per 100 characters with the following volume discounts:
Minimum characters | Maximum characters | Price per 100 characters* |
---|---|---|
0 | 5,000,000 | $0.00080 |
5,000,001 | 50,000,000 | $0.00072 |
50,000,001 | 100,000,000 | $0.00068 |
100,000,001 | $0.00064 |
* Usage is rounded towards the end of call and priced in blocks of 100 characters. For example, if 546 characters are used on a call, then you're charged $0.004 for the use of Standard voices on that call. However, if less than 100 characters are used, you're charged $0.0008, even for using just one character.