Share via


Kiejtés SSML-vel

A beszédszintézis jelölőnyelvét (SSML) szöveggel is használhatja a beszéd kimondásához. Használhatja például az SSML-t telefonnal és egyéni lexikonnal a kiejtés javítására. Az SSML használatával azt is meghatározhatja, hogy egy szó vagy matematikai kifejezés hogyan legyen kimondva.

A kiejtés javítása érdekében az SSML-elemek használatával kapcsolatos részletekért tekintse meg az alábbi szakaszokat. Az SSML-szintaxissal kapcsolatos további információkért tekintse meg az SSML-dokumentum struktúráját és eseményeit.

telefonelem

Az phoneme elemet az SSML-dokumentumok fonetikus kiejtésére használják. Mindig biztosítson emberi olvasásra alkalmas beszédet tartalékként.

Telefon betűrendek telefonokból állnak, amelyek betűkből, számokból vagy karakterekből állnak, néha kombinálva. Minden telefon egyedi beszédhangot ír le. A fonetikus ábécé ellentétben áll a latin ábécével, ahol bármely betű több beszélt hangot jelölhet. Vegye figyelembe a "c" betű különböző en-US kiejtéseit a "candy" és a "cease" szavakban, vagy a "th" betűkombináció különböző kiejtéseit a "dolog" és az "e" szavakban.

Feljegyzés

A telefonhangokat támogató területi beállítások listáját a nyelvtámogatási táblázatban található lábjegyzetekben találja.

phoneme Az elem attribútumainak használatát az alábbi táblázat ismerteti.

Attribútum Leírás Kötelező vagy választható
alphabet Az attribútumban ph lévő sztring kiejtésének szintetizálásához használandó fonetikus ábécé. Az ábécét meghatározó sztringet kisbetűkben kell megadni. A következő lehetőségek a megadható ábécék:
Az ábécé csak az phoneme elemre vonatkozik.
Választható
ph Egy telefonokat tartalmazó sztring, amely megadja az elemben lévő szó kiejtését phoneme . Ha a megadott sztring ismeretlen telefonokat tartalmaz, a beszédszöveg elutasítja a teljes SSML-dokumentumot, és nem állítja elő a dokumentumban megadott beszédkimenetet.

Ahhoz ipa, hogy egy szótagot a szótag elé helyezve stresszszimbólumot helyezzen el, meg kell jelölnie a szó összes szótagját. Máskülönben a szótag, mielőtt ez a stressz szimbólum ki van emelve. Mert sapiha egy szótagot szeretne hangsúlyozni, akkor a szótag után kell elhelyeznie a stresszszimbólumot, függetlenül attól, hogy a szó minden szótagja meg van-e jelölve.
Kötelező

fonetikai példák

Az elem attribútumainak phoneme támogatott értékeit korábban ismertették. Az első két példában a szótagot hangsúlyozó meɪértékek ph="tə.ˈmeɪ.toʊ"ph="təmeɪˈtoʊ" vannak megadva vagy meg vannak adva.

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

Egyéni lexikon

Az egyes entitások (például vállalat, orvosi kifejezés vagy emoji) olvasását az SSML-ben a telefon ésaz alelemek használatával határozhatja meg. Több entitás olvasási módjának meghatározásához hozzon létre egy XML-strukturált egyéni lexikonfájlt. Ezután feltölti az egyéni lexikon XML-fájlt, és hivatkozik rá az SSML-elemhez lexicon .

Feljegyzés

Az egyéni lexikont támogató területi beállítások listáját a nyelvtámogatási táblázatban található lábjegyzetekben találja.

Az lexicon elemet a Long Audio API nem támogatja. A hosszú formátumú szöveg beszédhez használja inkább a batch synthesis API-t (előzetes verzió).

lexicon Az elem attribútumainak használatát az alábbi táblázat ismerteti.

Attribútum Leírás Kötelező vagy választható
uri A nyilvánosan elérhető egyéni lexikon XML-fájl URI-ja vagy kiterjesztéssel .xml.pls . Az Azure Blob Storage használata ajánlott, de nem kötelező. Az egyéni lexikonfájlról további információt a Kiejtési lexikon specifikáció (PLS) 1.0-s verziójában talál. Kötelező

