Tabla de contenidos - Verbio Technologies · donde primero el usuario se personaliza un boletín...

43
versión 7.1 19-01-2005 Guía del usuario Copyright © 2003 Verbio Technologies, S.L. www.verbio.com [email protected]

Transcript of Tabla de contenidos - Verbio Technologies · donde primero el usuario se personaliza un boletín...

Page 1: Tabla de contenidos - Verbio Technologies · donde primero el usuario se personaliza un boletín informativo en un sitio Web y posteriormente llama periódicamente para navegar a

versión 7.1 19-01-2005

Guía del usuario

Copyright © 2003 Verbio Technologies, S.L. www.verbio.com

[email protected]

Page 2: Tabla de contenidos - Verbio Technologies · donde primero el usuario se personaliza un boletín informativo en un sitio Web y posteriormente llama periódicamente para navegar a

Tabla de contenidos

1. Introducción a VoiceXML ............................................................. 3

1.1 Bienvenido ................................................................................................ 3

1.2 ¿Qué es VoiceXML? ................................................................................. 3

1.3 El World Wide Web y VoiceXML ............................................................... 4

1.4 La Tecnología del habla............................................................................ 5

1.5 La extensión del mundo Web ................................................................... 6

1.6 Resumiendo conceptos ............................................................................ 6

1.7 Ejemplos de aplicaciones de voz .............................................................. 7

1.8 Dónde encontrar documentación .............................................................. 9

2. Verbio VoiceXML ....................................................................... 10

2.1 Arquitectura de la plataforma .................................................................. 10

2.2 Requisitos del sistema ............................................................................ 11

2.3 Gestión de la plataforma ......................................................................... 12 2.3.1 Administración de Verbio VoiceXML .......................................................... 13

VoxServer ....................................................................................................... 13

Hardware ........................................................................................................ 15

VoiceXML ...................................................................................................... 16

Domains .......................................................................................................... 17

2.3.2 Configuración de usuario............................................................................... 18

Fichero de configuración ................................................................................ 18

Verbio VoiceXML User Administrator .......................................................... 20

2.4 El motor de navegación VoiceXML ......................................................... 21 2.4.1 Características del motor ............................................................................... 21

Salidas del sistema (outputs) .......................................................................... 21

SSML .......................................................................................................... 22

Entradas al sistema (inputs) ............................................................................ 22

Gramáticas .................................................................................................. 22

Gramáticas de voz .................................................................................. 22

Gramáticas DTMF .................................................................................. 24

Gramáticas builtin: ................................................................................. 24

Reconocimiento e Interpretación Semántica .............................................. 26

NLSML ................................................................................................... 27

Reglas vacías .......................................................................................... 30

Resultados de reconocimiento en VoiceXML ........................................ 31

2.4.2 Propiedades por defecto del motor ................................................................ 35

2.4.3 Propiedades especificas de la plataforma Verbio VoiceXML....................... 36

2.4.4 Transferencias en Verbio VoiceXML ........................................................... 37

3. Herramientas adicionales de Verbio VoiceML ........................... 40

3.1 Verbio VoiceXML Logging Monitor ......................................................... 40

3.2 Verbio IP Audio Device ........................................................................... 43

Page 3: Tabla de contenidos - Verbio Technologies · donde primero el usuario se personaliza un boletín informativo en un sitio Web y posteriormente llama periódicamente para navegar a

1. Introducción a VoiceXML

1.1 Bienvenido

Bienvenido a Verbio VoiceXML, la nueva herramienta de VERBIO para desarrollar aplicaciones de voz. Verbio VoiceXML es una plataforma de navegación de páginas VoiceXML desarrollada para entornos de telefonía y dispositivos IP. En los siguientes capítulos de ésta guía se hace una referencia al lenguaje de programación VoiceXML y a la tecnología de voz en general (sus orígenes, sus oportunidades y su futuro) para posteriormente describir con más detalle la plataforma Verbio VoiceXML, su motor de navegación y las herramientas que facilitan su uso.

1.2 ¿Qué es VoiceXML?

VoiceXML (Voice Extensible Markup Language) es el equivalente al lenguaje de programación HTML y el estándar más popular para el desarrollo de aplicaciones de voz. Utilizando la potente infraestructura Web desarrollada para el HTML, VoiceXML facilita la creación y extensión de aplicaciones de voz. Como con la programación en HTML, éste lenguaje ha abierto inmensas oportunidades de negocio. La versión 1.0 de VoiceXML fue publicada por el VoiceXML Forum, un consorcio de más de 500 empresas, en Marzo del año 2000. Posteriormente, el Forum entregó el control del estándar al World Wide Web Consortium (W3C), y ahora es éste quien se encarga de garantizar el cumplimiento de la normativa legal, así como de los temas educativos y de marketing. Desde entonces, el W3C ha publicado la versión 2.0 de VoiceXML y la Candidate Recomendation para la versión 2.1. Mientras HTML basa su funcionalidad en un navegador gráfico (entre los más conocidos, Internet Explorer o Netscape) con pantalla, teclado y mouse, VoiceXML funciona mediante un navegador de voz cuya salida es audio, y cuya entrada es audio y teclado. La entrada de audio está controlada por un reconocedor de voz integrado con el navegador de VoiceXML. La salida de audio consiste en audio pre-grabado y/o en voz sintetizada por un sistema de Text-To-Speech. Un navegador de voz normalmente funciona en base a una pasarela de voz que es un nodo conectado tanto a Internet como a la RTC (Red Telefónica Conmutada). La pasarela de voz puede soportar cientos o miles de llamadas simultáneas y permite que accedan a ella cualquiera de los 2,500,000,000

Page 4: Tabla de contenidos - Verbio Technologies · donde primero el usuario se personaliza un boletín informativo en un sitio Web y posteriormente llama periódicamente para navegar a

millones de teléfonos que se estima que hay en el mundo, entre los móviles y los teléfonos fijos de toda la vida.

El siguiente diagrama muestra ésta arquitectura:

WWWRTC

pasarela de voz

motor VoiceXMLText to Speech reconocedor

de voz

Usuario

Usuario

navegador de voz

Usuario

figura 1.1: arquitectura de un sistema VoiceXML

El lenguaje VoiceXML se beneficia además de: el crecimiento del WWW – World Wide Web y de las posibilidades que

este ofrece. las mejoras en el campo del reconocimiento de voz y la síntesis de texto

al habla. la expansión del WWW a niveles más allá del ordenador de sobremesa.

1.3 El World Wide Web y VoiceXML

El abanico de posibilidades que ofrece el mundo Web ha ido creciendo vertiginosamente desde sus comienzos.

Al principio, los servidores Web, solo almacenaban contenidos estáticos. Ahora, son capaces de generarlos dinámicamente mediante scripts, paginas servidor, servlets, acceso a bases de datos y muchas otras tecnologías. VoiceXML aprovecha todas estas tecnologías ya desarrolladas.

También la representación de la información Web ha avanzado con el tiempo. XML es una forma general y flexible de representar la información, que además permite de forma sencilla y mediante tecnologías de transformación, convertir una estructura XML en otra XML o en otra que no siga este formato. VoiceXML se basa en el XML beneficiándose así, de todas las ventajas que ofrece este lenguaje.

Page 5: Tabla de contenidos - Verbio Technologies · donde primero el usuario se personaliza un boletín informativo en un sitio Web y posteriormente llama periódicamente para navegar a

Como también se beneficia de los avances continuos de Internet, en términos de eficiencia, anchos de banda y calidad de servicio. Mejoras que conducen a nuevas aplicaciones Web y servicios, los cuales generan en si nuevas mejoras. Por ejemplo, la posibilidad de mover información de audio a través de la Web de forma eficiente es un claro beneficio para VoiceXML.

Para trabajar en todo éste mudo Web, han ido apareciendo aplicaciones y herramientas, que con el tiempo han ido evolucionando y convirtiéndose en más potentes. Algunas de ellas, como por ejemplo los editores sensitivos a XML, pueden usarse para desarrollar aplicaciones en VoiceXML de forma sencilla y útil.

1.4 La Tecnología del habla

