Condividi tramite


Personalizzare la voce e il suono con SSML

È possibile usare SSML (Speech Synthesis Markup Language) per specificare la voce, la lingua, il nome, lo stile e il ruolo della sintesi vocale per il proprio output. È anche possibile usare più voci in un singolo documento SSML e regolare l'enfasi, la velocità di pronuncia, l'intonazione e il volume. Inoltre, SSML offre la possibilità di inserire audio pre-registrato, ad esempio un effetto audio o una nota musicale.

L'articolo illustra come usare gli elementi SSML per specificare la voce e il suono. Per altre informazioni sulla sintassi SSML, vedere Struttura ed eventi di documenti SSML.

Usare gli elementi vocali

È necessario specificare almeno un elemento voice all'interno di ogni elemento speak SSML. Questo elemento determina la voce usata per la sintesi vocale.

È possibile includere più elementi voice in un singolo documento SSML. Ogni elemento voice può specificare una voce diversa. Si può anche usare la stessa voce più volte con impostazioni diverse, ad esempio quando si modifica la durata del silenzio tra le frasi.

Nella tabella seguente viene descritto l'utilizzo degli attributi dell'elemento voice:

Attributo Descrizione Obbligatorio o facoltativo
name Voce usata per l'output della sintesi vocale. Per un elenco completo delle voci predefinite supportate, vedere Lingue e voci supportate per il servizio Voce. Richiesto
effect Elaboratore di effetti audio usato per ottimizzare la qualità dell'output della voce sintetizzata per scenari specifici nei dispositivi.

Per alcuni scenari negli ambienti di produzione, l'esperienza uditiva può essere compromessa dalla distorsione della riproduzione in determinati dispositivi. Ad esempio, il parlato sintetizzato da un parlante di un'automobile può risultare monotono e ovattato a causa di fattori ambientali quali la risposta del parlante, il riverbero dell'abitacolo e il rumore di sottofondo. Il passeggero potrebbe dover alzare il volume per sentire meglio. Per evitare operazioni manuali in questo scenario, l'elaboratore di effetti audio può rendere più chiaro il suono compensando la distorsione della riproduzione.

Sono supportati i valori seguenti:
  • eq_car: ottimizza l'esperienza uditiva quando si fornisce un parlato ad alta fedeltà in automobili, autobus e altri veicoli chiusi.
  • eq_telecomhp8k: ottimizza l'esperienza uditiva per il parlato a banda stretta in scenari di telecomunicazioni o telefonia. È consigliabile usare una frequenza di campionamento di 8 kHz. Se la frequenza di campionamento non è di 8 kHz, la qualità uditiva del parlato di output non sarà ottimizzata.

Se il valore è mancante o non valido, questo attributo viene ignorato e non viene applicato alcun effetto.
Facoltativo

Esempi di voce

Per informazioni sui valori supportati per gli attributi dell'elemento voice, vedere Usare gli elementi vocali.

Esempio di voce singola

Questo esempio usa la voce en-US-AvaMultilingualNeural.

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

Esempio di più voci

All'interno dell'elemento speak è possibile specificare più voci per l'output di sintesi vocale. Queste voci possono essere in lingue diverse. Per ogni voce occorre eseguire il wrapping del testo in un elemento voice.

Questo esempio alterna tra la voce en-US-AvaMultilingualNeural e la voce en-US-AndrewMultilingualNeural. Le voci multilingue neurali possono parlare lingue diverse in base al testo di input.

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

Esempio di sintesi vocale neurale

Per usare la sintesi vocale neurale, specificare il nome del modello come nome della voce in SSML.

Questo esempio usa una voce personalizzata denominata my-custom-voice.

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

Esempio di effetto audio

Usare l'attributo effect per ottimizzare l'esperienza uditiva per scenari quali le automobili e le telecomunicazioni. L'esempio SSML seguente usa l'attributo effect con la configurazione relativa agli scenari di automobili.

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

Usare stili e ruoli parlanti

Per impostazione predefinita, le voci neurali hanno uno stile del parlato neutro. È possibile modificare lo stile del parlato, il grado di stile e il ruolo a livello di frase.

Nota

Il servizio Voce supporta gli stili, il grado di stile e i ruoli per un sottoinsieme di voci neurali, come descritto nella documentazione relativa a stili e ruoli del parlato. Per determinare quali stili e ruoli sono supportati per ogni voce, è anche possibile usare l'API di elenco voci e l'applicazione Web Creazione di contenuto audio.

Nella tabella seguente viene descritto l'utilizzo degli attributi dell'elemento mstts:express-as:

Attributo Descrizione Obbligatorio o facoltativo
style Stile del parlato specifico della voce. È possibile esprimere emozioni come allegria, empatia e calma. Si può anche ottimizzare la voce per scenari diversi, ad esempio servizio clienti, notiziario e assistente vocale. Se il valore di stile è mancante o non valido, l'intero elemento mstts:express-as viene ignorato e il servizio usa il parlato neutro predefinito. Per gli stili di sintesi vocale neurale, vedere il relativo esempio. Richiesto
styledegree Intensità dello stile del parlato. È possibile specificare uno stile più forte o più morbido per rendere il parlato più espressivo o pacato. L'intervallo dei valori accettati è compreso tra 0.01 e 2 inclusi. Il valore predefinito è 1, che corrisponde all'intensità predefinita dello stile. L'unità minima è 0.01, che comporta una leggera tendenza allo stile desiderato. Il valore di 2 raddoppia l'intensità dello stile predefinito. Se il grado di stile manca o non è supportato per la voce, questo attributo viene ignorato. Facoltativo
role Ruolo del parlato. La voce può imitare un'età e un genere diversi, ma il nome della voce rimane invariato. Ad esempio, una voce maschile può alzare il tono e cambiare l'intonazione per imitare una voce femminile, ma il nome della voce non cambia. Se il ruolo è mancante o non è supportato per la voce, questo attributo viene ignorato. Facoltativo

La tabella seguente descrive ogni attributo style supportato:

Style Descrizione
style="advertisement_upbeat" Esprime un tono entusiasta ed energico per promuovere un prodotto o un servizio.
style="affectionate" Esprime un tono caldo e affettuoso, con un'intonazione e un'energia vocale più elevate. Il parlante è nella condizione di attirare l'attenzione dell'ascoltatore. La personalità del parlante è spesso accattivante.
style="angry" Esprime un tono irritato e infastidito.
style="assistant" Esprime un tono caldo e rilassato per gli assistenti digitali.
style="calm" Esprime un atteggiamento freddo, raccolto e composto quando parla. Il tono, l'intonazione e la prosodia sono più uniformi rispetto ad altri tipi di parlato.
style="chat" Esprime un tono informale e rilassato.
style="cheerful" Esprime un tono positivo e felice.
style="customerservice" Esprime un tono amichevole e disponibile per l'assistenza clienti.
style="depressed" Esprime un tono malinconico e sconfortato con un'intonazione e un'energia più basse.
style="disgruntled" Esprime un tono sdegnoso e lamentoso. Il parlato di questa emozione mostra dispiacere e disprezzo.
style="documentary-narration" Narrano documentari con uno stile rilassato, interessato e informativo, adatto a documentari, commenti di esperti e contenuti simili.
style="embarrassed" Esprime un tono incerto ed esitante quando il parlante si sente a disagio.
style="empathetic" Esprime un senso di premura e comprensione.
style="envious" Esprime un tono di ammirazione quando si desidera qualcosa che qualcun altro ha.
style="excited" Esprime un tono ottimista e speranzoso. L'impressione è che stia accadendo qualcosa di grandioso e che il parlante ne sia felice.
style="fearful" Esprime un tono spaventato e nervoso, con un'intonazione più alta, una maggiore energia vocale e un ritmo più veloce. Il parlante è in uno stato di tensione e disagio.
style="friendly" Esprime un tono piacevole, accogliente e caldo. Suona sincero e premuroso.
style="gentle" Esprime un tono mite, educato e piacevole, con un'intonazione e un'energia vocale più basse.
style="hopeful" Esprime un tono caldo e anelante. L'impressione è che al parlante accadrà qualcosa di bello.
style="lyrical" Esprime emozioni in modo melodico e sentimentale.
style="narration-professional" Esprime un tono professionale e obiettivo per la lettura di contenuti.
style="narration-relaxed" Esprime un tono rilassante e melodioso per la lettura di contenuti.
style="newscast" Esprime un tono formale e professionale per l'esposizione di notizie.
style="newscast-casual" Esprime un tono versatile e informale per la diffusione di notizie di carattere generale.
style="newscast-formal" Esprime un tono formale, sicuro e autorevole per la diffusione di notizie.
style="poetry-reading" Esprime un tono emotivo e ritmico durante la lettura di una poesia.
style="sad" Esprime un tono dolente.
style="serious" Esprime un tono severo e autoritario. Il parlante suona spesso più rigido e molto meno rilassato, con una cadenza decisa.
style="shouting" Esprime un tono che suona come se la voce fosse distante o in un'altra posizione, e stia facendo uno sforzo per essere udito chiaramente.
style="sports_commentary" Esprime un tono rilassato e interessato per la trasmissione di un evento sportivo.
style="sports_commentary_excited" Esprime un tono intenso ed energico per trasmettere momenti emozionanti di un evento sportivo.
style="whispering" Esprime un tono morbido che sta cercando di rendere un suono tranquillo e delicato.
style="terrified" Esprime un tono spaventato, con un ritmo più veloce e una voce più tremolante. Sembra che il parlante sia in uno stato instabile e concitato.
style="unfriendly" Esprime un tono freddo e indifferente.

