Aussprache mit SSML

Sie können die Speech Synthesis Markup Language (SSML) mit der Sprachsynthese verwenden, um anzugeben, wie die Sprache ausgesprochen wird. Beispielsweise können Sie SSML mit Phonemen und einem benutzerdefinierten Lexikon einsetzen, um die Aussprache zu verbessern. Sie können mithilfe von SSML auch festlegen, wie ein Wort oder ein mathematischer Ausdruck ausgesprochen wird.

Ausführliche Informationen zur Verwendung von SSML-Elementen zum Verbessern der Aussprache finden Sie in folgenden Abschnitten. Weitere Informationen zur SSML-Syntax finden Sie unter SSML-Dokumentstruktur und -Ereignisse.

Das „phoneme“-Element

Das phoneme-Element wird für die phonetische Aussprache in SSML-Dokumenten verwendet. 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. Das phonetische Alphabet steht im Gegensatz zum lateinischen Alphabet, in dem jeder Buchstabe mehrere gesprochene Klänge darstellen kann. Berücksichtigen Sie die unterschiedliche Aussprache des Buchstabens „C“ in en-US in den Wörtern „candy“ und „cease“ oder die unterschiedliche Aussprache der Buchstabenkombination „th“ in den Wörtern „thing“ und „those“.

Hinweis

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

Die Verwendung der Attribute des phoneme-Elements wird in der folgenden Tabelle beschrieben.

attribute BESCHREIBUNG Erforderlich oder optional
alphabet Das phonetische Alphabet im Attribut ph, 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 Phoneme enthält, weist die Sprachsynthese das gesamte SSML-Dokument zurück und erzeugt keine der im Dokument angegebenen Sprachausgaben.

Wenn Sie eine Silbe betonen möchten, indem Sie das Betonungssymbol vor diese Silbe setzen, müssen Sie für ipa alle Silben des Wortes markieren. Andernfalls wird die Silbe vor diesem Betonungssymbol betont. Wenn Sie eine Silbe betonen möchten, müssen Sie für sapi das Betonungssymbol hinter dieser Silbe platzieren, unabhängig davon, ob alle Silben des Worts markiert sind.
Erforderlich

Beispiele für „phoneme“

Die unterstützten Werte für Attribute des phoneme-Elements wurden zuvor beschrieben. In den ersten beiden Beispielen werden die Werte ph="tə.ˈmeɪ.toʊ" oder ph="təmeɪˈtoʊ" angegeben, um die Silbe meɪ zu betonen.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-AvaNeural">
        <phoneme alphabet="ipa" ph="tə.ˈmeɪ.toʊ"> tomato </phoneme>
    </voice>
</speak>
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-AvaNeural">
        <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-AvaNeural">
        <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-AvaNeural">
        <s>His name is Mike <phoneme alphabet="ups" ph="JH AU"> Zhou </phoneme></s>
    </voice>
</speak>
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
     <voice name="en-US-AvaNeural">
        <phoneme alphabet='x-sampa' ph='he."lou'>hello</phoneme>
    </voice>
</speak>

Benutzerdefiniertes Lexikon

Sie können festlegen, wie einzelne Entitäten (z. B. ein Unternehmen, ein medizinischer Begriff oder ein Emoji) in SSML gelesen werden, indem Sie die Elemente phoneme und sub verwenden. Um zu bestimmen, wie mehrere Entitäten gelesen werden, erstellen Sie eine XML-strukturierte benutzerdefinierte Lexikondatei. Anschließend laden Sie die benutzerdefinierte XML-Lexikondatei hoch und verweisen mit dem SSML-Element lexicon darauf.

Hinweis

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

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).

Die Verwendung der Attribute des lexicon-Elements wird in der folgenden Tabelle beschrieben.

attribute BESCHREIBUNG Erforderlich oder optional
uri Der URI der öffentlich zugänglichen benutzerdefinierten XML-Lexikondatei mit der Dateierweiterung .xml oder .pls. Die Verwendung von Azure Blob Storage wird empfohlen, ist jedoch nicht erforderlich. Weitere Informationen zur benutzerdefinierten Lexikondatei finden Sie unter Spezifikation für Aussprachelexika (Pronunciation Lexicon Specification, PLS), Version 1.0. Erforderlich

