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.xml
hochgeladen 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 einlexeme
-Element. Das Lexikon enthält das erforderlichexml: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. Daslexicon
-Element hat auch einalphabet
-Attribut, um das im Lexikon verwendete Alphabet anzugeben. Mögliche Werte sindipa
undx-microsoft-sapi
. - Jedes
lexeme
-Element enthält mindestens eingrapheme
-Element und mindestens eines der Elementegrapheme
,alias
undphoneme
. Beim Elementlexeme
wird im benutzerdefinierten Lexikon die Groß-/Kleinschreibung beachtet. Wenn Sie beispielsweise nur ein Phonem für daslexeme
„Hallo“ angeben, funktioniert es nicht für daslexeme
„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 vonlexeme
beschreibt. Die Silbengrenze im IPA-Alphabet ist „.“. Dasphoneme
-Element darf keine Leerzeichen enthalten, wenn Sie das IPA-Alphabet verwenden. - Wenn die Elemente
alias
undphoneme
mit demselbengrapheme
-Element angegeben werden, hatalias
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
undannotation-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 ©
durch ihre Unicode-Zeichen ©
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>