Referenz zur Speech Synthesis Markup Language (SSML) (Beta)

Die Actions on Google-Plattform unterstützt neben der SSML-Betafunktion Standard-SSML-Elemente in Actions on Google:

Zusammenfassung der unterstützten Beta-SSML-Features:

  • <phoneme>: Aussprache bestimmter Wörter anpassen.
  • <say-as interpret-as="duration">: Dauer angeben.
  • <voice>: In derselben Anfrage zwischen den Stimmen wechseln.
  • <lang>: Mehrere Sprachen in derselben Anfrage verwenden.
  • Zeitpunkte: Mit dem Tag <mark> kann der Zeitpunkt eines angegebenen im Transkript.

<phoneme>

Sie können das Tag <phoneme> verwenden, um benutzerdefinierte Aussprache von Wörtern inline zu erzeugen. Actions on Google akzeptiert die IPA und Laute Alphabete in X-SAMPA. Weitere Informationen finden Sie in der Seite "Phonemes" mit einer Liste der unterstützten Sprachen und Phoneme.

Jede Anwendung des Tags <phoneme> leitet die Aussprache eines einzelnen Worts weiter:

  <phoneme alphabet="ipa" ph="ˌmænɪˈtoʊbə">manitoba</phoneme>
  <phoneme alphabet="x-sampa" ph='m@"hA:g@%ni:'>mahogany</phoneme>

Betonungsmarkierungen

Es gibt bis zu drei Betonungsstufen, die in eine Transkription eingebunden werden können:

  1. Primärer Stresspegel: Wird in IPA mit ˈ und in X-SAMPA mit " gekennzeichnet.
  2. Sekundärer Stress: in IPA mit ˌ und in X-SAMPA mit % gekennzeichnet.
  3. Ohne Betonung: Wird nicht mit einem Symbol (in einer der beiden Notationen) gekennzeichnet.

Einige Sprachen haben möglicherweise weniger als drei Ebenen oder kennzeichnen überhaupt keine Betonungsplatzierung. Auf der Seite "Phonemes" finden Sie dem Stresspegel, der für deine Sprache verfügbar ist. Stressmarkierungen werden am Beginn jeder betonten Silbe. Zum Beispiel im amerikanischen Englisch:

Beispielwort IPA X-SAMPA
Wasser ˈwɑːtɚ "wA:t@`
unter Wasser ˌʌndɚˈwɑːtɚ %Vnd@"wA:t@

Breite vs. eng gefasste Transkriptionen

In der Regel sollten die Transkriptionen eher breit und phonemisch gehalten werden. In amerikanischem Englisch transkribieren Sie z. B. intervokative t (anstelle eines antippen):