Los sistemas automáticos de reconocimiento de voz (ASR) han mejorado muchísimo en los últimos años a medida que se han ido desarrollando mejores algoritmos y modelos acústicos, y han ido apareciendo computadoras con mayor capacidad de cálculo. Por ejemplo, un sistema de ASR funcionando en un ordenador personal o de oficina, con prestaciones estándar, y un micrófono puede funcionar perfectamente como herramienta de dictado siempre que haya sido previamente entrenado por la voz que pretende usarlo para este fin.

A través del teléfono, sin entrenamiento de voz, un sistema de ASR necesita tener un conjunto de gramáticas de voz o vocabularios que le indiquen que palabras o frases puede entender de los usuarios en cada instante. Los teléfonos móviles, además, necesitan usar tecnología avanzada para paliar los efectos de los entornos ruidosos en el reconocimiento de voz. El Reconocimiento de voz se utiliza hoy en día en un amplio número de aplicaciones comerciales.

También se han echo avances importantes en el campo de la síntesis de voz o sistemas Text-To-Speech (TTS). Los antiguos TTS generaban voz muy robótica y poco natural. Eran pesados de escuchar e incluso en ocasiones se hacían incomprensibles. Ahora los sistemas de TTS suenan mucho más naturales contribuyendo a realizar mejores aplicaciones de voz dónde existe una interacción hombre – maquina.

Es importante resaltar que VoiceXML se puede utilizar incluso en entornos sin tecnología de voz. La salida de audio puede consistir en locuciones pre-grabadas y la entrada de inputs por parte del usuario puede llevarse a cabo mediante el teclado telefónico (DTMFs).

Mientras que la tecnología de voz, con sus avances, permite desarrollar aplicaciones mucho más potentes y naturales de utilizar, VoiceXML además añade las ventajas del desarrollo Web.

Page 6: Tabla de contenidos - Verbio Technologies · donde primero el usuario se personaliza un boletín informativo en un sitio Web y posteriormente llama periódicamente para navegar a

1.5 La extensión del mundo Web

Internet se extiende a más dispositivos que los ordenadores personales: por ejemplo, los dispositivos PDA con conexión wireless, los teléfonos móviles que soportan tecnologías como WAP (Wireless Application Protocol) o GPRS (General Packet Radio Service) o los teléfonos i-mode con tecnología NTT Docomo‟s . El fututo nos llevará más dispositivos preparados para el Web: MP3 de mano con conexión a Internet, máquinas de venda de productos que ellas mismas hacen encargos cuando se les acaba algún producto, displays de pared que descargan cuadros de Internet, televisores basados en el Web, y un largo etcétera.

La tecnología de voz es una interfaz natural y muy potente para los dispositivos Web. Los micrófonos son mucho más pequeños que los teclados y los altavoces que las pantallas. Parece bastante probable que la mayoría de los futuros dispositivos Web incorporaran un sistema de reconocimiento y síntesis de voz.

1.6 Resumiendo conceptos

Podríamos resumir en 4, los motivos por los cuales es tan importante la penetración y el enfoque de la tecnología VoiceXML:

1. En primer lugar, porque el teléfono es una herramienta con mucho poder. Actualmente hay más de 2.2 billones de teléfonos en uso. Una cifra muy superior a la de usuarios que disponen de ordenador con conexión a Internet. Además los teléfonos son fáciles de usar y no necesitan ni tiempo de arranque ni sistemas operativos.

También los teléfonos móviles están consiguiendo una gran penetración en la población. A diferencia de los ordenadores portátiles y algunas PDAs, los teléfonos móviles son fáciles de llevar, no demasiado caros y tienen baterías con un tiempo de vida largo. Además pueden usarse mientras se conduce o se tienen las manos ocupadas.

2. En segundo lugar, porque la voz es importante en el teléfono. La voz siempre ha sido la forma natural de comunicarse a través del teléfono. Aunque algunos móviles disponen de navegadores WAP o XHTML, sus pequeñas pantallas y teclados, hacen complicada la navegación, especialmente en algunas circunstancias como por ejemplo durante la conducción.

Sin embargo, existen ventajas al combinar navegadores visuales con navegadores de voz. Por ejemplo, la información compleja es difícil de recordar cuando se habla con el usuario, pero sencilla de recordar si esta persistente de forma visual. Y algunos fallos de reconocimiento son fáciles de corregir con una entrada de teclado. En consecuencia, es previsible que con el tiempo aparezcan aplicaciones multimodales, desarrolladas de la unión de aplicaciones estrictamente visuales y aplicaciones estrictamente de voz.

Page 7: Tabla de contenidos - Verbio Technologies · donde primero el usuario se personaliza un boletín informativo en un sitio Web y posteriormente llama periódicamente para navegar a

3. En tercer lugar, por que Internet ayuda al desarrollo de aplicaciones de voz en VoiceXML:

El desarrollo de aplicaciones de voz es más sencillo debido a que VoiceXML es un lenguaje de marcas de alto nivel y porque las aplicaciones de voz ahora se pueden construir en su plenitud con herramientas potentes, sin un coste excesivo.

Las aplicaciones de voz son ahora más que nunca, sencillas de distribuir. Ya no es necesario que residan en servidores de voz dedicados a esta tarea: pueden alojarse en cualquier sitio y accedidas por cualquier servidor de VoiceXML.

Las aplicaciones pueden estructurarse de forma ordenada y limpia, entregando distintas páginas VoiceXML al navegador de voz en función de por ejemplo el dispositivo que las está navegando.

4. Finalmente, la voz y VoiceXML son importantes para otros dispositivos Web además del teléfono. Por ejemplo, un “control remoto universal”, podría llevar un navegador VoiceXML incorporado o comunicarse con alguno mediante tecnología Wireless. Podrías entrar en el comedor, sacar el control remoto, pulsar el botón de hablar y decir algo como: “equipo de música: APAGAR, televisión: ¿qué películas de acción hacen hoy?”

1.7 Ejemplos de aplicaciones de voz

¿Qué tipo de aplicaciones de voz son las más adecuadas para VoiceXML? Estas son algunas ideas:

Sistemas de Información:

Los sistemas de información son un ejemplo tipo de aplicación VoiceXML. En un sistema de información, la salida de audio tiende a ser audio pregrabado y la entrada de información pueden ser comandos de voz bastante “cerrados” (comandos de navegación, fechas, respuestas si/no, etc.) o respuestas más naturales (direcciones arbitrarias de calles, etc.).

Un buen ejemplo de un sistema de información es por ejemplo una aplicación donde primero el usuario se personaliza un boletín informativo en un sitio Web y posteriormente llama periódicamente para navegar a través de las noticias del boletín. El boletín puede contener noticias de última hora, deportes, información del tráfico, del tiempo, de la bolsa, etc. El servicio podría ganar dinero a base de suscripciones, anuncios o tiempo de conexión.

Page 8: Tabla de contenidos - Verbio Technologies · donde primero el usuario se personaliza un boletín informativo en un sitio Web y posteriormente llama periódicamente para navegar a

Comercio Electrónico:

El comercio electrónico es otra área con gran cabida para VoiceXML. Aplicaciones para ofrecer servicios de tracking de pedidos, estados de cuenta o soporte, son algunos ejemplos.

También tienen cabida las aplicaciones financieras como por ejemplo, consulta de acciones (bolsa), administración de tareas o aplicaciones catálogo. Las aplicaciones de catálogos deben estar echas minuciosamente ya que la voz, en estos casos ofrece menos información que las imágenes. Estas aplicaciones pueden funcionar por ejemplo si el cliente esta mirando simultáneamente un catálogo impreso (p.ej. de ropa) o conoce exactamente a priori el producto (ej.: un libro, un CD o un DVD).

Servicios telefónicos

Los servicios telefónicos como por ejemplo los servicios de marcación por voz, de búsqueda de números telefónicos, de administración de correo electrónico o teleconferencia, pueden ser fácilmente utilizados mediante voz a través de VoiceXML. Las aplicaciones personales de voz, añadidas a las líneas particulares de los usuarios, pueden ser importantes fuentes de ingreso.

