Verbessern der Synthese mit Markupsprache für Sprachsynthese (Speech Synthesis Markup Language, SSML)

Die Markupsprache für Sprachsynthese (Speech Synthesis Markup Language, SSML) ist eine XML-basierte Markupsprache, die Entwicklern die Möglichkeit gibt, anzugeben, wie der Eingabetext mithilfe des Sprachsynthesediensts in synthetisierte Sprache konvertiert werden soll. Verglichen mit Nur-Text ermöglicht SSML Entwicklern, die Tonhöhe, Aussprache, Sprechgeschwindigkeit, Lautstärke und mehr für die Ausgabe der Sprachsynthese zu optimieren. Die normale Interpunktion, z.B. das Pausieren nach einem Punkt, oder die Verwendung der korrekten Intonation, wenn ein Satz mit einem Fragezeichen endet, werden automatisch verarbeitet.

Tipp

Erstellen Sie Nur-Text und SSML mithilfe des Tools zur Audioinhaltserstellung in Speech Studio. Sie können die Audioausgabe hören und die SSML anpassen, um die Sprachsynthese zu verbessern. Weitere Informationen finden Sie unter Sprachsynthese mit dem Tool zur Audioinhaltserstellung.

Die Speech-Dienstimplementierung von SSML basiert auf der Markupsprache für Sprachsynthese, Version 1.0 des World Wide Web Consortiums.

Wichtig

Ihnen wird jedes in Sprache umgewandelte Zeichen in Rechnung gestellt, auch Satzzeichen. Obwohl das SSML-Dokument selbst nicht abrechenbar ist, werden optionale Elemente wie Phoneme und Tonhöhe, mit denen eingestellt wird, wie der Text in Sprache umgewandelt wird, als abrechenbare Zeichen gezählt. Weitere Informationen finden Sie in den Text-zu-Sprache-Preisanmerkungen.

Vordefinierte neuronale Stimmen und benutzerdefinierte neuronale Stimmen

Verwenden Sie eine menschenähnliche neuronale Stimme, oder erstellen Sie Ihre eigene benutzerdefinierte neuronale Stimme speziell für Ihr Produkt oder Ihre Marke. Eine vollständige Liste der unterstützten Sprachen, Gebietsschemas und Stimmen finden Sie unter Sprachunterstützung. Weitere Informationen zur Verwendung vordefinierter neuronaler Stimmen und einer benutzerdefinierten neuronalen Stimme finden Sie unter Was ist Text-zu-Sprache?.

Hinweis

Auf dieser Website zur Sprachsynthese können Sie von Stimmen in verschiedenen Stilen und Tonhöhen vorgelesenen Beispieltext hören.

Sonderzeichen

Beachten Sie bei Verwendung von SSML, dass Sonderzeichen wie Anführungszeichen, Apostrophe und Klammern mit Escapezeichen versehen werden müssen. Weitere Informationen finden Sie unter Extensible Markup Language (XML) 1.0: Anhang D.

Unterstützte SSML-Elemente

Jedes SSML-Dokument wird mit SSML-Elementen (oder Tags) erstellt. Diese Elemente werden zum Anpassen von Tonhöhe, Satzrhythmus, Lautstärke und mehr verwendet. In den folgenden Abschnitten wird erläutert, wie die einzelnen Elemente verwendet werden und wann ein Element erforderlich oder optional ist.

Wichtig

Vergessen Sie nicht die Eingabe von doppelten Anführungszeichen um Attributwerte. Die Standards für wohlgeformtes, gültiges XML erfordern es, dass Attributwerte in doppelten Anführungszeichen stehen. So ist <prosody volume="90"> ein wohlgeformtes, gültiges Element, <prosody volume=90> aber nicht. SSML erkennt Attributwerte möglicherweise nicht, wenn sie nicht in doppelte Anführungszeichen eingeschlossen sind.

Erstellen eines SSML-Dokuments

Das speak-Element ist das Stammelement. Er ist für alle SSML-Dokumente erforderlich. Das speak-Element enthält wichtige Informationen, z.B. die Version, Sprache und die Definition des Markupvokabulars.

Syntax

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="string"></speak>

Attribute

attribute BESCHREIBUNG Erforderlich oder optional
version Gibt die Version der SSML-Spezifikation an, die zum Interpretieren des Dokumentmarkups verwendet wird. Die aktuelle Version ist 1.0. Erforderlich
xml:lang Gibt die Sprache des Stammdokuments an. Der Wert kann einen aus zwei Buchstaben klein geschriebenen Sprachcode enthalten, z. B. en. Oder der Wert kann den Sprachcode und das Land/die Region in Großbuchstaben enthalten, z. B. en-US. Erforderlich
xmlns Gibt den URI zu dem Dokument an, in dem das Markupvokabular (die Elementtypen und Attributnamen) des SSML-Dokuments definiert werden. Der aktuelle URI ist http://www.w3.org/2001/10/synthesis. Erforderlich

Auswählen einer Stimme für Sprachsynthese

Das voice-Element ist erforderlich. Hiermit wird die Stimme angegeben, die für die Sprachsynthese verwendet wird.

Syntax

<voice name="string">
    This text will get converted into synthesized speech.
</voice>

Attribut

Attribut BESCHREIBUNG Erforderlich oder optional
name Identifiziert die Stimme, die für die Ausgabe der Sprachsynthese verwendet wird. Eine vollständige Liste der unterstützten vordefinierten Stimmen finden Sie unter Sprachunterstützung. Zum Verwenden Ihrer benutzerdefinierten neuronalen Stimme geben Sie den Modellnamen in SSML als Stimmnamen an. Erforderlich

Beispiel

In diesem Beispiel wird die Stimme en-US-JennyNeural verwendet.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-JennyNeural">
        This is the text that is spoken.
    </voice>
</speak>

Verwenden mehrerer Stimmen

Innerhalb des speak-Elements können Sie mehrere Stimmen für die Ausgabe der Sprachsynthese angeben. Diese Stimmen können in verschiedenen Sprachen sein. Der Text muss bei jeder Stimme von einem voice-Element umschlossen werden.

Attribut

Attribut BESCHREIBUNG Erforderlich oder optional
name Identifiziert die Stimme, die für die Ausgabe der Sprachsynthese verwendet wird. Eine vollständige Liste der unterstützten Stimmen finden Sie unter Sprachunterstützung. Erforderlich

Beispiel

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-JennyNeural">
        Good morning!
    </voice>
    <voice name="en-US-ChristopherNeural">
        Good morning to you too Jenny!
    </voice>
</speak>

Anpassen von Sprechweisen

Standardmäßig synthetisiert der Sprachsynthesedienst Text mit einer neutralen Sprechweise für neuronale Stimmen. Sie können die Sprechweise, den Stilgrad und die Rolle auf Satzebene anpassen.

Sprechweisen, Stilgrad und Rollen werden für eine Teilmenge neuronaler Stimmen unterstützt. Wenn eine Sprechweise oder eine Rolle nicht unterstützt wird, verwendet der Dienst die neutrale Standardsprache. Zum Bestimmen, welche Sprechweisen und Rollen für die einzelnen Stimmen unterstützt werden, bieten sich diese Möglichkeiten:

Attribut BESCHREIBUNG Erforderlich oder optional
style Gibt den vordefinierten oder benutzerdefinierten Sprechstil an. Sprechweisen sind stimmenspezifisch. Erforderlich, wenn die Sprechweise für eine neuronale Stimme angepasst wird. Wenn Sie mstts:express-as verwenden, muss der Stil angegeben werden. Bei Angabe eines ungültigen Werts wird dieses Element ignoriert.
styledegree Gibt die Intensität der Sprechweise an. Zulässige Werte: 0,01 bis 2 (einschließlich). Der Standardwert ist 1, d. h. die vordefinierte Intensität für die Sprechweise. Die minimale Einheit ist 0,01, was zu einer leichten Tendenz zur Zielsprechweise führt. Ein Wert von 2 führt zu einer Verdoppelung der standardmäßigen Intensität der Sprechweise. Optional. Wenn Sie das Attribut style nicht festlegen, wird das Attribut styledegree ignoriert. Anpassungen werden in der Sprechweise der neuronalen Stimmen für Chinesisch (Mandarin, vereinfacht) unterstützt.
role Gibt die Sprechrolle an. Die Stimme verhält sich wie ein anderes Alter und Geschlecht, aber der Name der Stimme ändert sich nicht. Optional. Rollenanpassungen werden für folgende neuronale Stimmen für Chinesisch (Mandarin, vereinfacht) unterstützt: zh-CN-XiaomoNeural, zh-CN-XiaoxuanNeural, zh-CN-YunxiNeural und zh-CN-YunyeNeural.

Stil

Sie verwenden das mstts:express-as-Element, um Emotionen wie Fröhlichkeit, Empathie und Besonnenheit auszudrücken. Sie können die Stimme auch für verschiedene Szenarien wie Kundendienst, Nachrichtenbeitrag und Sprachassistent optimieren.

Eine Liste der unterstützten Stile pro neuronaler Stimme finden Sie unter unterstützte Sprachstile und -rollen.

Zum Verwenden Ihres benutzerdefinierten Stils geben Sie den Namen des Stils an, den Sie in Speech Studio eingegeben haben.

Syntax

<mstts:express-as style="string"></mstts:express-as>

Beispiel

Dieser SSML-Codeausschnitt veranschaulicht, wie die Sprechweise mithilfe des <mstts:express-as>-Elements in cheerful (fröhlich) geändert wird.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="en-US">
    <voice name="en-US-JennyNeural">
        <mstts:express-as style="cheerful">
            That'd be just amazing!
        </mstts:express-as>
    </voice>
</speak>

Die folgende Tabelle enthält Beschreibungen der einzelnen unterstützten Sprechweisen:

Style BESCHREIBUNG
style="advertisement_upbeat" Drückt einen begeisterten und energiegeladenen Ton aus, um ein Produkt oder einen Dienst zu bewerben.
style="affectionate" Warmer und herzlicher Ton mit höherer Tonhöhe und stimmlicher Energie Der Sprecher ist in einem Zustand, in dem er die Aufmerksamkeit der Zuhörer auf sich zieht. Die „Persönlichkeit“ des Sprechers ist oft von liebenswerter Art.
style="angry" Wütender und verärgerter Ton
style="assistant" Herzlicher und zwangloser Ton für digitale Assistenten
style="calm" Kühle, gesammelte und gelassene Haltung beim Sprechen Ton, Tonhöhe und Intonation sind im Vergleich zu anderen Sprachtypen viel einheitlicher.
style="chat" Lockerer und zwangloser Ton
style="cheerful" Positiver und fröhlicher Ton
style="customerservice" Freundlicher und hilfsbereiter Ton für den Kundensupport
style="depressed" Melancholischer und niedergeschlagener Ton mit geringerer Tonhöhe und weniger Energie
style="disgruntled" Verächtlicher und klagender Ton Eine Rede mit dieser Emotion zeugt von Unmut und Verachtung.
style="documentary-narration" Dokumentationen werden in einem entspannten, interessierten und informativen Stil erzählt, der sich für die Synchronisierung von Dokumentationen, Expertenkommentaren und ähnlichen Inhalten eignet.
style="embarrassed" Unsicherer und zögerlicher Ton, wenn sich der Sprecher unwohl fühlt
style="empathetic" Drückt ein Gefühl von Anteilnahme und Verständnis aus
style="envious" Drückt einen Ton der Bewunderung aus, wenn eine Person etwas begehrt, das eine andere Person hat.
style="excited" Drückt einen optimistischen und hoffnungsvollen Ton aus. Es klingt, als ob etwas Großartiges passiert, und der Sprecher sich sehr darüber freut.
style="fearful" Ängstlicher und nervöser Ton mit höherer Tonhöhe, höherer stimmlicher Energie und höherem Tempo Der Sprecher befindet sich in einem Zustand von Spannung und Unbehagen.
style="friendly" Drückt einen angenehmen, einladenden und warmen Ton aus. Es klingt aufrichtig und fürsorglich.
style="gentle" Sanfter, höflicher und angenehmer Ton mit geringerer Tonhöhe und stimmlicher Energie
style="hopeful" Drückt einen warmen und sehnsüchtigen Ton aus. Es klingt, als würde dem Sprecher etwas Gutes widerfahren.
style="lyrical" Melodischer und gefühlvoller Ton zum Ausdrücken von Emotionen
style="narration-professional" Professioneller und objektiver Ton für das Lesen von Inhalten
style="narration-relaxed" Beruhigender und melodiöser Ton für das Lesen von Inhalten.
style="newscast" Formeller und professioneller Ton für Nachrichten
style="newscast-casual" Gewandter und ungezwungener Ton für die Mitteilung allgemeiner Nachrichten
style="newscast-formal" Formaler, souveräner und verbindlicher Ton für die Mitteilung von Nachrichten
style="poetry-reading" Emotionaler und rhythmischer Ton beim Lesen eines Gedichts
style="sad" Trauriger Ton
style="serious" Strenger und gebieterischer Ton Der Sprecher klingt oft steifer und viel weniger entspannt mit festem Rhythmus.
style="shouting" Spricht wie aus weiter Ferne oder von außen und um sich deutlich bemerkbar zu machen
style="sports_commentary" Drückt einen entspannten und interessanten Ton bei der Übertragung von Sportereignissen aus.
style="sports_commentary_excited" Drückt einen intensiven und energiegeladenen Ton für aufregende Momente bei der Übertragung von Sportereignissen aus.
style="whispering" Spricht sehr weich mit ruhigem, sanftem Klang
style="terrified" Drückt einen sehr beängstigten Ton aus, hastig und mit zitternder Stimme. Es klingt, als befände sich der Sprecher in einem unsicheren und hektischen Zustand.
style="unfriendly" Drückt einen kalten und gleichgültigen Ton aus.

Stilgrad

Die Intensität der Sprechweise kann angepasst werden, damit sie besser zu Ihrem Anwendungsfall passt. Mit dem Attribut styledegree können Sie eine kräftigere oder sanftere Sprechweise angeben, um die Sprache ausdrucksstärker oder gedämpfter zu gestalten.

Eine Liste der neuronalen Stimmen, die graduelle Sprechweise unterstützen, finden Sie unter unterstützte Sprachstile und -rollen.

Syntax

<mstts:express-as style="string" styledegree="value"></mstts:express-as>

Beispiel

Dieser SSML-Codeausschnitt veranschaulicht, wie das Attribut styledegree verwendet wird, um die Intensität der Sprechweise für zh-CN-XiaomoNeural zu ändern.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="zh-CN">
    <voice name="zh-CN-XiaoxiaoNeural">
        <mstts:express-as style="sad" styledegree="2">
            快走吧,路上一定要注意安全,早去早回。
        </mstts:express-as>
    </voice>
</speak>

Rolle

Abgesehen von der Anpassung der Sprechweisen und ihrer Abstufungen können Sie auch den role-Parameter anpassen, damit die Stimme ein anderes Alter und Geschlecht imitiert. Beispielsweise kann eine männliche Stimme die Tonhöhe erhöhen und die Intonation so ändern, dass eine weibliche Stimme imitiert wird, aber der Stimmname wird nicht geändert.

Eine Liste der unterstützten Rollen pro neuronaler Stimme finden Sie unter unterstützte Sprachstile und -rollen.

Syntax

