VoiceXML Italian User Group

Home page  VoiceXML Links  VoiceXML Tutorial  News dai Working Groups Voice Browser e Multimodal Interaction del World Wide Web Consortium  Articoli  Accessibilita' del web mediante la voce

Libri Voice & Speech technologies  La nostra Newsletter  Il nostro Forum  Contatti  Gli eventi a cui lo User Group ha partecipato o partecipera'  Parlano (speriamo bene:-)) di noi...


L' IBM VOICE SERVER SDK
di Danila Fuggiano



  1. Introduzione
  2. Panoramica architetturale
  3. Motore di sintesi vocale
  4. Motore di riconoscimento vocale
  5. Il browser VoiceXML
  6. Requisiti Hardware
  7. Requisiti Software
  8. Installazione del Voice Server SDK


Introduzione

Questo SDK dell'IBM include:

  1. browser vocale che interpreta documenti VoiceXML, con un simulatore dei tasti telefonici per eventuale input DTMF;
  2. motori di riconoscimento e sintesi vocali dell'IBM;
  3. monitoraggio e logging dell'esecuzione delle applicazioni;
  4. documentazione molto dettagliata e completa sia sul linguaggio VoiceXML sia sull’utilizzo dell’SDK.

Esso può essere scaricato gratuitamente dal sito dell’IBM e attualmente risulta l’unico browser di VoiceXML presente sul Web, gratuito e utilizzabile off-line, in grado di supportare la lingua italiana.

Esistono altre possibilità di accesso a interpreti di VoiceXML, ma la maggior parte di essi dev’essere utilizzata on-line oppure non permette l’uso della lingua italiana.

Le lingue supportate dal Voice Server SDK sono Portoghese, Brasiliano, Francese del Canada, Francese, Tedesco, Italiano, Giapponese, Cinese semplificato, Spagnolo, Inglese britannico, Inglese americano.

Attualmente la versione che si scarica dal sito è la 3.1.

I tempi di download sono riassunti nella seguente tabella, presente sul sito dell’IBM:

  100 KBytes 1 MB 10 MB 100 MB
14.4K modem 1 min. 9 min. 1 hr. 33 min. 15 hrs.
28.8K modem <1 min. 5 min. 46 min. 8 hrs.
33K modem <1 min. 4 min. 40 min. 7 hrs.
56K modem <1 min. 2 min. 24 min. 4 hrs.
128K ISDN <1 min. 1 min. 10 min. 2 hrs.
T1 <1 min. <1 min. 1 min. 9 min.


Torna a inizio pagina





Panoramica architetturale

La figura seguente mostra il modo in cui il prodotto si interfaccia con le informazioni residenti sui server Web e sui database:


Architettura dell’ambiente del browser VoiceXML

Per avviare il browser vocale, bisogna passargli l’URI del primo documento dell’applicazione (la directory di visibilità è quella in cui si installa il Voice Server SDK, per cui basta specificare il mome del file, preceduto eventualmente dal percorso di sottodirectory create; nel caso, invece, in cui i file si pubblichino su un server locale, quale l’IIS di Windows, va inserito l’URI relativo). Il browser usa l’HTTP per procurarsi i documenti da interpretare.

Ogni documento specifica un’interazione (dialogo) fra l’utente e l’applicazione; per la fase di input vocale, bisogna ricordare che esso non può essere "unbounded", nel senso che devono esistere opportune grammatiche che definiscono i tipi di risposta che l’utente può fornire. Dunque, il riconoscimento vocale consiste nel controllare la conformità dell’input dell’utente a parole o frasi contenute nella grammatica.

Lo standard VoiceXML prevede la creazione di grammatiche attraverso un opportuno linguaggio di definizione: si tratta del JSGF (Java Speech Grammar Format), il quale ha delle regole ben precise.

Torna a inizio pagina




Motore di sintesi vocale

Questo motore genera voce sintetizzata, dopo aver processato il testo in input per determinarne la struttura e convertirla in parlato, con un meccanismo detto parsing. Il motore utilizzato dal browser è il ViaVoice dell’IBM.

