Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
U kunt SSML (Speech Synthesis Markup Language) gebruiken met tekst naar spraak om op te geven hoe de spraak wordt uitgesproken. U kunt bijvoorbeeld SSML gebruiken met fonemen en een aangepast lexicon om de uitspraak te verbeteren. U kunt SSML ook gebruiken om te definiëren hoe een woord of wiskundige expressie wordt uitgesproken.
Raadpleeg de volgende secties voor meer informatie over het gebruik van SSML-elementen om de uitspraak te verbeteren. Zie de SSML-documentstructuur en -gebeurtenissen voor meer informatie over de SSML-syntaxis.
Foneme-element
Het phoneme element wordt gebruikt voor fonetische uitspraak in SSML-documenten. Zorg altijd voor menselijk leesbare tekst als terugval.
Fonetische alfabetten bestaan uit telefoons, die bestaan uit letters, cijfers of tekens, soms in combinatie. Elke telefoon beschrijft een uniek geluid van spraak. Het fonetische alfabet staat in tegenstelling tot het Latijnse alfabet, waarbij elke letter meerdere gesproken geluiden kan vertegenwoordigen. Houd rekening met de verschillende en-US uitspraken van de letter "c" in de woorden "candy" en "cease" of de verschillende uitspraken van de lettercombinatie "th" in de woorden "thing" en "those."
Opmerking
Zie voetnoten in de taalondersteuningstabel voor een lijst met landinstellingen die ondersteuning bieden voor fonemen.
Het gebruik van de kenmerken van het phoneme element wordt beschreven in de volgende tabel.
| Kenmerk | Beschrijving | Vereist of optioneel |
|---|---|---|
alphabet |
Het fonetische alfabet dat moet worden gebruikt voor het synthetiseren van de uitspraak van de tekenreeks in het ph attribuut. De tekenreeks waarmee het alfabet wordt opgegeven, moet worden opgegeven in kleine letters. De volgende opties zijn de mogelijke alfabetten die u kunt opgeven:
Het alfabet is alleen van toepassing op het phoneme element. |
Optioneel |
ph |
Een tekenreeks met telefoons die de uitspraak van het woord in het phoneme element opgeven.
Elke landinstelling ondersteunt een specifieke telefoonset. Zie SSML fonetisch alfabet. Als de opgegeven tekenreeks niet-herkende fonemen bevat, geeft de tekst-naar-spraakservice een http 400-fout voor ongeldige SSML.Als ipau één lettergreep wilt benadrukken door het stresssymbool voor deze lettergreep te plaatsen, moet u alle lettergrepen voor het woord markeren. Of anderszins wordt de lettergreep voor dit stresssymbool beklemtoond. Als sapiu één lettergreep wilt benadrukken, moet u het stresssymbool na deze lettergreep plaatsen, ongeacht of alle lettergrepen van het woord zijn gemarkeerd. |
Vereist |
Voorbeelden van fonetische voorbeelden
De ondersteunde waarden voor kenmerken van het phoneme element zijn eerder beschreven. In de eerste twee voorbeelden worden de waarden van ph="tə.ˈmeɪ.toʊ" of ph="təmeɪˈtoʊ" opgegeven om de lettergreep meɪte benadrukken.
<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>
Aangepast lexicon
U kunt definiëren hoe individuele entiteiten (zoals bedrijf, een medische term of emoji) worden gelezen in SSML met behulp van het telefoonme en subelementen . Als u wilt definiëren hoe meerdere entiteiten worden gelezen, maakt u een xml-gestructureerd aangepast lexiconbestand. Vervolgens uploadt u het aangepaste lexicon-XML-bestand en verwijst u ernaar met het SSML-element lexicon .
Opmerking
Zie voetnoten in de taalondersteuningstabel voor een lijst met landinstellingen die ondersteuning bieden voor aangepaste lexiconen.
Het lexicon element wordt niet ondersteund door de Long Audio-API. Gebruik in plaats daarvan de batchsynthese-API (Preview) voor tekst-naar-spraak met lange teksten.
Het gebruik van de kenmerken van het lexicon element wordt beschreven in de volgende tabel.
| Kenmerk | Beschrijving | Vereist of optioneel |
|---|---|---|
uri |
De URI van het openbaar toegankelijke aangepaste lexicon XML-bestand met de .xml of .pls bestandsextensie. Het gebruik van Azure Blob Storage wordt aanbevolen maar niet vereist, GitHub URI's en andere openbaar toegankelijke koppelingen worden ook ondersteund. Als u geen aangepast lexicon openbaar wilt maken, kunt u SAS gebruiken. Zie Uitspraak Lexicon Specification (PLS) versie 1.0 voor meer informatie over het aangepaste lexiconbestand. |
Vereist |
Voorbeelden van aangepaste lexiconen
De ondersteunde waarden voor kenmerken van het lexicon element zijn eerder beschreven.
Nadat u uw aangepaste lexicon hebt gepubliceerd, kunt u ernaar verwijzen vanuit uw SSML. In het volgende SSML-voorbeeld wordt verwezen naar een aangepast lexicon dat is geüpload naar https://www.example.com/customlexicon.xml. We ondersteunen lexicon-URL's van Azure Blob Storage. Houd er echter rekening mee dat andere openbare URL's mogelijk niet compatibel zijn.
<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>
Aangepast lexicon-bestand
Als u wilt definiëren hoe meerdere entiteiten worden gelezen, kunt u deze definiëren in een aangepast lexicon XML-bestand met de .xml of .pls bestandsextensie.
Opmerking
Het aangepaste lexiconbestand is een geldig XML-document, maar kan niet worden gebruikt als een SSML-document.
Hier volgen enkele beperkingen van het aangepaste lexiconbestand:
- Bestandsgrootte: de aangepaste lexicon-bestandsgrootte is beperkt tot maximaal 100 kB. Als de bestandsgrootte groter is dan de limiet van 100 kB, mislukt de syntheseaanvraag. U kunt uw lexicon splitsen in meerdere lexicons en opnemen in SSML als de bestandsgrootte groter is dan 100 kB.
- Lexicon cache vernieuwen: de aangepaste lexicon wordt in de cache opgeslagen met de URI als sleutel voor tekst naar spraak wanneer deze voor het eerst wordt geladen. Het lexicon met dezelfde URI wordt niet binnen 15 minuten opnieuw geladen, dus de aangepaste lexiconwijziging moet maximaal 15 minuten wachten.
De ondersteunde elementen en kenmerken van een aangepast lexicon XML-bestand worden beschreven in de Uitspraak Lexicon Specification (PLS) versie 1.0. Hier volgen enkele voorbeelden van de ondersteunde elementen en kenmerken:
- Het
lexiconelement bevat ten minste éénlexemeelement. Lexicon bevat het benodigdexml:langkenmerk om aan te geven voor welke landinstelling het moet worden toegepast. Eén aangepast lexicon is per ontwerp beperkt tot één landinstelling, dus als u deze op een andere landinstelling toepast, werkt het niet. Hetlexiconelement heeft ook eenalphabetkenmerk om het alfabet aan te geven dat in het lexicon wordt gebruikt. De mogelijke waarden zijnipaenx-microsoft-sapi. - Elk
lexemeelement bevat ten minste ééngraphemeelement en een of meergrapheme,aliasenphonemeelementen. Hetlexemeelement is hoofdlettergevoelig in het aangepaste lexicon. Als u bijvoorbeeld alleen een foneem opgeeft voor delexeme'Hallo', werkt het niet voor delexeme'hello'. - Het
graphemeelement bevat tekst die de orthografie beschrijft. - De
aliaselementen worden gebruikt om de uitspraak van een acroniem of een verkorte term aan te geven. - Het
phonemeelement bevat tekst die beschrijft hoe hetlexemewordt uitgesproken. De lettergreepgrens is '.' in het IPA-alfabet. Hetphonemeelement mag geen witruimte bevatten wanneer u het IPA-alfabet gebruikt. - Wanneer de elementen
aliasenphonememet hetzelfdegraphemeelement worden geleverd, heeftaliaseen hogere prioriteit.
Microsoft biedt een validatiehulpmiddel voor het aangepaste lexicon waarmee u fouten (met gedetailleerde foutberichten) kunt vinden in het aangepaste lexiconbestand. Het gebruik van het hulpprogramma wordt aanbevolen voordat u het aangepaste lexicon XML-bestand in productie gebruikt met de Speech-service.
Voorbeelden van aangepaste lexiconbestanden
Het volgende XML-voorbeeld (niet SSML) is opgenomen in een aangepast lexiconbestand .xml . Wanneer u deze aangepaste woordenlijst gebruikt, wordt 'BTW' uitgesproken als 'By the way.' "Benigni" wordt uitgesproken met de meegeleverde IPA "bɛˈniːnji."
<?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>
U kunt de uitspraak van een woordgroep niet rechtstreeks instellen met behulp van het aangepaste lexicon. Als u de uitspraak wilt instellen voor een acroniem of een verkorte term, geeft u eerst een aliasen koppelt u de phoneme uitspraak vervolgens aan die aliasterm. Bijvoorbeeld:
<?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>
U kunt uw verwachte alias ook rechtstreeks opgeven voor een acroniem of verkorte term. Bijvoorbeeld:
<lexeme>
<grapheme>Scotland MV</grapheme>
<alias>Scotland Media Wave</alias>
</lexeme>
In de voorgaande voorbeelden van aangepaste lexicon XML-bestanden wordt het IPA-alfabet gebruikt, dat ook wel de IPA-telefoonset wordt genoemd. We raden u aan de IPA te gebruiken omdat dit de internationale standaard is. Voor sommige IPA-tekens zijn ze de vooraf samengestelde en ontcomposeerde versie wanneer ze worden weergegeven met Unicode. Het aangepaste lexicon ondersteunt alleen de uitgevouwen Unicode.
De Speech-service definieert de sapi-fonetische set voor deze landinstellingen: en-US, en-CA, fr-FR, fr-CA, fr-BE, fr-CH, de-DE, de-AT, de-CH, es-ES, ja-JP, zh-CN, zh-HK, yue-CN, en zh-TW. Zie de Speechservice fonetische sets voor meer informatie over het gedetailleerde fonetische alfabet van de Speechservice.
U kunt de x-microsoft-sapi als de waarde voor het alphabet kenmerk gebruiken met aangepaste lexicons, zoals hier wordt gedemonstreerd:
<?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
Het say-as element geeft het inhoudstype, zoals getal of datum, van de tekst van het element aan. Dit element biedt richtlijnen voor de spraaksynthese-engine over het uitspreken van de tekst.
Het gebruik van de kenmerken van het say-as element wordt beschreven in de volgende tabel.
| Kenmerk | Beschrijving | Vereist of optioneel |
|---|---|---|
interpret-as |
Geeft het inhoudstype van de tekst van een element aan. Zie de volgende tabel voor een lijst met typen. | Vereist |
format |
Biedt aanvullende informatie over de exacte opmaak van de tekst van het element voor inhoudstypen die mogelijk dubbelzinnige indelingen hebben. SSML definieert indelingen voor inhoudstypen die deze gebruiken. Zie de volgende tabel. | Optioneel |
detail |
Geeft het niveau van detail aan dat moet worden uitgesproken. Dit kenmerk kan bijvoorbeeld vragen dat de spraaksynthese-engine interpunctiemarkeringen uitspreekt. Er zijn geen standaardwaarden gedefinieerd voor detail. |
Optioneel |
De volgende inhoudstypen worden ondersteund voor de interpret-as en format kenmerken. Neem het format kenmerk alleen op als format de kolom niet leeg is in deze tabel.
Opmerking
De characters en spell-out waarden voor het interpret-as kenmerk worden ondersteund voor alle landinstellingen voor tekst naar spraak.
Andere interpret-as kenmerkwaarden worden ondersteund voor alle landinstellingen van de volgende talen: Arabisch, Catalaans, Chinees, Deens, Nederlands, Engels, Frans, Fins, Duits, Hindi, Italiaans, Japans, Koreaans, Noors, Pools, Portugees, Russisch, Spaans en Zweeds.
| interpretatie-als | Formaat | Interpretatie |
|---|---|---|
characters, spell-out |
hoofdlettergevoelig | De tekst wordt gesproken als afzonderlijke letters (gespeld). De spraaksynthese-engine spreekt uit:<say-as interpret-as="characters">Test</say-as>Als 'T E S T'. Uitspreekt: <say-as interpret-as="characters" format="casesensitive">Test</say-as>Als "met hoofdletters T E S T." |
alphanumeric |
Spell | De tekst wordt gesproken als afzonderlijke letters (gespeld) met de juiste pauze. De spraaksynthese-engine spreekt uit:<say-as interpret-as="alphanumeric" format="spell">ABCDEF</say-as>Als 'A B C <pauze> D E F'. U kunt pauzeren met '-'. De spraaksynthese-engine spreekt uit: <say-as interpret-as="alphanumeric" format="spell">AB-CD-EF</say-as>Als 'A B <pauze> C D <pauze> E F'. |
cardinal, number |
Geen | De tekst wordt gesproken als een kardinaal getal. De spraaksynthese-engine spreekt uit:There are <say-as interpret-as="cardinal">10</say-as> optionsAls 'Er zijn tien opties'. |
ordinal |
Geen | De tekst wordt gesproken als een ordinaal getal. De spraaksynthese-engine spreekt uit:Select the <say-as interpret-as="ordinal">3rd</say-as> optionSelecteer de derde optie. |
number_digit |
Geen | De tekst wordt gesproken als een reeks afzonderlijke cijfers. De spraaksynthese-engine spreekt uit:<say-as interpret-as="number_digit">123456789</say-as>Als "1 2 3 4 5 6 7 8 9." |
fraction |
Geen | De tekst wordt uitgesproken als een breukgetal. De spraaksynthese-engine spreekt uit:<say-as interpret-as="fraction">3/8</say-as> of an inchAls 'drie achtsten van een inch'. |
date |
dmy, mdy, ymd, ym, my, md, dm, d, m, y | De tekst wordt uitgesproken als een datum. Het format kenmerk specificeert de notatie van de datum (d=day, m=month en y=year). De spraaksynthese-engine spreekt uit:Today is <say-as interpret-as="date">10-12-2016</say-as>Vandaag is twaalf oktober tweeduizend zestien. Uitspreekt: Today is <say-as interpret-as="date" format="dmy">10-12-2016</say-as>Als "Vandaag is 10 december tweeduizend zestien." |
time |
hms12, hms24 | De tekst wordt uitgesproken als een tijdstip. Het format kenmerk geeft aan of de tijd wordt opgegeven met behulp van een 12-uurs klok (hms12) of een 24-uurs klok (hms24). Gebruik een dubbele punt om getallen te scheiden die uren, minuten en seconden vertegenwoordigen. Hier volgen enkele geldige tijdvoorbeelden: 12:35, 1:14:32, 08:15 en 02:50:45. De spraaksynthese-engine spreekt uit:The train departs at <say-as interpret-as="time" format="hms12">4:00am</say-as>De trein vertrekt om vier uur 's ochtends. |
duration |
hms, hm, ms | De tekst wordt gepresenteerd als een tijdsperiode. Het format kenmerk geeft de notatie van de duur op (h=uur, m=minuut en s=seconde). De spraaksynthese-engine spreekt uit:<say-as interpret-as="duration">01:18:30</say-as>Als "één uur achttien minuten en dertig seconden". Uitspreekt: <say-as interpret-as="duration" format="ms">01:18</say-as>Als 'één minuut en achttien seconden'. Deze tag wordt alleen ondersteund in het Engels en Spaans. |
telephone |
Geen | De tekst wordt gesproken als telefoonnummer. De spraaksynthese-engine spreekt uit:The number is <say-as interpret-as="telephone">(888) 555-1212</say-as>Als "Mijn nummer is netcode acht acht acht vijf vijf vijf één twee één twee." |
currency |
Geen | De tekst wordt gesproken als een valuta. De spraaksynthese-engine spreekt uit:<say-as interpret-as="currency">99.9 USD</say-as>Als 'negenennegentig Amerikaanse dollars en negentig cent'. |
unit |
Geen | De tekst wordt gesproken als een eenheid. De spraaksynthese-engine spreekt uit:<say-as interpret-as="unit">10 m</say-as>Als 'tien meter'. |
address |
Geen | De tekst wordt gesproken als een toespraak. De spraaksynthese-engine spreekt uit:I'm at <say-as interpret-as="address">150th CT NE, Redmond, WA</say-as>"Ik ben bij 150th Court Northeast Redmond Washington." |
name |
Geen | De tekst wordt gesproken als de naam van een persoon. De spraaksynthese-engine spreekt uit:<say-as interpret-as="name">ED</say-as>Indien bedoeld als phonetische notatie, overweeg om uitleg te geven in plaats van direct symbolen te gebruiken, om misverstanden te vermijden in het Nederlands. In Chinese namen worden sommige tekens anders uitgesproken wanneer ze in een familienaam worden weergegeven. De spraaksynthese-engine zegt bijvoorbeeld 仇 in <say-as interpret-as="name">仇先生</say-as>Als [qiú] in plaats van [chóu]. |
Voorbeelden van 'say-as'
De ondersteunde waarden voor kenmerken van het say-as element zijn eerder beschreven.
De spraaksynthesemotor spreekt het volgende voorbeeld uit: "Uw eerste aanvraag was voor één kamer op 19 oktober 2010 met vroege aankomst om twaalf vijfendertig 's middags."
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
<voice name="en-US-Ava:DragonHDLatestNeural">
<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>
Subelement
Gebruik het sub element om aan te geven dat de tekstwaarde van het aliaskenmerk moet worden uitgesproken in plaats van de ingesloten tekst van het element. Op deze manier bevat de SSML zowel een gesproken als geschreven vorm.
Het gebruik van de kenmerken van het sub element wordt beschreven in de volgende tabel.
| Kenmerk | Beschrijving | Vereist of optioneel |
|---|---|---|
alias |
De tekstwaarde die moet worden uitgesproken in plaats van de ingesloten tekst van het element. | Vereist |
Subvoorbeelden
De ondersteunde waarden voor kenmerken van het sub element zijn eerder beschreven.
De spraaksynthese-engine spreekt het volgende voorbeeld uit als 'World Wide Web Consortium'.
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
<voice name="en-US-Ava:DragonHDLatestNeural">
<sub alias="World Wide Web Consortium">W3C</sub>
</voice>
</speak>
Markdown-documenten lezen
Als u de markdown-inhoud wilt lezen, kunt u de Markdown-tekst omhullen met het mstts:markdown-element. TTS leest alleen de tekstinhoud in de markdown en negeert de markdown-syntaxis.
Met de volgende SSML worden bijvoorbeeld twee zinnen voorgelezen: 'Dit is kop' en 'En dit is een vetgedrukte tekst', en de markdown-syntaxis wordt niet gelezen.
<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:markdown># This is headline
And this is a **bold** text
</mstts:markdown>
</voice>
</speak>
Ondersteunde Markdown-syntaxis
TTS ondersteunt de markdown-syntaxis die is gedefinieerd in de CommonMark-specificatie. Dit is een veelgebruikte Markdown-specificatie. Zie CommonMark voor meer informatie over de CommonMark-specificatie.
Wiskundige expressies lezen
Er zijn twee manieren om een wiskundige expressie te lezen:
Met het domeinelement Wiskunde,
Sluit de wiskundige expressie zonder opmaak rechtstreeks in SSML in en geef het wiskundige domein op met behulp van
<mstts:prompt domain="Math" />.Zie de sectie: Wiskundige expressies voor tekst zonder opmaak lezen
Met MathML-elementen
Vertegenwoordig de wiskundige expressie met MathML-elementen.
Zie de sectie: Wiskundige expressies lezen met MathML
Opmerking
De twee functies worden momenteel ondersteund in de volgende taalinstellingen: de-DE, en-AU, en-GB, en-US, alle broertalen van het Engels, es-ES, es-MX, alle broertalen van het Spaans, fr-CA, fr-FR, it-IT, ja-JP, ko-KR, pt-BR en zh-CN.
Platte tekst met wiskundige uitdrukkingen lezen
Als u het lezen van complexe wiskundige expressies wilt inschakelen, kunt u element toevoegen <mstts:prompt domain="Math" /> om wiskundige uitspraakregels in te schakelen.
<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-AvaMultilingualNeural">
<mstts:prompt domain="Math" />
x = (-b ± √(b² - 4ac)) / 2a
</voice>
</speak>
Haakjes worden standaard niet voorgelezen in wiskundige expressies.
Als u de haakjes wilt laten voorlezen, kunt u opgeven <mstts:mathspeechverbosity level="verbose" /> in SSML
<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-AvaMultilingualNeural">
<mstts:prompt domain="Math" /><mstts:mathspeechverbosity level="verbose" />
x = (-b ± √(b² - 4ac)) / 2a
</voice>
</speak>
Als u de expressie wilt laten voorlezen in een andere taal met een meertalige stem, geeft u lang-element op in SSML.
<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-AvaMultilingualNeural">
<mstts:prompt domain="Math" />
<lang xml:lang="es-ES">x = (-b ± √(b² - 4ac)) / 2a</lang>
</voice>
</speak>
Wiskundige expressies lezen met MathML
De Wiskundige opmaaktaal (MathML) is een XML-compatibele opmaaktaal waarmee wiskundige inhoud en structuur worden beschreven. De Speech-service kan mathML als invoertekst gebruiken om wiskundige notaties goed uit te spreken in de uitvoeraudio.
Alle elementen van de specificaties MathML 2.0 en MathML 3.0 worden ondersteund, behalve de basisberekeningselementen MathML 3.0.
Noteer deze MathML-elementen en -kenmerken:
- De
xmlnseigenschap in<math xmlns="http://www.w3.org/1998/Math/MathML">is optioneel. - De
semantics,annotationenannotation-xmlelementen voeren geen spraak uit, zodat ze worden genegeerd. - Als een element niet wordt herkend, zal het worden genegeerd, maar de onderliggende elementen zullen nog steeds worden verwerkt.
De XML-syntaxis biedt geen ondersteuning voor de MathML-entiteiten, dus u moet de bijbehorende Unicode-tekens gebruiken om de entiteiten weer te geven. De entiteit © moet bijvoorbeeld worden vertegenwoordigd door de Unicode-tekens ©, anders treedt er een fout op.
MathML-voorbeelden
De tekst-naar-spraakuitvoer voor dit voorbeeld is 'a squared plus b squared equal c squared'.
<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>