Amazon Alexa Skills Development: SSML Copy and Paste Worksheet 2 for Alexa Polly Voice and Language Tags – UPDATED!

Alexa Polly Voice & SSML Tags Worksheet
Alexa Polly Voice & SSML Tags Worksheet

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:

ActionCompatible SSML tags and voicesIncompatible SSML tagsAvailable only in the following regions
Alexa default voiceconversational and news stylesall
voice - Matthew and JoannaCompatible with conversational and news styleslong-form and music styles, emotion, emphasisall, but may require pairing with lang tag to improve pronunciation.
voice - LupeCompatible with news styleConversational, long-form and music styles, emotion, emphasisall, but may require pairing with lang tag to improve pronunciation.
voice - all othersstyles, emotion, speechcons, emphasisall, but may require pairing with lang tag to improve pronunciation.
conversational styleMatthew and Joanna (requires pairing with a voice tag)emotion, speechcons, emphasis, prosody with pitch attributeen-US
news styleMatthew, Joanna and Lupe (requires pairing with a voice tag)emotion, speechcons, emphasis, prosody with pitch attributeen-US and en-AU
long-form styleAlexa default voicevoice, emotion, speechcons, emphasis, prosody with pitch attributeen-US
music styleAlexa default voicevoice, emotion, speechcons, emphasis, prosody with pitch attributeen-US
emotionAlexa default voicevoice, styles, speechcons, emphasis, prosody with pitch attributeen-US
emphasisAlexa default voicevoice, styles, emotion, speechcons, prosody with pitch attributeall
prosody with pitch attributeallstyles, emotion, speechcons, emphasisall
speechconsAlexa default voicevoice, styles, emotion, emphasis, prosody with pitch attributeregionalized 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. 

voices.app Tools

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!

Credits

Header image by Christina Morillo, Pexels