Speech Synthesis Markup Language

De Viquipèdia
Dreceres ràpides: navegació, cerca

L'Speech Synthesis Markup Language (SSML per les seves sigles en àngles) és un mètode per a la sintetització de veu basat en XML. Aquesta especificació ha estat desenvolupada pèl Voice Browser Working Group, que va sol·licitar desenvolupar un estàndard que permitís l'accés al web mitjançant la parla, per ajudar a la generació de veu sintètica en Webs i altres aplicacions.

Introducció[modifica | modifica el codi]

L'SSML està basat en les especificacions JSGF i/o JSML, propietat de Sun Microsystems. És part d'un ampli conjunt d'especificacions de marques per a buscadors de veu desenvolupades a través de processos oberts en el W3C. L'SSML ha sigut dissenyat per a oferir una millor sonoritat basada en el llenguatge de marques XML. El paper essencial dels llenguatges de marques és donar als autors de contingut sintetitzable una manera estàndard de controlar aspectes de la veu, tals com la pronunciació, el volum, el to, la velocitat, etc., per mitjà de diferents plataformes amb capacitats per a la sintetització de veu. Una iniciativa relacionada amb l'SSML per a establir un sistema estàndard per a marcar l'entrada de text ha sigut SABLE, que intentava integrar molt diferents marques basades en XML per a sintetitzadors de veu, en un estàndard nou. L'activitat feta amb SABLE s'ha usat com a punt de partida central per a definir el "Speech Synthesis Markup Requirements for Voice Markup Languages". Des de llavors, el mateix SABLE no ha experimentat desenvolupaments complementaris.

La intenció de l'SSML és fer possible i millorar la qualitat del contingut sintetitzat. Diferents elements de marcat suposen diferents etapes en el procés de síntesis. El marcatge pot fer-se automàticament mitjançant XSLT, o per fulls d'estil CSS3 d'un document XHTML, o manualment. El marcatge pot ser presentat com un document complet SSML o com a part d'un fragment embegut en altre llenguatge, encara que les interaccions amb altres llenguatges no s'especifiquen com a part de l'SSML mateix. La majoria dels desenvolupadors poden usar moltes de les etiquetes incloses en l'SSML, això no obstant, algunes característiques avançades com fonemes i prosòdia (com per exemple per al disseny dels nivells de veu) requereixen un coneixement especialitzat.

Aplicacions[modifica | modifica el codi]

El principal objectiu és aconseguir una implantació generalitzada de serveis i navegadors de veu en tots els àmbits per a facilitar la interacció entre computadors i éssers humans; i que aquests siguin desenvolupats de manera estandarditzada.

El Speech Synthesis Markup Language juntament amb altres especificacions com VoiceXML o SRGS (Speech Recognition Grammar Specification), també desenvolupades pèl Voice Browser Working Group, formen el que es denomina W3C Speech Interface Framework.

Aquest conjunt d'especificacions cobreix les necessitats de diàleg mitjançant veu, reconeixement de veu, síntesi de veu, etc., dels quals algunes aplicacions podrien ser:

  • Serveis per a empreses com pot ser l'automatització de respostes per telèfon
  • Suport tècnic
  • Accés a informació pública com el servei meteorològic o l'estat del trànsit
  • Informació de sortida i arribada de vols

Procés de síntesi de la parla[modifica | modifica el codi]

Per al procés de síntesi de la parla és necessari un processador que transformi el text en veu que suporti SSML. El processament d'un document SSML ha de seguir una sèrie de passos abans de generar la veu, que són els següents:

Anàlisi gramatical[modifica | modifica el codi]

S'ha de fer una anàlisi gramatical del document XML per a extreure el contingut de l'arbre. L'estructura, etiquetes i atributs obtinguts en aquest moment són necessaris per a cadascun dels processos següents.

Anàlisi de l'estructura[modifica | modifica el codi]