A seconda del tipo di applicazioni vocali, bisogna valutare l’opportunità di utilizzare prompt sintetizzati o audio pre-registrato; esistono vantaggi e svantaggi delle due situazioni, che proveremo ad elencare:

  • i prompt TTS sono più semplici da mantenere e modificare di quelli pre-registrati;

  • la tecnica TTS è necessaria quando non si conosce a priori il contenuto del prompt da pronunciare

  • il TTS non potrà mai risultare naturale alla pari del parlato umano, ma ha sempre quella caratteristica "robotica" che può renderne astiosa la comprensione;

  • in ogni caso, chi si interfaccia con applicazioni di questo tipo sa di avere a che fare con una macchina e non con una persona, per cui nella sintesi vocale non si deve considerare un problema la mancanza di naturalezza: la sintesi non interferisce con la comprensibilità delle frasi pronunciate.

Il motore dell’IBM mette a disposizione diversi tipi di voce, che variano per sesso ed età, per cui lo sviluppatore può far uso di voci diverse a seconda del tipo di applicazione per aumentare la familiarità con l’utente.

Torna a inizio pagina



Motore di riconoscimento vocale

Questo motore fa sempre parte del ViaVoice di IBM e deve effettuare un parsing contrario rispetto a quello del motore di sintesi, ossia deve convertire lo stream vocale in un testo di output. I passi essenziali di questo processo coinvolgono sia lo sviluppatore dell’applicazione, che deve definire le opportune grammatiche e attivarle all’occorrenza, sia il motore di riconoscimento, che deve confrontare il pattern sonoro del segnale audio ricevuto con quello dei suoni di base corrispondenti alle parole della grammatica, cercando la combinazione più probabile.

L’accuratezza del riconoscimento dipende da alcuni fattori fondamentali:

  • la qualità dell’input vocale:

essa è influenzata sia dalla scelta del dispositivo di input, che può essere un microfono per PC, un telefono fisso , un cordless o un cellulare, sia dall’ambiente in cui avviene la comunicazione, cioè in auto, all’aperto, in una stanza affollata, in un ufficio silenzioso e così via, sia dall’accento e dalla velocità di chi parla;

  • il design di interfaccia:

è compito di chi sviluppa l’applicazione creare un’interfaccia che tenga conto dei vari fattori che influenzano la comprensibilità dell’input e che permetta di avere risposte facilmente individuabili;

  • la definizione delle grammatiche:

questo fattore è molto importante, perché bisogna definire grammatiche che prevengano le reazioni dell’utente e forniscano opzioni realistiche al motore di riconoscimento; anche l’uso di toni DTMF, laddove non dispersivo, è consigliabile per facilitare la comunicazione.

Gli errori cui va incontro il motore di riconoscimento possono essere di vari tipi e avere, quindi, varie cause:

  • il risultato prodotto non rispecchia l’input dell’utente;

  • il motore non riconosce per nulla l’input dell’utente;

  • il motore fornisce un risultato, nonostante l’utente non abbia ancora parlato.

In generale, bisogna sempre tener conto delle parole omofone e permettere all’utente di effettuare una seconda scelta fra i casi di ambiguità e bisogna fare attenzione a definire la pronuncia di parole che non esistono nel dizionario, per evitare che il pattern ipotizzato dal motore non sia differente da quello realmente usato dall’utente, rendendo impossibile la buona riuscita del processo di parsing.

Torna a inizio pagina



Il browser VoiceXML

Il browser deve fare il fetch dei documenti da processare e interpretare. Esso è un’applicazione Java e fornisce le informazioni di tracing dei prompt eseguiti, delle risorse prelevate e dell’input riconosciuto, salvandole man mano su un opportuno file di log.

Non tutti i tag VoiceXML sono supportati dal Voice Server SDK (nella documentazione IBM è fornito un elenco preciso dei tag utilizzabili).

