Ulepszanie syntezy za pomocą języka znaczników syntezy mowy (SSML)

Speech Synthesis Markup Language (SSML) to język znaczników oparty na języku XML, który umożliwia deweloperom określanie sposobu konwertowania tekstu wejściowego na syntetyzowany mowę przy użyciu usługi zamiany tekstu na mowę. W porównaniu do zwykłego tekstu, język SSML umożliwia deweloperom dostrojenie wysokości, wymowy, szybkości mówienia, głośności i innych danych wyjściowych funkcji tekstu na mowę. Normalna interpunkcja, taka jak wstrzymanie po upływie okresu lub użycie poprawnej intonacji, gdy zdanie kończy się znakiem zapytania, jest automatycznie obsługiwane.

Implementacja usługi rozpoznawania mowy SSML jest oparta na języku organizacja World Wide Web Consortium Speech Synthesis Markup Language w wersji 1.0.

Ważne

W przypadku rozliczeń znaki chińskie, japońskie i koreańskie są liczone jako dwa znaki. Aby uzyskać więcej informacji, zobacz Cennik.

Neuronowe i niestandardowe głosy

Używaj neuronowego głosu przypominania ludzkiego lub twórz własny niestandardowy głos unikatowy dla twojego produktu lub marki. Aby uzyskać pełną listę obsługiwanych języków, ustawieniach regionalnych i głosach, zobacz obsługa języka. Aby dowiedzieć się więcej na temat neuronowych i niestandardowych głosów, zobacz Omówienie funkcji text-to-speech.

Uwaga

Głosy w różnych stylach i wysokość można słyszeć, czytając przykładowytekst, zamiana tekstu na mowę stronie .

Znaki specjalne

Podczas korzystania z programu SSML należy pamiętać, że znaki specjalne, takie jak znaki cudzysłowu, apostrofy i nawiasy, muszą być znakami ucieczki. Aby uzyskać więcej informacji, zobacz XML (XML) 1.0: Dodatek D.

Obsługiwane elementy SSML

Każdy dokument SSML jest tworzony za pomocą elementów (lub tagów) SSML. Te elementy służą do dopasowywania wysokość, prozaii, woluminu i innych elementów. W poniższych sekcjach opisano sposób korzystania z poszczególnych elementów oraz informacje o tym, kiedy element jest wymagany lub opcjonalny.

Ważne

Nie zapomnij użyć podwójnego cudzysłowu wokół wartości atrybutów. Standardy dla dobrze utworzonego, prawidłowego kodu XML wymagają, aby wartości atrybutów są ujęte w znaki podwójnego cudzysłowu. Na przykład <prosody volume="90"> jest dobrze uformowanym, prawidłowym elementem, ale <prosody volume=90> nie. SSML może nie rozpoznawać wartości atrybutów, które nie znajdują się w cudzysłowach.

Tworzenie dokumentu SSML

speak element jest elementem głównym i jest wymagany dla wszystkich dokumentów SSML. Element speak zawiera ważne informacje, takie jak wersja, język i definicja słownictwa znaczników.

Składnia

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="string"></speak>

Atrybuty

Atrybut Opis Wymagane/Opcjonalne
version Wskazuje wersję specyfikacji SSML używaną do interpretowania znaczników dokumentu. Bieżąca wersja to 1.0. Wymagane
xml:lang Określa język dokumentu głównego. Wartość może zawierać małe litery, dwulitowy kod języka (na przykład ) lub kod języka i wielkie litery w en kraju/regionie (na przykład en-US ). Wymagane
xmlns Określa URI dokumentu, który definiuje słownictwo znaczników (typy elementów i nazwy atrybutów) dokumentu SSML. Bieżący numer URI to http://www.w3.org/2001/10/synthesis . Wymagane

Wybieranie głosu dla funkcji przekierowywu tekstu na mowę

Element voice jest wymagany. Służy do określania głosu, który jest używany do wymiany tekstu na mowę.

Składnia

<voice name="string">
    This text will get converted into synthesized speech.
</voice>

Atrybuty

Atrybut Opis Wymagane/Opcjonalne
name Określa głos używany w przypadku danych wyjściowych funkcji tekstu na mowę. Aby uzyskać pełną listę obsługiwanych głosów, zobacz Obsługa języka. Wymagane

Przykład

Uwaga

W tym przykładzie użyto en-US-ChristopherNeural głosu. Aby uzyskać pełną listę obsługiwanych głosów, zobacz Obsługa języka.

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

Używanie wielu głosów

W elemencie można określić wiele głosów dla danych wyjściowych funkcji speak tekst-mowa. Te głosy mogą być w różnych językach. Dla każdego głosu tekst musi być opakowany w voice element.

Atrybuty

Atrybut Opis Wymagane/Opcjonalne
name Określa głos używany w przypadku danych wyjściowych funkcji tekstu na mowę. Aby uzyskać pełną listę obsługiwanych głosów, zobacz Obsługa języka. Wymagane

Przykład

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-JennyNeural">
        Good morning!
    </voice>
    <voice name="en-US-ChristopherNeural">
        Good morning to you too Jenny!
    </voice>
</speak>

Dostosowywanie stylów mówienia

Domyślnie usługa rozpoznawania tekstu na mowę syntetyzuje tekst przy użyciu neutralnego stylu mówienia dla głosów neuronowych. Możesz dostosować styl mówienia, aby wyrażać różne emocje, takie jak wybryk, empatia i czucie, lub zoptymalizować głos pod kątem różnych scenariuszy, takich jak obsługa klienta, obsługa wiadomości i asystent głosowy, przy użyciu mstts:express-as elementu . Jest to opcjonalny element unikatowy dla usługi mowa.

Obecnie obsługiwane są korekty stylu mówienia dla następujących głosów neuronowych:

  • en-US-AriaNeural
  • en-US-JennyNeural
  • en-US-GuyNeural
  • en-US-SaraNeural
  • pt-BR-FranciscaNeural
  • zh-CN-XiaoxiaoNeural
  • zh-CN-YunyangNeural
  • zh-CN-YunyeNeural
  • zh-CN-YunxiNeural
  • zh-CN-XiaohanNeural
  • zh-CN-XiaomoNeural
  • zh-CN-XiaoxuanNeural
  • zh-CN-XiaoruiNeural

Można jeszcze bardziej zmienić natężenie stylu mówienia, aby lepiej dopasować go do twojego przypadku użycia. Możesz określić mocniejszy lub bardziej miękki styl za pomocą funkcji , aby mowa stanie się styledegree bardziej wyrazista lub strojona. Obecnie dostosowania stylu mówienia są obsługiwane w przypadku głosów neuronowych w języku chińskim (mandaryńskim, uproszczonym).

