Share via


SSML-dokumentumstruktúra és események

A beszédszintézis korrektúranyelve (SSML) bemeneti szöveggel határozza meg a szöveg szerkezetét, tartalmát és egyéb jellemzőit a beszédkimenethez. Az SSML használatával például definiálhat bekezdést, mondatot, szünetet, szünetet vagy csendet. Az alkalmazás később feldolgozható eseménycímkéket, például könyvjelzőt vagy viseme-et tartalmazó szöveget tördelhet.

Az SSML-dokumentum elemeinek strukturálásáról az alábbi szakaszokban olvashat.

Dokumentumstruktúra

Az SSML Speech service implementációja a World Wide Web Consortium 1.0-s beszédszintézisi korrektúranyelvén alapul. A Speech által támogatott elemek eltérhetnek a W3C szabványtól.

Minden SSML-dokumentum SSML-elemekkel vagy címkékkel jön létre. Ezek az elemek a hang, a stílus, a hangmagasság, a próza, a hangerő és egyebek beállítására szolgálnak.

Íme egy SSML-dokumentum alapstruktúrájának és szintaxisának egy részhalmaza:

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="string">
    <mstts:backgroundaudio src="string" volume="string" fadein="string" fadeout="string"/>
    <voice name="string" effect="string">
        <audio src="string"></audio>
        <bookmark mark="string"/>
        <break strength="string" time="string" />
        <emphasis level="value"></emphasis>
        <lang xml:lang="string"></lang>
        <lexicon uri="string"/>
        <math xmlns="http://www.w3.org/1998/Math/MathML"></math>
        <mstts:audioduration value="string"/>
        <mstts:ttsembedding speakerProfileId="string"></mstts:ttsembedding>
        <mstts:express-as style="string" styledegree="value" role="string"></mstts:express-as>
        <mstts:silence type="string" value="string"/>
        <mstts:viseme type="string"/>
        <p></p>
        <phoneme alphabet="string" ph="string"></phoneme>
        <prosody pitch="value" contour="value" range="value" rate="value" volume="value"></prosody>
        <s></s>
        <say-as interpret-as="string" format="string" detail="string"></say-as>
        <sub alias="string"></sub>
    </voice>
</speak>

Az egyes elemekben engedélyezett tartalom néhány példáját az alábbi listában találja:

  • audio: Az elem törzse audio tartalmazhat egyszerű szöveget vagy SSML-korrektúrát, amely akkor hallható, ha a hangfájl nem érhető el vagy nem játszható le. Az audio elem tartalmazhat szöveget és a következő elemeket is: audio, , break, sp, phoneme, , prosody, say-asés sub.
  • bookmark: Ez az elem nem tartalmazhat szöveget vagy más elemeket.
  • break: Ez az elem nem tartalmazhat szöveget vagy más elemeket.
  • emphasis: Ez az elem tartalmazhat szöveget és a következő elemeket: audio, , break, emphasislang, phoneme, , prosody, say-asés sub.
  • lang: Ez az elem az összes többi elemet is tartalmazhat, kivéve mstts:backgroundaudioaz , voiceés speaka .
  • lexicon: Ez az elem nem tartalmazhat szöveget vagy más elemeket.
  • math: Ez az elem csak szöveget és MathML-elemeket tartalmazhat.
  • mstts:audioduration: Ez az elem nem tartalmazhat szöveget vagy más elemeket.
  • mstts:backgroundaudio: Ez az elem nem tartalmazhat szöveget vagy más elemeket.
  • mstts:embedding: Ez az elem tartalmazhat szöveget és a következő elemeket: audio, , break, emphasislang, phoneme, , prosody, say-asés sub.
  • mstts:express-as: Ez az elem tartalmazhat szöveget és a következő elemeket: audio, , break, emphasislang, phoneme, , prosody, say-asés sub.
  • mstts:silence: Ez az elem nem tartalmazhat szöveget vagy más elemeket.
  • mstts:viseme: Ez az elem nem tartalmazhat szöveget vagy más elemeket.
  • p: Ez az elem tartalmazhat szöveget és a következő elemeket: audio, , break, phonemeprosody, say-as, , sub, mstts:express-asés s.
  • phoneme: Ez az elem csak szöveget és más elemeket tartalmazhat.
  • prosody: Ez az elem tartalmazhat szöveget és a következő elemeket: audio, , break, pphoneme, prosody, , say-as, subés s.
  • s: Ez az elem tartalmazhat szöveget és a következő elemeket: audio, , break, prosodyphoneme, , say-as, mstts:express-asés sub.
  • say-as: Ez az elem csak szöveget és más elemeket tartalmazhat.
  • sub: Ez az elem csak szöveget és más elemeket tartalmazhat.
  • speak: Egy SSML-dokumentum gyökéreleme. Ez az elem a következő elemeket tartalmazhatja: mstts:backgroundaudio és voice.
  • voice: Ez az elem az összes többi elemet is tartalmazhat, kivéve mstts:backgroundaudio az és speaka .