La tabella seguente contiene le descrizioni di ogni attributo role supportato:

Ruolo Descrizione
role="Girl" La voce imita una ragazza.
role="Boy" La voce imita un ragazzo.
role="YoungAdultFemale" La voce imita una giovane femmina adulta.
role="YoungAdultMale" La voce imita un giovane maschio adulto.
role="OlderAdultFemale" La voce imita una femmina adulta matura.
role="OlderAdultMale" La voce imita un maschio adulto maturo.
role="SeniorFemale" La voce imita una femmina anziana.
role="SeniorMale" La voce imita un maschio anziano.

Esempi di mstts express-as

Per informazioni sui valori supportati per gli attributi dell'elemento mstts:express-as, vedere Usare stili e ruoli di pronuncia.

Esempio di stile e grado

Usare l'elemento mstts:express-as per esprimere emozioni come allegria, empatia e calma. Si può anche ottimizzare la voce per scenari diversi, ad esempio servizio clienti, notiziario e assistente vocale.

L'esempio SSML seguente usa l'elemento <mstts:express-as> con un grado di stile sad pari a 2.

<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 style="sad" styledegree="2">
            快走吧,路上一定要注意安全,早去早回。
        </mstts:express-as>
    </voice>
</speak>

Esempio di ruolo

Oltre a regolare gli stili del parlato e il grado di stile, è anche possibile regolare il parametro role in modo che la voce imiti un'età e un genere diversi. Ad esempio, una voce maschile può alzare il tono e cambiare l'intonazione per imitare una voce femminile, ma il nome della voce non cambia.

Questo frammento di codice SSML illustra come viene usato l'attributo role per cambiare il ruolo di zh-CN-XiaomoNeural.

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

Esempio di stile di sintesi vocale neurale

È possibile eseguire il training della voce neurale personalizzata per parlare con alcuni stili predefiniti, ad esempio cheerful, sad e whispering. Si può anche addestrare una sintesi vocale neurale a parlare in uno stile personalizzato determinato dai dati usati per il training. Per usare lo stile di sintesi vocale neurale in SSML, specificare il nome di stile immesso in precedenza in Speech Studio.

Questo esempio usa una voce personalizzata denominata my-custom-voice. La voce personalizzata parla con lo stile cheerful preimpostato e il grado di stile di 2, e quindi con uno stile personalizzato denominato my-custom-style e un grado di stile di 0.01.

<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="my-custom-voice">
        <mstts:express-as style="cheerful" styledegree="2">
            That'd be just amazing!
        </mstts:express-as>
        <mstts:express-as style="my-custom-style" styledegree="0.01">
            What's next?
        </mstts:express-as>
    </voice>
</speak>

ID profilo voce

Utilizzare l'elemento mstts:ttsembedding per specificare la proprietà speakerProfileId per una voce personale. La voce personale è una voce neurale personalizzata addestrata sulla propria voce o sulla voce del cliente. Per altre informazioni, vedere Creare una voce personale.

L'esempio SSML seguente usa l'elemento <mstts:ttsembedding> con un nome vocale e un ID profilo voce.

<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 xml:lang='en-US' xml:gender='Male' name='PhoenixV2Neural'> 
    <mstts:ttsembedding speakerProfileId='your speaker profile ID here'> 
    I'm happy to hear that you find me amazing and that I have made your trip planning easier and more fun. 我很高兴听到你觉得我很了不起,我让你的旅行计划更轻松、更有趣。Je suis heureux d'apprendre que vous me trouvez incroyable et que j'ai rendu la planification de votre voyage plus facile et plus amusante.  
    </mstts:ttsembedding> 
    </voice> 
</speak> 

Modificare le lingue parlate

Per impostazione predefinita, le voci multilingue possono modificare automaticamente la lingua del testo di input e parlare nella lingua delle impostazioni locali predefinite del testo di input senza usare SSML. Facoltativamente, è possibile utilizzare l'elemento <lang xml:lang> per regolare la lingua parlante per queste voci in modo da impostare l'accento preferito, ad esempio en-GB per l'inglese britannico. È possibile regolare la lingua del parlante sia a livello di frase che a livello di parola. Per informazioni sulle lingue supportate per la voce multilingue, vedere Voci multilingue con l'elemento lang per una tabella che mostra la sintassi <lang> e le definizioni degli attributi.