<mstts:express-as role="string" style="string"></mstts:express-as>

Beispiel

Dieser SSML-Codeausschnitt veranschaulicht, wie das Attribut role verwendet wird, um die Rolle für zh-CN-XiaomoNeural zu ändern.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="zh-CN">
    <voice name="zh-CN-XiaomoNeural">
        女儿看见父亲走了进来,问道:
        <mstts:express-as role="YoungAdultFemale" style="calm">
            “您来的挺快的,怎么过来的?”
        </mstts:express-as>
        父亲放下手提包,说:
        <mstts:express-as role="OlderAdultMale" style="calm">
            “刚打车过来的,路上还挺顺畅。”
        </mstts:express-as>
    </voice>
</speak>

Die folgende Tabelle enthält Beschreibungen der einzelnen unterstützten Rollen:

Rolle BESCHREIBUNG
role="Girl" Die Stimme imitiert ein Mädchen.
role="Boy" Die Stimme imitiert einen Jungen.
role="YoungAdultFemale" Die Stimme imitiert eine junge erwachsene Frau.
role="YoungAdultMale" Die Stimme imitiert einen jungen erwachsenen Mann.
role="OlderAdultFemale" Die Stimme imitiert eine ältere erwachsene Frau.
role="OlderAdultMale" Die Stimme imitiert einen älteren erwachsenen Mann.
role="SeniorFemale" Die Stimme imitiert eine reife Frau.
role="SeniorMale" Die Stimme imitiert einen reifen Mann.

Anpassen der gesprochenen Sprachen

Standardmäßig sprechen alle neuronalen Stimmen ihre eigene Sprache und die englische Sprache fließend ohne Verwendung des Elements <lang xml:lang>. Wenn der Eingabetext auf Englisch beispielsweise „I'm excited to try text to speech“ lautet und Sie die Stimme es-ES-ElviraNeural festlegen, wird der Text in englischer Sprache mit einem spanischen Akzent gesprochen. Bei den meisten neuronalen Stimmen wird das Festlegen einer bestimmten gesprochenen Sprache mit dem Element <lang xml:lang> auf Satz- oder Wortebene derzeit nicht unterstützt.

Sie können die gesprochene Sprache für die neuronale Stimme en-US-JennyMultilingualNeural auf Satz- und Wortebene anpassen, indem Sie das <lang xml:lang>-Element verwenden. Die neuronale Stimme en-US-JennyMultilingualNeural beherrscht 14 Sprachen (z. B. Englisch, Spanisch und Chinesisch). Die unterstützten Sprachen werden in einer Tabelle angegeben, die den Syntax- und Attributdefinitionen des <lang>-Elements folgt.

Syntax

<lang xml:lang="string"></lang>

Attribut

Attribut BESCHREIBUNG Erforderlich oder optional
lang Gibt die Sprache an, in der die neuronale Stimme sprechen soll. Erforderlich, um die gesprochene Sprache für die neuronale Stimme anzupassen. Wenn Sie lang xml:lang verwenden, muss das Gebietsschema angegeben werden.

Hinweis

Das <lang xml:lang>-Element ist mit den Elementen prosody und break nicht kompatibel. Sie können Pausen und Satzrhythmus wie Tonhöhe, Kontur, Geschwindigkeit oder Lautstärke in diesem Element nicht anpassen.

Ermitteln Sie anhand dieser Tabelle, welche gesprochenen Sprachen für die einzelnen neuronalen Stimmen unterstützt werden. Wenn die Stimme nicht die Sprache des Eingabetexts spricht, erfolgt keine synthetisierte Audioausgabe seitens des Speech-Diensts.

Sprache Primäres und standardmäßiges Gebietsschema Sekundäre Gebietsschemas
en-US-JennyMultilingualNeural en-US de-DE, en-AU, en-CA, en-GB, es-ES, es-MX, fr-CA, fr-FR, it-IT, ja-JP, ko-KR, pt-BR, zh-CN

Beispiel

Die primäre Sprache für en-US-JennyMultilingualNeural ist en-US. en-US muss als Standardsprache innerhalb des speak-Elements angegeben werden, unabhängig davon, ob die Sprache an anderer Stelle angepasst wird. Dieser SSML-Codeausschnitt zeigt, wie mit der neuronalen Stimme en-US-JennyMultilingualNeural in der Sprache de-DE gesprochen wird.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="en-US">
    <voice name="en-US-JennyMultilingualNeural">
        <lang xml:lang="de-DE">
            Wir freuen uns auf die Zusammenarbeit mit Ihnen!
        </lang>
    </voice>
</speak>

Innerhalb des speak-Elements können Sie mehrere Sprachen wie en-US für die Sprachsynthese angeben. Bei jeder angepassten Sprache muss der Text mit der Sprache übereinstimmen und in ein voice-Element integriert werden. Dieser SSML-Codeausschnitt zeigt, wie Sie <lang xml:lang> verwenden, um die gesprochenen Sprachen in es-MX, en-US und fr-FR zu ändern.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="en-US">
    <voice name="en-US-JennyMultilingualNeural">
        <lang xml:lang="es-MX">
            ¡Esperamos trabajar con usted!
        </lang>
        <lang xml:lang="en-US">
           We look forward to working with you!
        </lang>
        <lang xml:lang="fr-FR">
            Nous avons hâte de travailler avec vous!
        </lang>
    </voice>
</speak>

Hinzufügen oder Entfernen einer Unterbrechung oder Pause

Verwenden Sie das break-Element, um Pausen oder Unterbrechungen zwischen Wörtern einzufügen. Sie können es auch verwenden, um Pausen zu unterdrücken, die durch die Sprachsynthese automatisch hinzugefügt werden.

Hinweis

Mithilfe dieses Elements können Sie das Standardverhalten der Sprachsynthese für ein Wort oder einen Ausdruck außer Kraft setzen, wenn es bzw. er in synthetisierter Sprache unnatürlich klingt. Legen Sie strength auf none fest, um eine von der Sprachsynthese automatisch eingefügte Pause im Sprechrhythmus zu unterbinden.

Syntax

<break strength="string" />
<break time="string" />

Attribute

attribute BESCHREIBUNG Erforderlich oder optional
strength Gibt die relative Dauer einer Pause mit einem der folgenden Werte an:
  • none
  • x-weak
  • weak
  • medium (Standard)
  • strong
  • x-strong
Optional
time Gibt die absolute Dauer einer Pause in Sekunden oder Millisekunden (ms) an. Dieser Wert sollte kleiner als 5,000 ms sein. Beispiele für gültige Werte sind 2s und 500ms. Optional

Hier sind weitere Details zum strength-Attribut.

Strength Relative Dauer
„None“, oder wenn kein Wert angegeben 0 ms
Extraschwach 250 ms
Schwach 500 ms
Medium 750 ms
STARK (Strong) 1\.000 ms
Extrastark 1.250 ms

Beispiel

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-JennyNeural">
        Welcome to Microsoft Cognitive Services <break time="100ms" /> Text-to-Speech API.
    </voice>
</speak>

Hinzufügen von Stille

Verwenden Sie das mstts:silence-Element, um Pausen vor oder nach Text oder zwischen zwei aufeinander folgenden Sätzen einzufügen.

Hinweis

Der Unterschied zwischen mstts:silence und break ist, dass break an beliebiger Stelle im Text hinzugefügt werden kann. „Silence“ (Stille) funktioniert nur am Anfang oder Ende des Eingabetexts oder zwischen zwei aufeinander folgenden Sätzen.

Syntax

<mstts:silence  type="string"  value="string"/>

Attribute