Egyéni lexikon-példák

Az elem attribútumainak lexicon támogatott értékeit korábban ismertették.

Az egyéni lexikon közzététele után hivatkozhat rá az SSML-ben. Az alábbi SSML-példa egy egyéni lexikonra hivatkozik, amelybe feltöltve https://www.example.com/customlexicon.xmllett. Támogatjuk az Azure Blob Storage, az Advanced Media Services (AMS) Storage és a GitHub lexikon URL-címeit. Vegye figyelembe azonban, hogy más nyilvános URL-címek nem kompatibilisek.

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

Egyéni lexikonfájl

Több entitás olvasási módjának meghatározásához definiálhatja őket egy egyéni lexikon XML-fájlban, amelynek vagy a fájlkiterjesztése .xml van .pls .

Feljegyzés

Az egyéni lexikonfájl érvényes XML-dokumentum, de nem használható SSML-dokumentumként.

Az egyéni lexikonfájl néhány korlátozása:

  • Fájlméret: Az egyéni lexikonfájl mérete legfeljebb 100 KB lehet. Ha a fájlméret meghaladja a 100 KB-os korlátot, a szintéziskérés meghiúsul. Ha a fájl mérete meghaladja a 100 KB-ot, több lexikonra is feloszthatja a lexikont, és belefoglalhatja őket az SSML-be.
  • Lexikongyorsítótár frissítése: Az egyéni lexikon az URI-val van gyorsítótárazva, mint a szövegről beszédre szóló kulcs az első betöltésekor. Az azonos URI-val rendelkező lexikon nem töltődik be 15 percen belül, ezért az egyéni lexikon-módosításnak legfeljebb 15 percet kell várnia a érvénybe lépéshez.

Az egyéni lexikon XML-fájlok támogatott elemeit és attribútumait a kiejtési lexikon specifikációja (PLS) 1.0-s verziója ismerteti. Íme néhány példa a támogatott elemekre és attribútumokra:

  • Az lexicon elem legalább egy lexeme elemet tartalmaz. A Lexikon tartalmazza a szükséges xml:lang attribútumot annak jelzéséhez, hogy melyik területi beállításra kell alkalmazni. Egy egyéni lexikon egy területi beállításra korlátozódik, ezért ha egy másik területi beállításra alkalmazza, az nem működik. Az lexicon elemnek van egy alphabet attribútuma is, amely a lexikonban használt ábécét jelzi. A lehetséges értékek: ipa és x-microsoft-sapi.
  • Minden lexeme elem legalább egy grapheme elemet és egy vagy több graphemealiaselemet és phoneme elemet tartalmaz. Az lexeme elem a kis- és nagybetűk megkülönböztetése az egyéni lexikonban. Ha például csak a "Hello" telefonját lexeme adja meg, az nem működik a lexeme "hello" esetében.
  • Az grapheme elem az ortográfiát leíró szöveget tartalmaz.
  • Az alias elemek egy rövidítés vagy egy rövidített kifejezés kiejtésének jelzésére szolgálnak.
  • Az phoneme elem olyan szöveget tartalmaz, amely leírja a lexeme kiejtést. A szótaghatár "." az IPA ábécében. Az phoneme elem nem tartalmazhat szóközt az IPA-ábécé használatakor.
  • Ha az alias elemeket phoneme ugyanazzal grapheme az elemmel adták meg, alias magasabb prioritással rendelkezik.

A Microsoft egy érvényesítő eszközt biztosít az egyéni lexikonhoz , amely segít megtalálni a hibákat (részletes hibaüzenetekkel) az egyéni lexikonfájlban. Az eszköz használata ajánlott, mielőtt az egyéni lexikon XML-fájlt éles környezetben használnám a Speech szolgáltatással.

Egyéni lexikonfájl-példák

A következő XML-példát (nem SSML) egy egyéni lexikonfájl .xml tartalmazza. Ha ezt az egyéni lexikont használja, a "BTW" szöveg "By the way" (Egyébként) néven jelenik meg. A "Benigni" szöveget a megadott IPA "bɛˈniːnji" felolvassa.

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

