VoiceXML
VoiceXML (VXML) acronimo di Voice eXensible Markup Language rappresenta lo standard W3C , in formato XML, per la creazione di dialoghi interattivi tra una persona e un computer. La piattaforma VoiceXML lavora in modo analogo a un browser HTML. Come un browser HTML carica documenti da un Server Web e li interpreta, analogamente il Voice Gateway carica gli script VoiceXML dal Server Web e li interpreta.
A cosa serve
VoiceXML si candida come linguaggio ideale per verticalizzare di applicazioni Web esistenti creando così nuovo layer di presentazione, Voice User Interface (VUI) e una nuova via di accesso ai dati: il telefono.
VoiceXML permette la creazione di logiche di dialogo uomo-macchina in linguaggio naturale attraverso lintegrazione con diverse tecnologie, tra cui:
- Dual-Tone Multi-Frequency
- Automatic Speech Recognition
- Text-to-Speech
- Speaker Verification
- Video in streaming o preregistrati
Una delle caratteristiche del linguaggio VoiceXML è quella di essere costruito per sviluppare applicazioni voice-enabled orientate al Web: questo implica, infatti, la possibilità di produrre pagine VoiceXML anche attraverso linguaggi server side (ASP, ASP.NET, JSP, PHP, ecc.).
Caratteristiche
Alcune delle caratteristiche del linguaggio VoiceXML sono:
- Linguaggio di markup ideale per creare applicazioni vocali: VoiceXML è stato progettato appositamente per la creazione di applicazioni vocali, la gestione dei dialoghi, e lintegrazione con le funzioni di ASR e TTS.
- Separazione del codice per le interazioni utente dal codice dell'applicazione: la separazione delle logiche di programmazione da quelle di presentazione è un requisito fondamentale, sia per la verticalizzazione di applicazioni esistenti, sia per lo sviluppo in team di applicazioni vocali.
- Una struttura modulare: la struttura stessa del linguaggio permette la creazione di dialoghi, grammatiche e logiche di interazione che possono essere resi modulari. Questi elementi possono essere conservati separatamente e riutilizzati in altre applicazioni.
- Portabilità e semplicità di sviluppo: VoiceXML è stato creato per essere utilizzato indipendentemente dalle piattaforme e per nascondere al programmatore le logiche di più basso livello; lo sviluppatore di applicazioni vocali , infatti, non dovrà preoccuparsi sulla gestione del motori di riconoscimento o sintesi vocale, ma si potrà concentare sulla creazione dell'interfaccia utente.
Come funziona
L'utente si connette tramite il proprio telefono (senza dover usare un particolare browser o plugin) ad un Voice Gateway attraverso la PSTN.
Il Voice Gateway svolge le seguenti funzioni:
- interpreta il file VoiceXML;
- produce un messaggio vocale attraverso la sintesi vocale(TTS);
- riceve ed interpreta gli input dall'utente (DTMF o ASR);
- dialoga con il Web Server attraverso il protocollo HTTP.
Il server Web riceve le richieste dal Voice Gateway, e rende disponibili i file VoiceXML per la loro interpretazione.
Esempio
Esempio di un documento VoiceXML:
<?xml version="1.0" encoding="UTF-8" ?>
<vxml version="2.0" xmlns="http://www.w3.org/2001/vxml" >
<form id="primo_form">
<block>
<prompt>
Ciao Mondo!
</prompt>
</block>
</form>
</vxml>
L'interpretazione di questa pagina VoiceXML da parte del Voice Gateway produrrà la pronuncia da parte del TTS delle parole " Ciao Mondo! "
Esempi di applicazioni possibili sono: posta elettronica, informazioni sul meteo, informazioni sul traffico, quotazioni di borsa, oroscopo, call center, gestione delle scorte, ecc..
Storia del linguaggio
AT&T Bell Labs svilupparono il Phone Markup Language (PML). In seguito AT&T si divise in AT&T e Lucent che portarono avanti separatamente lo svilppo del linguaggio PML. IBM sviluppò il linguaggio SpeechML, Motorola il linguaggio VoxML. Nel Marzo 1999 IBM, AT&T, Lucent e Motorola si unirono nel VoiceXML Forum e crearono (nell'Agosto 1999) il linguaggio VoiceXML.
La versione 1.0 fu pubblicata nel Marzo del 2000. VoiceXML 1.0 venne largamente adottata, grazie anche alla sua somiglianza con HTML. VoiceXML 2.0 divento Recommendatio W3C a Marzo 2004.
VoiceXML 2.1, diventata Reccomendation W3C nel'Ottobre 2007, aggiunge alcune caratteristiche addizionali alla versione precedente con cui è retro-compatibile.
Standard collegati
Il W3C ha separato la struttura dell'interfaccia vocale in altri diversi linguaggi:
SRGS e SISR
Speech Recognition Grammar Specification (SRGS) è il linguaggio utilizzato per scrivere le grammatiche (insiemi di regole) utilizzate dal riconoscitore vocale per riconoscere gli input utente.
Semantic Interpretation for Speech Recognition(SISR) gli sviluppatori usano l'interpretazione semantica, inserendo le opportune istruzioni nelle grammatiche, per manipolare i risultati ottenuti dal riconoscimento vocale in base al contesto applicativo.
PLS
Pronunciation Lexicon Specification (PLS) viene utilizzato sia dal riconoscitore vocale sia dalla sintesi per definire la pronuncia di una parola.
SSML
Speech Synthesis Markup Language (SSML) viene usato per migliorare la prosodia delle frasi per esempio aumentando o diminuendo la velocità di lettura.
CCXML
Call Cantrol eXensible Markup Language(CCXML) linguaggio per la gestione delle telefonate. Permette di accettare una chiamata in entrata, effettuare una chiamata in uscita, disconnettere una chiamata e connettere insieme più chiamate.