SSML for voice-enabled apps
Alexa automatically handles normal punctuation, such as pausing after a period, or speaking a sentence ending in a question mark as a question. However, in some cases you may want additional control over how Alexa generates the speech from the text in your response. For example, you may want a longer pause within the speech, or you may want a string of digits read back as a standard telephone number. This can be accomplished with Speech Synthesis Markup Language (SSML) support.
Before you start
This guide assumes you’ve already added the Alexa integration to your Meya app and have it working. If you haven’t done that yet, check out the guide below.
How To Setup an Amazon Alexa Integration
Add a flow
Let’s create a sample flow that uses SSML.
For the complete Alexa SSML reference, check out the documentation.
In your app’s flow/amazon
folder, create a new file called ssml.yaml
and copy this code into it:
triggers:
- keyword: ssml
steps:
- say: Here is an example of an excited voice.
- delay: 1
- say: >
<amazon:emotion name="excited" intensity="high">
You win this round!
</amazon:emotion>
- delay: 1
- say: Here is an example of a disappointed voice.
- delay: 1
- say: >
<amazon:emotion name="disappointed" intensity="high">
Here I am with a brain the size of a planet
and they ask me to pick up a piece of paper.
</amazon:emotion>
This flow uses the amazon:emotion SSML tag so Alexa can express emotion when speaking.
Save the file and push it to the Grid:
meya format
meya push
Test it out
Go to the Alexa Developer Console and navigate to the skill’s Simulator. Activate the skill with your invocation phrase, then say ssml
to trigger the new flow. Can you hear the emotion?
You now know how to give your Meya app a bit of personality by controlling the tone of voice. Keep exploring the Alexa SSML reference to see what’s possible.
Updated about 3 years ago