Verschiedene Stimmen in der Ausgabe eines Alexa-Skills

Lange Zeit war es nicht möglich, dass in der Antwort eines Alexa-Skills eine andere Sprache verwendet werden konnte. Hat man somit einen deutschen Skill entwickelt, wurde der gesamte Text durch die deutsche Alexa vorgelesen, was bei englischen oder anders sprachigen Wörter zum Schmunzeln führte. Nun ist dies allerdings mit Amazon Polly und SSML möglich und ich möchte euch in diesem Beitrag zeigen, wie ihr dies ganz leicht in eurem eigenen Skill verwendet könnt.

Zunächst möchte ich euch jedoch die Sprachen bzw. Stimmen aufzeigen, welche euch zur Verfügung stehen:

  • Englisch (en-US): Ivy, Joanna, Joey, Justin, Kendra, Kimberly, Matthew, Salli
  • Englisch (en-AU): Nicole, Russell
  • Englisch (en-GB): Amy, Brian, Emma
  • Englisch (en-IN): Aditi, Raveena
  • Deutsch (de-DE): Hans, Marlene, Vicki
  • Spanisch (es-ES): Conchita, Enrique
  • Italienisch (it-IT): Carla, Giorgio
  • Japanisch (ja-JP): Mizuki, Takumi
  • Französisch (fr-FR): Cécile, Léa, Mathieu

Insgesamt stehen also 27 verschiedene Stimmen zur Verfügung. Die Verwendung ist nun ebenfalls ganz einfach, denn in das SSML wurde das voice-Tag eingeführt. Bei SSML handelt es sich um die Speech Synthesis Markup Language, welche es ermöglicht die Sprachausgabe zu steuern, so dass zum Beispiel Text geflüstert wird oder eine mp3-Datei abgespielt wird. Um nun von der Alexa-Stimme auf eine andere Stimme zu wechseln, verwenden wir folgendes Snippet.

<speak>
    Hallo, ich bin Alexa.
    <voice name="Vicki">Und mein Name ist Vicki.</voice>
    Wir freuen uns dich kennenzulernen.
</speak>

In diesem ersten Beispiel haben wir nur die Stimme geändert. Bei unserem Skill handelt es sich um einen deutschsprachigen Skill und daher müssen wir die Sprache nicht näher definieren, sondern nur die Stimme. Wenn man jetzt in einem deutschsprachigen Skill zum Beispiel etwas auf Spanisch ausgeben möchte, so ergibt sich die folgende Struktur.

<speak>
    Hallo, ich bin Alexa.
    <voice name="Conchita"><lang xml:lang="es-ES">Y mi nombre es Conchita.</lang></voice>
    Wir freuen uns dich kennenzulernen.
</speak>

Wir müssen also innerhalb des voice-Tags nun noch in dem lang-Text die jeweilige Sprache definieren und schon können wir bequem innerhalb unseres Skills die Ausgabesprache ändern.

Eine ausführliche Dokumentation zu allen möglichen SSML-Befehlen findet man in der Entwickler-Dokumentation bei Amazon.

Alexa Skills Workshop in Stuttgart BotTalk: Einfache Alexa Skill Entwicklung #DiWoKiel: Rückblick auf meinen Alexa-Workshop