Nella tabella seguente viene descritto l'utilizzo degli attributi dell'elemento <lang xml:lang>:

Attributo Descrizione Obbligatorio o facoltativo
xml:lang Lingua in cui si vuole che la voce neurale parli. Obbligatorio per modificare la lingua parlante della voce neurale. Se si usa lang xml:lang, è necessario specificare le impostazioni locali.

Nota

L'elemento <lang xml:lang> non è compatibile con gli elementi prosody e break. In questo elemento non è possibile regolare la pausa e la prosodia, come l'intonazione, il contorno, la velocità o il volume.

Le voci non multilingue non supportano l'elemento <lang xml:lang> per impostazione predefinita.

Voci multilingue con l'elemento lang

Usare la sezione voci multilingue per determinare quali lingue parlanti il servizio Voce supporta per ogni voce neurale, come illustrato nella tabella di esempio seguente. Se la voce non parla la lingua del testo di input, il servizio Voce non restituirà l'audio sintetizzato.

Voce Numero di lingua rilevato automaticamente Lingua rilevata automaticamente (impostazioni locali) Tutti i numeri delle impostazioni locali Tutte le lingue (impostazioni locali) supportate da SSML
en-US-AndrewMultilingualNeural1 (Maschile)
en-US-AvaMultilingualNeural1 (Femminile)
en-US-BrianMultilingualNeural1 (Maschile)
en-US-EmmaMultilingualNeural1 (Femminile)
77 Afrikaans (af-ZA), albanese (sq-AL), amarico (am-ET), arabo (ar-EG), armeno (hy-AM), azero (az-AZ), indonesiano bahasa (id-ID), bangla (bn-BD), basco (eu-ES), bengalese (bn-IN), bosniaco (bs-BA), bulgaro (bg-BG), burmese (my-MM), catalano (ca-ES), cinese cantonese (zh-HK), cinese mandarino (zh-CN), cinese taiwanese (zh-TW), croato (hr-HR), ceco (cs-CZ), danese (da-DK), olandese (nl-NL), inglese (en-US), estone (et-EE), filippino (fil-PH), finlandese (fi-FI), francese (fr-FR), galiziano (gl-ES), georgiano (ka-GE), tedesco (de-DE), greco (el-GR), ebraico (he-IL), hindi (hi-IN), ungherese (hu-HU), islandese (is-IS), irlandese (ga-IE), italiano (it-IT), giapponese (ja-JP), giavanese (jv-ID), kannada (kn-IN), kazako (kk-KZ), khmer (km-KH), coreano (ko-KR), lao (lo-LA), lettone (lv-LV), lituano (lt-LT), macedone (mk-MK), malese (ms-MY), malayalam (ml-IN), maltese (mt-MT), mongolo (mn-MN), nepalese (ne-NP), norvegese bokmål (nb-NO), pashto (ps-AF), persiano (fa-IR), polacco (pl-PL), portoghese (pt-BR), rumeno (ro-RO), russo (ru-RU), serbo (sr-RS), singalese (si-LK), slovacco (sk-SK), sloveno (sl-SI), somalo (so-SO), spagnolo (es-ES), sundanese (su-ID), swahili (sw-KE), svedese (sv-SE), tamil (ta-IN), telugu (te-IN), thai (th-TH), turco (tr-TR), ucraino (uk-UA), urdu (ur-PK), uzbeco (uz-UZ), vietnamita (vi-VN), gallese (cy-GB), zulu (zu-ZA) 91 Afrikaans (Sudafrica) (af-ZA), albanese (Albania) (sq-AL), amarico (Etiopia) (am-ET), arabo (Egitto), (ar-EG), arabo (Arabia Saudita) (ar-SA), armeno (Armenia) (hy-AM), azerbaigiano (Azerbaigian) (az-AZ), basco (Paesi Baschi) (eu-ES), bengalese (India) (bn-IN), bosniaco (Bosnia ed Erzegovina) (bs-BA), bulgaro (Bulgaria) (bg-BG), birmano (Myanmar) (my-MM), catalano (Spagna) (ca-ES), cinese (cantonese, tradizionale) (zh-HK), cinese (mandarino, semplificato) (zh-CN), cinese (mandarino taiwanese) (zh-TW), croato (Croazia) (hr-HR), ceco (Ceco) (cs-CZ), danese (Danimarca) (da-DK), olandese (Belgio) (nl-BE), olandese (Paesi Bassi) (nl-NL), inglese (Australia) (en-AU), inglese (Canada) (en-CA), inglese (RAS di Hong Kong) (en-HK), inglese (India) (en-IN), inglese (Irlanda) (en-IE), inglese (Regno Unito) (en-GB), inglese (Stati Uniti d’America) (en-US), estone (Estonia) (et-EE), Filippino (Filippine) (fil-PH), finlandese (Finlandia) (fi-FI), francese (Belgio) (fr-BE), francese (Canada) (fr-CA), francese (Francia) (fr-FR), francese (Svizzera) (fr-CH), galiziano (Galizia) (gl-ES), georgiano (Georgia) (ka-GE), tedesco (Austria) (de-AT), tedesco (Germania) (de-DE), tedesco (Svizzera) (de-CH), greco (Grecia) (el-GR), ebraico (Israele) (he-IL), hindi (India) (hi-IN), ungherese (Ungheria) (hu-HU), islandese (Islanda) (is-IS), indonesiano (Indonesia) (id-ID), irlandese (Irlanda) (ga-IE), italiano (Italia) (it-IT), giapponese (Giappone) (ja-JP), giavanese (Indonesia) (jv-ID), kannada (India) (kn-IN), kazako (Kazakistan) (kk-KZ), khmer (Cambogia) (km-KH), coreano (Corea) (ko-KR), lao (Laos) (lo-LA), lettone (Lettonia) (lv-LV), lituano (Lituania) (lt-LT), macedone (Macedonia del Nord) (mk-MK), malese (Malaysia) (ms-MY), malayalam (India) (ml-IN), maltese (Malta) (mt-MT), mongolo (Mongolia) (mn-MN), nepalese (Nepal) (ne-NP), norvegese (Bokmål, Norvegia) (nb-NO), pashto (Afghanistan) (ps-AF), persiano (Iran) (fa-IR), polacco (Polonia) (pl-PL), portoghese (Brasile) (pt-BR), portoghese (Portogallo) (pt-PT), rumeno (Romania) (ro-RO), russo (Russia) (ru-RU), serbo (alfabeto cirillico, Serbia) (sr-RS), singalese (Sri Lanka) (si-LK), slovacco (Slovacchia) (sk-SK), sloveno (Slovenia) (sl-SI), somalo (Somalia) (so-SO), spagnolo (Messico) (es-MX), spagnolo (Spagna) (es-ES), sundanese (Indonesia) (su-ID), swahili (Kenya) (sw-KE), svedese (Svezia) (sv-SE), tamil (India) (ta-IN), telugu (India) (te-IN), thai (Thailandia) (th-TH), turco (Turchia) (tr-TR), ucraino (Ucraina) (uk-UA), urdu (Pakistan) (ur-PK), uzbeko (Uzbekistan) (uz-UZ), vietnamita (Vietnam) (vi-VN), gallese (Regno Unito) (cy-GB), zulu (Sudafrica) (zu-ZA)