attribute BESCHREIBUNG Erforderlich oder optional
type Gibt an, wo und wie Stille hinzugefügt wird. Die folgenden Arten von Stille werden unterstützt:
  • Leading: Zusätzliche Stille am Anfang des Texts. Der von Ihnen festgelegte Wert wird der natürlichen Stille vor dem Textanfang hinzugefügt.
  • Leading-exact: Stille am Anfang des Texts. Der Wert gibt die Länge der Stille als absoluten Wert an.
  • Tailing: Zusätzliche Stille am Ende des Texts. Der festgelegte Wert wird der natürlichen Stille nach dem letzten Wort hinzugefügt.
  • Tailing-exact: Stille am Ende des Texts. Der Wert gibt die Länge der Stille als absoluten Wert an.
  • Sentenceboundary: Zusätzliche Stille zwischen benachbarten Sätzen. Die tatsächliche Länge der Stille für diesen Typ umfasst die natürliche Stille nach dem letzten Wort im vorherigen Satz, den Wert, den Sie für diesen Typ festgelegt haben, und die natürliche Stille vor dem Anfangswort im nächsten Satz.
  • Sentenceboundary-exact: Stille zwischen benachbarten Sätzen. Der Wert gibt die Länge der Stille als absoluten Wert an.

Der Typ der absoluten Stille (mit dem Suffix -exact) ersetzt jede ansonsten natürliche führende oder nachfolgende Stille. Typen absoluter Stille haben Vorrang vor dem entsprechenden nicht absoluten Typ. Wenn Sie z. B. sowohl Leading- als auch Leading-exact-Typen festlegen, wird der Leading-exact-Typ wirksam.
Erforderlich
Value Gibt die Dauer einer Pause in Sekunden oder Millisekunden an. Dieser Wert sollte kleiner als 5,000 ms sein. Beispiele für gültige Werte sind 2s und 500ms. Erforderlich

Beispiel

In diesem Beispiel wird mtts:silence verwendet, um 200 ms Stille zwischen zwei Sätzen hinzuzufügen.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="http://www.w3.org/2001/mstts" xml:lang="en-US">
<voice name="en-US-JennyNeural">
<mstts:silence  type="Sentenceboundary" value="200ms"/>
If we’re home schooling, the best we can do is roll with what each day brings and try to have fun along the way.
A good place to start is by trying out the slew of educational apps that are helping children stay happy and smash their schooling at the same time.
</voice>
</speak>

Angeben von Absätzen und Sätzen

Die Elemente p und s werden verwendet, um Abschnitte bzw. Sätze zu bezeichnen. Wenn diese Elemente fehlen, ermittelt die Sprachsynthese die Struktur des SSML-Dokuments automatisch.

Das p-Element kann Text und die folgenden Elemente enthalten: audio, break, phoneme, prosody, say-as, sub, mstts:express-as und s.

Das s-Element kann Text und die folgenden Elemente enthalten: audio, break, phoneme, prosody, say-as, mstts:express-as und sub.

Syntax

<p></p>
<s></s>

Beispiel

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-JennyNeural">
        <p>
            <s>Introducing the sentence element.</s>
            <s>Used to mark individual sentences.</s>
        </p>
        <p>
            Another simple paragraph.
            Sentence structure in this paragraph is not explicitly marked.
        </p>
    </voice>
</speak>

Verwenden von Phonemen zur Verbesserung der Aussprache

Das ph-Element wird für die phonetische Aussprache in SSML-Dokumenten verwendet. Das ph-Element kann nur Text, aber keine anderen Elemente enthalten. Geben Sie immer lesbare Sprache als ein Fallback an.

Phonetische Alphabete bestehen aus Phonen (Lauten), die sich aus Buchstaben, Zahlen oder Zeichen (manchmal in Kombination) zusammensetzen. Jedes Phon beschreibt einen eindeutigen Sprachklang. Dies steht im Gegensatz zum lateinischen Alphabet, in dem jeder Buchstabe mehrere gesprochene Klänge darstellen kann. Bedenken Sie die unterschiedliche Aussprache des Buchstabens „C“ in den Städtenamen „Coburg“ und „Celle“ oder die unterschiedliche Aussprache der Buchstabenkombination „ch“ in den Wörtern „ich“ und „ach“.

Hinweis

Eine Liste der Gebietsschemas, die Phoneme unterstützen, finden Sie in den Fußnoten zur Tabelle Sprachenunterstützung.

Syntax

<phoneme alphabet="string" ph="string"></phoneme>

Attribute

attribute BESCHREIBUNG Erforderlich oder optional
alphabet Gibt das phonetische Alphabet im Attribut ph an, das zum Synthetisieren der Aussprache der Zeichenfolge verwendet werden soll. Die Zeichenfolge, die das Alphabet angibt, muss in Kleinbuchstaben angegeben werden. Die folgenden Optionen stellen die Alphabete dar, die angegeben werden können:
Das Alphabet gilt nur für phoneme im Element.
Optional
ph Eine Zeichenfolge mit Phonen, die die Aussprache des Worts im phoneme-Element angeben. Wenn die angegebene Zeichenfolge nicht erkannte Phone enthält, weist die Sprachsynthese das gesamte SSML-Dokument zurück und erzeugt keine der im Dokument angegebenen Sprachausgaben. Erforderlich, wenn Phoneme verwendet werden.

Beispiele

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-JennyNeural">
        <phoneme alphabet="ipa" ph="təˈmeɪtoʊ"> tomato </phoneme>
    </voice>
</speak>
<speak version="1.0" xmlns="https://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-JennyNeural">
        <phoneme alphabet="sapi" ph="iy eh n y uw eh s"> en-US </phoneme>
    </voice>
</speak>
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-JennyNeural">
        <s>His name is Mike <phoneme alphabet="ups" ph="JH AU"> Zhou </phoneme></s>
    </voice>
</speak>

Verwenden eines benutzerdefinierten Lexikons zum Verbessern der Aussprache

Manchmal kann ein Wort vom Sprachsynthesedienst nicht korrekt ausgesprochen werden. Beispielsweise der Name eines Unternehmens, ein medizinischer Begriff oder ein Emoji. Mit den Tags phoneme und sub können Sie die Aussprache einzelner Entitäten in SSML definieren. Wenn Sie die Aussprache mehrerer Entitäten definieren möchten, können Sie mithilfe des Tags lexicon ein benutzerdefiniertes Lexikon erstellen.

Hinweis

Eine Liste der Gebietsschemas, die ein benutzerdefiniertes Lexikon unterstützen, finden Sie in den Fußnoten zur Tabelle Sprachenunterstützung.

Syntax

<lexicon uri="string"/>

Hinweis

Das Element lexicon wird von der API für lange Audioinhalte nicht unterstützt. Verwenden Sie für die Langform-Sprachsynthese stattdessen die Batchsynthese-API (Vorschau).

Attribut

Attribut BESCHREIBUNG Erforderlich oder optional
uri Die Adresse des externen PLS-Dokuments Erforderlich

Verwendung

Wenn Sie die Aussprache mehrerer Entitäten definieren möchten, können Sie ein benutzerdefiniertes Lexikon erstellen. Dieses wird als .xml- oder als .pls-Datei gespeichert. Der folgende Code zeigt eine .xml-Beispieldatei:

<?xml version="1.0" encoding="UTF-8"?>
<lexicon version="1.0"
      xmlns="http://www.w3.org/2005/01/pronunciation-lexicon"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.w3.org/2005/01/pronunciation-lexicon
        http://www.w3.org/TR/2007/CR-pronunciation-lexicon-20071212/pls.xsd"
      alphabet="ipa" xml:lang="en-US">
  <lexeme>
    <grapheme>BTW</grapheme>
    <alias>By the way</alias>
  </lexeme>
  <lexeme>
    <grapheme> Benigni </grapheme>
    <phoneme> bɛˈniːnji</phoneme>
  </lexeme>
  <lexeme>
    <grapheme>😀</grapheme>
    <alias>test emoji</alias>
  </lexeme>