Az egyéni lexikon használatával nem állíthatja be közvetlenül egy kifejezés kiejtését. Ha be kell állítania egy rövidítés vagy egy rövidített kifejezés kiejtését, először adjon meg egy alias, majd társítsa a phoneme következőhöz alias. Példa:

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

A rövidítéshez vagy rövidített kifejezéshez tartozó elvárt alias értékeket közvetlenül is megadhatja. Példa:

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

Az előző egyéni lexikon XML-fájlpéldák az IPA ábécét használják, amelyet IPA-telefonkészletnek is neveznek. Javasoljuk, hogy használja az IPA-t, mert ez a nemzetközi szabvány. Néhány IPA-karakter esetében ezek az "előre összeállított" és a "lebomló" verzió, amikor Unicode-tal vannak ábrázolva. Az egyéni lexikon csak a felbontott Unicode-t támogatja.

A Speech szolgáltatás a következő területi beállításokhoz definiál egy fonetikai halmazt: en-US, fr-FR, de-DE, es-ES, ja-JP, zh-CN, zh-HKés zh-TW. A Speech service fonetikai ábécéjének részletes leírásáról a Speech szolgáltatás fonetikai készleteiből tájékozódhat.

Az attribútum értékét alphabet az itt bemutatott egyéni lexikonokkal használhatjax-microsoft-sapi:

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

Az say-as elem az elem szövegének tartalomtípusát (például számot vagy dátumot) jelzi. Ez az elem útmutatást nyújt a beszédszintézis-motor számára a szöveg kiejtéséről.

say-as Az elem attribútumainak használatát az alábbi táblázat ismerteti.

Attribútum Leírás Kötelező vagy választható
interpret-as Egy elem szövegének tartalomtípusát jelzi. A típusok listáját az alábbi táblázatban találja. Kötelező
format További információt nyújt az elem szövegének pontos formázásáról olyan tartalomtípusok esetében, amelyek nem egyértelmű formátumokkal rendelkeznek. Az SSML az őket használó tartalomtípusok formátumait határozza meg. Lásd az alábbi táblázatot. Választható
detail A kimondandó részletességi szintet jelzi. Ez az attribútum például azt kérheti, hogy a beszédszintézis-motor ejtse ki az írásjeleket. Nincsenek definiálva standard értékek a következőhöz detail: . Választható

Az alábbi tartalomtípusok és format attribútumok támogatottakinterpret-as. Csak akkor vegye fel az format attribútumot, ha format az oszlop nem üres ebben a táblában.

Feljegyzés

Az characters attribútum és spell-out az interpret-as értékek az összes szöveg és beszéd területi beállítás esetében támogatottak. Az interpret-as egyéb attribútumértékek a következő nyelvek összes nyelvére használhatók: arab, katalán, kínai, dán, holland, angol, francia, finn, német, hindi, olasz, japán, koreai, norvég, lengyel, portugál, orosz, spanyol és svéd.

interpret-as format Értelmezés
characters, spell-out A szöveg kimondása egyéni betűkként történik (ki van írva). A beszédszintézis motor kiejtése:

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

"T E S T"-ként.
cardinal, number Egyik sem A szöveg számos számként van kimondva. A beszédszintézis motor kiejtése:

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

"Tíz lehetőség van".
ordinal Egyik sem A szöveg sorszámként van elhangzva. A beszédszintézis motor kiejtése:

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

"Válassza ki a harmadik lehetőséget".
number_digit Egyik sem A szöveg az egyes számjegyek sorozataként van elhangzva. A beszédszintézis motor kiejtése:

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

"1 2 3 4 5 6 7 8 9."
fraction Egyik sem A szöveg tört számként van kimondva. A beszédszintézis motor kiejtése:

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

Mint "három nyolcad hüvelyk".
date dmy, mdy, ymd, ydm, ym, my, md, dm, d, m, y A szöveg kimondása dátumként történik. Az format attribútum megadja a dátum formátumát (d=nap, m=hónap és y=év). A beszédszintézis motor kiejtése:

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

Mint "Ma október tizenkettedikén kétezerhat."
Kimondja:

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