L'estructura del document afecta a la forma en què el document es llegit. Les etiquetes "< p >" i "< s >", definides explícitament per a SSML, indiquen estructures del document que afecten directament a la sortida de veu, això es denomina "Markup Support". En els llocs del document on estes marques no són utilitzades és el processador de síntesi l'encarregat d'inferir l'estructura mitjançant una anàlisi automatitzada del text, utilitzant puntuació i altres elements específics del llenguatge, això es denomina "Non-Markup Behaviour".

Normalització del text[modifica | modifica el codi]

Tots els llenguatges tenen construccions especials que requereixen una conversió especial de la forma escrita a la forma parlada (per exemple ½). Aquesta conversió és realitzada automàticament pel processador de síntesi. L'element "say-as" pot ser utilitzat en el document d'entrada per a indicar explícitament la presència d'aquest tipus de construccions. D'aquesta manera es produeix la desambiguació de termes com ½ que pot tenir múltiples significats (un de dos, un mig, 1 de febrer, etc.). Per la resta del text que no estigui marcat amb "say-as" el processador de síntesi és l'encarregat de realitzar una conversió raonable. Degut a les ambigüitats és molt comú que es produeixin errors en la transformació.

Conversió del text en fonemes[modifica | modifica el codi]

Una vegada el processador de síntesi determina el conjunt de paraules que han de ser pronunciades, s'ha de deduir la pronunciació de les paraules. La pronunciació de les paraules ha de ser convenientment descrita com a seqüències de fonemes, que són unitats de so en un llenguatge que serveixen per a distingir una paraula d'una altre. Cada llenguatge té un conjunt específic de fonemes. Alguns llenguatges tenen entre 12 i 15 fonemes i altres més de 100. Hi ha llenguatges, com l'anglès, en el que existeix ambigüitat en la conversió del text en veu (per exemple, "read" i "reed" es pronuncien igual), l'associació no és un a un. En el cas del català aquesta conversió si és un a un, pel que aquest procés és més senzill. L'SSML proporciona l'element "phoneme" perquè l'autor pugui controlar de forma explícita la pronunciació. En absència de l'element "phoneme" l'analitzador de síntesi aplicarà normes per a la pronunciació. Això normalment es fa buscant les paraules en un diccionari de pronunciació, que depèn de cada llenguatge.

Anàlisi prosòdica[modifica | modifica el codi]

La prosòdia és el conjunt de trets de la parla que inclou el to, ritme, les pauses, la velocitat i l'èmfasi. Aconseguir una prosòdia humana és important per aconseguir una veu natural i comprensible. Per aconseguir aquests trets explícitament, l'SSML proporciona els elements "emphasis", "break" i "prosody". En absència d'aquests elements el processador de síntesi estableix aquests trets d'una forma bastant efectiva (però no perfecta).

Generació de la forma d'ona[modifica | modifica el codi]

Els fonemes i la informació prosòdica son utilitzats pel processador de síntesi per a produir la forma d'ona corresponent. L'SSML proporciona l'element "voice" per a sol·licitar una veu específica amb unes determinades qualitats (veu de dona, home, nen, etc.)

L'SSML proporciona una forma estàndard per especificar les propietats de la veu sintetitzada, com la pronunciació, volum, to, etc. Aquests valors són només indicacions per al processador de síntesi, la decisió final sobre els seus valors la té el processador en cas que no li semblin raonables.

Format del document[modifica | modifica el codi]

A continuació veurem el format d'un document SSML:

Exemple.ssml
...
<?xml version="1.0"?> 
<!DOCTYPE speak PUBLIC "-//W3C//DTD SYNTHESIS 1.0//EN" 
"http://www.w3.org/TR/speech-synthesis/synthesis.dtd"> 
<speak version="1.0" 
xmlns="http://www.w3.org/2001/10/synthesis" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.w3.org/2001/10/synthesis 
http://www.w3.org/TR/speech-synthesis/synthesis.xsd" 
xml:lang="es"> 
</br> 
<s> Te 2 missatges nous.</s> 
<s> El primer és de Diego, rebut a les <break/> 11:45am.</s> 
<s> L'assumpte és <prosody rate="-20%">futbol</prosody></s> 
</p> 
</speak> 

Enllaços externs[modifica | modifica el codi]