A Speech szolgáltatás a megfelelő módon automatikusan kezeli az írásjeleket, például egy idő után szünetelteti az írásjeleket, vagy a megfelelő intonációt használja, amikor egy mondat kérdőjellel végződik.

Speciális karakterek

A karakterek &<használatához , valamint > az SSML-elem értékén vagy szövegén belül az entitásformátumot kell használnia. Konkrétan a helyén kell használnia, helyette kell használnia &lt;<, és helyette kell használnia &gt;>.&amp;& Ellenkező esetben az SSML nincs megfelelően elemezve.

Adja meg például ahelyettgreen & yellow, hogy green &amp; yellow . A következő SSML a várt módon van elemezve:

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-AvaNeural">
        My favorite colors are green &amp; yellow.
    </voice>
</speak>

A speciális karaktereket, például idézőjeleket, aposztrófokat és szögletes zárójeleket meg kell szökni. További információ: Bővíthető korrektúranyelv (XML) 1.0: D függelék.

A dupla vagy az egy idézőjelnek tartalmaznia kell az attribútumértékeket. Például <prosody volume="90"><prosody volume='90'> jól formázott, érvényes elemek, de <prosody volume=90> nem ismerik fel.

Gyökérelem felolvassa

Az speak elem olyan információkat tartalmaz, mint a verzió, a nyelv és a korrektúra szókincsének definíciója. Az speak elem az összes SSML-dokumentumhoz szükséges gyökérelem. Meg kell adnia az elem alapértelmezett nyelvét speak , függetlenül attól, hogy a nyelv máshol, például az lang elemen belül van-e beállítva.

Az elem szintaxisa speak a következő:

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="string"></speak>
Attribútum Leírás Kötelező vagy választható
version A dokumentum-korrektúra értelmezéséhez használt SSML-specifikáció verzióját jelzi. Az aktuális verzió az "1.0". Kötelező
xml:lang A gyökérdokumentum nyelve. Az érték tartalmazhat olyan nyelvi kódot, mint en az (angol) vagy egy területi beállítás (angol en-US – Egyesült Államok). Kötelező
xmlns A dokumentum URI-ja, amely meghatározza az SSML-dokumentum jelölőszókincsét (az elemtípusokat és attribútumneveket). A jelenlegi URI a következő: "http://www.w3.org/2001/10/synthesis". Kötelező

Az speak elemnek legalább egy hangelemet tartalmaznia kell.

példák felolvasása

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

Példa egyhangos hangra

Ez a példa a en-US-AvaNeural hangot használja. További példákért tekintse meg a hangra vonatkozó példákat.

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

Törés hozzáadása

break Az elem használatával felülbírálhatja a szavak közötti szünetek vagy szünetek alapértelmezett viselkedését. Ellenkező esetben a Speech szolgáltatás automatikusan beszúrja a szüneteket.

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