Ya que las medidas de seguridad estándar de la Web aplican también a la tecnología de voz en la Web, las aplicaciones de intranet pueden ser también programadas en VoiceXML para el control de inventario, entrega de pedidos, servicios de recursos humanos o atención al cliente, o para crear portales de voz corporativos.

Mensajería unificada:

Las aplicaciones de mensajería unificada pueden verse impulsadas gracias a la voz. Los mensajes de voz pueden leerse a través del teléfono, los mails de salida pueden grabarse (y en el futuro quizá transcribirse) y enviarse como un fichero de voz grabado, y la información relativa a direcciones, sincronizarse con agendas personales y sistemas de email.

Hay muchas otras áreas donde los servicios de voz pueden ser de gran utilidad, como las aplicaciones de directorio asistidas, verificación del estado de apuestas, autorización de pagos, programación de un servicio despertador de un hotel, etc. Sin lugar a duda hay muchos servicios que aún no han sido explotados.

Page 9: Tabla de contenidos - Verbio Technologies · donde primero el usuario se personaliza un boletín informativo en un sitio Web y posteriormente llama periódicamente para navegar a

1.8 Dónde encontrar documentación

Los siguientes sitios Web, están relacionados con el mundo VoiceXML y son una fuente importante de documentación y ejemplos en lo que al lenguaje de programación se refiere: http://www.voicexml.org (Foro de VoiceXML)

http://www.voicexmlreview.org/ (Revista electrónica mensual de VoiceXML)

http://www.w3.org/TR/voicexml20/ (Recomendación del W3C para VoiceXML 2.0) http://www.verbio.com (Sitio Web de Verbio)

En la carpeta de documentación de VoiceXML, se encuentra la versión pdf de la recomendación del W3C para la versión 2.0 de VoiceXML. Es recomendable hacer una lectura rápida de dicho documento antes de abordar los siguientes capítulos de ésta guía, con el fin de facilitar su comprensión.

Page 10: Tabla de contenidos - Verbio Technologies · donde primero el usuario se personaliza un boletín informativo en un sitio Web y posteriormente llama periódicamente para navegar a

2. Verbio VoiceXML

2.1 Arquitectura de la plataforma

La arquitectura necesaria para montar una plataforma de navegación Verbio VoiceXML es la que se representa en la siguiente figura:

pasarela de voz+

motor VoiceXML

Text-To-Speechreconocedor

de voz

BBDD

Web Server

figura 2.1: arquitectura de la plataforma Verbio VoiceXML

En primer lugar se necesita un Web Server, dónde se almacenen las páginas y ficheros de las aplicaciones VoiceXML, así como los ficheros de configuración de los usuarios del servicio. Existen múltiples servidores Web en el mercado (entre los más conocidos, Apache o Internet Information Server). El Web Server se puede montar en cualquier PC con un mínimo de prestaciones en términos de velocidad y memoria e incluso pueden usarse Web Servers ya existentes proveedores de otro tipo de servicios. Por otro lado, se necesitan la pasarela de voz y el motor VoiceXML, conectados con los motores de Text-To-Speech (TTS) y de reconocimiento de voz (ASR). La versión 7.1 de Verbio VoiceXML, soporta los motores de síntesis y reconocimiento de Verbio, y también los motores de síntesis que funcionan bajo protocolo SAPI 4.x o SAPI 5.x .

Page 11: Tabla de contenidos - Verbio Technologies · donde primero el usuario se personaliza un boletín informativo en un sitio Web y posteriormente llama periódicamente para navegar a

2.2 Requisitos del sistema

La arquitectura de la plataforma Verbio VoiceXML puede montarse en una sola máquina física que contenga el Web Server, la pasarela y motor VoiceXML y los motores de TTS y ASR, pero en estos casos la capacidad de ésta (en términos de memoria y CPU) deberá ser como mínimo de 512MB RAM y 1800MHZ de CPU. Sin embargo, es aconsejable montar la plataforma Verbio VoiceXML (y como máximo también el Web Server) en un servidor, instalando en otro equipo de la misma red los motores de TTS y ASR. El módulo Verbio VoiceXML debe estar montado sobre un equipo con sistema operativo Windows 2000, 2003 o XP (y sus versiones Server) con un mínimo de 256MB de RAM (recomendable 512MB) y 1GHZ de CPU.

Page 12: Tabla de contenidos - Verbio Technologies · donde primero el usuario se personaliza un boletín informativo en un sitio Web y posteriormente llama periódicamente para navegar a

2.3 Gestión de la plataforma

Verbio VoiceXML esta enfocado hacia un modelo de negocio ASP (Application Service Provider). Sus recursos (a efectos de líneas de telefonía) son gestionados por un administrador que los reparte entre los distintos usuarios del sistema, agrupados en dominios como se muestra en la figura 2.2. Cuando llega una llamada entrante a la pasarela de voz, esta es redirigida a los usuarios de los dominios en función de las restricciones establecidos por el administrador del sistema. Cada uno de los usuarios dispone de un fichero de configuración XML donde en función del número llamante (ANI) y el número llamado (DNIS) puede dirigir la llamada a una aplicación VoiceXML u otra.

Recursos entrantes disponibles:

93 409 71 20

93 409 71 21

93 409 71 22

93 409 71 23

usuario 2

usuario 1

usuario3

Verbio VoiceXML - Modelo ASPVerbio VoiceXML - Modelo ASP

empresa 1 (dominio 1)

empresa 2 (dominio 2)

usuario1.xml

usuario2.xml

servidor HTTP

http://empresa1/usuario1.xml

http://empresa1/usuario2.xml

http://servidor/usuario3empresa2.xml

usuario3empresa2.xml

servidor HTTP externo

93 409 71 2393 409 71 20

93 409 71 21

93 409 71 22

distribución de los

recursos

Ejemplo del modelo con 3 usuarios del servicio (agrupados en 2 dominios)

llamantes o usuarios

de los servicios

finales

proveedor o

administrador del

servicio

Verbio VoiceXML

usuarios o clientes

del modelo ASP,

agrupados en

empresas o

dominios.

figura 2.2: organización de los dominios en Verbio VoiceXML

Page 13: Tabla de contenidos - Verbio Technologies · donde primero el usuario se personaliza un boletín informativo en un sitio Web y posteriormente llama periódicamente para navegar a

2.3.1 Administración de Verbio VoiceXML

Verbio VoiceXML funciona como un servicio de Windows. Su configuración, así como la administración de sus dominios y usuarios se realiza mediante la aplicación Verbio VoiceXML Configuration Manager. A continuación se describen las distintas opciones que ésta ofrece:

Verbio VoiceXML Configuration Manager nos ofrece un abanico de posibilidades a configurar, agrupadas en 4 pestañas o menús:

VoxServer

Page 14: Tabla de contenidos - Verbio Technologies · donde primero el usuario se personaliza un boletín informativo en un sitio Web y posteriormente llama periódicamente para navegar a

figura 2.3 : la pestaña VoxServer

La pestaña VoxServer nos permite configurar la ubicación de las máquinas principal y de back-up (opcional) dónde se encuentran los motores de síntesis y reconocimiento (en la versión 7.1 de Verbio VoiceXML, los motores de síntesis y reconocimiento deben estar instalados en la misma máquina física). Cuando se introduce la IP de la máquina principal, el configurador obtiene información sobre las configuraciones y locutores disponibles en dicha máquina (el servicio debe estar iniciado). Dicha información sirve para rellenar las tablas de TTS y ASR de Verbio VoiceXML Configuration Manager. El administrador deberá seleccionar los idiomas de síntesis y reconocimiento que desee arrancar y los utilizados por defecto cuando arranque el servicio de VoiceXML.

Page 15: Tabla de contenidos - Verbio Technologies · donde primero el usuario se personaliza un boletín informativo en un sitio Web y posteriormente llama periódicamente para navegar a

Hardware

figura 2.4 : la pestaña Hardware