</lexicon>

Das lexicon-Element enthält mindestens ein lexeme-Element. Jedes lexeme-Element enthält mindestens ein grapheme-Element und mindestens eines der Elemente grapheme, alias und phoneme. Das grapheme-Element enthält Text, der die Orthografie beschreibt. Mithilfe der alias-Elemente wird die Aussprache eines Akronyms oder eines abgekürzten Begriffs angegeben. Das phoneme-Element stellt Text bereit, der die Aussprache von lexeme beschreibt. Wenn die Elemente alias und phoneme mit demselben grapheme-Element angegeben werden, hat alias die höhere Priorität.

Wichtig

Beim Element lexeme wird im benutzerdefinierten Lexikon die Groß-/Kleinschreibung beachtet. Wenn Sie beispielsweise nur ein Phonem für das lexeme „Hallo“ angeben, funktioniert es nicht für das lexeme „hallo“.

Das Lexikon enthält das erforderliche xml:lang-Attribut, um anzugeben, auf welches Gebietsschema es angewendet werden soll. Ein benutzerdefiniertes Lexikon ist standardmäßig auf ein einzelnes Gebietsschema beschränkt, sodass die Anwendung auf ein anderes Gebietsschema nicht funktioniert.

Sie können die Aussprache eines Ausdrucks nicht direkt mithilfe des benutzerdefinierten Lexikons festlegen. Wenn Sie die Aussprache für ein Akronym oder einen abgekürzten Begriff festlegen möchten, müssen Sie zuerst einen alias angeben und anschließend das phoneme diesem alias zuordnen. Beispiel:

  <lexeme>
    <grapheme>Scotland MV</grapheme>
    <alias>ScotlandMV</alias>
  </lexeme>
  <lexeme>
    <grapheme>ScotlandMV</grapheme>
    <phoneme>ˈskɒtlənd.ˈmiːdiəm.weɪv</phoneme>
  </lexeme>

Hinweis

Die Silbengrenze ist in der IPA-Datei ".".

Sie können auch direkt ihren erwarteten alias für das Akronym oder einen abgekürzten Begriff angeben. Beispiel:

  <lexeme>
    <grapheme>Scotland MV</grapheme>
    <alias>Scotland Media Wave</alias>
  </lexeme>

Wichtig

Das phoneme-Element darf keine Leerzeichen enthalten, wenn Sie die IPA-Datei verwenden.

Weitere Informationen zur benutzerdefinierten Lexikondatei finden Sie unter Spezifikation für Aussprachelexika (Pronunciation Lexicon Specification, PLS), Version 1.0.

Veröffentlichen Sie als Nächstes Ihre benutzerdefinierte Lexikondatei. Diese Datei kann zwar an einem beliebigen Ort gespeichert werden, wir empfehlen jedoch, Azure Blob Storage zu verwenden.

Nachdem Sie Ihr benutzerdefiniertes Lexikon veröffentlicht haben, können Sie von SSML aus darauf verweisen.

Hinweis

Das Element lexicon muss sich innerhalb des Elements voice befinden.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis"
          xmlns:mstts="http://www.w3.org/2001/mstts"
          xml:lang="en-US">
    <voice name="en-US-JennyNeural">
        <lexicon uri="http://www.example.com/customlexicon.xml"/>
        BTW, we will be there probably at 8:00 tomorrow morning.
        Could you help leave a message to Robert Benigni for me?
    </voice>
</speak>

Wenn Sie dieses benutzerdefinierte Lexikon verwenden, wird „BTW“ als „By the way“ gelesen. „Benigni“ wird mit der bereitgestellten IPA-Datei „bɛˈniːnji“ gelesen.

Fehler können im benutzerdefinierten Lexikon leicht unterlaufen, daher stellt Microsoft ein Validierungstool für das benutzerdefinierte Lexikon zur Verfügung. Es enthält detaillierte Fehlermeldungen, um nach Fehlern zu suchen. Überprüfen Sie Ihr benutzerdefiniertes Lexikon mit diesem Tool, bevor Sie SSML mit dem benutzerdefinierten Lexikon an den Speech-Dienst senden.

Einschränkungen

  • Dateigröße: Die maximale Größe der benutzerdefinierten Lexikondatei beträgt 100 KB. Wenn eine Datei diese Größe übersteigt, bleiben Syntheseanforderungen erfolglos.
  • Aktualisierung des Lexikoncaches: Das benutzerdefinierte Lexikon wird beim ersten Laden mit dem URI als Schlüssel für die Sprachsynthese zwischengespeichert. Das Lexikon mit dem gleichen URI wird nach 15 Minuten neu geladen, sodass die Änderung des benutzerdefinierten Lexikons nach spätestens 15 Minuten wirksam wird.

Phonetische Sätze des Speech-Diensts

Im vorherigen Beispiel verwenden wir die IPA-Datei, die auch als IPA-Lautsatz bezeichnet wird. Wir empfehlen Ihnen, das IPA zu verwenden, da es der internationale Standard ist. Einige IPA-Zeichen können in Unicode als zusammengesetzte und als aufgelöste Version dargestellt werden. Im benutzerdefinierten Lexikon wird nur die aufgelöste Unicodedarstellung unterstützt.

Der Speech-Dienst definiert einen phonetischen Satz für diese Gebietsschemas (en-US, fr-FR, de-DE, es-ES, ja-JP, zh-CN, zh-HK und zh-TW). Ausführliche Informationen zum phonetischen Alphabet des Speech-Diensts finden Sie unter Phonetische Sätze des Speech-Diensts.

x-microsoft-sapi kann wie hier gezeigt als Wert des Attributs alphabet mit benutzerdefinierten Lexika verwendet werden:

<?xml version="1.0" encoding="UTF-8"?>
<lexicon version="1.0"
      xmlns="http://www.w3.org/2005/01/pronunciation-lexicon"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.w3.org/2005/01/pronunciation-lexicon
        http://www.w3.org/TR/2007/CR-pronunciation-lexicon-20071212/pls.xsd"
      alphabet="x-microsoft-sapi" xml:lang="en-US">
  <lexeme>
    <grapheme>BTW</grapheme>
    <alias> By the way </alias>
  </lexeme>
  <lexeme>
    <grapheme> Benigni </grapheme>
    <phoneme> b eh 1 - n iy - n y iy </phoneme>
  </lexeme>
</lexicon>

Anpassen des Satzrhythmus

Das prosody-Element wird verwendet, um Änderungen an Tonhöhe, Kontur, Bereich, Geschwindigkeit und Lautstärke für die Ausgabe der Sprachsynthese anzugeben. Das prosody-Element kann Text und die folgenden Elemente enthalten: audio, break, p, phoneme, prosody, say-as, sub und s.

Weil Attributwerte für den Satzrhythmus über einen breiten Bereich variieren können, interpretiert die Spracherkennung die zugewiesenen Werte als einen Vorschlag dazu, wie die tatsächlichen Satzrhythmuswerte für die ausgewählte Stimme lauten sollten. Die Sprachsynthese beschränkt oder ersetzt nicht unterstützte Werte. Beispiele für nicht unterstützte Werte sind eine Tonhöhe von 1 MHz oder eine Lautstärke von 120.

Syntax

<prosody pitch="value" contour="value" range="value" rate="value" volume="value"></prosody>

Attribute