Attribútum Leírás Kötelező vagy választható
strength A szüneteltetés relatív időtartama az alábbi értékek egyikével:
  • x-gyenge
  • Gyenge
  • közepes (alapértelmezett)
  • Erős
  • x-strong
Választható
time A szünet abszolút időtartama másodpercben (például 2s) vagy ezredmásodpercben (például 500ms). Az érvényes értékek 0 és 5000 ezredmásodperc között mozognak. Ha a támogatott maximális értéknél nagyobb értéket állít be, a szolgáltatás a következőt használja 5000ms: . Ha az time attribútum be van állítva, a rendszer figyelmen kívül hagyja az strength attribútumot. Választható

Az alábbiakban további részleteket talál az strength attribútumról.

Erősség Relatív időtartam
X-gyenge 250 ms
Gyenge 500 ms
Közepes 750 ms
Erős 1000 ms
X-erős 1250 ms

Példák törésre

Az elem attribútumainak break támogatott értékeit korábban ismertették. Az alábbi három módszer 750 ms-os törést ad hozzá.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-AvaNeural">
        Welcome <break /> to text to speech.
        Welcome <break strength="medium" /> to text to speech.
        Welcome <break time="750ms" /> to text to speech.
    </voice>
</speak>

Csend hozzáadása

mstts:silence Az elem használatával szöveg előtt vagy után, illetve két szomszédos mondat közé szúrhat be szüneteket.

Az egyik különbség mstts:silencebreak az, hogy egy break elem bárhol beszúrható a szövegbe. A csend csak a bemeneti szöveg elején vagy végén, illetve két szomszédos mondat határán működik.

A csöndbeállítást a rendszer az összes bemeneti szövegre alkalmazza a belefoglaló voice elemen belül. A csend beállításának visszaállításához vagy módosításához egy új voice elemet kell használnia ugyanazzal a hanggal vagy másik hanggal.

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

Attribútum Leírás Kötelező vagy választható
type Megadja a csend hozzáadásának helyét és módját. A következő csöndtípusok támogatottak:
  • Leading – További csend a szöveg elején. A beállított érték hozzáadódik a természetes csendhez a szöveg kezdete előtt.
  • Leading-exact – Csend a szöveg elején. Az érték abszolút csendhossz.
  • Tailing – További csend a szöveg végén. A beállított érték hozzáadódik a természetes csendhez az utolsó szó után.
  • Tailing-exact – Csend a szöveg végén. Az érték abszolút csendhossz.
  • Sentenceboundary – További csend a szomszédos mondatok között. Az ilyen típus tényleges csendhossza magában foglalja az előző mondat utolsó szó utáni természetes csendet, az ehhez a típushoz beállított értéket, valamint a következő mondat kezdőszava előtti természetes csendet.
  • Sentenceboundary-exact – Csend a szomszédos mondatok között. Az érték abszolút csendhossz.
  • Comma-exact – Csend a vesszőnél félszélességű vagy teljes szélességű formátumban. Az érték abszolút csendhossz.
  • Semicolon-exact – Hallgatás a pontosvesszőnél félszélességű vagy teljes szélességű formátumban. Az érték abszolút csendhossz.
  • Enumerationcomma-exact – Csend az enumerálási vesszőnél teljes szélességű formátumban. Az érték abszolút csendhossz.

