Update: October 10, 2020
Added a cross-reference table to more clearly delineate incompatible tags.
Introduction
The voice and language SSML tags options are a powerful feature for Alexa skill developers. They can be incorporated directly into Alexa skills in-line with text that is to be recited.
This article includes a simple worksheet from which the SSML tags can be easily copied and pasted into one’s script or directly into skill-building tools or your code. They can also be added into variables if you use variables to manage character voices.
Worksheet for Alexa Polly Voice, Lang and Prosody SSML Tags
Our objective is to save time and minimize hunting and pecking through Amazon’s official documentation to configure the voice, lang and prosody tags.
It is easy to copy and paste the SSML directly from the HTML page further down below in this article. However for your convenience the SSML tags are also in this downloadable .txt document. This is handy to have when working offline.
This worksheet is designed to be easily used with Voiceflow, a no-code skill-building tool. Voiceflow does not require the use of the <speak></speak> tags, as these are added automatically.
After this article was originally published, Voiceflow has also added the ability to select Alexa Polly voices using a drop down in the Speak block and other blocks where voices are recited. If you proceed with using in-line SSML tags or manage them using variables, DO NOT select a Polly voice using the drop-downs.
If you are working directly with ASK/CLI or other code-based tools, you may also need to incorporate the <speak> </speak> tags.
Amazon Reference Documents
The following references are invaluable. Be sure to take the time to understand both the Alexa Polly voice and lang SSML tags, and how they can be used together.
Speech Synthesis Markup Language (SSML) Reference
Best Practices for Using Amazon Polly Voices
Incompatible Tags
Not all tags can be applied to the same chunk of text:
Action | Compatible SSML tags and voices | Incompatible SSML tags | Available only in the following regions |
---|---|---|---|
Alexa default voice | conversational and news styles | all | |
voice - Matthew and Joanna | Compatible with conversational and news styles | long-form and music styles, emotion, emphasis | all, but may require pairing with lang tag to improve pronunciation. |
voice - Lupe | Compatible with news style | Conversational, long-form and music styles, emotion, emphasis | all, but may require pairing with lang tag to improve pronunciation. |
voice - all others | styles, emotion, speechcons, emphasis | all, but may require pairing with lang tag to improve pronunciation. | |
conversational style | Matthew and Joanna (requires pairing with a voice tag) | emotion, speechcons, emphasis, prosody with pitch attribute | en-US |
news style | Matthew, Joanna and Lupe (requires pairing with a voice tag) | emotion, speechcons, emphasis, prosody with pitch attribute | en-US and en-AU |
long-form style | Alexa default voice | voice, emotion, speechcons, emphasis, prosody with pitch attribute | en-US |
music style | Alexa default voice | voice, emotion, speechcons, emphasis, prosody with pitch attribute | en-US |
emotion | Alexa default voice | voice, styles, speechcons, emphasis, prosody with pitch attribute | en-US |
emphasis | Alexa default voice | voice, styles, emotion, speechcons, prosody with pitch attribute | all |
prosody with pitch attribute | all | styles, emotion, speechcons, emphasis | all |
speechcons | Alexa default voice | voice, styles, emotion, emphasis, prosody with pitch attribute | regionalized listings |
Refer to the Amazon reference documentation for details and best practices.
How the SSML Tags are Organized
There are six main sections of the copy-and-paste HTML page below, as well as in the downloadable .txt file.
- Alexa Polly voice SSML Tags
- Language (lang) SSML Tags
- Nested Polly Voice and Lang SSML Tag Combinations
- Prosody Parameter Values
- Nested Polly Voice and Prosody SSML Tag Combinations – Without Lang Tags
- Nested Polly Voice, Lang and Prosody SSML Tag Combinations
SSML Tag Copy and Paste Worksheet
Instructions: Copy and paste the SSML tags to your text editor or development environment. Replace the * with your own text in between the opening and closing tags.
A. ALEXA POLLY VOICE SSML TAGS
1. English/American voices (en-US):
<voice name="Ivy">*</voice>
<voice name="Joanna">*</voice>
<voice name="Joey">*</voice>
<voice name="Justin">*</voice>
<voice name="Kendra">*</voice>
<voice name="Kimberly">*</voice>
<voice name="Matthew">*</voice>
<voice name="Salli">*</voice>
2. English/Australian voices (en-AU):
<voice name="Nicole">*</voice>
<voice name="Russell">*</voice>
3. English/British voices (en-GB):
<voice name="Amy">*</voice>
<voice name="Brian">*</voice>
<voice name="Emma">*</voice>
4. English/Indian voices (en-IN):
<voice name="Aditi">*</voice>
<voice name="Raveena">*</voice>
5. French/Canadian voice (fr-CA):
<voice name="Chantal">*</voice>
6. French/France voices (fr-FR):
<voice name="Celine">*</voice>
<voice name="Lea">*</voice>
<voice name="Mathieu">*</voice>
7. German voices (de-DE):
<voice name="Hans">*</voice>
<voice name="Marlene">*</voice>
<voice name="Vicki">*</voice>
8. Hindi/Indian Voice (hi-IN):
<voice name="Aditi">*</voice>
9. Italian voices (it-IT):
<voice name="Carla">*</voice>
<voice name="Giorgio">*</voice>
<voice name="Bianca">*</voice>
10. Japanese voices (ja-JP):
<voice name="Mizuki">*</voice>
<voice name="Takumi">*</voice>
11. Portuguese/Brazilian voices (pt-BR):
<voice name="Vitoria">*</voice>
<voice name="Camila">*</voice>
<voice name="Ricardo">*</voice>
12. Spanish/American voices (es-US):
<voice name="Penelope">*</voice>
<voice name="Lupe">*</voice>
<voice name="Miguel">*</voice>
13. Spanish/Spain voices (es-ES):
<voice name="Conchita">*</voice>
<voice name="Enrique">*</voice>
<voice name="Lucia">*</voice>
14. Spanish/Mexican voices (es-MX):
<voice name="Mia">*</voice>
B. LANGUAGE (LANG) SSML TAGS
<lang xml:lang="en-US">*</lang>
<lang xml:lang="en-AU">*</lang>
<lang xml:lang="en-GB">*</lang>
<lang xml:lang="en-IN">*</lang>
<lang xml:lang="fr-CA">*</lang>
<lang xml:lang="fr-FR">*</lang>
<lang xml:lang="de-DE">*</lang>
<lang xml:lang="hi-IN">*</lang>
<lang xml:lang="it-IT">*</lang>
<lang xml:lang="ja-JP">*</lang>
<lang xml:lang="pt-BR">*</lang>
<lang xml:lang="es-US">*</lang>
<lang xml:lang="es-ES">*</lang>
<lang xml:lang="es-MX">*</lang>
<lang xml:lang="en-CA">*</lang>
C. NESTED POLLY VOICE AND LANG SSML TAG COMBINATIONS
1. English/American:
<lang xml:lang="en-US"><voice name="Ivy">*</voice></lang>
<lang xml:lang="en-US"><voice name="Joanna">*</voice></lang>
<lang xml:lang="en-US"><voice name="Joey">*</voice></lang>
<lang xml:lang="en-US"><voice name="Justin">*</voice></lang>
<lang xml:lang="en-US"><voice name="Kendra">*</voice></lang>
<lang xml:lang="en-US"><voice name="Kimberly">*</voice></lang>
<lang xml:lang="en-US"><voice name="Matthew">*</voice></lang>
<lang xml:lang="en-US"><voice name="Salli">*</voice></lang>
2. English/Australian:
<lang xml:lang="en-AU"><voice name="Nicole">*</voice></lang>
<lang xml:lang="en-AU"><voice name="Russell">*</voice></lang>
3. English/British:
<lang xml:lang="en-GB"><voice name="Amy">*</voice></lang>
<lang xml:lang="en-GB"><voice name="Brian">*</voice></lang>
<lang xml:lang="en-GB"><voice name="Emma">*</voice></lang>
4. English/Indian:
<lang xml:lang="en-IN"><voice name="Aditi">*</voice></lang>
<lang xml:lang="en-IN"><voice name="Raveena">*</voice></lang>
5. French/Canadian:
<lang xml:lang="fr-CA"><voice name="Chantal">*</voice></lang>
6. French/France:
<lang xml:lang="fr-FR"><voice name="Celine">*</voice></lang>
<lang xml:lang="fr-FR"><voice name="Lea">*</voice></lang>
<lang xml:lang="fr-FR"><voice name="Mathieu">*</voice></lang>
7. German:
<lang xml:lang="de-DE"><voice name="Hans">*</voice></lang>
<lang xml:lang="de-DE"><voice name="Marlene">*</voice></lang>
<lang xml:lang="de-DE"><voice name="Vicki">*</voice></lang>
8. Hindi/Indian:
<lang xml:lang="hi-IN"><voice name="Aditi">*</voice></lang>
9. Italian:
<lang xml:lang="it-IT"><voice name="Carla">*</voice></lang>
<lang xml:lang="it-IT"><voice name="Giorgio">*</voice></lang>
<lang xml:lang="it-IT"><voice name="Bianca">*</voice></lang>
10. Japanese:
<lang xml:lang="ja-JP"><voice name="Mizuki">*</voice></lang>
<lang xml:lang="ja-JP"><voice name="Takumi">*</voice></lang>
11. Portuguese/Brazilian:
<lang xml:lang="pt-BR"><voice name="Vitoria">*</voice></lang>
<lang xml:lang="pt-BR"><voice name="Camila">*</voice></lang>
<lang xml:lang="pt-BR"><voice name="Ricardo">*</voice></lang>
12. Spanish/American:
<lang xml:lang="es-US"><voice name="Penelope">*</voice></lang>
<lang xml:lang="es-US"><voice name="Lupe">*</voice></lang>
<lang xml:lang="es-US"><voice name="Miguel">*</voice></lang>
13. Spanish/Spain:
<lang xml:lang="es-ES"><voice name="Conchita">*</voice></lang>
<lang xml:lang="es-ES"><voice name="Enrique">*</voice></lang>
<lang xml:lang="es-ES"><voice name="Lucia">*</voice></lang>
14. Spanish/Mexican:
<lang xml:lang="es-MX"><voice name="Mia">*</voice></lang>
D. PROSODY PARAMETER VALUES
Numerical parameter values are possible for all 3 prosody types. However only the word-based values are listed here. If you need more refinement check for valid values in the SSML reference document.
Copy and paste the desired parameter value into the formulas in the next sections as part of configuring your voices. You can test and adjust the values using the Alexa Developer Console (ADC) Voice & Tone Simulator.
Pitch
x-low
low
medium
high
x-high
Rate
x-slow
slow
medium
fast
x-fast
Volume
silent
x-soft
soft
medium
loud
x-loud
E. NESTED POLLY VOICE AND PROSODY SSML TAG COMBINATIONS – WITHOUT LANG TAGS
The parameters are nominally set to “medium”. Copy and paste from the above section to adjust as needed. Be aware you may need to scroll across the code blocks below to see all of the tags on the right side of the screen.
Closing tags are shown in a separate line in case you wish to use variables to manage these longer sets of tags.
1. English/American voices (en-US):
<voice name="Ivy"><prosody pitch="medium" rate="medium" volume="medium">
<voice name="Joanna"><prosody pitch="medium" rate="medium" volume="medium">
<voice name="Joey"><prosody pitch="medium" rate="medium" volume="medium">
<voice name="Justin"><prosody pitch="medium" rate="medium" volume="medium">
<voice name="Kendra"><prosody pitch="medium" rate="medium" volume="medium">
<voice name="Kimberly"><prosody pitch="medium" rate="medium" volume="medium">
<voice name="Matthew"><prosody pitch="medium" rate="medium" volume="medium">
<voice name="Salli"><prosody pitch="medium" rate="medium" volume="medium">
</prosody></voice>
2. English/Australian:
<voice name="Nicole"><prosody pitch="medium" rate="medium" volume="medium">
<voice name="Russell"><prosody pitch="medium" rate="medium" volume="medium">
</prosody></voice>
3. English/British:
<voice name="Amy"><prosody pitch="medium" rate="medium" volume="medium">
<voice name="Brian"><prosody pitch="medium" rate="medium" volume="medium">
<voice name="Emma"><prosody pitch="medium" rate="medium" volume="medium">
</prosody></voice>
4. English/Indian:
<voice name="Aditi"><prosody pitch="medium" rate="medium" volume="medium">
<voice name="Raveena"><prosody pitch="medium" rate="medium" volume="medium">
</prosody></voice>
5. French/Canadian:
<voice name="Chantal"><prosody pitch="medium" rate="medium" volume="medium">
</prosody></voice>
6. French/France:
<voice name="Celine"><prosody pitch="medium" rate="medium" volume="medium">
<voice name="Lea"><prosody pitch="medium" rate="medium" volume="medium">
<voice name="Mathieu"><prosody pitch="medium" rate="medium" volume="medium">
</prosody></voice>
7. German:
<voice name="Hans"><prosody pitch="medium" rate="medium" volume="medium">
<voice name="Marlene"><prosody pitch="medium" rate="medium" volume="medium">
<voice name="Vicki"><prosody pitch="medium" rate="medium" volume="medium">
</prosody></voice>
8. Hindi/Indian:
<voice name="Aditi"><prosody pitch="medium" rate="medium" volume="medium">
</prosody></voice>
9. Italian:
<voice name="Carla"><prosody pitch="medium" rate="medium" volume="medium">
<voice name="Giorgio"><prosody pitch="medium" rate="medium" volume="medium">
<voice name="Bianca"><prosody pitch="medium" rate="medium" volume="medium">
</prosody></voice>
10. Japanese:
<voice name="Mizuki"><prosody pitch="medium" rate="medium" volume="medium">
<voice name="Takumi"><prosody pitch="medium" rate="medium" volume="medium">
</prosody></voice>
11. Portuguese/Brazilian:
<voice name="Vitoria"><prosody pitch="medium" rate="medium" volume="medium">
<voice name="Camila"><prosody pitch="medium" rate="medium" volume="medium">
<voice name="Ricardo"><prosody pitch="medium" rate="medium" volume="medium">
</prosody></voice>
12. Spanish/American:
<voice name="Penelope"><prosody pitch="medium" rate="medium" volume="medium">
<voice name="Lupe"><prosody pitch="medium" rate="medium" volume="medium">
<voice name="Miguel"><prosody pitch="medium" rate="medium" volume="medium">
</prosody></voice>
13. Spanish/Spain:
<voice name="Conchita"><prosody pitch="medium" rate="medium" volume="medium">
<voice name="Enrique"><prosody pitch="medium" rate="medium" volume="medium">
<voice name="Lucia"><prosody pitch="medium" rate="medium" volume="medium">
</prosody></voice>
14. Spanish/Mexican:
<voice name="Mia"><prosody pitch="medium" rate="medium" volume="medium">
</prosody></voice>
F. NESTED POLLY VOICE, LANG AND PROSODY SSML TAG COMBINATIONS
The parameters are nominally set to “medium”. Copy and paste from the above section to adjust as needed. Be aware you may need to scroll across the code blocks below to see all of the tags on the right side of the screen.
Closing tags are shown in a separate line in case you wish to use variables to manage these longer sets of tags.
0. Native Alexa
<lang xml:lang="en-US"><prosody pitch="medium" rate="medium" volume="medium">
</prosody></lang>
1. English/American voices (en-US):
<lang xml:lang="en-US"><voice name="Ivy"><prosody pitch="medium" rate="medium" volume="medium">
<lang xml:lang="en-US"><voice name="Joanna"><prosody pitch="medium" rate="medium" volume="medium">
<lang xml:lang="en-US"><voice name="Joey"><prosody pitch="medium" rate="medium" volume="medium">
<lang xml:lang="en-US"><voice name="Justin"><prosody pitch="medium" rate="medium" volume="medium">
<lang xml:lang="en-US"><voice name="Kendra"><prosody pitch="medium" rate="medium" volume="medium">
<lang xml:lang="en-US"><voice name="Kimberly"><prosody pitch="medium" rate="medium" volume="medium">
<lang xml:lang="en-US"><voice name="Matthew"><prosody pitch="medium" rate="medium" volume="medium">
<lang xml:lang="en-US"><voice name="Salli"><prosody pitch="medium" rate="medium" volume="medium">
</prosody></voice></lang>
2. English/Australian voices (en-AU):
<lang xml:lang="en-AU"><voice name="Nicole"><prosody pitch="medium" rate="medium" volume="medium">
<lang xml:lang="en-AU"><voice name="Russell"><prosody pitch="medium" rate="medium" volume="medium">
</prosody></voice></lang>
3. English/British voices (en-GB):
<lang xml:lang="en-GB"><voice name="Amy"><prosody pitch="medium" rate="medium" volume="medium">
<lang xml:lang="en-GB"><voice name="Brian"><prosody pitch="medium" rate="medium" volume="medium">
<lang xml:lang="en-GB"><voice name="Emma"><prosody pitch="medium" rate="medium" volume="medium">
</prosody></voice></lang>
4. English/Indian voices (en-IN):
<lang xml:lang="en-IN"><voice name="Aditi"><prosody pitch="medium" rate="medium" volume="medium">
<lang xml:lang="en-IN"><voice name="Raveena"><prosody pitch="medium" rate="medium" volume="medium">
</prosody></voice></lang>
5. French/Canadian voice (fr-CA):
<lang xml:lang="fr-CA"><voice name="Chantal"><prosody pitch="medium" rate="medium" volume="medium">
</prosody></voice></lang>
6. French/France voices (fr-FR):
<lang xml:lang="fr-FR"><voice name="Celine"><prosody pitch="medium" rate="medium" volume="medium">
<lang xml:lang="fr-FR"><voice name="Lea"><prosody pitch="medium" rate="medium" volume="medium">
<lang xml:lang="fr-FR"><voice name="Mathieu"><prosody pitch="medium" rate="medium" volume="medium">
</prosody></voice></lang>
7. German voices (de-DE):
<lang xml:lang="de-DE"><voice name="Hans"><prosody pitch="medium" rate="medium" volume="medium">
<lang xml:lang="de-DE"><voice name="Marlene"><prosody pitch="medium" rate="medium" volume="medium">
<lang xml:lang="de-DE"><voice name="Vicki"><prosody pitch="medium" rate="medium" volume="medium">
</prosody></voice></lang>
8. Hindi/Indian Voice (hi-IN):
<lang xml:lang="hi-IN"><voice name="Aditi"><prosody pitch="medium" rate="medium" volume="medium">
</prosody></voice></lang>
9. Italian voices (it-IT):
<lang xml:lang="it-IT"><voice name="Carla"><prosody pitch="medium" rate="medium" volume="medium">
<lang xml:lang="it-IT"><voice name="Giorgio"><prosody pitch="medium" rate="medium" volume="medium">
<lang xml:lang="it-IT"><voice name="Bianca"><prosody pitch="medium" rate="medium" volume="medium">
</prosody></voice></lang>
10. Japanese voices (ja-JP):
<lang xml:lang="ja-JP"><voice name="Mizuki"><prosody pitch="medium" rate="medium" volume="medium">
<lang xml:lang="ja-JP"><voice name="Takumi"><prosody pitch="medium" rate="medium" volume="medium">
</prosody></voice></lang>
11. Portuguese/Brazilian voices (pt-BR):
<lang xml:lang="pt-BR"><voice name="Vitoria"><prosody pitch="medium" rate="medium" volume="medium">
<lang xml:lang="pt-BR"><voice name="Camila"><prosody pitch="medium" rate="medium" volume="medium">
<lang xml:lang="pt-BR"><voice name="Ricardo"><prosody pitch="medium" rate="medium" volume="medium">
</prosody></voice></lang>
12. Spanish/American voices (es-US):
<lang xml:lang="es-US"><voice name="Penelope"><prosody pitch="medium" rate="medium" volume="medium">
<lang xml:lang="es-US"><voice name="Lupe"><prosody pitch="medium" rate="medium" volume="medium">
<lang xml:lang="es-US"><voice name="Miguel"><prosody pitch="medium" rate="medium" volume="medium">
</prosody></voice></lang>
13. Spanish/Spain voices (es-ES):
<lang xml:lang="es-ES"><voice name="Conchita"><prosody pitch="medium" rate="medium" volume="medium">
<lang xml:lang="es-ES"><voice name="Enrique"><prosody pitch="medium" rate="medium" volume="medium">
<lang xml:lang="es-ES"><voice name="Lucia"><prosody pitch="medium" rate="medium" volume="medium">
</prosody></voice></lang>
14. Spanish/Mexican voices (es-MX):
<lang xml:lang="es-MX"><voice name="Mia"><prosody pitch="medium" rate="medium" volume="medium">
</prosody></voice></lang>
Conclusion
Hopefully this worksheet will help you save a bit of time when developing character voices and applying SSML tags to your text.
Additional SSML Copy/Paste worksheets are available in the Tools section of the voices.app website.
A variety of tutorials, including how to effectively manage character voices using variables, are available on the website as well.
Thank you for reading, and happy skill building!