attribute BESCHREIBUNG Erforderlich oder optional
pitch Gibt die Basistonhöhe für den Text an. Sie können die Tonhöhe ausdrücken als:
  • Ein absoluter Wert, der ausgedrückt wird als eine Zahl, hinter der„Hz“ (Hertz) steht. Beispiel: <prosody pitch="600Hz">some text</prosody>.
  • Ein relativer Wert:
    • Ein relativer Wert, der ausgedrückt wird als eine Zahl, vor der „+“ oder „-“ und hinter der „Hz“ oder „st“ steht, was den Betrag zur Änderung der Tonhöhe angibt. Beispiel: <prosody pitch="+80Hz">some text</prosody> oder <prosody pitch="-2st">some text</prosody>. Das „st“ gibt an, dass die Änderungseinheit ein Halbton ist, bei dem es sich um die Hälfte eines Tons (ein halber Schritt) auf der diatonischen Standardtonleiter handelt.
    • Als Prozentsatz: ausgedrückt als Zahl, der "+" (optional) oder "-" vorangestellt wurde und der "%", folgt, was die relative Änderung angibt. Beispiel: <prosody pitch="50%">some text</prosody> oder <prosody pitch="-50%">some text</prosody>.
  • Einen konstanten Wert:
    • x-low
    • niedrig
    • mittel
    • high
    • x-high
    • default
Optional
contour Die Kontur unterstützt jetzt neuronale Stimmen. Die Kontur stellt Änderungen der Tonhöhe dar. Diese Änderungen werden als ein Array von Zielen an den angegebenen Zeitpositionen in der Sprachausgabe dargestellt. Jedes Ziel wird durch Gruppen von Parameterpaaren definiert. Beispiel:

<prosody contour="(0%,+20Hz) (10%,-2st) (40%,+10Hz)">

Der erste Wert in jeder Gruppe von Parametern gibt den Ort der Tonhöhenänderung als Prozentsatz der Textdauer an. Der zweite Wert gibt den Betrag an, um den die Tonhöhe erhöht oder verringert werden soll. Dazu wird ein relativer Wert oder ein Aufzählungswert für die Tonhöhe verwendet (siehe pitch).
Optional
range Ein Wert, der den Tonhöhenbereich für den Text darstellt. Sie können range mit denselben absoluten Werten, relativen Werten oder Aufzählungswerten ausdrücken, mit denen pitch beschrieben wird. Optional
rate Gibt die Sprechgeschwindigkeit für den Text an. Sie können rate ausdrücken als:
  • Ein relativer Wert:
    • Als eine relative Zahl: ausgedrückt als eine Zahl, die als Multiplikator des Standards fungiert. So führt beispielsweise der Wert 1 zu keiner Änderung der ursprünglichen Rate. Der Wert 0,5 führt zu einer Halbierung der ursprünglichen Rate. Ein Wert von 2 führt zur Verdopplung der ursprünglichen Rate.
    • Als Prozentsatz: ausgedrückt als Zahl, der "+" (optional) oder "-" vorangestellt wurde und der "%", folgt, was die relative Änderung angibt. Beispiel: <prosody rate="50%">some text</prosody> oder <prosody rate="-50%">some text</prosody>.
  • Einen konstanten Wert:
    • x-slow
    • langsam
    • mittel
    • fast
    • x-fast
    • default
Optional
volume Gibt die Lautstärke der Sprechstimme an. Sie können die Lautstärke ausdrücken als:
  • Ein absoluter Wert, der ausgedrückt wird als eine Zahl im Bereich von 0,0 bis 100,0 – von am leisesten bis zu am lautesten. Beispiel: 75. Der Standardwert ist „100,0“.
  • Ein relativer Wert:
    • Ein relativer Wert, der ausgedrückt wird als eine Zahl, vor der ein „+“ oder „-“ steht und die einen Betrag zum Ändern der Lautstärke angibt. Bespiele sind „+10“ oder „-5,5“.
    • Als Prozentsatz: ausgedrückt als Zahl, der "+" (optional) oder "-" vorangestellt wurde und der "%", folgt, was die relative Änderung angibt. Beispiel: <prosody volume="50%">some text</prosody> oder <prosody volume="+3%">some text</prosody>.
  • Einen konstanten Wert:
    • silent
    • x-soft
    • soft
    • mittel
    • loud
    • x-loud
    • default
Optional

Ändern der Sprechgeschwindigkeit

Die Sprechgeschwindigkeit kann auf Wort- oder Satzebene angewendet werden. Die Geschwindigkeitsänderungen sollten innerhalb von 0,5 bis 2 Mal der ursprünglichen Audiowiedergabe betragen.

Beispiel

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-JennyNeural">
        <prosody rate="+30.00%">
            Welcome to Microsoft Cognitive Services Text-to-Speech API.
        </prosody>
    </voice>
</speak>

Ändern der Lautstärke

Änderungen der Lautstärke können auf Satzebene vorgenommen werden. Die Lautstärkeänderungen sollten innerhalb von 0 (Stille) bis 1,5 Mal der ursprüngliche Audiowiedergabe liegen.

Beispiel

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-JennyNeural">
        <prosody volume="+20.00%">
            Welcome to Microsoft Cognitive Services Text-to-Speech API.
        </prosody>
    </voice>
</speak>

Ändern der Tonhöhe

Änderungen der Tonhöhe können auf Satzebene vorgenommen werden. Die Tonhöhenänderungen sollten innerhalb von 0,5 bis 1.5 Mal der ursprünglichen Audiowiedergabe betragen.

Beispiel

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-JennyNeural">
        Welcome to <prosody pitch="high">Microsoft Cognitive Services Text-to-Speech API.</prosody>
    </voice>
</speak>

Ändern der Tonhöhenkontur

Wichtig

Änderungen der Tonhöhenkontur werden jetzt für neuronale Stimmen unterstützt.

Beispiel

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-JennyNeural">
        <prosody contour="(60%,-60%) (100%,+80%)" >
            Were you the only person in the room?
        </prosody>
    </voice>
</speak>

Anpassen der Hervorhebung

Das optionale Element emphasis wird zum Hinzufügen oder Entfernen von Word-Level-Stress für den Text verwendet. Dieses Element kann nur Text und die folgenden Elemente enthalten: audio, break, emphasis, lang, phoneme, prosody, say-as, sub und voice.

Hinweis

Die Hervorhebungsoptimierung auf Wortebene ist nur für diese neuronalen Stimmen verfügbar: en-US-GuyNeural, en-US-DavisNeural, und en-US-JaneNeural.

Syntax

<emphasis level="value"></emphasis>

Attribut

Attribut BESCHREIBUNG Erforderlich oder optional
level Gibt die Stärke der Hervorhebung an, die angewendet werden soll:
  • reduced
  • none
  • moderate
  • strong

Wenn das Attribut level nicht angegeben wird, ist moderate die Standardstufe. Ausführliche Informationen zu jedem Attribut finden Sie im Hervorhebungselement
Optional

Beispiel

In diesem SSML-Codeausschnitt wird veranschaulicht, wie das Element emphasis verwendet wird, um für das Wort "Besprechungen" eine moderate Akzentsetzung hinzuzufügen.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="en-US">
    <voice name="en-US-GuyNeural">
    I can help you join your <emphasis level="moderate">meetings</emphasis> fast.
    </voice>
</speak>

Hinzufügen eines Say-as-Elements

Das say-as-Element ist optional. Es gibt den Inhaltstyp, z. B. Zahl oder Datum, für den Text des Elements an. Das Element informiert die Sprachsynthese-Engine, wie der Text ausgesprochen wird.

Syntax

<say-as interpret-as="string" format="digit string" detail="string"> </say-as>

Attribute

attribute BESCHREIBUNG Erforderlich oder optional
interpret-as Gibt an, welchen Inhaltstyp der Text eines Elements darstellt. Eine Liste der Typen finden Sie in der folgenden Tabelle. Erforderlich
format Enthält weitere Informationen, wie genau der Elementtext formatiert ist, für Inhaltstypen, die mehrdeutige Formate haben können. SSML definiert Formate für Inhaltstypen, die diese verwenden. Siehe hierzu die folgende Tabelle. Optional
detail Gibt die Menge der auszusprechenden Details an. Dieses Attribut könnte beispielsweise bei der Sprachsynthese-Engine die Aussprache von Satzzeichen anfordern. Für detail sind keine Standardwerte definiert. Optional