La pestaña Hardware permite seleccionar los dispositivos de telefonía e IP que Verbio VoiceXML debe iniciar cuando se arranque el servicio. Para añadir, quitar o modificar dispositivos, pueden utilizarse los botones add, remove y modify. Cuando se añade o modifica un dispositivo, se abre un cuadro de diálogo donde debe proporcionarse la siguiente información: manufacturer: fabricante del dispositivo : Audio, Dialogic, Eicon,

Natural, Teima o IPAudio son los disponibles en la versión 7.1 device name: nombre identificativo (número de serie para Dialogic) del

dispositivo físico. Si se especifica * como nombre, el servicio iniciará todos los dispositivos físicos del manufacturer especificado.

open channel(s): canales a abrir para dicho dispositivo. Pueden

especificar-se rangos (por ejemplo 1-4 = abrir canales del 1 al 4) o canales no consecutivos (ej.: 1,4 = abrir canales 1 y 4).

Page 16: Tabla de contenidos - Verbio Technologies · donde primero el usuario se personaliza un boletín informativo en un sitio Web y posteriormente llama periódicamente para navegar a

channel(s) type (incomming / outgoing): tipo de canal. Los canales son siempre del tipo incomming, excepto cuando quieren hacerse transferencias utilizando dos recursos físicos (ver capítulo 2.4.4).

dll: indica la dll que controla al dispositivo físico. Verbio, proporciona dlls

para el control de dispositivos Dialogic, Eicon y de Audio sobre IP. Además proporciona un SDK para que los integradores puedan desarrollarse su propias dlls para el control de dispositivos (para más información acerca del SDK de Verbio VoiceXML consultar la guia del integrador de Verbio VoiceXML).

VoiceXML

figura 2.5 : la pestaña VoiceXML

En la pestaña VoiceXML se permiten escoger algunas opciones de arranque para el motor de VoiceXML: service mode: Indica el modo de arranque del servicio. Las opciones

son “automatic” (cada vez q arranca el equipo) o “manual”. objects: permite añadir una lista de dlls dónde se encuentran definidos

objetos (<object>) VoiceXML propios de la plataforma. Para más información acerca de cómo añadir objetos propios consultar la guia del integrador de Verbio VoiceXML.

Page 17: Tabla de contenidos - Verbio Technologies · donde primero el usuario se personaliza un boletín informativo en un sitio Web y posteriormente llama periódicamente para navegar a

Domains

figura 2.6 : la pestaña Domains

El servicio de Verbio VoiceXML organiza sus recursos en dominios y usuarios. Cada usuario debe formar parte de un dominio dentro del cuál se definen los recursos que tiene reservados o contratados, Para añadir dominios y usuarios deben utilizarse los botones add, remove y modify. Para añadir o modificar un dominio sólo debe especificarse su nombre. Para añadir o modificar un usuario deben definirse: Nombre Contraseña Dirección de email Recursos de telefonía (DNIS) asignados al usuario: El administrador del

sistema distribuye sus recursos de telefonía entre sus usuarios (organizados en dominios), mediante esta opción. Así, por ejemplo, si un usuario tiene asignados los recursos:

- 93*, significará que éste usuario recibirá todas las llamadas a los números del administrador que empiecen por 93. Estas serán dirigidas a una aplicación u otra en función del fichero de configuración de éste usuario. O por ejemplo,

Page 18: Tabla de contenidos - Verbio Technologies · donde primero el usuario se personaliza un boletín informativo en un sitio Web y posteriormente llama periódicamente para navegar a

- *, significará que el usuario recibirá todas las llamadas. - 9340971*, significará que el usuario recibirá todas las llamadas dirigidas a números que empiecen con 9340971.

Fichero de configuración del usuario: Indica dónde se encuentra alojado

el fichero de configuración del usuario. Éste debe estar en un servidor HTTP y debe seguir un determinado formato (ver capítulo 2.3.2). El fichero de configuración le permitirá al usuario gestionar los recursos que tiene asignados y repartirlos entre sus aplicaciones.

2.3.2 Configuración de usuario

Fichero de configuración

Cada usuario puede definir sus páginas de inicio VoiceXML en función del DNIS (o número llamante) y el ANI (o número llamado). Para ambos casos pueden usarse el „*‟ para indicar „todo’. Así, un DNIS del tipo: <dnis number="93409*"> significa que se atenderán todas las llamadas cuyo DNIS empiece con la cadena 93409. También puede usarse el símbolo „!‟ para indicar negación o opuesto. Así un DNIS como: <dnis number="!93*"> significará que se atenderán todas la llamadas cuyo DNIS no empiece por 93. La misma nomenclatura aplica para el ANI. En el siguiente ejemplo se especifica que las llamadas entrantes que empiecen con 93 deben ser atendidas por la página VoiceXML indice-ca.vxml, mientras que las demás deben hacerlo con la indice-es.vxml:

figura 2.7 : ejemplo de fichero de configuración de usuario

Las llamadas de los usuarios que el administrador de Verbio VoiceXML dirija a cada usuario consultarán este fichero para contestar con una aplicación VoiceXML u otra.

<dnis number="93*"> <ani number="*"> <voicexmlfile>http://localhost/indice-ca.vxml</voicexmlfile> </ani> </dnis> <dnis number="!93*"> <ani number="*"> <voicexmlfile> http://localhost/indice-es.vxml</voicexmlfile> </ani>

</dnis>

Page 19: Tabla de contenidos - Verbio Technologies · donde primero el usuario se personaliza un boletín informativo en un sitio Web y posteriormente llama periódicamente para navegar a
Page 20: Tabla de contenidos - Verbio Technologies · donde primero el usuario se personaliza un boletín informativo en un sitio Web y posteriormente llama periódicamente para navegar a

Verbio VoiceXML User Administrator

User Administrator es una herramienta de cliente para actualizar los ficheros de configuración. La aplicación pide en primer lugar, seleccionar el servidor VoiceXML (la dirección IP) dónde se desea actualizar la configuración del cliente.

En segundo lugar, el usuario debe identificarse con su nombre de usuario, su password y con el nombre del dominio al que pertenece. Finalmente, debe especificarse la dirección HTTP dónde se ubica el nuevo fichero de configuración de éste usuario. Una vez rellenados todos estos campos debe pulsarse el botón upload, para subir la configuración de usuario al servidor VoiceXML que deberá estar arrancado. La siguiente llamada que el administrador del sistema dirigia a éste usuario, será atendida siguiendo las premisas del nuevo fichero de configuración.

figura 2.8 : User Administrator

Page 21: Tabla de contenidos - Verbio Technologies · donde primero el usuario se personaliza un boletín informativo en un sitio Web y posteriormente llama periódicamente para navegar a

2.4 El motor de navegación VoiceXML

2.4.1 Características del motor