Beispiele für ein benutzerdefiniertes Lexikon

Die unterstützten Werte für Attribute des lexicon-Elements wurden zuvor beschrieben.

Nachdem Sie Ihr benutzerdefiniertes Lexikon veröffentlicht haben, können Sie in SSML darauf verweisen. Das folgende SSML-Beispiel verweist auf ein benutzerdefiniertes Lexikon, das in https://www.example.com/customlexicon.xmlhochgeladen wurde. Wir unterstützen Lexikon URLs aus Azure Blob Storage, Advanced Media Services (AMS)-Speicher und GitHub. Beachten Sie jedoch, dass andere öffentliche URLs möglicherweise nicht kompatibel sind.

<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-AvaNeural">
        <lexicon uri="https://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>

Benutzerdefinierte Lexikondatei

Um zu bestimmen, wie mehrere Entitäten gelesen werden, können Sie diese in einer benutzerdefinierten XML-Lexikondatei mit der Dateierweiterung .xml oder .pls definieren.

Hinweis

Die benutzerdefinierte Lexikondatei ist ein gültiges XML-Dokument, das aber nicht als SSML-Dokument verwendet werden kann.

Es folgen einige Einschränkungen der benutzerdefinierten Lexikondatei:

  • Dateigröße: Die Größe der benutzerdefinierten Lexikondatei ist auf maximal 100 KB beschränkt. Wenn die Dateigröße den Grenzwert von 100 KB überschreitet, schlägt die Syntheseanforderung fehl. Sie können Ihr Lexikon in mehrere Lexika aufteilen und in SSML einschließen, wenn die Dateigröße 100 KB überschreitet.
  • Aktualisierung des Lexikon-Caches: Das benutzerdefinierte Lexikon wird beim ersten Laden mit dem URI als Schlüssel für die Sprachsynthese zwischengespeichert. Das Lexikon mit demselben URI wird erst nach 15 Minuten neu geladen, sodass die Änderung des benutzerdefinierten Lexikons nach spätestens 15 Minuten wirksam wird.

Die unterstützten Elemente und Attribute einer benutzerdefinierten XML-Lexikondatei sind in Pronunciation Lexicon Specification (PLS), Version 1.0 beschrieben. Es folgen einige Beispiele unterstützter Elemente und Attribute:

  • Das lexicon-Element enthält mindestens ein lexeme-Element. 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. Das lexicon-Element hat auch ein alphabet-Attribut, um das im Lexikon verwendete Alphabet anzugeben. Mögliche Werte sind ipa und x-microsoft-sapi.
  • Jedes lexeme-Element enthält mindestens ein grapheme-Element und mindestens eines der Elemente grapheme, alias und phoneme. 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 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. Die Silbengrenze im IPA-Alphabet ist „.“. Das phoneme-Element darf keine Leerzeichen enthalten, wenn Sie das IPA-Alphabet verwenden.
  • Wenn die Elemente alias und phoneme mit demselben grapheme-Element angegeben werden, hat alias die höhere Priorität.

Microsoft stellt ein Validierungstool für das benutzerdefinierte Lexikon zur Verfügung, das Ihnen hilft, Fehler (mit detaillierten Fehlermeldungen) in der benutzerdefinierten Lexikondatei zu finden. Es wird empfohlen, das Tool zu verwenden, ehe Sie die benutzerdefinierte XML-Lexikondatei in der Produktion mit dem Spracherkennungsdienst verwenden.

Beispiele für benutzerdefinierte Lexikondateien

Das folgende XML-Beispiel (nicht SSML) wäre in der benutzerdefinierten .xml-Lexikondatei enthalten. Wenn Sie dieses benutzerdefinierte Lexikon verwenden, wird „BTW“ als „By the way“ gelesen. „Benigni“ wird mit der bereitgestellten IPA-Datei „bɛˈniːnji“ gelesen.

<?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>

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:

<?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>Scotland MV</grapheme>
        <alias>ScotlandMV</alias>
    </lexeme>
    <lexeme>
        <grapheme>ScotlandMV</grapheme>
        <phoneme>ˈskɒtlənd.ˈmiːdiəm.weɪv</phoneme>
    </lexeme>