Die folgenden Inhaltstypen werden für die Attribute interpret-as und format unterstützt. Fügen Sie das Attribut format nur ein, wenn die Spalte format in der folgenden Tabelle nicht leer ist:

interpret-as format Interpretation
characters, spell-out Der Text wird als einzelner Buchstabe (buchstabiert) ausgesprochen. Aussprache der Sprachsynthese-Engine:

<say-as interpret-as="characters">test</say-as>

Als „T E S T.“
cardinal, number Keine Der Text wird als Kardinalzahl ausgesprochen. Aussprache der Sprachsynthese-Engine:

There are <say-as interpret-as="cardinal">10</say-as> options

als „Es gibt zehn Optionen.“
ordinal Keine Der Text wird als Ordinalzahl ausgesprochen. Aussprache der Sprachsynthese-Engine:

Select the <say-as interpret-as="ordinal">3rd</say-as> option

als „Wählen Sie die dritte Option aus.“
number_digit Keine Der Text wird als Sequenz einzelner Ziffern gesprochen. Aussprache der Sprachsynthese-Engine:

<say-as interpret-as="number_digit">123456789</say-as>

Als „1 2 3 4 5 6 7 8 9“.
fraction Keine Der Text wird als Bruchzahl ausgesprochen. Aussprache der Sprachsynthese-Engine:

<say-as interpret-as="fraction">3/8</say-as> of an inch

Als „drei achtel Zoll“.
date TMJ, MTJ, JMT, JTM, JM, MT, TM, T, M, J Der Text wird als Datum ausgesprochen. Das format-Attribut gibt das Datumsformat an (T = Tag, M = Monat und J = Jahr). Aussprache der Sprachsynthese-Engine:

Today is <say-as interpret-as="date" format="mdy">10-19-2016</say-as>

Als „heute ist der neunzehnte Oktober zweitausendsechzehn“.
time hms12, hms24 Der Text wird als Uhrzeit ausgesprochen. Das format-Attribut gibt an, ob die Uhrzeit im 12-Stunden-Format (hms12) oder 24-Stunden-Format (hms24) angegeben wird. Verwenden Sie einen Doppelpunkt zum Trennen von Zahlen, die Stunden, Minuten und Sekunden darstellen. Hier sind einige gültige Zeitbeispiele: 12:35, 1:14:32, 08:15 und 02:50:45. Aussprache der Sprachsynthese-Engine:

The train departs at <say-as interpret-as="time" format="hms12">4:00am</say-as>

Als „Der Zug fährt um vier Uhr morgens.“
duration hms, hm, ms Der Text wird als Dauer ausgesprochen. Das Attribut format gibt das Format der Dauer (h = Stunde, m = Minute und s = Sekunde) an. Aussprache der Sprachsynthese-Engine:

<say-as interpret-as="duration">01:18:30</say-as>

Als „eine Stunde achtzehn Minuten und dreißig Sekunden“.
Aussprache:

<say-as interpret-as="duration" format="ms">01:18</say-as>

Als „eine Minute und achtzehn Sekunden“.
Dieses Tag wird nur für Englisch und Spanisch unterstützt.
telephone Keine Der Text wird als Telefonnummer ausgesprochen. Das Attribut format kann Ziffern enthalten, die eine Landeskennzahl darstellen. Beispiele: „1“ für die USA oder „39“ für Italien. Die Sprachsynthese-Engine kann sich anhand dieser Informationen orientieren, wie eine Telefonnummer auszusprechen ist. Wenn die Telefonnummer ebenfalls die Landeskennzahl enthält, hat diese Vorrang vor der Landeskennzahl im format-Attribut. Aussprache der Sprachsynthese-Engine:

The number is <say-as interpret-as="telephone" format="1">(888) 555-1212</say-as>

Als „Meine Nummer lautet Vorwahl acht acht acht fünf fünf fünf eins zwei eins zwei.“
currency Keine Der Text wird als Währung ausgesprochen. Aussprache der Sprachsynthese-Engine:

<say-as interpret-as="currency">99.9 USD</say-as>

als „neunundneunzig US-Dollar und neunzig Cent“
address Keine Der Text wird als Adresse ausgesprochen. Aussprache der Sprachsynthese-Engine:

I'm at <say-as interpret-as="address">150th CT NE, Redmond, WA</say-as>

Als „Ich bin am 150th Court Northeast Redmond Washington“.
name Keine Der Text wird als Name einer Person ausgesprochen. Aussprache der Sprachsynthese-Engine:

<say-as interpret-as="name">ED</say-as>

als [æd].
In chinesischen Namen werden einige Zeichen unterschiedlich ausgesprochen, wenn sie in einem Familiennamen vorkommen. Die Sprachsynthese-Engine sagt z. B. 仇 in

<say-as interpret-as="name">仇先生</say-as>

als [qiú] anstelle von [chóu].

Verwendung

Das say-as-Element kann nur Text enthalten.

Beispiel

Die Sprachsynthese-Engine spricht den Beispielsatz wie folgt aus: „Ihre erste Anfrage war für ein Zimmer am neunzehnten Oktober zweitausendzehn mit frühzeitiger Ankunft um zwölf Uhr fünfunddreißig nachmittags“.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-JennyNeural">
        <p>
        Your <say-as interpret-as="ordinal"> 1st </say-as> request was for <say-as interpret-as="cardinal"> 1 </say-as> room
        on <say-as interpret-as="date" format="mdy"> 10/19/2010 </say-as>, with early arrival at <say-as interpret-as="time" format="hms12"> 12:35pm </say-as>.
        </p>
    </voice>
</speak>

Hinzufügen von Audioaufzeichnungen

Das audio-Element ist optional. Sie können damit vorab aufgezeichnete Audiodaten in ein SSML-Dokument einfügen. Der Text des Elements „audio“ kann Nur-Text oder SSML-Markup enthalten, das verwendet wird, wenn die Audiodatei nicht verfügbar oder nicht abspielbar ist. Das audio-Element kann außerdem Text und die folgenden Elemente enthalten: audio, break, p, s, phoneme, prosody, say-as und sub.

Alle Audiodaten, die im SSML-Dokument enthalten sind, müssen die folgenden Anforderungen erfüllen:

  • Die Audiodaten müssen auf einem HTTPS-Endpunkt gehostet werden, der über das Internet zugänglich ist. HTTPS ist erforderlich, und die Domäne, die die Datei hostet, muss über ein gültiges vertrauenswürdiges TSL/SSL-Zertifikat verfügen. Es wird empfohlen, die Audiodatei in einer Blob Storage-Instanz in derselben Azure-Region wie den TTS-Endpunkt (Text-To-Speech, Sprachsynthese) zu speichern, um die Wartezeit zu minimieren.
  • Bei der Audiodatei muss es sich um eine gültige MP3-, WAV-, OPUS-, OGG-, FLAC- oder WMA-Datei handeln.
  • Die Gesamtzeit für alle Text- und Audiodateien in einer einzelnen Antwort kann nicht über 600 Sekunden liegen.
  • Die Audiodatei darf keine kundenspezifischen oder andere vertrauliche Informationen enthalten.

Hinweis

Das Element „audio“ wird von der API für lange Audioinhalte nicht unterstützt. Verwenden Sie für die Langform-Sprachsynthese stattdessen die Batchsynthese-API (Vorschau).

Syntax

<audio src="string"/></audio>

Attribut

Attribut BESCHREIBUNG Erforderlich oder optional
src Gibt den Speicherort bzw. die URL der Audiodatei an. Erforderlich, wenn Sie das Element „audio“ im SSML-Dokument verwenden.