1 Queste sono voci multilingue neurali in Voce di Azure AI. Tutte le voci multilingue possono parlare nella lingua nelle impostazioni locali predefinite del testo di input senza usare SSML. Tuttavia, è comunque possibile usare l'elemento <lang xml:lang> per regolare l'accento di ogni lingua al fine di impostare l'accento preferito, ad esempio l'accento britannico (en-GB) per l'inglese. Le impostazioni locali primarie per ogni voce sono indicate dal prefisso del nome; ad esempio, per la voce en-US-AndrewMultilingualNeural, le impostazioni locali primarie sono en-US.

Nota

Le voci multilingue non supportano completamente determinati elementi SSML, ad esempio break, emphasis, silence e sub.

Esempi di lang

Per informazioni sui valori supportati per gli attributi dell'elemento lang, vedere Regolare la lingua parlante.

È necessario specificare en-US come lingua predefinita all'interno dell'elemento speak, indipendentemente dal fatto che la lingua venga modificata altrove. In questo esempio, la lingua primaria per en-US-AvaMultilingualNeural è en-US.

Questo frammento di codice SSML mostra come usare <lang xml:lang> per parlare de-DE con la voce neurale en-US-AvaMultilingualNeural.

<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">
        <lang xml:lang="de-DE">
            Wir freuen uns auf die Zusammenarbeit mit Ihnen!
        </lang>
    </voice>
</speak>

All'interno dell'elemento speak è possibile specificare più lingue, tra cui en-US, per l'output di sintesi vocale. Per ogni lingua modificata, il testo deve corrispondere alla lingua ed essere racchiuso in un elemento voice. Questo frammento di codice SSML mostra come usare <lang xml:lang> per cambiare le lingue parlanti in es-MX, en-US e fr-FR.

<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">
        <lang xml:lang="es-MX">
            ¡Esperamos trabajar con usted!
        </lang>
        <lang xml:lang="en-US">
           We look forward to working with you!
        </lang>
        <lang xml:lang="fr-FR">
            Nous avons hâte de travailler avec vous!
        </lang>
    </voice>