Beispielwort IPA X-SAMPA
Butter ˈbʌtɚ statt ˈbʌɾɚ "bVt@` statt "bV4@`

Es gibt einige Fälle, in denen die Verwendung der phonemischen Darstellung dazu führt, dass Ihre TTS-Ergebnisse unnatürlich klingen (z. B. wenn die Phonemfolge anatomisch schwer auszusprechen ist).

Ein Beispiel ist die Assimilation für s auf Englisch. In diesem Fall sollte sich die Anpassung in der Transkription widerspiegeln:

Beispielwort IPA X-SAMPA
Katzen ˈkæts "k{ts
Hunde ˈdɑːgz statt ˈdɑːgs "dA:gz statt "dA:gs

Reduzierung

Jede Silbe muss einen (und nur einen) Vokal enthalten. Das bedeutet, dass Sie syllabische Konsonanten vermeiden und sie stattdessen mit einem reduzierten Vokal transkribieren sollten. Beispiel:

Beispielwort IPA X-SAMPA
Junge ˈkɪtən statt ˈkɪtn "kIt@n statt "kitn
kettle ˈkɛtəl statt ˈkɛtl "kEt@l statt "kEtl

Auszug

Optional können Sie Silbengrenzen mithilfe von . angeben. Jede Silbe muss einen (und nur einen) Vokal enthalten. Beispiel:

Beispielwort IPA X-SAMPA
readability ˌɹiː.də.ˈbɪ.lə.tiː %r\i:.d@."bI.l@.ti:

Dauer

Die Actions on Google-Plattform unterstützt <say-as interpret-as="duration">, um korrekt der Lesedauer. Das folgende Beispiel würde wie folgt gesprochen: „fünfmal Stunden und dreißig Minuten“:

<say-as interpret-as="duration" format="h:m">5:30</say-as>

Der Formatstring unterstützt die folgenden Werte:

Abkürzung Wert
Std. Stunden
m Minuten
s Sekunden
ms Millisekunden

<voice>

Mit dem Tag <voice> können Sie mehr als eine Stimme in einer einzelnen SSML-Anfrage verwenden. Im folgenden Beispiel ist die Standardstimme eine englische Männerstimme. Alle Wörter werden in dieser Stimme synthetisiert, mit Ausnahme von "qu'est-ce qui t'amène ici", das auf Französisch mit einer weiblichen Stimme anstelle der Standardsprache (Englisch) und des Standardgeschlechts (männlich) verbalisiert wird.

<speak>And then she asked, <voice language="fr-FR" gender="female">qu'est-ce qui
t'amène ici</voice><break time="250ms"/> in her sweet and gentle voice.</speak>

Alternativ können Sie ein <voice>-Tag verwenden, um eine einzelne Stimme anzugeben (die Voice name auf dem Seite zu unterstützten Stimmen und Sprachen) statt language und/oder gender anzugeben:

<speak>The dog is friendly<voice name="fr-CA-Wavenet-B">mais la chat est
mignon</voice><break time="250ms"/> said a pet shop
owner</speak>

Wenn Sie das <voice>-Tag verwenden, erwartet Actions on Google Folgendes: name (die Name deiner Stimme oder einer Kombination der folgenden Attribute. Alle drei sind optional. Sie müssen jedoch mindestens ein Attribut angeben, wenn Sie kein name

  • gender: Entweder male, female oder neutral.
  • variant: Wird als Tiebreaker verwendet, wenn mehrere Möglichkeiten der Stimmen, die auf Ihrer Konfiguration basieren.
  • language: Die gewünschte Sprache. In einem bestimmten <voice>-Tag kann nur eine Sprache angegeben werden. Geben Sie Ihre Sprache im BCP-47-Format an. Sie finden den BCP-47-Code für Ihre Sprache in der Spalte Sprachcode auf der Seite Unterstützte Stimmen und Sprachen.

Sie können auch die relative Priorität der einzelnen Attribute gender, variant und language steuern. Verwenden Sie dazu zwei zusätzliche Tags: required und ordering.

  • required: wenn ein Attribut als required festgelegt und nicht konfiguriert ist schlägt die Anfrage fehl.
  • ordering: Alle Attribute, die nach einem ordering-Tag aufgeführt werden, werden als bevorzugte Attribute und nicht als erforderlich betrachtet. Die SSML berücksichtigt bevorzugte Attribute auf Best-Effort-Basis in der Reihenfolge, in der sie aufgeführt sind, nach dem ordering-Tag hinzu. Wenn bevorzugte Attribute konfiguriert sind gibt Actions on Google zwar eine gültige Stimme zurück, da die falsche Konfiguration verworfen wurde.

Beispiele für Konfigurationen mit den Tags required und ordering:

<speak>And there it was <voice language="en-GB" gender="male" required="gender"
ordering="gender language">a flying bird </voice>roaring in the skies for the
first time.</speak>
<speak>Today is supposed to be <voice language="en-GB" gender="female"
ordering="language gender">Sunday Funday.</voice></speak>

<lang>

Sie können <lang> verwenden, um Text in mehreren Sprachen in dieselbe SSML-Anfrage aufzunehmen. Alle Sprachen werden in derselben Stimme synthetisiert, sofern Sie die Stimme nicht mit dem Tag <voice> explizit ändern. Der String xml:lang muss Folgendes enthalten: Zielsprache im BCP-47-Format (dieser Wert wird als „Sprachcode“ in die unterstützten Stimmen Tabelle). Im folgenden Beispiel wird „chat“ wird auf Französisch statt auf der Standardsprache (Englisch):

<speak>The french word for cat is <lang xml:lang="fr-FR">chat</lang></speak>

Die Actions on Google-Plattform unterstützt das <lang>-Tag nach bestem Wissen und Gewissen. Nicht alle Kombinationen führen zur gleichen Qualität, wenn sie im selben SSML-Anfrage. In manchen Fällen kann eine Sprachkombination einen Effekt haben, der zwar nachweisbar, aber subtil ist oder als negativ empfunden wird. Bekannte Probleme:

  • Japanisch mit Kanji-Zeichen wird vom Tag <lang> nicht unterstützt. Die Eingabe wird transliteriert und als chinesische Schriftzeichen gelesen.
  • semitische Sprachen wie Arabisch, Hebräisch und Persisch werden von das Tag <lang> und führt zu Stille. Wenn Sie eine dieser Sprachen empfehlen wir, das <voice>-Tag zu verwenden, um zu einer Stimme zu wechseln, die spricht die gewünschte Sprache (falls verfügbar).