Beispiel

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-JennyNeural">
        <p>
            <audio src="https://contoso.com/opinionprompt.wav"/>
            Thanks for offering your opinion. Please begin speaking after the beep.
            <audio src="https://contoso.com/beep.wav">
                Could not play the beep, please voice your opinion now.
            </audio>
        </p>
    </voice>
</speak>

Hinzufügen von Hintergrundaudioaufnahmen

Sie können das Element mstts:backgroundaudio verwenden, um Hintergrundaudioaufnahmen zu Ihren SSML-Dokumenten hinzuzufügen oder eine Audiodatei mit Text-zu-Sprache zu mischen. Mithilfe von mstts:backgroundaudio können Sie im Hintergrund eine Audiodatei in Dauerschleife abspielen, die am Anfang der Text-zu-Sprache-Aufnahme ein- und am Ende wieder ausgeblendet wird.

Wenn die bereitgestellte Hintergrundaudiospur kürzer ist als die Text-zu-Sprache-Aufnahme oder das Ausblenden, wird diese wieder von vorne abgespielt. Wenn sie länger als die Text-zu-Sprache-Aufnahme ist, wird sie angehalten, sobald der Ausblendevorgang abgeschlossen ist.

Pro SSML-Dokument ist nur eine Hintergrundaudiodatei zulässig. Sie können audio-Tags in das Element voice integrieren, um dem SSML-Dokument weitere Audioaufnahmen hinzuzufügen.

Hinweis

Das mstts:backgroundaudio-Element sollte vor allen voice-Elementen platziert werden, d. h. das erste untergeordnete Element des speak-Elements.

Das Element mstts:backgroundaudio wird von der API für lange Audioinhalte nicht unterstützt. Verwenden Sie für die Langform-Sprachsynthese stattdessen die Batchsynthese-API (Vorschau).

Syntax

<mstts:backgroundaudio src="string" volume="string" fadein="string" fadeout="string"/>

Attribute

attribute BESCHREIBUNG Erforderlich oder optional
src Gibt den Speicherort bzw. die URL der Hintergrundaudiodatei an. Erforderlich, wenn Sie eine Hintergrundaudioaufnahme in Ihrem SSML-Dokument verwenden.
volume Gibt die Lautstärke der Hintergrundaudiodatei an. Akzeptierte Werte: 0 bis 100 (einschließlich). Standardwert: 1. Optional
fadein Gibt (in Millisekunden) an, wie lange die Hintergrundaudiodatei eingeblendet wird. Der Standardwert ist 0, was dem „Nicht einblenden“ entspricht. Akzeptierte Werte: 0 bis 10000 (einschließlich). Optional
fadeout Gibt (in Millisekunden) an, wie lange die Hintergrundaudiodatei ausgeblendet wird. Der Standardwert ist 0, was dem „Nicht ausblenden“ entspricht. Akzeptierte Werte: 0 bis 10000 (einschließlich). Optional

Beispiel

<speak version="1.0" xml:lang="en-US" xmlns:mstts="http://www.w3.org/2001/mstts">
    <mstts:backgroundaudio src="https://contoso.com/sample.wav" volume="0.7" fadein="3000" fadeout="4000"/>
    <voice name="Microsoft Server Speech Text to Speech Voice (en-US, JennyNeural)">
        The text provided in this document will be spoken over the background audio.
    </voice>
</speak>

Lesezeichen-Element

Sie können das bookmark-Element in SSML verwenden, um auf eine bestimmte Position in der Text- oder Tagsequenz zu verweisen. Anschließend verwenden Sie das Speech SDK und abonnieren das BookmarkReached-Ereignis, um den Offset jeder Markierung im Audiodatenstrom abzurufen. Das bookmark-Element wird nicht ausgesprochen. Weitere Informationen finden Sie unter Abonnieren von Synthesizerereignissen.

Syntax

<bookmark mark="string"/>

Attribut

Attribut BESCHREIBUNG Erforderlich oder optional
mark Gibt den Verweistext des bookmark Elements an. Erforderlich

Beispiel

Beispielsweise können Sie den Zeitversatz (Offset) jedes Blumennamens wie im folgenden Codeausschnitt ermitteln:

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-AriaNeural">
        We are selling <bookmark mark='flower_1'/>roses and <bookmark mark='flower_2'/>daisies.
    </voice>
</speak>

Unterstützte MathML-Elemente

Die Mathematical Markup Language (MathML) ist eine XML-konforme Markupsprache, die Entwicklern die Möglichkeit gibt, anzugeben, wie der Eingabetext mithilfe des Sprachsynthesediensts in synthetisierte Sprache konvertiert werden soll.

Hinweis

Die MathML-Elemente (Tags) werden derzeit von allen neuronalen Stimmen in den Gebietsschemas en-US und en-AU unterstützt.

Beispiel

In diesem SSML-Schnipsel wird veranschaulicht, wie die MathML-Elemente verwendet werden, um synthetisierte Sprache auszugeben. Die Text-zu-Sprache-Ausgabe für dieses Beispiel ist „a squared plus b squared equals c squared“ (a² plus b² gleich c²).

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="http://www.w3.org/2001/mstts" xml:lang="en-US"><voice name="en-US-JennyNeural"><math xmlns="http://www.w3.org/1998/Math/MathML"><msup><mi>a</mi><mn>2</mn></msup><mo>+</mo><msup><mi>b</mi><mn>2</mn></msup><mo>=</mo><msup><mi>c</mi><mn>2</mn></msup></math></voice></speak>

Das xmlns-Attribut in <math xmlns="http://www.w3.org/1998/Math/MathML"> ist optional.

Alle Elemente aus der MathML 2.0- und MathML 3.0-Spezifikation außer den MathML 3.0-Elementary Math-Elementen werden unterstützt. Die semantics-, annotation- und annotation-xml-Elemente geben keine Sprache aus, sodass sie ignoriert werden.

Hinweis

Ein nicht erkanntes Element wird ignoriert, und die untergeordneten Elemente darin werden weiterhin verarbeitet.

Die MathML-Entitäten werden von der XML-Syntax nicht unterstützt, sodass Sie die entsprechenden Unicode-Zeichen verwenden müssen, um die Entitäten darzustellen. Beispielsweise sollte die Entität &copy; durch ihre Unicode-Zeichen &#x00A9; dargestellt werden, andernfalls tritt ein Fehler auf.

Visemelement

Ein Visem ist die visuelle Beschreibung eines Phonems. Es beschreibt die Position von Gesicht und Mund einer Person beim Sprechen. Sie können das mstts:viseme-Element in SSML verwenden, um die Visemausgabe anzufordern. Weitere Informationen finden Sie unter Abrufen der Gesichtsposition mit Mundbild.

Syntax

<mstts:viseme type="string"/>

Attribute

attribute BESCHREIBUNG Erforderlich oder optional
type Gibt den Typ der Visemausgabe an.
  • redlips_front: Lippensynchron mit Visem-ID und versetzter Audioausgabe
  • FacialExpression: Ausgabe von Überblendformen
Erforderlich

Hinweis

Derzeit unterstützt nur redlips_front neuronale Stimmen im Gebietsschema en-US, und FacialExpression unterstützt neuronale Stimmen in den Gebietsschemas en-US und zh-CN.

Beispiel

Dieser SSML-Codeausschnitt veranschaulicht, wie Überblendformen mit ihrer synthetisierten Sprache kombiniert werden.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="http://www.w3.org/2001/mstts" xml:lang="en-US">
  <voice name="en-US-JennyNeural">
    <mstts:viseme type="FacialExpression"/>
    Rainbow has seven colors: Red, orange, yellow, green, blue, indigo, and violet.
  </voice>
</speak>

Nächste Schritte