Oprócz dostosowywania stylu wypowiedzi i stopnia stylu można również dostosować parametr tak, aby głos odwzorowyał inny wiek role i płeć. Na przykład głos mężczyzn może podnieść wysokość i zmienić tonację, aby odimówić głos kobiet, ale nazwa głosu nie zostanie zmieniona. Obecnie obsługiwane są korekty ról dla tych głosów neuronowych w języku chińskim (mandaryńskim, uproszczonym):

  • zh-CN-XiaomoNeural
  • zh-CN-XiaoxuanNeural

Powyższe zmiany są stosowane na poziomie zdania, a style i role-plays różnią się w zależności od głosu. Jeśli styl lub rola nie są obsługiwane, usługa zwróci mowę w domyślny sposób neutralnej mowy. Możesz sprawdzić, jakie style i role są obsługiwane dla każdego głosu za pośrednictwem interfejsu API listy głosów lub za pośrednictwem platformy Tworzenie zawartości dźwiękowej kodu.

Składnia

<mstts:express-as style="string"></mstts:express-as>
<mstts:express-as style="string" styledegree="value"></mstts:express-as>
<mstts:express-as role="string" style="string"></mstts:express-as>

Uwaga

W tej chwili obsługuje styledegree tylko głosy neuronowe w języku chińskim (mandaryńskim, uproszczonym). role Obsługuje tylko zh-CN-XiaomoNeural i zh-CN-XiaoxuanNeural.

Atrybuty