Mint "Ma december tizedike kétezer tizenhat."
time hms12, hms24 A szöveg kimondása időként történik. Az format attribútum azt határozza meg, hogy az idő 12 órás (hms12) vagy 24 órás (hms24) használatával van-e megadva. Kettőspont használatával elválaszthatja az órákat, perceket és másodperceket képviselő számokat. Íme néhány érvényes idő példa: 12:35, 1:14:32, 08:15 és 02:50:45. A beszédszintézis motor kiejtése:

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

"A vonat négy A M-kor indul."
duration hms, hm, ms A szöveg kimondása időtartamként történik. Az format attribútum az időtartam formátumát adja meg (h=óra, m=perc és s=másodperc). A beszédszintézis motor kiejtése:

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

Mint "egy óra tizennyolc perc és harminc másodperc".
Kimondja:

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

Mint "egy perc és tizennyolc másodperc".
Ez a címke csak angol és spanyol nyelven támogatott.
telephone Egyik sem A szöveg telefonszámként van elhangzva. A beszédszintézis motor kiejtése:

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

Mivel "A számom a nyolc nyolc öt öt körzetszámú, két egy kettő."
currency Egyik sem A szöveg pénznemként van elhangzva. A beszédszintézis motor kiejtése:

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

"Kilencvenkilenc amerikai dollár és kilencven cent".
address Egyik sem A szöveg címeként van elhangzva. A beszédszintézis motor kiejtése:

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

Mint "Én vagyok a 150th Court Northeast Redmond Washington."
name Egyik sem A szöveg személynévként szól. A beszédszintézis motor kiejtése:

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

[æd] néven.
A kínai nevekben egyes karakterek másként jelennek meg, amikor egy családnévben jelennek meg. A beszédszintézis motorja például azt mondja, hogy 仇 a

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

[qiú] helyett [chóu].

példaként

Az elem attribútumainak say-as támogatott értékeit korábban ismertették.

A beszédszintézis-motor a következő példát mondja: "Az első kérése egy helyiségre volt október 19-én 20 óra 20 perckor, korán 12:00-kor."

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

alelem

sub Az elem használatával jelezheti, hogy az aliasattribútum szöveges értékét ki kell ejteni az elem zárt szövege helyett. Ily módon az SSML egy beszélt és egy írott űrlapot is tartalmaz.

sub Az elem attribútumainak használatát az alábbi táblázat ismerteti.

Attribútum Leírás Kötelező vagy választható
alias Az elem zárt szövege helyett kifejezett szöveges érték. Kötelező

al példák

Az elem attribútumainak sub támogatott értékeit korábban ismertették.

A beszédszintézis motor a következő példában "World Wide Web Consortium" néven beszél.

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

Kiejtés a MathML használatával

A Matematikai korrektúranyelv (MathML) egy XML-kompatibilis korrektúranyelv, amely matematikai tartalmat és struktúrát ír le. A Speech szolgáltatás a MathML-et használhatja bemeneti szövegként a matematikai jelölések helyes kiejtéséhez a kimeneti hangban.

Feljegyzés

A MathML-elemek (címkék) jelenleg a következő területi beállításokban támogatottak: de-DE, en-AU, , en-GB, en-US, es-MXes-ES, , fr-FRfr-CA, it-ITpt-BRja-JPko-KRés .zh-CN

A MathML 2.0 és a MathML 3.0 specifikáció összes eleme támogatott, kivéve a MathML 3.0 elemi matematikai elemeket.

Jegyezze fel ezeket a MathML-elemeket és attribútumokat:

  • A xmlns be megadott <math xmlns="http://www.w3.org/1998/Math/MathML"> attribútum nem kötelező.
  • A semantics, annotationés annotation-xml az elemek nem adnak ki beszédet, ezért figyelmen kívül hagyják őket.
  • Ha egy elem nem ismerhető fel, a rendszer figyelmen kívül hagyja, és a benne lévő gyermekelemek feldolgozása továbbra is folyamatban van.

Az XML-szintaxis nem támogatja a MathML-entitásokat, ezért az entitások megjelenítéséhez a megfelelő Unicode-karaktereket kell használnia, például az entitást &copy; unicode-karaktereknek &#x00A9;kell jelölnie, különben hiba történik.

Példák a MathML-hez

A példa szövegfelolvasási kimenete a következő: "négyzetes plusz b négyzet egyenlő c négyzet".

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

Következő lépések