Az abszolút csendtípus (az -exact utótaggal) minden más módon természetes kezdő vagy záró csendet helyettesít. Az abszolút csendtípusok elsőbbséget élveznek a megfelelő nem abszolút típussal szemben. Ha például mindkettőt Leading és Leading-exact típust beállítja, a Leading-exact típus érvénybe lép. A WordBoundary esemény elsőbbséget élvez az írásjelekkel kapcsolatos csendbeállításokkal szemben, beleértve az Comma-exact, Semicolon-exactvagy Enumerationcomma-exact. Ha az eseményhez és az WordBoundary írásjelhez kapcsolódó csendbeállításokat is használja, az írásjelekkel kapcsolatos csendbeállítások nem lépnek érvénybe.
Kötelező
Value A szünet időtartama másodpercben (például 2s) vagy ezredmásodpercben (például 500ms). Az érvényes értékek 0 és 5000 ezredmásodperc között mozognak. Ha a támogatott maximális értéknél nagyobb értéket állít be, a szolgáltatás a következőt használja 5000ms: . Kötelező

mstts silence examples

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

Ebben a példában mstts:silence két mondat között 200 ms csendet adunk hozzá.

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

Ebben a példában mstts:silence 50 ms csendet adunk hozzá a vesszőnél, 100 ms csendet a pontosvesszőnél, és 150 ms csendet az enumerálási vesszőnél.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="http://www.w3.org/2001/mstts" xml:lang="zh-CN">
<voice name="zh-CN-YunxiNeural">
<mstts:silence type="comma-exact" value="50ms"/><mstts:silence type="semicolon-exact" value="100ms"/><mstts:silence type="enumerationcomma-exact" value="150ms"/>你好呀,云希、晓晓;你好呀。
</voice>
</speak>

Bekezdések és mondatok megadása

Az p elemek a s bekezdések és mondatok jelölésére szolgálnak. Ezen elemek hiányában a Speech szolgáltatás automatikusan meghatározza az SSML-dokumentum szerkezetét.

Példák bekezdésre és mondatra

Az alábbi példa két olyan bekezdést határoz meg, amelyek mindegyike mondatokat tartalmaz. A második bekezdésben a Speech szolgáltatás automatikusan meghatározza a mondatstruktúrát, mivel ezek nincsenek definiálva az SSML-dokumentumban.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-AvaNeural">
        <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>

Könyvjelző elem

Az SSML elemével bookmark hivatkozhat a szöveg vagy címkesorozat egy adott helyére. Ezután használja a Speech SDK-t, és feliratkozik az BookmarkReached eseményre, hogy megkapja az egyes jelölők eltolódását a hangstreamben. Az bookmark elem nincs kimondva. További információ: Feliratkozás szintetizátoreseményekre.

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

Attribútum Leírás Kötelező vagy választható
mark Az elem referenciaszövege bookmark . Kötelező

Példák könyvjelzőkre

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

Példaként érdemes lehet tudni az egyes virágszavak időeltolódását az alábbi kódrészletben:

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

Viseme elem

A viseme egy beszélt nyelvű telefonkép vizuális leírása. Meghatározza az arc és a száj helyzetét, miközben egy személy beszél. Az SSML elemével mstts:viseme viseme kimenetet kérhet le. További információ: Archelyzet lekérése viseme használatával.

A viseme beállítást a rendszer a belefoglaló voice elemen belüli összes bemeneti szövegre alkalmazza. A viseme beállítás visszaállításához vagy módosításához egy új voice elemet kell használnia ugyanazzal a hanggal vagy másik hanggal.

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

Attribútum Leírás Kötelező vagy választható
type A viseme kimenet típusa.
  • redlips_front – lip-sync with viseme ID and audio offset output
  • FacialExpression – alakzatok keverése kimenet
Kötelező

Feljegyzés

redlips_front Jelenleg csak a neurális hangokat támogatja a területi beállításokbanen-US, és FacialExpression támogatja a neurális hangokat és en-USzh-CN a területi beállításokat.

Viseme-példák

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

Ez az SSML-kódrészlet bemutatja, hogyan kérhet elegyalakzatokat a szintetizált beszédhez.

<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">
    <mstts:viseme type="FacialExpression"/>
    Rainbow has seven colors: Red, orange, yellow, green, blue, indigo, and violet.
  </voice>
</speak>

Következő lépések