</speak>

Regolare la prosodia

È possibile usare l'elemento prosody per specificare le modifiche a tono, contorno, intervallo, frequenza e volume per l'output di sintesi vocale. L'elemento prosody può contenere testo e gli elementi seguenti: audio, break, p, phoneme, prosody, say-as, sub e s.

Poiché i valori degli attributi prosodici possono variare su un ampio intervallo, il riconoscimento vocale interpreta i valori assegnati come un suggerimento di quelli che dovrebbero essere i valori prosodici effettivi della voce selezionata. La sintesi vocale limita o sostituisce i valori non supportati. Esempi di valori non supportati sono un'intonazione di 1 MHz o un volume di 120.

Nella tabella seguente viene descritto l'utilizzo degli attributi dell'elemento prosody:

Attributo Descrizione Obbligatorio o facoltativo
contour Il contorno rappresenta i cambiamenti di intonazione. Questi cambiamenti sono rappresentati come una matrice di destinazioni in posizioni temporali specifiche nell'output del parlato. I set di coppie di parametri definiscono ogni destinazione. Ad esempio:

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

Il primo valore in ogni set di parametri specifica la posizione del cambio di intonazione come percentuale della durata del testo. Il secondo valore specifica l'entità dell'aumento o dell'abbassamento dell'intonazione usando un valore relativo o un valore di enumerazione per l'intonazione (vedere pitch). Il controllo dell'altezza del suono non funziona su singole parole e frasi brevi. Si consiglia di modificare l'altezza del suono su frasi intere o lunghe.
Facoltativo
pitch Indica l'intonazione di base del testo. I cambi di intonazione possono essere applicati a livello di frase. Le variazioni di intonazione devono essere comprese tra 0,5 e 1,5 volte l'audio originale. È possibile esprimere l'intonazione come:
  • Valore assoluto, espresso come numero seguito da "Hz" (Hertz). Ad esempio, <prosody pitch="600Hz">some text</prosody>.
  • Valore relativo:
    • Come numero relativo, espresso come numero preceduto da "+" o "-" e seguito da "Hz" o "st" che specifica l'entità della variazione dell'intonazione. Ad esempio, <prosody pitch="+80Hz">some text</prosody> o <prosody pitch="-2st">some text</prosody>. "st" indica che l'unità di variazione è il semitono, ovvero la metà di un tono (un mezzo passo) della scala diatonica standard.
    • Come percentuale, espressa come numero preceduto da "+" (facoltativo) o "-" e seguito da "%", che indica la variazione relativa. Ad esempio, <prosody pitch="50%">some text</prosody> o <prosody pitch="-50%">some text</prosody>.
  • Valore costante:
    • x-low (equivalentemente 0,55,-45%)
    • low (equivalentemente 0,8, -20%)
    • medium (equivalentemente 1, valore predefinito)
    • high (equivalentemente 1,2, +20%)
    • x-high (equivalentemente 1,45, +45%)
Facoltativo
range Valore che rappresenta l'intervallo di intonazione del testo. È possibile esprimere range usando gli stessi valori assoluti, relativi o di enumerazione usati per descrivere pitch. Facoltativo
rate Indica la velocità di pronuncia del testo. La velocità di pronuncia può essere applicata a livello di parola o di frase. Le variazioni di ritmo devono essere comprese tra 0.5 e 2 volte l'audio originale. È possibile esprimere rate come:
  • Valore relativo:
    • Come numero relativo, espresso come numero che funge da moltiplicatore del valore predefinito. Ad esempio, un valore di 1 non comporta alcuna variazione della velocità originale. Un valore di 0.5 dimezza la velocità originale. Un valore di 2 raddoppia la velocità originale.
    • Come percentuale, espressa come numero preceduto da "+" (facoltativo) o "-" e seguito da "%", che indica la variazione relativa. Ad esempio, <prosody rate="50%">some text</prosody> o <prosody rate="-50%">some text</prosody>.
  • Valore costante:
    • x-slow (equivalentemente 0,5, -50%)
    • slow (equivalentemente 0,64, -46%)
    • medium (equivalentemente 1, valore predefinito)
    • fast (equivalentemente 1,55, +55%)
    • x-fast (equivalentemente 2, +100%)
