SSML: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Evoluzione: Fix link
 
(8 versioni intermedie di 7 utenti non mostrate)
Riga 1:
{{Avvisounicode}}
Lo '''Speech Synthesis Markup Language (SSML)''' (in inglese: ''linguaggio di markup per la [[sintesi vocale]]'') è un [[linguaggio di markup]] basato su [[XML]] e orientato ai sistemi di conversione del testo in parlato, per controllarne e ottimizzarne la resa. Il linguaggio è stato specificato dal gruppo di studio "Voice browser" del [[World Wide Web Consortium]] (W3C) e trova frequente applicazioni in script di tipo [[VoiceXML]] per sistemi di telefonia interattiva automatizzata. Viene impiegato inoltre per la produzione di [[audiolibro|audiolibri]].
 
Sebbene alla specifica attuale abbiano contribuito molte aziende produttrici di sistemi di sintesi vocale (tra cui il centro di ricerca italiano [[CSELT]]<ref>[https://www.w3.org/TR/2003/CR-speech-synthesis-20031218/ssml-1.0-disposition.html SSML 1.0: Last Call Disposition of Comments]</ref>), l'SSML si basa su JSML (''Java Speech Markup Language''), linguaggio di markup concepito da [[Sun Microsystems]]. Il linguaggio non costituisce uno standard obbligatorio: infatti, ogni sintetizzatore vocale deve essere comunque in grado di eseguire la conversione anche in assenza di markup e del resto le definizioni stesse del linguaggio non prevedono un markup specifico per alcune funzionalità di base che si suppongono già presenti in qualsiasi sistema di sintesi vocale (come per esempio la resa in pause della punteggiatura).
 
== Caratteristiche ==
I [[Tag HTML|tag]] definiti in SSML sono in grado di controllare la resa di un sistema di sintesi durante tutte le sei fasi fondamentali del processo tipico di elaborazione<ref>{{cita|Speech Synthesis Markup Language (SSML) Version 1.0|1.2, Speech Synthesis Process Steps}}.</ref>:
 
# Scansione dell'XML (''[[parsing]]''): in questa fase il file SSML viene esaminato per estrarre la parte dei contenuti. Il markup controlla la resa di quelle che il sistema di sintesi considererà entità singole (''[[token (testo)|token]]''); per esempio: ''anno<nowiki><break /></nowiki>nuovo'' farà in modo che le due parole "''anno''" e "''nuovo''" vengano considerate come due parole completamente staccate tra di loro invece che due parole legate tra loro e separate solo da una breve pausa.
Line 11 ⟶ 10:
# Normalizzazione del testo: in questa fase il sistema di sintesi risolve e prepara per la resa costrutti particolari come abbreviazioni e numeri, basandosi sul contesto e in funzione della lingua finale. Il markup viene usato per controllare e risolvere ambiguità, indicando direttamente al sistema di sintesi come deve esser convertita la parte specifica: per esempio, consente di indicare se il testo "1/2" deve essere pronunciato come "''un mezzo''", "''metà''", "''uno di due''", "''uno o due''". Questo è particolarmente utile per le lingue orientali, dove la pronuncia del singolo carattere può cambiare completamente in base al contesto o al sistema usato. Un esempio è la [[lingua giapponese]] dove, in caso di ambiguità tra [[Kanji]] e [[Kana]], si può indicare tramite il markup la corretta resa fonetica desiderata, per es. se 今日は va pronunciato きょうは ("''kyou wa''" = "''oggi''") o こんにちは ("''konnichiwa''" = "''ciao''").
# Conversione testo-[[fonema]]: in questa fase il sistema di sintesi deve elaborare la pronuncia corretta, in base ai fonemi specifici di una determinata lingua. Il markup può essere usato per controllare in modo esplicito la pronuncia desiderata e in questa fase risulta particolarmente utile per [[acronimo|acronimi]] o [[abbreviazione|abbreviazioni]] che il sistema di sintesi non è stato in grado di risolvere durante la fase di normalizzazione.
# Analisi della [[prosodia]]: in questa fase il sistema di sintesi genera e controlla tutta una serie di parametri che servono per rendere la sintesi il più vicina possibile al discorso parlato di un essere umano: [[intonazione (musica)|intonazione]], [[ritmo]], [[pausa (musica)|pause]], [[velocità]], [[enfasi]] eccetera. Il markup in questa fase è particolarmente efficace in quanto consente il controllo diretto di alcuni di questi parametri.
# Generazione dell'audio: il markup in questa fase consente di selezionare il tipo di voce (maschile, femminile), le sue caratteristiche specifiche (es. donna giovane, uomo anziano) e anche l'eventuale inserimento di elementi di audio pre-registrato.
 
== Evoluzione ==
La versione 1.0 di SSML, attualmente in forza, ha introdotto tutti gli elementi di base. Tuttavia, in seguito sia al miglioramento delle tecniche di sintesi che soprattutto all'emergere di nuove realtà industriali ed economiche, soprattutto in [[Asia]], è sorta la necessità di estendere e migliorare il controllo tramite markup<ref>[httphttps://www.w3.org/TR/2007/WD-ssml11reqs-20070611/ Speech Synthesis Markup Language Version 1.1 Requirements], D. Burnett e Z. Shuang, World Wide Web Consortium, 11 giugno [[2007]]</ref>.
 
Da queste esigenze è partita la definizione della versione 1.1, che estende praticamente tutte le funzionalità di markup della versione 1.0. Tra le principali funzionalità aggiunte ci sono:
Line 22 ⟶ 21:
* il controllo esplicito per la definizione di un ''token'' e di una singola parola
* un evento per la gestione di errori nella sintesi (per esempio in caso di impossibilità di generare in una lingua specifica una determinata pronuncia o una determinata voce)
* controlli più estesi per la resa di audio registrato ([[intensitàIntensità acustica|volume]], velocità, ripetizione continua)
 
Il W3C ha pubblicato la versione 1.1 in fase "raccomandazione candidata" una prima volta<ref>[httphttps://www.w3.org/TR/2008/CR-speech-synthesis11-20081107/ Speech Synthesis Markup Language Version 1.1 - W3C Candidate Recommendation 7th November 2008] paragrafo ''Status of this document''</ref> il 7 novembre [[2008]] e un successivo aggiornamento<ref>[httphttps://www.w3.org/TR/2009/CR-speech-synthesis11-20090827/ Speech Synthesis Markup Language Version 1.1 - W3C Candidate Recommendation 27 August 2009]</ref> il 27 agosto [[2009]]: questo significa che per i produttori è già possibile utilizzare il contenuto della specifica per le prime implementazioni di prova. La fase successiva, immediatamente precedente all'approvazione definitiva, prevede il passaggio a "raccomandazione proposta". Tale passaggio, che in base al processo del W3C sarebbe potuto avvenire solo dopo il 27 novembre [[2009]], è avvenuto il 7 settembre [[2010]].
 
== Esempio ==
Questo è un esempio di documento SSML che controlla la generazione dello stesso messaggio in due lingue differenti ([[lingua inglese|inglese americano]] e [[lingua spagnola|spagnolo messicano]]), associate a una scelta:
 
<sourcesyntaxhighlight lang="xml">
<?xml version="1.0"?>
<speak xmlns="http://www.w3.org/2001/10/synthesis"
Line 51 ⟶ 50:
</p>
</speak>
</syntaxhighlight>
</source>
 
== Note ==
Line 57 ⟶ 56:
 
== Bibliografia ==
* {{cita web|url=httphttps://www.w3.org/TR/speech-synthesis/|titolo=Speech Synthesis Markup Language (SSML) Version 1.01 - W3C Recommendation|lingua=en|data=07-09-2004}}
* {{cita web|url=http://www.w3.org/TR/2008/CR-speech-synthesis11-20090827/|titolo=Speech Synthesis Markup Language (SSML) Version 1.1 - W3C Candidate Recommendation|lingua=en|data=27-08-2009}}
 
== Voci correlate ==
Line 69 ⟶ 67:
== Collegamenti esterni ==
* {{cita web|http://www.w3c.org|Sito ufficiale del W3C|lingua=en}}
* {{cita web|httphttps://www.w3.org/Voice/|Gruppo di studio "Voice browser" del W3C|lingua=en}}
{{Portale|internet}}