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

Die Actions on Google-Plattform unterstützt zusätzlich zu den SSML-Standardelementen von Actions on Google eine Reihe von SSML-Betafunktionen.

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: Verwenden Sie das Tag <mark>, um den Zeitpunkt eines bestimmten Punkts in Ihrem Transkript zurückzugeben.

<phoneme>

Sie können das Tag <phoneme> verwenden, um benutzerdefinierte Aussprache von Wörtern inline zu erzeugen. Actions on Google akzeptiert die phonetischen Alphabete IPA und X-SAMPA. Eine Liste der unterstützten Sprachen und Phoneme finden Sie auf der Seite „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 Stress: In IPA mit ˈ und in X-SAMPA mit " gekennzeichnet.
  2. Sekundärbelastung: 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 „Phoneme“ findest du die verfügbaren Stresspegel für deine Sprache. Diese werden am Anfang jeder betonten Silbe platziert. Zum Beispiel im amerikanischen Englisch:

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

Weitgehend passende vs. eng gefasste Transkriptionen

In der Regel sollten die Transkriptionen eher breit und phonemisch gehalten werden. In US-Englisch transkribieren Sie beispielsweise t als gesprochenen Text, anstatt das Smartphone an das Terminal zu halten:

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 dafür ist die Sprachassimilation für s auf Englisch. In diesem Fall sollte sich die Anpassung in der Transkription widerspiegeln:

Beispielwort IPA X-SAMPA
cats ˈkæts "k{ts
dogs ˈ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
kitten ˈ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 mithilfe von . Begrenzungen für Silben festlegen. Jede Silbe muss genau 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">, damit die Dauer korrekt gelesen werden kann. Das folgende Beispiel würde beispielsweise als "fünf Stunden und dreißig Minuten" verbalisiert werden:

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

Der Formatstring unterstützt die folgenden Werte:

Abkürzungen Wert
H Stunde
m Minute
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 (den Namen der Stimme auf der Seite zu unterstützten Stimmen und Sprachen) anzugeben, anstatt 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 Tag <voice> verwenden, erwartet Actions on Google entweder einen name (Name der Stimme, den Sie verwenden möchten) oder eine Kombination der folgenden Attribute. Alle drei Attribute sind optional, aber Sie müssen mindestens eines angeben, wenn Sie kein name angeben.

  • gender: Entweder male, female oder neutral.
  • variant: Wird als Tiebreaker verwendet, wenn es je nach Ihrer Konfiguration mehrere Möglichkeiten gibt, welche Stimme verwendet werden soll.
  • 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 angegeben und nicht ordnungsgemäß 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. Bei der SSML werden bevorzugte Attribute bestmöglich in der Reihenfolge berücksichtigt, in der sie nach dem Tag ordering aufgeführt sind. Wenn bevorzugte Attribute falsch konfiguriert sind, gibt Actions on Google möglicherweise dennoch eine gültige Stimme zurück, wobei die falsche Konfiguration jedoch verworfen wird.

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 die Zielsprache im BCP-47-Format enthalten. Dieser Wert wird in der Tabelle unterstützte Stimmen als „Sprachcode“ aufgeführt. Im folgenden Beispiel wird „chat“ anstelle der Standardsprache (Englisch) auf Französisch verbalisiert:

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

Die Plattform „Actions on Google“ unterstützt das <lang>-Tag bestmöglich. Nicht alle Sprachkombinationen liefern dieselben Ergebnisse, wenn sie in derselben SSML-Anfrage angegeben sind. 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 Zeichen gelesen.
  • Semitische Sprachen wie Arabisch, Hebräisch und Persisch werden vom <lang>-Tag nicht unterstützt und führen zu Stille. Wenn Sie eine dieser Sprachen verwenden möchten, empfehlen wir, mit dem Tag <voice> zu einer Stimme zu wechseln, die die gewünschte Sprache spricht (falls verfügbar).