Facoltativo
volume Indica il livello di volume della voce parlante. I cambi di volume possono essere applicati a livello di frase. È possibile esprimere il volume come:
  • Valore assoluto, espresso come numero compreso compreso tra 0.0 e 100.0, da più basso a più alto, ad esempio 75. Il valore predefinito è 100.0.
  • Valore relativo:
    • Come numero relativo, espresso come numero preceduto da "+" o "-" che specifica l'entità della variazione del volume. Gli esempi sono +10 o -5.5.
    • Come percentuale, espressa come numero preceduto da "+" (facoltativo) o "-" e seguito da "%", che indica la variazione relativa. Ad esempio, <prosody volume="50%">some text</prosody> o <prosody volume="+3%">some text</prosody>.
  • Valore costante:
    • silent (equivalentemente 0)
    • x-soft (equivalentemente 0,2)
    • soft (equivalentemente 0,4)
    • medium (equivalentemente 0,6)
    • loud (equivalentemente 0,8)
    • x-loud (equivalentemente 1, valore predefinito)
Facoltativo

Esempi di prosodia

Per informazioni sui valori supportati per gli attributi dell'elemento prosody, vedere Regolare la prosodia.

Esempio di variazione della velocità del parlato

Questo frammento di codice SSML mostra come viene usato l'attributo rate per aumentare la velocità del parlato del 30% rispetto alla velocità predefinita.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-AvaMultilingualNeural">
        <prosody rate="+30.00%">
            Enjoy using text to speech.
        </prosody>
    </voice>
</speak>

Esempio di variazione del volume

Questo frammento di codice SSML mostra come viene usato l'attributo volume per aumentare il volume del 20% rispetto al volume predefinito.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-AvaMultilingualNeural">
        <prosody volume="+20.00%">
            Enjoy using text to speech.
        </prosody>
    </voice>
</speak>

Esempio di variazione dell'intonazione

Questo frammento di codice SSML mostra come viene usato l'attributo pitch per fare in modo che la voce parli con un'intonazione elevata.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-AvaMultilingualNeural">
        Welcome to <prosody pitch="high">Enjoy using text to speech.</prosody>
    </voice>
</speak>

Esempio di variazione del contorno di intonazione

Questo frammento di codice SSML illustra come viene usato l'attributo contour per cambiare il contorno.

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

Regolare l'enfasi

È possibile usare l’elemento facoltativo emphasis per aggiungere o rimuovere enfasi a livello di parola per il testo. Questo elemento può contenere solo testo e gli elementi seguenti: audio, break, emphasis, lang, phoneme, prosody, say-as, sub e voice.

Nota

La regolazione dell'enfasi a livello di parola è disponibile solo per queste voci neurali: en-US-GuyNeural, en-US-DavisNeural e en-US-JaneNeural.

Per le parole che hanno un'intonazione bassa e una durata breve, l'intonazione potrebbe non essere sufficientemente elevata da essere notata.

La tabella seguente descrive gli attributi dell'elemento emphasis:

Attributo Descrizione Obbligatorio o facoltativo
level Indica l'intensità dell'enfasi da applicare:
  • reduced
  • none
  • moderate
  • strong

Quando l'attributo level non è specificato, il livello predefinito è moderate. Per informazioni dettagliate su ogni attributo, vedere elemento di enfasi.
Facoltativo

Esempi di enfasi

Per informazioni sui valori supportati per gli attributi dell'elemento emphasis, vedere Modificare l'enfasi.

Questo frammento di codice SSML mostra come come si può usare l'elemento emphasis per aggiungere un livello moderato di enfasi per la parola "meetings".

<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-AndrewMultilingualNeural">
    I can help you join your <emphasis level="moderate">meetings</emphasis> fast.
    </voice>
</speak>

Aggiungere audio registrato

L'elemento audio è facoltativo. È possibile usarlo per inserire audio pre-registrato in un documento SSML. Il corpo dell'elemento audio può contenere testo normale o markup SSML parlato se il file audio non è disponibile o non riproducibile. L'elemento audio può contenere anche testo e gli elementi seguenti: audio, break, p, s, phoneme, prosody, say-as e sub.

Qualsiasi audio incluso nel documento SSML deve soddisfare questi requisiti:

  • Il file audio deve essere un file valido *.mp3, *.wav, *.opus, *.ogg, *.flaco *.wma.
  • Il tempo totale combinato per tutti i file di testo e audio in una singola risposta non può superare i 600 secondi.
  • L'audio non deve contenere informazioni specifiche del cliente o altre informazioni riservate.

Nota

L'elemento audio non è supportato dall'API Audio lungo. Per la sintesi vocale in formato lungo, usare invece l'API di sintesi batch.

Nella tabella seguente viene descritto l'utilizzo degli attributi dell'elemento audio:

Attributo Descrizione Obbligatorio o facoltativo
src Percorso URI del file audio. L'audio deve essere ospitato in un endpoint HTTPS accessibile da Internet. HTTPS è obbligatorio. Il dominio che ospita il file deve presentare un certificato TLS/SSL valido e attendibile. È consigliabile inserire il file audio nell'archiviazione BLOB nella stessa area di Azure del testo all'endpoint voce per ridurre al minimo la latenza. Richiesto

