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:
- Primärer Stress: In IPA mit
ˈ
und in X-SAMPA mit"
gekennzeichnet. - Sekundärbelastung: in IPA mit
ˌ
und in X-SAMPA mit%
gekennzeichnet. - 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
: Entwedermale
,female
oderneutral
.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 alsrequired
angegeben und nicht ordnungsgemäß konfiguriert ist, schlägt die Anfrage fehl.ordering
: Alle Attribute, die nach einemordering
-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 Tagordering
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).