Verbio VoiceXML soporta las funcionalidades definidas por el W3C en su versión 2.0 del estándar (http://www.w3.org/TR/voicexml20/), además de incorporar algunas características de la versión 2.1 (aún Candidate Recommendation) y algunas funcionalidades propias de interés. El motor de VoiceXML se puede ver de forma esquemática como una caja negra que interpreta documentos VoiceXML generando hacia el usuario outputs o salidas de audio y recibiendo del usuario inputs o entradas (audio o DTMFs).

Usuario

.vxml

entrada al sistema

salidas del sistema

almacenamiento de

páginas VoiceXML

interpretación de

los documentos

VoiceXML

interacción usuario - máquina

figura 2.9 : esquema del motor VoiceXML

Salidas del sistema (outputs)

El elemento prompt (en lenguaje VoiceXML) controla la salida de la voz sintetizada y de los audio pregrabados. Los prompts básicos están formados por texto comprendido entre etiquetas <prompt>: <prompt>Por favor, dime tu nombre.</prompt>

Puede omitirse la sintaxis <prompt> ... </prompt> siempre que no sea necesario especificar un atributo del prompt (como por ejemplo el bargein <prompt bargein=”true”> ) y que el prompt consista en PCDATA (no contenga etiquetas SSML) o en etiquetas <audio> o <value>.

Page 22: Tabla de contenidos - Verbio Technologies · donde primero el usuario se personaliza un boletín informativo en un sitio Web y posteriormente llama periódicamente para navegar a

SSML

VoiceXML permite utilizar las etiquetas definidas por el lenguaje estándar del W3C SSML (Speech Synthesis Markup Language), en la elaboración de prompts. Dicho lenguaje debe ser soportado por el sistema de TTS que se integre con el motor de VoiceXML. El motor de síntesis de Verbio (Verbio TTS), soporta en su plenitud las especificaciones del estándar SSML en su versión 1.0, permitiendo así generar prompts que por ejemplo controlen el énfasis o las pausas de las frases: <prompt>Esto es un texto generado por <emphasis> computador

</emphasis>. <break size="medium"/> ¿Qué te parece? </prompt>

Verbio Read Aloud es la herramienta de VERBIO para el desarrollo, depuración y test de textos sintetizados. Para más información acerca de ésta herramienta consultar la guía del usuario de Verbio.

Entradas al sistema (inputs)

Las gramáticas son los elementos clave de las entradas al sistema por parte del usuario. Cada diálogo en VoiceXML tiene una o más gramáticas de voz y/o DTMF asociadas.

Gramáticas

Gramáticas de voz

Mediante las gramáticas de voz se pueden especificar:

un conjunto o set de palabras o frases que el usuario puede decir para llevar a cabo una acción o proporcionar una información, y

además se puede proporcionar un valor de retorno para describir la información o la acción solicitada.

La representación de gramáticas para utilizar en reconocimiento de voz se ha estandarizado con dos sintaxis distintas: la conocida como ABNF (Augmented Backus-Naur Format) y la XML. Ambas son reconocidas por el W3C como estándares (http://www.w3.org/TR/speech-grammar/) del reconocimiento de voz. El motor de reconocimiento utilizado por Verbio VoiceXML (Verbio ASR), soporta ambas sintaxis. Cuando se utilizan gramáticas XML debe especificarse application/srgs+xml en el atributo type de la etiqueta <grammar>. Cuando se utilizan gramáticas ABNF no es necesario especificar el atributo type, pero en caso de hacerlo este debe ser: application/srgs.

Page 23: Tabla de contenidos - Verbio Technologies · donde primero el usuario se personaliza un boletín informativo en un sitio Web y posteriormente llama periódicamente para navegar a

Éste es un ejemplo de una gramática ABNF:

gramática ABNF

, y su equivalente en el formato XML:

gramática XML

Existen plantillas de transformación u hojas de estilo (XSLT) para convertir gramáticas del formato XML al formato ABNF (no a la inversa). Verbio Grammar Manager es la herramienta de VERBIO para el desarrollo, depuración y test de gramáticas Augmented BNF (ABNF). Para más información acerca de ésta herramienta consultar la guía del usuario de Verbio.

#ABNF 1.0 ISO8859-1;

public $polite = $startPolite $drink $endPolite;

public $startPolite = ( desearia | podria ) ;

public $drink = ( agua | vino | refresco );

public $endPolite = ( porfavor | gracias ) ;

<?xml version="1.0" encoding="ISO-8859-1"?>

<grammar xmlns="http://www.w3.org/2001/06/grammar"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.w3.org/2001/06/grammar

http://www.w3.org/TR/speech-grammar/grammar.xsd" xml:lang="es"

version="1.0" root="polite" mode="voice">

<rule id="polite" scope="public">

<ruleref uri="#startPolite"/>

<ruleref uri="#drink"/>

<ruleref uri="#endPolite"/>

</rule>

<rule id="startPolite" scope="public">

<one-of>

<item tag="desearia">desearia</item>

<item tag="podria">podria</item>

</one-of>

</rule>

<rule id="drink" scope="public">

<one-of>

<item tag="agua">agua</item>

<item tag="vino">vino</item>

<item tag="refresco">refresco</item>

</one-of>

</rule>

<rule id="endPolite" scope="public">

<one-of>

<item tag="porfavor">por favor</item>

<item tag="gracias">gracias</item>

</one-of>

</rule>

</grammar

Page 24: Tabla de contenidos - Verbio Technologies · donde primero el usuario se personaliza un boletín informativo en un sitio Web y posteriormente llama periódicamente para navegar a

Gramáticas DTMF

Las gramáticas DTMF (Dual Tone Multi-Frequency) permiten definir:

un conjunto de números DTMF que el usuario puede pulsar para llevar a cabo una acción o proporcionar una información, y

también permiten proporcionar un valor de retorno para describir la información o la acción solicitada.

El estándar 2.0 de VoiceXML distingue las gramáticas DTMF de las gramáticas de voz mediante el atributo “mode” de la etiqueta <grammar>. El atributo "xml:lang" no posee ningún efecto sobre las gramáticas DTMF. Por lo demás, las gramáticas de voz y las DTMF son tratadas por igual incluyendo la opción de definir gramáticas “inline” (incrustadas en el documento) o referenciarlas a un documento externo. El siguiente es un ejemplo de gramática “inline” DTMF dónde se aceptan como valores posibles 1234 (la gramática devuelve el nombre „Marc‟), 123 (la gramática devuelve el nombre „Javier‟) y # (la gramática devuelve el nombre „Pedro‟). <grammar mode="dtmf"> 1234{Marc} | "1 2 3"{Javier} | #{Pedro}

</grammar>

Gramáticas builtin:

Existen gramáticas especialmente diseñadas para las tareas más comunes (y a menudo difíciles) que han sido integradas en el reconocedor como un recurso incorporado. Las gramáticas básicas incorporadas no son solamente la definición de las reglas sino el procesado interno de los resultados considerando medidas de confianza y opcionalmente múltiples hipótesis (N-Best). Son las denominadas gramáticas builtin. La versión 2.0 del estándar de VoiceXML especifica que deben proporcionarse las siguientes builtin, todas ellas soportadas por la plataforma Verbio ASR: boolean: Verbio ASR incorpora en esta builtin respuestas a preguntas tipo sí/no, cubriendo las palabras “sí”, “no” (con modelado acústico específico), y las palabras y expresiones más comunes para expresar confirmación y negación (ej: “exacto”, “correcto”, “no gracias”, etc.). date: Verbio ASR incorpora en esta builtin fechas en lenguaje natural, cubriendo fechas fijas en cualquier formato (sólo el día, día y mes o día, mes y año).

Page 25: Tabla de contenidos - Verbio Technologies · donde primero el usuario se personaliza un boletín informativo en un sitio Web y posteriormente llama periódicamente para navegar a

digits: Verbio ASR incorpora en esta builtin cadenas de dígitos de longitud limitada o no, usando modelos acústicos específicos para los dígitos conectados (ej: “uno, tres, cuatro”, “siete”, etc.). currency: Verbio ASR incorpora en esta builtin cantidades monetarias (ej: “veintisiete euros con cinco céntimos”). number: Verbio ASR incorpora en esta builtin números naturales dentro de un rango limitado (ej: “dos mil trescientos cuarenta y siete”, “doce”, etc.). phone: Verbio ASR incorpora en esta builtin números de teléfono en lenguaje natural, cubriendo las más frecuentes formas de agrupar los dígitos en números naturales (“noventa y tres, cuatro cero nueve, setenta y uno, veinte”). time: Verbio ASR incorpora en esta builtin expresiones de tiempo en lenguaje natural que especifican horas y minutos. Todas estas builtin deben especificarse o bien mediante el atributo type de la etiqueta <field> o bien mediante la sintaxis: <grammar src="builtin:grammar/boolean"/>

Además Verbio VoiceXML proporciona mediante Verbio ASR otras gramáticas builtin de gran utilidad para muchas aplicaciones de voz: creditcard: Verbio ASR incorpora en esta builtin números de tarjetas de crédito (dictados dígito a dígito). code: Verbio ASR incorpora en esta builtin: códigos numéricos hablados como una secuencia de números naturales. nif: Verbio ASR incorpora en esta builtin número de identificación fiscal personal (NIF) de España. spell: Verbio ASR incorpora en esta builtin deletreos, tanto alfabéticos como numéricos. Siguiendo la recomendación 2.0 del estándar, estas builtin pueden usarse utilizando también el atributo type de la etiqueta <field> o bien mediante la etiqueta <grammar>, pero siempre precediendo el nombre de la builtin con una “x-“ para indicar que es una gramática builtin especifica de plataforma: <field name=”asknif” type="x-nif"/>

o bien, <grammar src="builtin:grammar/x-nif"/>

Para más información acerca de las builtin especificadas por el estándar de VoiceXML, así como sus valores de retorno y sus posibles parámetros, consultar el Apéndice P de la recomendación

Page 26: Tabla de contenidos - Verbio Technologies · donde primero el usuario se personaliza un boletín informativo en un sitio Web y posteriormente llama periódicamente para navegar a

(http://www.w3.org/TR/voicexml20/#dmlABuiltins).

Reconocimiento e Interpretación Semántica

Verbio ASR permite escoger si el resultado de un reconocimiento asociado a una gramática (ya sea en formato XML o ABNF) genera interpretación semántica o no. Cuando una gramática no genera interpretación semántica, esta “entrega” al usuario, el valor de retorno del reconocimiento (o result), la confianza global con la que ha reconocido (o confidence) y las palabras que ha entendido durante el reconocimiento (o utterance). Por ejemplo dada la siguiente gramática ABNF:

ejemplo 1: gramática ABNF

ante el siguiente input por parte del usuario: >> usuario: abrir ventana El resultado de reconocimiento asociado, sin interpretación semántica, genera 3 valores de retorno: result: abrir 1 confidence: 185.34 utterance: abrir ventana Cuando al reconocedor se le pide que genere interpretación semántica, éste genera los mismos campos (result, confidence y utterance), pero lo hace para cada regla y subregla de la gramática, en lugar de hacerlo de forma global. Por ejemplo en el caso anterior: para la regla out: result: abrir 1 confidence: 185.34 utterance: abrir ventana y para la regla object: result: 1

#ABNF 1.0 UTF-8;

language es;

mode voice;

root $out;

public $out = (abrir | cerrar) $object;

$object = ventana {1} | puerta {2} | luz {3};

Page 27: Tabla de contenidos - Verbio Technologies · donde primero el usuario se personaliza un boletín informativo en un sitio Web y posteriormente llama periódicamente para navegar a

confidence: 165.34 utterance: ventana

NLSML

Hay muchas formas de entregar los resultados de reconocimiento al usuario. Desde la utilización de nomenclaturas propias de plataforma, hasta la utilización de lenguajes estándar. Verbio ASR devuelve los resultados de reconocimiento al motor de VoiceXML en el lenguaje estándar del W3C conocido como Natural Language Semantics Markup Language o NLSML (http://www.w3.org/TR/nl-spec/). Éste es un lenguaje de marcas que se complementa perfectamente con las gramáticas de reconocimiento escritas en lenguaje XML (http://www.w3.org/TR/nl-spec/) soportadas por Verbio ASR. Las gramáticas XML, sin embargo, ofrecen menos posibilidades que las ABNF, también definidas como estándar por el consorcio W3C y soportadas por Verbio ASR. Es por este motivo que VERBIO ha extendido el NLSML en su motor Verbio ASR, para poder soportar todas las funcionalidades del lenguaje ABNF. En las gramáticas ABNF, existe la opción de mezclar reglas y texto, lo cual no está permitido en formato XML. De éste modo, la gramática:

ejemplo 2: gramática ABNF

no dispone de equivalencia directa en el formato XML. Para poder disponer de una equivalencia en formato XML, la gramática debería ser redefinida del siguiente modo:

ejemplo 3: gramática ABNF

Entonces su equivalencia XML sería:

#ABNF 1.0 UTF-8;

language es;

mode voice;

root $out;

public $out = $action $object;

$action = abrir | cerrar;

$object = ventana | puerta | luz;

#ABNF 1.0 UTF-8;

language es;

mode voice;

root $out;

public $out = (abrir | cerrar) $object;

$object = ventana | puerta | luz;

Page 28: Tabla de contenidos - Verbio Technologies · donde primero el usuario se personaliza un boletín informativo en un sitio Web y posteriormente llama periódicamente para navegar a

ejemplo 4: gramática XML

NLSML sólo contempla la opción de devolver resultados de reconocimiento que estén explícitamente definidos en una regla que no contenga subreglas. De éste modo, dada la gramática del ejemplo 3, si el reconocedor reconoce la cadena “abrir ventana”, el resultado del reconocimiento en formato NLSML será:

Sin embargo, en el ejemplo 2, el NLSML resultante pierde información, dado que la acción “abrir” no está contemplada dentro de ninguna regla:

<?xml version='1.0' encoding='iso-8859-1'?>

<result>

<interpretation grammar="0">

<instance confidence="82.80">

<action confidence="92.78"> abrir </action>

<object confidence="72.78"> ventana </object>

</instance>

<input mode=”speech” confidence="82.80">abrir ventana</input>

</interpretation>

</result>

<?xml version="1.0" encoding="UTF-8"?>

<grammar xmlns="http://www.w3.org/2001/06/grammar" xml:lang="es"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

version="1.0" mode="voice" root="out">

<rule id="out" scope="public">

<ruleref uri="#action"/>

<ruleref uri="#object"/>

</rule>

<rule id="action">

<one-of>

<item> abrir </item>

<item> cerrar </item>

</one-of>

</rule>

<rule id="object">

<one-of>

<item> ventana </item>

<item> puerta </item>

<item> luz </item>

</one-of>

</rule>

Page 29: Tabla de contenidos - Verbio Technologies · donde primero el usuario se personaliza un boletín informativo en un sitio Web y posteriormente llama periódicamente para navegar a

Además, NLSML no contempla la opción de añadir información acerca de la utterance de cada subregla. Verbio ASR ha extendido el NLSML para poder añadir información al resultado de reconocimiento con los atributos “result” y “utterance” en la etiqueta <instance> y en las etiquetas de cada subregla. El atributo utterance representa lo que el usuario ha dicho dentro de cada regla y subregla de la gramática. El atributo result, representa el valor de salida de cada regla o subregla, incluyendo los resultados de sus subreglas. Así, en el ejemplo 2, ante la siguiente entrada por parte del usuario: >> usuario: abrir ventana las salidas de las reglas serán: $out (regla principal) abrir ventana $object ventana y el NLSML generado:

O si la gramática fuera:

<?xml version='1.0' encoding='iso-8859-1'?>

<result>

<interpretation grammar="0">

<instance confidence="156.52" result="abrir ventana"

utterance="abrir ventana">

<object confidence="142.50" result="ventana"

utterance="ventana">ventana</object>

</instance>

<input mode="speech" confidence="156.52">abrir ventana</input>

</interpretation>

</result>

<?xml version='1.0' encoding='iso-8859-1'?>

<result>

<interpretation grammar="0">

<instance confidence="82.80">

<object confidence="72.78"> ventana </object>

</instance>

<input mode=”speech” confidence="82.80">abrir ventana</input>

</interpretation>

</result>

Page 30: Tabla de contenidos - Verbio Technologies · donde primero el usuario se personaliza un boletín informativo en un sitio Web y posteriormente llama periódicamente para navegar a

ejemplo 5: gramática ABNF

ante la siguiente entrada por parte del usuario: >> usuario: abrir la ventana Las salidas de las reglas serán: $out(regla principal) abrir la ventana $object la ventana $item ventana y el NLSML resultante proporcionado por Verbio ASR sería:

Reglas vacías

En ocasiones, puede resultar útil devolver las reglas que componen la gramática, incluso en el caso en que éstas no se hayan rellenado. Verbio ASR, ofrece la opción de devolver un NLSML completo, que incluye TODAS las reglas de la gramática (las que han sido rellenadas en el reconocimiento y las que han permanecido vacías). Así, dada la siguiente gramática ABNF:

#ABNF 1.0 UTF-8;

language es;

mode voice;

root $out;

public $out = (abrir | cerrar) $object;

$object = [la | las] $item;

$item = ventana | ventanas | puerta | puertas | luz | luces ;

<?xml version='1.0' encoding='iso-8859-1'?>

<result>

<interpretation grammar="0">

<instance confidence="156.52" result="abrir la ventana"

utterance="abrir la ventana">

<object confidence="142.50" result="la ventana" utterance="la

ventana">

<item confidence="170.50" result="ventana"

utterance="ventana">ventana</item>

</object>

</instance>

<input mode="speech" confidence="156.52">abrir la ventana</input>

</interpretation>

</result>

Page 31: Tabla de contenidos - Verbio Technologies · donde primero el usuario se personaliza un boletín informativo en un sitio Web y posteriormente llama periódicamente para navegar a

ejemplo 6: gramática ABNF

ante el siguiente entrada por parte del usuario: >> usuario: abrir ventana El NLSML resultante sería:

Para obtener como resultado de reconocimiento tanto las reglas vacías y como las rellenadas, en Verbio VoiceXML debe fijarse a true la propiedad específica de plataforma com.verbio.wantemptyrules: < property name=”com.verbio.wantemptyrules” value="true"/>

Para más información acerca de las propiedades especificas de plataforma, consultar el capítulo 2.4.3.

Resultados de reconocimiento en VoiceXML

VoiceXML utiliza en su versión 2.0 el formato ECMAScript para la definición de variables. En concreto, Verbio VoiceXML utiliza en su versión 7.1 la implementación JavaScript de mozilla (http://wp.netscape.com/eng/mozilla/

3.0/handbook/javascript/) para ello. Los resultados de reconocimiento proporcionados por Verbio ASR en NLSML son transformados por el motor de Verbio VoiceXML a objetos JavaScript. Para acceder a los miembros de los objetos, se utiliza la sintaxis de „puntos’ como se especifica en el estándar de ECMAScript. Dada la gramática del ejemplo 3, con una entrada del usuario como:

#ABNF 1.0 UTF-8;

language es;

mode vioce;

root $out;

public $out = (abrir | cerrar) $object [$politeness];

$object = ventana | puerta | luz;

$politeness = “por favor”;

<?xml version='1.0' encoding='iso-8859-1'?>

<result>

<interpretation grammar="0">

<instance confidence="133.98" result="abrir ventana" utterance="abrir

ventana">

<object confidence="163.42" result="ventana"

utterance="ventana">ventana</object>

<politeness confidence="0.00" result="[empty]"

utterance="">[empty]</politeness>

</instance>

<input mode="speech" confidence="133.98">abrir

ventana</input></interpretation></result>

Page 32: Tabla de contenidos - Verbio Technologies · donde primero el usuario se personaliza un boletín informativo en un sitio Web y posteriormente llama periódicamente para navegar a

>> usuario: abrir ventana

Si no se pide interpretación semántica, Verbio VoiceXML genera un objeto con el nombre del <field> dónde se produce el reconocimiento seguido del símbolo $. Por ejemplo, si el field es del tipo: <field name=”out”> … </field> se generará un objeto como: var out$ = new object(); Éste objeto contiene 3 miembros que son, el resultado, la confianza y la utterance del reconocimiento: out$.result out$.confidence out$.utterance cuando en un página VoiceXML se accede directamente a un objeto resultado de un reconocimiento, sin especificar el miembro al que se accede, Verbio VoiceXML interpreta que se está accediendo a su miembro: $.result. Cuando se pide interpretación semántica, se generan varios objetos JavaScript, que reproducen la estructura de reglas y subreglas de la gramática. Por ejemplo, en el caso anterior, si se genera interpretación semántica, Verbio VoiceXML montará los siguientes objetos JavaScript: var out$ = new object(); out$.result = “abrir ventana”; out$.confidence = 182.80; out$.utterance = “abrir ventana”; var out = new object(); var out.action$= new object(); var out.object$= new object(); out.action$.result = “abrir” ; out.action$.confidence = 172.80; out.action$.utterance = “abrir” ; out.object$.result = “ventana” ; out.object$.confidence = 192.80 ; out.object$.utterance = “ventana” ;

Page 33: Tabla de contenidos - Verbio Technologies · donde primero el usuario se personaliza un boletín informativo en un sitio Web y posteriormente llama periódicamente para navegar a

Sólo las reglas rellenadas en el reconocimiento disponen de representación en ésta estructura de objetos. Esto es un problema, dado que el programador de la aplicación no puede prever a priori los resultados de reconocimiento, pero necesita programar la aplicación en función de ellos. Además, si se intenta acceder a un miembro no existente de un objeto, JavaScript nos devolverá un error. La plataforma Verbio VoiceXML soluciona éste problema gracias a que Verbio ASR ofrece la opción, de obtener las reglas vacías en NLSML como hemos visto antes. Verbio VoiceXML, mapea en el objeto JavaScript TODAS las reglas (vacías y llenas), pero solo las segundas tienen una confianza mayor que 0 y por lo tanto un resultado distinto de un string vacío. Así, podemos programar aplicaciones VoiceXML cómo:

gramática ABNF: gram.bnf

ya que la gramática gram.bnf genera siempre los siguientes objetos como resultado de reconocimiento: var choose$ = new object(); choose$.result choose$.confidence choose$.utterance

#ABNF 1.0 UTF-8;

language es;

mode voice;

root $out;

public $out = $info | $reserve | $cancel;

$info = information | query;

$reserve = reservation | “make a reservation”;

$cancel = cancel;

<?xml version="1.0" encoding="iso-8859-1"?>

<vxml xmlns="http://www.w3.org/2001/vxml"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

version="2.0">

<form>

<field name="choose">

<grammar src="gram/gram.bnf"/>

<property name="com.verbio.wantemptyrules" value="true"/>

<prompt>What do you want?</prompt>

<filled>

<prompt cond=”choose.info$.confidence > 0”>information</prompt>

<prompt cond=”choose.reserve$.confidence > 0”>reserve</prompt>

<prompt cond=”choose.cancel$.confidence > 0”>cancel</prompt>

</filled>

</field>

</form>

Page 34: Tabla de contenidos - Verbio Technologies · donde primero el usuario se personaliza un boletín informativo en un sitio Web y posteriormente llama periódicamente para navegar a

var choose = new object(); var choose.info$ = new object(); var choose.reserve$ = new object(); var choose.cancel$ = new object(); choose.info$.result; choose.info$.confidence; choose.info$.utterance; choose.reserve$.result; choose.reserve$.confidence; choose.reserve$.utterance; choose.cancel$.result; choose.cancel$.confidence; choose.cancel$.utterance;

Para más información acerca de NLSML y los resultados de reconocimiento, ver el ejemplo NLSML&nbest que se reparte con los ejemplos de VoiceXML.

Page 35: Tabla de contenidos - Verbio Technologies · donde primero el usuario se personaliza un boletín informativo en un sitio Web y posteriormente llama periódicamente para navegar a

2.4.2 Propiedades por defecto del motor

Ubicado en la carpeta config (en el directorio de instalación de Verbio VoiceXML), se encuentra el fichero defaults.xml con las propiedades por defecto de navegación utilizadas por el motor de VoiceXML. Los tiempos de reconocimiento o los mensajes estándar para los eventos de „nomatch‟ y „noinput‟ son algunas de las propiedades que se pueden modificar en éste fichero. Los cambios efectuados en éste fichero afectarán a todos los usuarios de la plataforma Verbio VoiceXML. Para que dichos cambios surjan efecto, la plataforma debe reiniciarse.

Page 36: Tabla de contenidos - Verbio Technologies · donde primero el usuario se personaliza un boletín informativo en un sitio Web y posteriormente llama periódicamente para navegar a

2.4.3 Propiedades especificas de la plataforma Verbio VoiceXML

VERBIO ha añadido en su plataforma Verbio VoiceXML algunas propiedades de interés, siguiendo las recomendaciones de sintaxis del estándar 2.0 de VoiceXML. Son las que se describen a continuación:

o <property name="com.verbio.beep_before_rec" value="true"/> Permite seleccionar si se desea escuchar una señal sonora o beep antes de cada reconocimiento (valor por defecto: false)

o <property name="com.verbio.semantic_interp" value="true"/> Permite seleccionar si se desea obtener interpretación semántica o no en los resultados de reconocimiento (valor por defecto: true)

o <property name="com.verbio.wantemptyrules" value="false"/> Permite escoger si se desean obtener las reglas vacías en los resultados de reconocimiento o sólo las que han sido rellenadas por el usuario (valor por defecto: false)

o <property name="com.verbio.pbxtransfer" value="false"/> Permite escoger si se desea utilizar centralita para realizar transferencias (ver capítulo 2.4.4) o si por el contrario desean utilizarse dos recursos para realizar las transferencias (uno para la llamada entrante y otro para la saliente) (valor por defecto: false)

Page 37: Tabla de contenidos - Verbio Technologies · donde primero el usuario se personaliza un boletín informativo en un sitio Web y posteriormente llama periódicamente para navegar a

2.4.4 Transferencias en Verbio VoiceXML

VoiceXML no contempla en su arquitectura básica la inclusión de una PBX en la pasarela de voz. Esto significa que a priori, cada transferencia realizada en VoiceXML utiliza dos recursos del dispositivo de telefonía (uno para la llamada entrante y otro para la saliente). Es por este motivo que deben configurarse los canales asignados para llamadas entrantes y para llamadas salientes cuando se añade un dispositivo (ver capítulo 2.3.1 - sección Hardware). Dado que la inclusión de una PBX en la pasarela de voz, permite reducir a la mitad el consumo de recursos del dispositivo de telefonía al realizar transferencias, VERBIO ha incluido en su plataforma Verbio VoiceXML, la opción de realizar transferencias utilizando la potencialidad de la PBX. Esto puede inducir sin embargo a problemas de comunicación y/o señalización entre tarjetas y centralitas. Es por esto que VERBIO asegura, en cumplimiento con el estándar 2.0 de VoiceXML el buen funcionamiento de las transferencias sin el uso de PBX, y añade la opción, sin garantía de éxito, de utilizar la potencialidad de la centralita por medio de la propiedad especifica de plataforma: com.verbio.pbxtransfer: <property name=”com.verbio.pbxtransfer” value="true"/>

value = true transferencia utilizando centralita value = false transferencia sin utilizar centralita

La versión 2.0 del estándar de VoiceXML define dos tipos de transferencia: blind y bridge. Cuando en una aplicación VoiceXML se produce una transferencia blind, el servicio conecta la llamada entrante (llamante) con el destinatario de la transferencia (llamado), sin opción a un feedback posterior de la aplicación con el llamante:

Conexiones en una transferencia blind: <transfer bridge="false">

Cuando en una aplicación VoiceXML se produce una transferencia bridge, Verbio VoiceXML conecta la llamada entrante (llamante) con el destinatario (llamado), con un posterior feedback de la aplicación con el llamante. Esto

Page 38: Tabla de contenidos - Verbio Technologies · donde primero el usuario se personaliza un boletín informativo en un sitio Web y posteriormente llama periódicamente para navegar a

significa que una vez terminada la conexión entre llamante y llamado (independientemente de si se ha podido o no establecer la llamada), el llamante puede continuar el curso de la aplicación que estaba navegando.

Conexiones en una transferencia bridge: <transfer bridge="true">

La versión 2.1 del estándar de VoiceXML prevé incorporar además una nueva transferencia llamada consultation que viene a ser una solución intermedia entre la transferencia bridge y la blind. Cuando en una aplicación VoiceXML se produce una transferencia consultation, el servicio de VoiceXML conecta la llamada entrante (llamante) con el destinatario (llamado), manteniendo la opción de feedback de la aplicación con el llamante, para el caso en que no se pueda establecer la llamada (destinatario ocupado, no contesta o hay un error en la transferencia).

Conexiones en una transferencia consultation: <transfer type="consultation"/>

Page 39: Tabla de contenidos - Verbio Technologies · donde primero el usuario se personaliza un boletín informativo en un sitio Web y posteriormente llama periódicamente para navegar a

Las siguientes tablas resumen las transferencias soportadas por la plataforma Verbio VoiceXML, para los distintos dispositivos de telefonía integrados actualmente con la plataforma:

transferencias estándar definidas por el W3C en la versión 2.0 de VoiceXML transferencias añadidas por el W3C en la Candidate Recommendation de la versión 2.1 de VoiceXML.

transferencias no estándar añadidas en la plataforma Verbio VoiceXML.

o Intel Dialogic (Digital BRI boards)

blind bridge consultation queryblind (1)

sin PBX X X - X

con PBX * X - X X

o Intel Dialogic (Analog boards)

blind bridge consultation queryblind (1)

sin PBX X X - X

con PBX * X - X -

o Eicon Diva Server (Digital BRI & Analog boards)

blind bridge consultation queryblind (1)

sin PBX X X - X

con PBX * X - X X

* depende de la PBX. Contacte el soporte técnico de VERBIO ([email protected]) para información adicional. (1) La transferencia queryblind, permite una negociación previa a la aceptación de la llamada entre el llamado y la aplicación. Contacte con el soporte técnico de VERBIO para información adicional respecto esta tipo de transferencia.

Page 40: Tabla de contenidos - Verbio Technologies · donde primero el usuario se personaliza un boletín informativo en un sitio Web y posteriormente llama periódicamente para navegar a

3. Herramientas adicionales de Verbio VoiceML

3.1 Verbio VoiceXML Logging Monitor

Logging Monitor es una herramienta de monitorización de la plataforma Verbio VoiceXML. Para monitorizar Verbio VoiceXML, en primer lugar debe seleccionarse el host (la IP) dónde se encuentra instalado el servicio. Para ello, debe utilizarse la opción connect to server… del menú desplegable de server:

Aparecerá un cuadro de diálogo dónde se pide la dirección IP de la máquina donde esta ejecutándose Verbio VoiceXML. También debe proporcionarse el nombre de usuario, el password i el dominio del cliente que desea monitorizar dicho servicio:

Page 41: Tabla de contenidos - Verbio Technologies · donde primero el usuario se personaliza un boletín informativo en un sitio Web y posteriormente llama periódicamente para navegar a

El estado de la conexión con el servidor se muestra en barra de estado de la ventana (en la parte inferior izquierda). Una vez conectados a un servidor Verbio de VoiceXML, se pueden abrir tantos monitores de canales como se desee. Basta con seleccionar la opción new de la barra de herramientas i seleccionar los canales que se desean monitorizarse en el cuadro de diálogo que aparece.

botón new

Pueden seleccionarse rangos de canales (por ejemplo: 1-4 = monitorizar canales del 1 al 4) o puede seleccionarse * para monitorizar todos los canales. Una vez seleccionados los canales a monitorizar aparece una nueva ventana monitor. Ésta organiza la información en 6 columnas: time: hora en la que se ha producido la traza id: identificador interno del canal del motor channel: identificador físico del canal de telefonía log type: identificador del tipo de traza que se ha producido reference: contexto del motor en el que se produce la traza description: breve descripción de la traza

Las ventanas monitor pueden reconfigurarse, limpiar sus trazas, guardarlas o imprimirlas mediante las opciones configure, clean, save y print de la barra de herramientas:

Page 42: Tabla de contenidos - Verbio Technologies · donde primero el usuario se personaliza un boletín informativo en un sitio Web y posteriormente llama periódicamente para navegar a

Por último el menú principal nos permite seleccionar algunas opciones de visualización (view) así como las preferencias a la hora de organizar las ventanas monitor (window).

Page 43: Tabla de contenidos - Verbio Technologies · donde primero el usuario se personaliza un boletín informativo en un sitio Web y posteriormente llama periódicamente para navegar a

3.2 Verbio IP Audio Device

IP Audio Device es un simulador de teléfono IP que permite llamar a una plataforma Verbio VoiceXML siempre que ésta haya habilitado para ello a éste tipo de dispositivos. Para navegar por las aplicaciones, el usuario debe utilizar un micrófono para hablar y altavoces para escuchar el audio provinente del servidor.

Para iniciar una llamada deben especificarse:

o el host (IP) dónde se encuentra el servicio de Verbio VoiceXML al qué desea contactarse

o identificarse con un número o DNIS o el número al que se desea llamar.

Al pulsar el botón Call se iniciará la llamada. Signal communication muestra la intensidad de la señal recibida por parte del usuario y por parte del servidor de VoiceXML.