Esempi audio

Per informazioni sui valori supportati per gli attributi dell'elemento audio, vedere Aggiungere audio registrato.

Questo frammento di codice SSML illustra come usare l'attributo src per inserire audio da due file .wav.

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

Regolare la durata audio

Usare l'elemento mstts:audioduration per impostare la durata dell'audio di output. Usare questo elemento per sincronizzare l'intervallo di completamento dell'output audio. La durata audio può essere ridotta o aumentata da 0.5 a 2 volte la frequenza dell'audio originale. L'audio originale è l'audio senza altre impostazioni di frequenza. La velocità di pronuncia viene rallentata o ridotta di conseguenza in base al valore impostato.

L'impostazione durata audio si applica a tutto il testo di input all'interno dell'elemento voice che lo racchiude. Per ripristinare o modificare l'impostazione della durata dell'audio, è necessario usare un nuovo elemento voice con la stessa voce o con una voce diversa.

Nella tabella seguente viene descritto l'utilizzo degli attributi dell'elemento mstts:audioduration:

Attributo Descrizione Obbligatorio o facoltativo
value Durata richiesta dell'audio di output in secondi, ad esempio 2s, o millisecondi, ad esempio 2000ms.

Il valore massimo per la durata dell'audio di output è di 300 secondi. Questo valore deve essere compreso tra 0.5 e 2 volte l'audio originale senza altre impostazioni di velocità. Ad esempio, se la durata richiesta dell'audio è 30s, l'audio originale deve essere compreso tra 15 e 60 secondi. Se si imposta un valore al di fuori di questi limiti, la durata viene impostata in base al rispettivo multiplo minimo o massimo. Per l'audio di output più lungo di 300 secondi, generare prima l'audio originale senza altre impostazioni di velocità, quindi calcolare la velocità da regolare usando la velocità di prosodia per ottenere la durata desiderata.
Richiesto

Esempi di durata audio mstts

Per informazioni sui valori supportati per gli attributi dell'elemento mstts:audioduration, vedere Regolare la durata dell’audio.

In questo esempio, l'audio originale è di circa 15 secondi. L'elemento mstts:audioduration viene usato per impostare la durata dell’audio su 20 secondi o 20s.

<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-AvaMultilingualNeural">
<mstts:audioduration value="20s"/>
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>

Aggiungere l'audio in sottofondo

È possibile usare l'elemento mstts:backgroundaudio per aggiungere audio di sottofondo ai documenti SSML o per combinare un file audio con il parlato. mstts:backgroundaudio consente di riprodurre in ciclo un file audio in sottofondo, con dissolvenza all'inizio e alla fine della sintesi vocale.

Se l'audio di sottofondo fornito è più breve del parlato o della dissolvenza, viene riprodotto in ciclo. Se è più lungo del parlato, si interrompe al termine della dissolvenza.

È consentito un solo file audio di sottofondo per ogni documento SSML. È possibile inserire tag audio all'interno dell'elemento voice per aggiungere altro audio al documento SSML.

Nota

L'elemento mstts:backgroundaudio deve essere posto davanti a tutti gli elementi voice. Se specificato, deve essere il primo elemento figlio dell'elemento speak.

L'elemento mstts:backgroundaudio non è supportato dall'API Audio lungo. Per la sintesi vocale in formato lungo, usare invece l'API di sintesi batch (anteprima).

Nella tabella seguente viene descritto l'utilizzo degli attributi dell'elemento mstts:backgroundaudio:

Attributo Descrizione Obbligatorio o facoltativo
src Percorso URI del file audio di sottofondo. Richiesto
volume Volume del file audio di sottofondo. Valori accettati: da 0 a 100 inclusi. Il valore predefinito è 1. Facoltativo
fadein Durata della dissolvenza in entrata dell'audio di sottofondo in millisecondi. Il valore predefinito è 0, che equivale a nessuna dissolvenza in entrata. Valori accettati: da 0 a 10000 inclusi. Facoltativo
fadeout Durata della dissolvenza in uscita dell'audio di sottofondo in millisecondi. Il valore predefinito è 0, che equivale a nessuna dissolvenza in uscita. Valori accettati: da 0 a 10000 inclusi. Facoltativo

Esempi di mstss backgroundaudio

Per informazioni sui valori supportati per gli attributi dell'elemento mstts:backgroundaudi, vedere Aggiungere audio in sottofondo.

<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="en-US-AvaMultilingualNeural">
        The text provided in this document will be spoken over the background audio.
    </voice>
</speak>

Passaggi successivi