Atrybut Opis Wymagane/Opcjonalne
style Określa styl mówienia. Obecnie style mówienia są specyficzne dla głosu. Wymagane w przypadku dostosowywania stylu mówienia dla głosu neuronowego. Jeśli używasz mstts:express-as , należy podać styl . Jeśli podano nieprawidłową wartość, ten element zostanie zignorowany.
styledegree Określa natężenie stylu mówienia. Akceptowane wartości: od 0,01 do 2 włącznie. Wartość domyślna to 1, co oznacza wstępnie zdefiniowaną intensywny styl. Minimalna jednostka to 0,01, co powoduje nieco tendencję do stylu docelowego. Wartość 2 powoduje podwojenie domyślnego natężenia stylu. Opcjonalne (obecnie obsługuje tylko głosy neuronowe w języku styledegree chińskim (mandaryńskim, uproszczonym).
role Określa odtwarzaną mówienia rolę. Głos będzie działać jako inny wiek i płeć, ale nazwa głosu nie zostanie zmieniona. Opcjonalne (w tej chwili obsługuje role tylko zh-CN-XiaomoNeural i zh-CN-XiaoxuanNeural).

Użyj tej tabeli, aby określić, które style mówienia są obsługiwane dla każdego neuronowego głosu.

Połączenia głosowe Styl Opis
en-US-AriaNeural style="newscast-formal" Wyraża formalny, ufny i autorytatywny ton dostarczania wiadomości
style="newscast-casual" Wyraża uniwersalny i nieformalny ton dla ogólnego dostarczania wiadomości
style="narration-professional" Wyrażanie profesjonalnego, obiektywnego tonu podczas czytania zawartości
style="customerservice" Wyraża przyjazny i pomocny ton dla obsługi klienta
style="chat" Wyraża zwykły i swobodny ton
style="cheerful" Wyraża pozytywny i pozytywny ton
style="empathetic" Wyraża poczucie dbania i zrozumienia
en-US-JennyNeural style="customerservice" Wyraża przyjazny i pomocny ton dla obsługi klienta
style="chat" Wyraża zwykły i swobodny ton
style="assistant" Wyraża ciepły i luźny ton dla asystentów cyfrowych
style="newscast" Wyraża uniwersalny i nieformalny ton dla ogólnego dostarczania wiadomości
en-US-GuyNeural style="newscast" Wyraża formalny i profesjonalny ton do narracji wiadomości
en-US-SaraNeural style="cheerful" Wyraża pozytywny i pozytywny ton
style="sad" Wyraża niepotrzebny ton
style="angry" Wyraża irytowany ton
pt-BR-FranciscaNeural style="calm" Wyraża chłodne, zebrane i złożone nastawienie podczas mówienia. Ton, wysokość, prosody są znacznie bardziej jednolite w porównaniu z innymi typami mowy.
zh-CN-XiaoxiaoNeural style="newscast" Wyraża formalny i profesjonalny ton do narracji wiadomości
style="customerservice" Wyraża przyjazny i pomocny ton dla obsługi klienta
style="assistant" Wyraża ciepły i luźny ton dla asystentów cyfrowych
style="chat" Wyraża zwykły i swobodny ton podczas pogawędki
style="calm" Wyraża chłodne, zebrane i złożone nastawienie podczas mówienia. Ton, wysokość, prosody są znacznie bardziej jednolite w porównaniu z innymi typami mowy.
style="cheerful" Wyraża upbeat i wytrenowy ton o większej energii głosu i głosu
style="sad" Wyraża zasypujące ton, z wyższą wysokość, mniejszą natężeniem i mniejszą energią na osłodę. Typowe wskaźniki tej emocji to zniechęcanie lub cykanie podczas mowy.
style="angry" Wyraża dźwięk i irytowany ton, z niższą wysokością, większą natężeniem i wyższą energią zębowym. Mówiący jest w stanie irate, displeased, and offended.
style="fearful" Wyraża wystraszony i denerwny ton, z wyższą wysokość, wyższą energią wydychaną i szybszym szybkością. Prelegent jest w stanie czasowości i niezręczności.
style="disgruntled" Wyraża rozgorętny i skarżący się ton. Mowa o tej emocji powoduje niezadowolenie i pogardę.
style="serious" Wyraża rygorystyczny i poleceń ton. Prelegent często wydaje się bardziej przytłaczający i znacznie mniej zrelaksowany przy użyciu twardego rytmu.
style="affectionate" Wyraża ciepły i wpływowy ton o większej energii nachylennej i o większej energii głosu. Mówiący jest w stanie przyciągania uwagi odbiornika. "Osobowość" prelegenta jest często endearną z natury.
style="gentle" Wyraża wytłoki, grzeczności i tonu, z niższą energią na wywęchu i o mniejszej energii głosu
style="lyrical" Wyraża emocje w sposób pozytywny i tonacji
zh-CN-YunyangNeural style="customerservice" Wyraża przyjazny i pomocny ton dla obsługi klienta
zh-CN-YunyeNeural style="calm" Wyraża chłodne, zebrane i złożone nastawienie podczas mówienia. Ton, wysokość, prosody są znacznie bardziej jednolite w porównaniu z innymi typami mowy.
style="cheerful" Wyraża upbeat i wytrenowy ton o większej energii głosu i głosu
style="sad" Wyraża zasypujące ton, z wyższą wysokość, mniejszą natężeniem i mniejszą energią na osłodę. Typowe wskaźniki tej emocji to zniechęcanie lub cykanie podczas mowy.
style="angry" Wyraża dźwięk i irytowany ton, z niższą wysokością, większą natężeniem i wyższą energią zębowym. Mówiący jest w stanie irate, displeased, and offended.
style="fearful" Wyraża wystraszony i denerwny ton, z wyższą wysokość, wyższą energią wydychaną i szybszym szybkością. Prelegent jest w stanie czasowości i niezręczności.
style="disgruntled" Wyraża rozgorętny i skarżący się ton. Mowa o tej emocji powoduje niezadowolenie i pogardę.
style="serious" Wyraża rygorystyczny i poleceń ton. Prelegent często wydaje się bardziej przytłaczający i znacznie mniej zrelaksowany przy użyciu twardego rytmu.
zh-CN-YunxiNeural style="assistant" Wyraża ciepły i luźny ton dla asystentów cyfrowych
style="cheerful" Wyraża upbeat i wytrenowy ton o większej energii głosu i głosu
style="sad" Wyraża zasypujące ton, z wyższą wysokość, mniejszą natężeniem i mniejszą energią na osłodę. Typowe wskaźniki tej emocji to zniechęcanie lub cykanie podczas mowy.
style="angry" Wyraża dźwięk i irytowany ton, z niższą wysokością, większą natężeniem i wyższą energią zębowym. Mówiący jest w stanie irate, displeased, and offended.
style="fearful" Wyraża wystraszony i denerwny ton, z wyższą wysokość, wyższą energią wydychaną i szybszym szybkością. Prelegent jest w stanie czasowości i niezręczności.
style="disgruntled" Wyraża rozgorętny i skarżący się ton. Mowa o tej emocji powoduje niezadowolenie i pogardę.
style="serious" Wyraża rygorystyczny i poleceń ton. Prelegent często wydaje się bardziej przytłaczający i znacznie mniej zrelaksowany przy użyciu twardego rytmu.
style="depressed" Wyraża ton melancholic i despondent z niższą wysokość i energię
style="embarrassed" Wyraża niepewny i niesłyszący ton, gdy prelegent jest niewygodny
zh-CN-XiaohanNeural style="cheerful" Wyraża upbeat i wytrenowy ton o większej energii głosu i głosu
style="sad" Wyraża zasypujące ton, z wyższą wysokość, mniejszą natężeniem i mniejszą energią na osłodę. Typowe wskaźniki tej emocji to zniechęcanie lub cykanie podczas mowy.
style="angry" Wyraża dźwięk i irytowany ton, z niższą wysokością, większą natężeniem i wyższą energią zębowym. Mówiący jest w stanie irate, displeased, and offended.
style="fearful" Wyraża wystraszony i denerwny ton, z wyższą wysokość, wyższą energią wydychaną i szybszym szybkością. Prelegent jest w stanie czasowości i niezręczności.
style="disgruntled" Wyraża rozgorętny i skarżący się ton. Mowa o tej emocji powoduje niezadowolenie i pogardę.
style="serious" Wyraża rygorystyczny i poleceń ton. Prelegent często wydaje się bardziej przytłaczający i znacznie mniej zrelaksowany przy użyciu twardego rytmu.
style="embarrassed" Wyraża niepewny i niesłyszący ton, gdy prelegent jest niewygodny
style="affectionate" Wyraża ciepły i wpływowy ton o większej energii nachylennej i o większej energii głosu. Mówiący jest w stanie przyciągania uwagi odbiornika. "Osobowość" prelegenta jest często endearną z natury.
style="gentle" Wyraża wytłoki, grzeczności i tonu, z niższą energią na wywęchu i o mniejszej energii głosu
zh-CN-XiaomoNeural style="calm" Wyraża chłodne, zebrane i złożone nastawienie podczas mówienia. Ton, wysokość, prosody są znacznie bardziej jednolite w porównaniu z innymi typami mowy.
style="cheerful" Wyraża upbeat i wytrenowy ton o większej energii głosu i głosu
style="angry" Wyraża dźwięk i irytowany ton, z niższą wysokością, większą natężeniem i wyższą energią zębowym. Mówiący jest w stanie irate, displeased, and offended.
style="fearful" Wyraża wystraszony i denerwny ton, z wyższą wysokość, wyższą energią wydychaną i szybszym szybkością. Prelegent jest w stanie czasowości i niezręczności.
style="disgruntled" Wyraża rozgorętny i skarżący się ton. Mowa o tej emocji powoduje niezadowolenie i pogardę.
style="serious" Wyraża rygorystyczny i poleceń ton. Prelegent często wydaje się bardziej przytłaczający i znacznie mniej zrelaksowany przy użyciu twardego rytmu.
style="depressed" Wyraża ton melancholic i despondent z niższą wysokość i energię
style="gentle" Wyraża wytłoki, grzeczności i tonu, z niższą energią na wywęchu i o mniejszej energii głosu
zh-CN-XiaoxuanNeural style="calm" Wyraża chłodne, zebrane i złożone nastawienie podczas mówienia. Ton, wysokość, prosody są znacznie bardziej jednolite w porównaniu z innymi typami mowy.
style="cheerful" Wyraża upbeat i wytrenowy ton o większej energii głosu i głosu
style="angry" Wyraża dźwięk i irytowany ton, z niższą wysokością, większą natężeniem i wyższą energią zębowym. Mówiący jest w stanie irate, displeased, and offended.
style="fearful" Wyraża wystraszony i denerwny ton, z wyższą wysokość, wyższą energią wydychaną i szybszym szybkością. Prelegent jest w stanie czasowości i niezręczności.
style="disgruntled" Wyraża rozgorętny i skarżący się ton. Mowa o tej emocji powoduje niezadowolenie i pogardę.
style="serious" Wyraża rygorystyczny i poleceń ton. Prelegent często wydaje się bardziej przytłaczający i znacznie mniej zrelaksowany przy użyciu twardego rytmu.
style="depressed" Wyraża ton melancholic i despondent z niższą wysokość i energię
style="gentle" Wyraża wytłoki, grzeczności i tonu, z niższą energią na wywęchu i o mniejszej energii głosu
zh-CN-XiaoruiNeural style="sad" Wyraża zasypujące ton, z wyższą wysokość, mniejszą natężeniem i mniejszą energią na osłodę. Typowe wskaźniki tej emocji to zniechęcanie lub cykanie podczas mowy.
style="angry" Wyraża dźwięk i irytowany ton, z niższą wysokością, większą natężeniem i wyższą energią zębowym. Mówiący jest w stanie irate, displeased, and offended.
style="fearful" Wyraża wystraszony i denerwny ton, z wyższą wysokość, wyższą energią wydychaną i szybszym szybkością. Prelegent jest w stanie czasowości i niezręczności.

Użyj tej tabeli, aby sprawdzić obsługiwane role i ich definicje.

Rola Opis
role="Girl" Głos odwzorowywuje się do dziewuchy.
role="Boy" Głos odwzorowywuje chłopca.
role="YoungAdultFemale" Głos jest odimówieńcą dla dorosłych kobiet.
role="YoungAdultMale" Głos jest odimówieńcą dla dorosłych mężczyzn.
role="OlderAdultFemale" Głos jest odimówieńcą starszej, dla dorosłych kobiet.
role="OlderAdultMale" Głos jest odimówieńcą starszego mężczyzny.
role="SeniorFemale" Głos odwzorowywuje się starszej kobietie.
role="SeniorMale" Głos jest odimówień dla starszego mężczyzny.

Przykład

Ten fragment kodu SSML ilustruje sposób, w jaki element jest używany <mstts:express-as> do zmiany stylu mówienia na cheerful .

<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-AriaNeural">
        <mstts:express-as style="cheerful">
            That'd be just amazing!
        </mstts:express-as>
    </voice>
</speak>

Ten fragment kodu SSML ilustruje sposób, w jaki atrybut jest używany do zmiany natężenia stylu Mówienia dla styledegree FragmensjoNeural.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="zh-CN">
    <voice name="zh-CN-XiaoxiaoNeural">
        <mstts:express-as style="sad" styledegree="2">
            快走吧,路上一定要注意安全,早去早回。
        </mstts:express-as>
    </voice>
</speak>

Ten fragment kodu SSML ilustruje sposób, w jaki atrybut jest używany do zmiany roli role w przypadku FragmenomoNeural.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="zh-CN">
    <voice name="zh-CN-XiaomoNeural">
        女儿看见父亲走了进来,问道:
        <mstts:express-as role="YoungAdultFemale" style="calm">
            “您来的挺快的,怎么过来的?”
        </mstts:express-as>
        父亲放下手提包,说:
        <mstts:express-as role="OlderAdultMale" style="calm">
            “刚打车过来的,路上还挺顺畅。”
        </mstts:express-as>
    </voice>
</speak>

Dostosowywanie języków mówienia

Możesz dostosować języki mówienia dla głosów neuronowych. Umożliwianie jednem głosom fluentywnego wypowiadania różnych języków (takich jak angielski, hiszpański i chiński) przy użyciu <lang xml:lang> elementu . Jest to opcjonalny element unikatowy dla usługi mowa. Bez tego elementu głos będzie wypowiadał swój język podstawowy. Obecnie w przypadku tych głosów neuronowych są obsługiwane korekty języka mówienia: en-US-JennyMultilingualNeural . Powyższe zmiany są stosowane na poziomie zdania i wyrazu. Jeśli język nie jest obsługiwany, usługa nie zwróci strumienia audio.

Uwaga

Obecnie element jest niezgodny z elementem i . W tym elemencie nie można dostosować pauzy i prosody, takich jak <lang xml:lang> prosody break pitch, rate, duration, volume.

Składnia

<lang xml:lang="string"></lang>

Atrybuty

Atrybut Opis Wymagane/Opcjonalne
lang Określa języki mówienia. Obecnie mówienie w różnych językach jest specyficzne dla głosu. Wymagane w przypadku dostosowywania języka mówienia dla głosu neuronowego. W przypadku lang xml:lang korzystania z funkcji należy podać informacje o lokalnych lokalizacjach.

Skorzystaj z tej tabeli, aby określić, które języki mówienia są obsługiwane dla każdego neuronowego głosu.

Połączenia głosowe Język ustawieniach regionalnych Opis
en-US-JennyMultilingualNeural lang="en-US" Mów w języku en-US , które są podstawowymi językami lokalnymi tego głosu
lang="en-CA" Mów w języku ustawieniach regionalnych en-CA
lang="en-AU" Mów w języku ustawieniach regionalnych en-AU
lang="en-GB" Mów w języku ustawieniach regionalnych en-GB
lang="de-DE" Mów w języku ustawieniach regionalnych de-DE
lang="fr-FR" Mów w języku ustawieniach regionalnych fr-FR
lang="fr-CA" Mów w języku ustawieniach regionalnych fr-CA
lang="es-ES" Mów w języku ustawieniach regionalnych es-ES
lang="es-MX" Język regionalny mów es-MX
lang="zh-CN" Mów w języku zh-CN ustawieniach regionalnych
lang="ko-KR" Mów w języku ustawieniach regionalnych ko-KR
lang="ja-JP" Mów w języku ustawieniach regionalnych ja-JP
lang="it-IT" Mów w języku ustawieniach regionalnych IT
lang="pt-BR" Mów pt-BR — język regionalny

Przykład

W tym fragmencie kodu SSML pokazano, jak zmienić język mówienia <lang xml:lang> na en-US , i es-MX de-DE .

<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-JennyMultilingualNeural">
        I am looking forward to the exciting things.
        <lang xml:lang="es-MX">
            Estoy deseando que lleguen las cosas emocionantes.
        </lang>
        <lang xml:lang="de-DE">
            Ich freue mich auf die spannenden Dinge.
        </lang>
    </voice>
</speak>

Dodawanie lub usuwanie przerwania/wstrzymania

Użyj elementu break , aby wstawić pauzy (lub przerwy) między wyrazami lub uniemożliwić wstrzymywanie automatycznie dodawane przez usługę tekst na mowę.

Uwaga

Użyj tego elementu, aby przesłonić domyślne zachowanie funkcji tekst-mowa (TTS) dla słowa lub frazy, jeśli syntetyzowana mowa dla tego słowa lub frazy brzmi nieskonstrukcyjnie. Ustaw strength wartość na , aby none zapobiec przerwaniu prosodycznemu, który jest automatycznie wstawiany przez usługę typu tekst na mowę.

Składnia

<break strength="string" />
<break time="string" />

Atrybuty

Atrybut Opis Wymagane/Opcjonalne
strength Określa względny czas trwania wstrzymania przy użyciu jednej z następujących wartości:
  • brak
  • x-weak
  • Słabe
  • medium (ustawienie domyślne)
  • Silne
  • x-strong
Opcjonalne
time Określa bezwzględny czas trwania wstrzymania w sekundach lub milisekundach, ta wartość powinna być mniejsza niż 5000ms. Przykłady prawidłowych wartości to 2s i 500ms Opcjonalne
Siły Opis
Brak lub jeśli nie podano żadnej wartości 0 ms
x-weak 250 ms
Słabe 500 ms
średni 750 ms
Silne 1000 ms
x-strong 1250 ms

Przykład

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-ChristopherNeural">
        Welcome to Microsoft Cognitive Services <break time="100ms" /> Text-to-Speech API.
    </voice>
</speak>

Dodawanie wyciszenia

Użyj elementu mstts:silence , aby wstawić wstrzymywanie przed lub po tekście albo między dwoma sąsiadującymi zdaniami.

Uwaga

Różnica między i polega na tym, że można dodać do dowolnego miejsca w tekście, ale wyciszenie działa tylko na początku lub na końcu tekstu wejściowego lub na granicy 2 sąsiadujących mstts:silence break break zdań.

Składnia

<mstts:silence  type="string"  value="string"/>

Atrybuty

Atrybut Opis Wymagane/Opcjonalne
type Określa lokalizację wyciszenia, które mają zostać dodane:
  • Leading — na początku tekstu
  • Tailing — na końcu tekstu
  • Sentenceboundary — między sąsiednimi zdaniami
Wymagane
Value Określa bezwzględny czas trwania wstrzymania w sekundach lub milisekundach, ta wartość powinna być mniejsza niż 5000ms. Przykłady prawidłowych wartości to 2s i 500ms Wymagane

Przykład W tym przykładzie mtts:silence jest używany do dodawania 200 ms wyciszenia między dwoma zdaniami.

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

Określanie akapitów i zdań

p Elementy i służą odpowiednio do oznaczania akapitów s i zdań. W przypadku braku tych elementów usługa funkcji tekstu na mowę automatycznie określa strukturę dokumentu SSML.

Element p może zawierać tekst i następujące elementy: , , , , audio , , , i break phoneme prosody say-as sub mstts:express-as s .

Element s może zawierać tekst i następujące elementy: , , , , audio , , i break phoneme prosody say-as mstts:express-as sub .

Składnia

<p></p>
<s></s>

Przykład

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

Poprawianie wymowy za pomocą fonemów

Element ph służy do wymowy fejlowej w dokumentach SSML. Element ph może zawierać tylko tekst, żadne inne elementy. Zawsze zapewniaj mowę czytelną dla człowieka jako rezerwę.

Alfabety fonetyczne składają się z telefonów, które składają się z liter, cyfr lub znaków, czasami w kombinacji. Każdy telefon opisuje unikatowy dźwięk mowy. Jest to przeciwieńsze alfabetu łacińskiego, w którym każda litera może reprezentować wiele mówionych dźwięków. Rozważ różne wymowy litery "c" w wyrazach "candy" i "przestań" lub różne wymowy kombinacji litery "th" w wyrazach "thing" i "those".

Uwaga

Tag Phonemes nie jest obecnie obsługiwany w przypadku tych 5 głosów (et-EE-AnuNeural, ga-IE-OrlaNeural, lt-LT-OnNeural, lv-LV-EveritaNeural i mt-MT-GarceNeural).

Składnia

<phoneme alphabet="string" ph="string"></phoneme>

Atrybuty

Atrybut Opis Wymagane/Opcjonalne
alphabet Określa alfabet fonetyczny do użycia podczas syntezowania wymowy ciągu w ph atrybutze. Ciąg określający alfabet musi być określony małymi literami. Poniżej przedstawiono możliwe alfabety, które można określić.
Alfabet ma zastosowanie tylko do phoneme elementu w elemencie ..
Opcjonalne
ph Ciąg zawierający telefony, które określają wymowę słowa w phoneme elemencie . Jeśli określony ciąg zawiera nierozpoznane telefony, usługa text-to-speech (TTS) odrzuca cały dokument SSML i nie generuje żadnego z danych wyjściowych mowy określonych w dokumencie. Wymagane w przypadku korzystania z telefonów.

Przykłady

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-ChristopherNeural">
        <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-ChristopherNeural">
        <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-ChristopherNeural">
        <s>His name is Mike <phoneme alphabet="ups" ph="JH AU"> Zhou </phoneme></s>
    </voice>
</speak>

Używanie niestandardowego leksykonu w celu poprawy wymowy

Czasami usługa rozpoznawania tekstu na mowę nie może dokładnie wymawiać słowa. Na przykład nazwa firmy, termin medyczny lub emoji. Deweloperzy mogą definiować sposób odczytywania pojedynczych jednostek w programie SSML przy użyciu phoneme sub tagów i . Jeśli jednak musisz zdefiniować sposób odczytywania wielu jednostek, możesz utworzyć niestandardowy leksykon przy użyciu lexicon tagu .

Uwaga

Niestandardowy leksykon obsługuje obecnie kodowanie UTF-8.

Uwaga

Leksykon niestandardowy nie jest obecnie obsługiwany w przypadku tych 5 głosów (et-EE-AnuNeural, ga-IE-OrlaNeural, lt-LT-OnNeural, lv-LV-EveritaNeural i mt-MT-GarceNeural).

Składnia

<lexicon uri="string"/>

Atrybuty

Atrybut Opis Wymagane/Opcjonalne
uri Adres zewnętrznego dokumentu PLS. Wymagane.

Użycie

Aby zdefiniować sposób odczytywania wielu jednostek, możesz utworzyć niestandardowy leksykon, który jest przechowywany jako .xml lub pls. Poniżej przedstawiono przykładowy .xml plików.

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

Element lexicon zawiera co najmniej jeden lexeme element. Każdy lexeme element zawiera co najmniej jeden element i co najmniej jeden element , i grapheme grapheme alias phoneme . Element grapheme zawiera tekst opisujący ortografię . Elementy alias służą do wskazywania wymowy akronimu lub skróconego terminu. Element phoneme zawiera tekst opisujący sposób wymawiania lexeme elementu . Gdy alias element i są dostarczane z tym samym phoneme grapheme elementem, alias ma wyższy priorytet.

Leksykon zawiera atrybut niezbędny do wskazania, których wartości regionalnych xml:lang ma dotyczyć. Jeden niestandardowy leksykon jest domyślnie ograniczony do jednego ustawienia lokalnego, więc zastosuj go dla innych ustawień regionalnych, które nie będą działać.

Należy pamiętać, że nie można bezpośrednio ustawić wymowy frazy przy użyciu niestandardowego leksykonu. Jeśli musisz ustawić wymowę dla akronimu lub skróconego terminu, najpierw podaj , a następnie skojarz element alias phoneme z tym . alias Na przykład:

  <lexeme>
    <grapheme>Scotland MV</grapheme>
    <alias>ScotlandMV</alias>
  </lexeme>
  <lexeme>
    <grapheme>ScotlandMV</grapheme>
    <phoneme>ˈskɒtlənd.ˈmiːdiəm.weɪv</phoneme>
  </lexeme>

Możesz również bezpośrednio podać oczekiwane terminy z akronimem lub alias skrótem. Na przykład:

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

Ważne

Element phoneme nie może zawierać białych spacji podczas korzystania z IPA.

Aby uzyskać więcej informacji na temat niestandardowego pliku leksykonu, zobacz Pronunciation Lexicon Specification (PLS) Version 1.0 (Specyfikacja leksykonu wymowy w wersji 1.0).

Następnie opublikuj niestandardowy plik leksykonu. Chociaż nie ma ograniczeń dotyczących miejsca przechowywania tego pliku, zalecamy używanie usługi Azure Blob Storage.

Po opublikowaniu niestandardowego leksykonu możesz odwoływać się do niego z pliku SSML.

Uwaga

Element lexicon musi znajdować się wewnątrz voice elementu .

<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-ChristopherNeural">
        <lexicon uri="http://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>

W przypadku korzystania z tego niestandardowego leksykonu "BTW" będzie odczytywany jako "Przy okazji". "Niegroźny" zostanie odczytany z podaną IPA "b odtąd".

Ograniczenia

  • Rozmiar pliku: maksymalny limit rozmiaru pliku leksykonu niestandardowego wynosi 100 KB, jeśli przekroczy ten rozmiar, żądanie syntezy nie powiedzie się.
  • Odświeżanie pamięci podręcznej leksykonu: niestandardowe leksykony będą buforowane z URI jako kluczem w usłudze TTS po jego pierwszym załadowaniu. Leksykon z tym samym URI nie zostanie ponownie załadowany w ciągu 15 minut, więc niestandardowa zmiana leksykonu musi poczekać co najwyżej 15 minut, aby zmiany zaszły.

Zestawy f phonetic usługi rozpoznawania mowy

W powyższym przykładzie używamy międzynarodowych alfabetów fonetycznych, nazywanych również zestawem telefonów IPA. Sugerujemy deweloperom korzystanie z IPA, ponieważ jest to standard międzynarodowy. W przypadku niektórych znaków IPA mają one wersję "prekompilowaną" i "rozłożoną" w przypadku reprezentowania za pomocą formatu Unicode. Niestandardowy leksykon obsługuje tylko rozłożone znaki Unicode.

Biorąc pod uwagę, że IPA nie jest łatwy do zapamiętania, usługa rozpoznawania mowy definiuje zestaw femlityczny dla siedmiu języków ( en-US , , , , , i fr-FR de-DE es-ES ja-JP zh-CN zh-TW ).

Możesz użyć jako wartości atrybutu z x-microsoft-sapi alphabet niestandardowymi leksykonami, jak pokazano poniżej:

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

Aby uzyskać więcej informacji na temat szczegółowego alfabetu fonetycznego usługi Mowa, zobacz zestawy fonetyczne usługi mowa.

Dostosowywanie prosody

Element służy do określania zmian w schyłce, nachylieniu, zakresie, częstotliwości, czasie trwania i głośności danych wyjściowych funkcji prosody tekst-mowa. Element prosody może zawierać tekst i następujące elementy: , , , , audio , , , i break p phoneme prosody say-as sub s .

Ponieważ wartości atrybutów prosodycznych mogą się różnić w szerokim zakresie, aparat rozpoznawania mowy interpretuje przypisane wartości jako sugestię, jakie powinny być rzeczywiste wartości prosodyczne wybranego głosu. Usługa rozpoznawania tekstu na mowę ogranicza lub zastępuje wartości, które nie są obsługiwane. Przykłady nieobsługiwanych wartości to wysokość 1 MHz lub wolumin 120.

Składnia

<prosody pitch="value" contour="value" range="value" rate="value" duration="value" volume="value"></prosody>

Atrybuty

Atrybut Opis Wymagane/Opcjonalne
pitch Wskazuje linię bazową tekstu. Możesz wyrazić swoją opinię w następujący sposób:
  • Wartość bezwzględna wyrażona jako liczba, po której następuje "Hz" (Hertz). Na przykład <prosody pitch="600Hz">some text</prosody>.
  • Wartość względna wyrażona jako liczba poprzedzona "+" lub "-" i po niej "Hz" lub "st", która określa ilość, która ma zmienić wysokość. Na przykład: <prosody pitch="+80Hz">some text</prosody> lub <prosody pitch="-2st">some text</prosody> . "st" wskazuje, że jednostka zmiany jest półtonem, czyli połową tonu (pół kroku) w standardowej skali diatonicznej.
  • Wartość stała:
    • x-low
    • Niskie
    • średni
    • wysoka
    • x-high
    • default
Opcjonalne
contour Teraz System obsługuje zarówno neuronowe, jak i standardowe głosy. Kształt reprezentuje zmiany w schyłce. Te zmiany są reprezentowane jako tablica elementów docelowych w określonych pozycjach czasu w danych wyjściowych mowy. Każdy element docelowy jest definiowany przez zestawy par parametrów. Na przykład:

<prosody contour="(0%,+20Hz) (10%,-2st) (40%,+10Hz)">

Pierwsza wartość w każdym zestawie parametrów określa lokalizację zmiany rzutu jako wartość procentową czasu trwania tekstu. Druga wartość określa ilość, która ma być podniesiena lub niższa, przy użyciu wartości względnej lub wartości wyliczenia dla wysokość (zobacz pitch ).
Opcjonalne
range Wartość reprezentująca zakres nachylinia tekstu. Wyrażenia można wyrazić range przy użyciu tych samych wartości bezwzględnych, wartości względnych lub wartości wyliczenia, które są używane do opisywania wartości pitch . Opcjonalne
rate Wskazuje szybkość wypowiadania tekstu. Możesz wyrazić w rate następujący sposób:
  • Wartość względna wyrażona jako liczba, która działa jako mnożnik wartości domyślnej. Na przykład wartość 1 nie powoduje zmiany stawki. Wartość 0,5 powoduje zmniejszenie o połowę stawki. Wartość 3 powoduje potknięcie stawki.
  • Wartość stała:
    • x-slow
    • Powolny
    • średni
    • szybki
    • x-fast
    • default
Opcjonalne
duration Okres, który powinien upłynąć, gdy usługa syntezy mowy (TTS) odczytuje tekst w sekundach lub milisekundach. Na przykład 2s lub 1800ms. Czas trwania obsługuje tylko standardowe głosy. Opcjonalne
volume Wskazuje poziom głośności wypowiadania głosu. Wolumin można wyrazić w następujący sposób:
  • Wartość bezwzględna wyrażona jako liczba z zakresu od 0,0 do 100,0, od najspokojniejszego do najgłębszego. Na przykład 75. Wartość domyślna to 100.0.
  • Wartość względna wyrażona jako liczba poprzedzona przez "+" lub "-", która określa ilość do zmiany woluminu. Na przykład +10 lub -5,5.
  • Wartość stała:
    • Cichy
    • x-soft
    • Miękkie
    • średni
    • Głośno
    • x-loud
    • default
Opcjonalne

Zmiana szybkości mówienia

Szybkość mówienia może być stosowana do neuronowych i standardowych głosów na poziomie słowa lub zdania.

Przykład

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-ChristopherNeural">
        <prosody rate="+30.00%">
            Welcome to Microsoft Cognitive Services Text-to-Speech API.
        </prosody>
    </voice>
</speak>

Zmienianie woluminu

Zmiany głośności można stosować do standardowych głosów na poziomie słowa lub zdania. Natomiast zmiany głośności mogą być stosowane tylko do neuronowych głosów na poziomie zdania.

Przykład

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-ChristopherNeural">
        <prosody volume="+20.00%">
            Welcome to Microsoft Cognitive Services Text-to-Speech API.
        </prosody>
    </voice>
</speak>

Zmiana wysokość

Zmiany wysokość można zastosować do standardowych głosów na poziomie słowa lub zdania. Natomiast zmiany wysokości mogą być stosowane tylko do neuronowych głosów na poziomie zdania.

Przykład

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-ChristopherNeural">
        Welcome to <prosody pitch="high">Microsoft Cognitive Services Text-to-Speech API.</prosody>
    </voice>
</speak>

Zmiana zachwyt

Ważne

Zmiany w pochylić są teraz obsługiwane przy użyciu głosów neuronowych.

Przykład

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-ChristopherNeural">
        <prosody contour="(60%,-60%) (100%,+80%)" >
            Were you the only person in the room?
        </prosody>
    </voice>
</speak>

say-as, element

say-as jest opcjonalnym elementem, który wskazuje typ zawartości (taki jak liczba lub data) tekstu elementu. Zapewnia to wskazówki dla aparatu syntezy mowy dotyczące sposobu wymawiania tekstu.

Składnia

<say-as interpret-as="string" format="digit string" detail="string"> <say-as>

Atrybuty

Atrybut Opis Wymagane/Opcjonalne
interpret-as Wskazuje typ zawartości tekstu elementu. Aby uzyskać listę typów, zobacz tabelę poniżej. Wymagane
format Zawiera dodatkowe informacje o dokładnym formatowaniu tekstu elementu dla typów zawartości, które mogą mieć niejednoznaczne formaty. SSML definiuje formaty dla typów zawartości, które ich używają (zobacz tabelę poniżej). Opcjonalne
detail Wskazuje poziom szczegółowości wypowiedzi. Na przykład ten atrybut może żądać, aby aparat syntezy mowy wymawiał znaki interpunkcji. Nie ma żadnych wartości standardowych zdefiniowanych dla detail . Opcjonalne

Poniżej przedstawiono obsługiwane typy zawartości dla interpret-as atrybutów format i . Uwzględnij format atrybut tylko interpret-as wtedy, gdy ustawiono wartość data i godzina.

interpret-as format Interpretacja
address Tekst jest wypowiadany jako adres. Aparat syntezy mowy mówi:

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

Jako "I'm at 150th court north east redmond washington".
cardinal, number Tekst jest wypowiadany jako liczba kardynacyjna. Aparat syntezy mowy mówi:

There are <say-as interpret-as="cardinal">3</say-as> alternatives

Jako "Istnieją trzy alternatywy".
characters, spell-out Tekst jest wypowiadany jako pojedyncze litery (pisownia). Aparat syntezy mowy mówi:

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

Jako "T E S T."
date dmy, mdy, ymd, ydm, ym, my, md, dm, d, m, y Tekst jest wypowiadany jako data. Atrybut format określa format daty (d=dzień, m=miesiąc i y=rok). Aparat syntezy mowy mówi:

Today is <say-as interpret-as="date" format="mdy">10-19-2016</say-as>

Jako "Today is October 2019th two thousand sixteen" (Dzisiaj jest październikiem 2016 r.)
digits, number_digit Tekst jest wypowiadany jako sekwencja poszczególnych cyfr. Aparat syntezy mowy mówi:

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

Jako "1 2 3 4 5 6 7 8 9".
fraction Tekst jest wypowiadany jako liczba ułamkowa. Aparat syntezy mowy mówi:

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

Jako "trzy ósemki cala".
ordinal Tekst jest wypowiadany jako liczba porządkowa. Aparat syntezy mowy mówi:

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

Jako "Wybierz trzecią opcję".
telephone Tekst jest wypowiadany jako numer telefonu. Atrybut format może zawierać cyfry reprezentujące kod kraju. Na przykład "1" dla Stany Zjednoczone lub "39" dla Włoch. Aparat syntezy mowy może za pomocą tych informacji kierować swoją wymową numeru telefonu. Numer telefonu może również zawierać kod kraju, a jeśli tak, ma pierwszeństwo przed kodem kraju w format . Aparat syntezy mowy mówi:

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

Jako "Mój numer jest kodem kierunkowym osiem ośmiu ośmiu pięciu pięć jeden jeden jeden dwa".
time hms12, hms24 Tekst jest wypowiadany jako czas. Atrybut określa, czy czas jest określony przy użyciu format zegara 12-godzinnego (hms12) lub zegara 24-godzinnego (hms24). Użyj dwukropka, aby oddzielić liczby reprezentujące godziny, minuty i sekundy. Poniżej przedstawiono przykłady prawidłowego czasu: 12:35, 1:14:32, 08:15 i 02:50:45. Aparat syntezy mowy mówi:

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

Jak mówi "Pociąg odjeżdża o 4:00".
name Tekst jest wypowiadany jako imię i nazwisko osoby. Aparat syntezy mowy mówi:

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

jako [ zad].
W nazwach chińskich niektóre znaki są wymawiane inaczej, gdy pojawiają się w nazwie rodziny. Na przykład aparat syntezy mowy informuje o 仇 w

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

as [qi zaimki] zamiast [chóu].

Użycie

Element say-as może zawierać tylko tekst.

Przykład

Aparat syntezy mowy mówi następujący przykład: "Twoje pierwsze żądanie było dla jednego pokoju w październiku dwudziestego dziesiątego przy wczesnych przylotach o 1235 pm".

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

Dodawanie zarejestrowanego dźwięku

audio jest opcjonalnym elementem, który umożliwia wstawianie dźwięku MP3 do dokumentu SSML. Treść elementu audio może zawierać zwykły tekst lub znacznik SSML, który jest wypowiadany, jeśli plik dźwiękowy jest niedostępny lub nie można go odtwarzać. Ponadto element może audio zawierać tekst i następujące elementy: , , , , , audio , , i break p s phoneme prosody say-as sub .

Każdy dźwięk zawarty w dokumencie SSML musi spełniać następujące wymagania:

  • Plik MP3 musi być hostowany w punkcie końcowym HTTPS dostępnym z Internetu. Wymagany jest protokół HTTPS, a domena hostowania pliku MP3 musi przedstawiać prawidłowy, zaufany certyfikat TLS/SSL.
  • Mp3 musi być prawidłowym plikiem MP3 (MPEG v2).
  • Szybkość transmisji bitów musi być 48 kb/s.
  • Częstotliwość próbkowania musi być 16 000 Hz.
  • Łączny łączny czas dla wszystkich plików tekstowych i dźwiękowych w jednej odpowiedzi nie może przekraczać dziewięćdziesiąt (90) sekund.
  • Mp3 nie może zawierać żadnych informacji poufnych specyficznych dla klienta ani innych informacji poufnych.

Składnia

<audio src="string"/></audio>

Atrybuty

Atrybut Opis Wymagane/Opcjonalne
src Określa lokalizację/adres URL pliku dźwiękowego. Wymagane w przypadku korzystania z elementu audio w dokumencie SSML.

Przykład

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-ChristopherNeural">
        <p>
            <audio src="https://contoso.com/opinionprompt.wav"/>
            Thanks for offering your opinion. Please begin speaking after the beep.
            <audio src="https://contoso.com/beep.wav">
                Could not play the beep, please voice your opinion now.
            </audio>
        </p>
    </voice>
</speak>

Dodawanie dźwięku w tle

Element umożliwia dodawanie dźwięku w tle do dokumentów SSML (lub mieszanie pliku dźwiękowego z tekstem mstts:backgroundaudio na mowę). Za pomocą funkcji można zapętlić plik dźwiękowy w tle, zanikać na początku tekstu na mowę i zanikać na końcu tekstu mstts:backgroundaudio na mowę.

Jeśli podany dźwięk w tle jest krótszy niż tekst na mowę lub zanikanie, zostanie zapętleny. Jeśli jest on dłuższy niż tekst na mowę, zostanie zatrzymany po zakończeniu zanikanie.

Na dokument SSML dozwolony jest tylko jeden plik dźwiękowy w tle. Można jednak przeplatać tagi w elemencie , aby audio dodać dodatkowy dźwięk do dokumentu voice SSML.

Składnia

<mstts:backgroundaudio src="string" volume="string" fadein="string" fadeout="string"/>

Atrybuty

Atrybut Opis Wymagane/Opcjonalne
src Określa lokalizację/adres URL pliku dźwiękowego w tle. Wymagane w przypadku korzystania z dźwięku w tle w dokumencie SSML.
volume Określa wolumin pliku audio w tle. Akceptowane wartości: 0 na 100 włącznie. Wartość domyślna to 1. Opcjonalne
fadein Określa czas trwania "zanikanie" dźwięku w tle jako milisekund. Wartość domyślna to 0 , która jest odpowiednikiem brak zanikanie. Akceptowane wartości: 0 na 10000 włącznie. Opcjonalne
fadeout Określa czas trwania zanikanie dźwięku w tle w milisekundach. Wartość domyślna to 0 , która jest odpowiednikiem brak zanikanie. Akceptowane wartości: 0 na 10000 włącznie. Opcjonalne

Przykład

<speak version="1.0" xml:lang="en-US" xmlns:mstts="http://www.w3.org/2001/mstts">
    <mstts:backgroundaudio src="https://contoso.com/sample.wav" volume="0.7" fadein="3000" fadeout="4000"/>
    <voice name="Microsoft Server Speech Text to Speech Voice (en-US, ChristopherNeural)">
        The text provided in this document will be spoken over the background audio.
    </voice>
</speak>

Bookmark, element

Element bookmark umożliwia wstawianie znaczników niestandardowych w pliku SSML w celu uzyskania przesunięcia każdego znacznika w strumieniu audio. Nie będziemy odczytywać elementów zakładki. Element bookmark może służyć do odwołania się do określonej lokalizacji w sekwencji tekstu lub tagu.

Uwaga

bookmark Element na razie działa en-US-AriaNeural tylko dla głosu.

Składnia

<bookmark mark="string"/>

Atrybuty

Atrybut Opis Wymagane/opcjonalne
mark Określa tekst odwołania bookmark elementu. Wymagane.

Przykład

Na przykład warto znać przesunięcie czasu każdego wyrazu kwiatu w następujący sposób:

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

Uzyskiwanie zakładki przy użyciu zestawu SDK usługi Mowa

Możesz zasubskrybować BookmarkReached zdarzenie w zestawie SDK usługi Mowa, aby uzyskać przesunięcia zakładek.

Uwaga

BookmarkReached Zdarzenie jest dostępne tylko od wersji 1.16 zestawu Speech SDK.

BookmarkReached Zdarzenia są wywoływane, gdy dane wyjściowe audio stają się dostępne, co będzie szybsze niż odtwarzanie na urządzeniu wyjściowym.

  • AudioOffset raportuje czas, który upłynął w wyjściowym dźwięku od początku syntezy do elementu zakładki. Jest to mierzone w jednostkach stu nanosekundowych (HNS) z 10 000 HNS odpowiednikiem 1 milisekundy.
  • Text to tekst odwołania elementu zakładki, który jest ciągiem ustawionym w mark atrybutze .

Aby uzyskać więcej BookmarkReached informacji, zobacz .

synthesizer.BookmarkReached += (s, e) =>
{
    // The unit of e.AudioOffset is tick (1 tick = 100 nanoseconds), divide by 10,000 to convert to milliseconds.
    Console.WriteLine($"Bookmark reached. Audio offset: " +
        $"{e.AudioOffset / 10000}ms, bookmark text: {e.Text}.");
};

W powyższym przykładzie SSML zdarzenie BookmarkReached zostanie wyzwolone dwa razy, a dane wyjściowe konsoli będą

Bookmark reached. Audio offset: 825ms, bookmark text: flower_1.
Bookmark reached. Audio offset: 1462.5ms, bookmark text: flower_2.

Następne kroki