Le applicazioni possono essere pubblicate su server Web e possono avere contenuto dinamico, che deve essere eseguito dal server in modo tale da creare un output riconoscibile dal browser. Portando l’esempio di ASP, un file di questo tipo sarà strutturato in modo che, alla fine dell’esecuzione dello script da parte del server ASP, sia prodotto un normale file VoiceXML che possa essere interpretato dal browser. Il contenuto dinamico permette interazioni molto interessanti con l’utente e non differisce nell’uso dagli script usati per ottenere pagine HTML: la differenza sta nel fatto che il tipo MIME non è quello relativo all’HTML ma è quello VoiceXML, per cui i server vanno opportunamente configurati.

Torna a inizio pagina




Requisiti Hardware
  • processore Intel® Pentium® 366 MHz

  • 128 MB di RAM

  • 290 MB di spazio su disco (minimo)

  • 30 MB per installare il Sun™ Java™ Runtime Environment (Sun JRE) 1.3.1

  • 80 MB nella directory di sistema Windows

  • 130 MB di spazio su disco sulla directory di installazione per installare ogni linguaggio selezionato

  • 28 MB sulla directory di installazione per il caching, logging e tracing

  • Display a più di 256 colori

  • Scheda audio compatibile con Microsoft® Windows® 2000, 16-bit, full-duplex (con input per il microfono) con buona qualità di registrazione

  • Microfono di buona qualità

I package di installazione (9 in tutto) richiedono dai 58 MB a 171 MB di spazio libero durante il download, più dai 62 MB ai 172 MB per l’estrazione dei file creati quando si eseguono i package di download. Il range varia a seconda dei package di linguaggio scaricati:

  • 50 MB il package di installazione principale (richiesto);

  • Approssimatamente 50 MB per ogni file di linguaggio.

Torna a inizio pagina




Requisiti Software

Il sistema operativo richiesto è il Windows 2000 Professional o Server (si è ritenuto, però, più stabile e affidabile il secondo), dotato di Service Pack 2.

È richiesto l’accesso come Administrator.

Inoltre sono richiesti:

  • Sun Java Runtime Environment (Sun JRE) 1.3.1 (incluso nel package di download, ma va installato prima del Voice Server SDK);

  • Networking abilitato (ad esempio, rete IP);

  • Adobe Acrobat Reader, Versione 5.0 o successive (incluso nel package);

  • HTTP 1.1 Client, se si desidera.

Per l’esecuzione delle pagine ASP è necessario installare, dal CD di installazione di Windows 2000 stesso, la componente IIS, che permette di testare off-line le pagine create dinamicamente, disponibili al server locale creato sulla stessa macchina client dall’IIS.

La directory di default dove vanno inserite le pagine ASP, i database e tutti i file necessari al server è C:\Inetpub\wwwroot, inserita sul cd con lo stesso nome. Al server si accede con indirizzi del tipo http://localhost/nome_pagina.asp.

Il server locale creato con IIS deve poter maneggiare i MIME relativi al VoiceXML: bisogna assicurarsi di configurare i MIME per .vxml (tipo: application/x-vxml) e .gram (tipo: application/x-jsgf).

In Windows 2000 Server bisogna effettuare i seguenti passaggi:

  1. Avvio

  2. Programmi

  3. Strumenti di Amministrazione

  4. Configurazione Server

  5. Gestione Servizi IIS

  6. Sito Web predefinito -> Proprietà

e fra le proprietà scegliere quella che permette di configurare i MIME.

Torna a inizio pagina





Installazione del Voice Server SDK

Per lanciare il WebSphere Voice Server SDK Installation Wizard, bisogna far partire il file setup.exe, che si trova nella directory dove si è decompattato il package di installazione.

Una volta installato, va creato un collegamento (è consigliabile metterlo sul desktop) al file batch vs_audio.bat e nelle proprietà del collegamento va specificato il nome della pagina vxml che il browser dovrà eseguire.

In ogni caso, il file readme.txt fornito nel Voice Server SDK è molto chiaro sui passi da seguire.

Torna a inizio pagina