</lexicon>

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>

Die vorherigen Beispiele für benutzerdefinierte XML-Lexikondateien verwenden das IPA-Alphabet, das auch als IPA-Phonemsatz 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>

say-as-Element

Das say-as-Element 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.

Die Verwendung der Attribute des say-as-Elements wird in der folgenden Tabelle beschrieben.

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 format-Attribut nur ein, wenn die Spalte format in dieser Tabelle nicht leer ist.

Hinweis

Die Werte characters und spell-out für das Attribut interpret-as werden für alle Sprachsynthese-Gebietsschemata unterstützt. Andere interpret-as-Attributwerte werden für alle Gebietsschemata der folgenden Sprachen unterstützt: Arabisch, Chinesisch, Dänisch, Deutsch, Englisch, Finnisch, Französisch, Hindi, Italienisch, Japanisch, Katalanisch, Koreanisch, Niederländisch, Norwegisch, Polnisch, Portugiesisch, Russisch, Schwedisch und Spanisch.

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">10-12-2016</say-as>

Als „heute ist der zwölfte Oktober zweitausendsechzehn“.
Aussprache:

Today is <say-as interpret-as="date" format="dmy">10-12-2016</say-as>

Als „heute ist der zehnte Dezember 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. Aussprache der Sprachsynthese-Engine:

The number is <say-as interpret-as="telephone">(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].

Beispiele für „say-as“

Die unterstützten Werte für Attribute des say-as-Elements wurden zuvor beschrieben.

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-AvaMultilingualNeural">
        <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>

Das „sub“-Element

Geben Sie mit dem sub-Element an, dass der Textwert des Aliasattributs anstelle des eingeschlossenen Texts des Elements ausgesprochen werden soll. Auf diese Weise enthält die SSML sowohl eine gesprochene als auch eine schriftliche Form.

Die Verwendung der Attribute des sub-Elements wird in der folgenden Tabelle beschrieben.

attribute BESCHREIBUNG Erforderlich oder optional
alias Der Textwert, der anstelle des eingeschlossenen Texts des Elements ausgesprochen werden soll. Erforderlich

Beispiele für „sub“

Die unterstützten Werte für Attribute des sub-Elements wurden zuvor beschrieben.

Die Sprachsynthese-Engine spricht das folgende Beispiel als „World Wide Web Consortium“ aus.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-AvaMultilingualNeural">
        <sub alias="World Wide Web Consortium">W3C</sub>
    </voice>
</speak>

Aussprache mit MathML

MathML (Mathematical Markup Language) ist eine XML-kompatible Markupsprache, die mathematische Inhalte und Strukturen beschreibt. Der Spracherkennungsdienst kann MathML als Eingabetext verwenden, um mathematische Notationen im Ausgabeaudio ordnungsgemäß auszusprechen.

Hinweis

Die MathML-Elemente (Tags) werden derzeit in den folgenden Gebietsschemas unterstützt: de-DE, en-AU, en-GB, en-US, es-ES, es-MX, fr-CA, fr-FR, it-IT, ja-JP, ko-KR, pt-BR, und zh-CN.

Alle Elemente aus der MathML 2.0- und MathML 3.0-Spezifikation außer den MathML 3.0-Elementary Math-Elementen werden unterstützt.

Beachten Sie die folgenden MathML-Elemente und -Attribute:

  • Das xmlns-Attribut in <math xmlns="http://www.w3.org/1998/Math/MathML"> ist optional.
  • Die Elemente semantics, annotation und annotation-xml geben keine Sprache aus, sodass sie ignoriert werden.
  • Ein nicht erkanntes Element wird ignoriert, aber die untergeordneten Elemente darin werden dennoch verarbeitet.

Die XML-Syntax unterstützt keine MathML-Entitäten, sodass Sie die entsprechenden Unicode-Zeichen verwenden müssen, um die Entitäten abzubilden. Beispielsweise muss die Entität &copy; durch ihre Unicode-Zeichen &#x00A9; abgebildet werden. Andernfalls tritt ein Fehler auf.

MathML-Beispiele

Die Sprachsynthese-Ausgabe für dieses Beispiel ist „a Quadrat plus b Quadrat gleich c Quadrat“.

<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>

Nächste Schritte