lunes, 11 de febrero de 2008

Interfaces basadas en voz

Introducción.

La Interfaz de usuario es una forma de comunicación entre un usuario y la computadora, una forma de manipular archivos, manejar herramientas, configurar el equipo y cualquier trabajo computacional en donde el usuario intervenga.
Estamos acostumbrados a oír o leer sobre interfaces gráficas de usuario (GUI) o comandos de línea (interfaces no gráficas). De igual manera existen las interfaces basadas en voz, o por sus siglas en inglés: Voice User Interface (VUI) que es una interfaz de usuario que utiliza el reconocimiento de voz o diálogo para comunicar al usuario con la máquina.

La VUI aún esta en desarrollo y perfeccionamiento, es aquí donde los estudios de usabilidad son importantes, ya que la interfaz tiene que ser desarrollada de acuerdo al área a la que será destinada, por ejemplo, si ésta esta dirigída al público en general es importante que exista suficiente ayuda para un usuario principiante. Por el contrario, si esta destinada a un grupo pequeño de personas especializadas en este área, la interfaz deberá enfocarse en la productividad más que en la ayuda.

Principios del diseño de una interfaz basada en voz

El propósito de desarrollar una interfaz que esté basada en el reconocimiento de voz para funcionar es que ésta sea como una persona que sirva al usuario fielmente, es decir, que sea de gran ayuda para el usuario y que además sea respetuoso. Las interfaces que utilizan el reconocimiento de voz para interactuar con el usuario, generalmente eran consideradas como inteligencia artificial y nada más, está claro que es necesario desarrollar agentes inteligentes para tener en sí una interfaz basada en voz, pero cada vez está más cercano el hecho de tener computadoras con las cuales cualquier usuario pueda interactuar normalmente mediante la voz.

De acuerdo con Lotus Speech Initiative, existen ciertos principios que deben ser considerados al momento de desarrollar una interfaz basada en voz. El primer grupo de principios están orientados a la interacción natural y cortes de la máquina con el usuario.
  • El sistema deberá poder entender el lenguaje natural del usuario, es decir, deberá entender referencias que el usuario haga de algún pronombre. También deberá poder manejar comandos y preguntas que no necesariamente tengan información completa para ejecutarse, pero además, el sistema deberá pedir especificaciones cuando los comandos sean ambiguos o pedir información necesaria cuando así sea requerido.
  • El sistema no deberá interrumpir al usuario cuando este esté hablando, a menos que exista alguna emergencia o alguna notificación de alta prioridad.
  • El usuario podrá interrumpir al sistema, excepto en las situaciones de alta prioridad, si no es así, el sistema deberá detenerse cuando el usuario hable.
  • No deberán existir ciclos de preguntas, es decir, el usuario no deberá estar forzado a responder preguntas generadas por el sistema para seguir adelante en otros procesos.
  • Si el sistema tuviera algo que decir que no fuera respuesta a alguna pregunta del usuario, el sistema deberá pedir permiso para hablar, a menos que sea alguna cuestión de alta prioridad.
  • El sistema deberá poder manejar respuestas de cortesía como “gracias” o “de nada”, ya que existirán usuarios que las realicen por costumbre, así mismo el sistema deberá generar respuestas de cortesía.


El segundo grupo de principios está destinado a la confianza que el usuario tendrá al sistema y su dependencia hacia éste. Los usuarios tienen la necesidad de saber si han sido correctamente escuchados y si se está ejecutando el proceso que solicitaron, también tienen la necesidad de saber si la respuesta que consiguieron es la que estaban buscando. Actualmente el reconocimiento de voz es imperfecto en esta área.

  • Cuando el sistema responda a alguna pregunta, éste deberá referirse a la pregunta realizada por el usuario, de manera que “Si” o “25” no son respuestas aceptables.
  • Si algún procedimiento que fuera generado por el usuario no tuviera algún efecto visible para éste, el sistema deberá notificar que se llevo a cabo, por el contrario si el efecto es evidente (como el cierre de una ventana), entonces la simple acción será suficiente.
  • Los procedimientos de eliminación o irreversibles deberán ser confirmados por el usuario.
  • Si algún proceso tardara más que algunos segundos, entonces el sistema deberá indicar que el proceso se está llevando a cabo de manera específica, es decir, se deberán usar palabras como “imprimiendo” en vez de sólo “trabajando”, para que el usuario esté seguro de que el procedimiento correcto se está ejecutando.
  • El usuario debe poder cancelar algún comando que este en proceso.
  • Si el usuario por alguna razón no contesta a alguna pregunta generada por el sistema, entonces, después de cierto periodo de tiempo, el sistema deberá pedir permiso al usuario para hablar, y después preguntar si el usuario aún desea seguir ejecutando el comanda mencionado anteriormente, si es así, entonces el sistema deberá realizar la pregunta una vez más.


El tercer grupo de principios está relacionado con la consistencia y la transparencia del sistema.

  • La manera de hablar del sistema deberá arrojar palabras y frases que el usuario pueda entender, no usar palabras de las que no se entienda que se debe realizar acción alguna.
  • El sistema no deberá asumir cuestiones acerca de algún comando que el usuario ingresara, por ejemplo, si el usuario dice “abre este mensaje…” el sistema no debe asumir que el usuario quiera responder.
  • El habla del sistema deberá ser consistente y usar palabras similares para acciones similares.
  • El sistema no deberá hacer creer al usuario que éste es más inteligente que el sistema, ya que esto solo provocará que el usuario haga más cosas que el sistema no pueda reconocer o entender.




Aquí se presenta una conversación entre el sistema desarrollado por Lotus Speech Initiative y un usuario, se puede observar como cumplen con cada uno de los principios mencionados anteriormente:


User: What time is it?
LCI: The time is 4:49 PM.
User: Let me know when it is 5 o’clock.
LCI: Alarm set for 5:00 PM.
User: Show me my messages please.
LCI: Opens the mail inbox window.
User: Let me see the message from Beth.
LCI: Selects the first message from Beth Brownholtz. This
one?
User: No, the next one.
LCI: Opens the next message from Beth Brownholtz.
User: Forward this message to Robert
LCI: Robert Armes or Robert Corell?
User: Armes.
LCI: Creates a new message to Robert Armes containing the
contents of the original message.
User: Send this message.
LCI: Message sent.
User: Is Robert online?
LCI: Robert Armes is offline.
User: Notify me when he is available.
LCI: Monitoring chat status of Robert Armes.
User: Delete the message from Bill.
LCI: Selects the message. Are you sure?
User: Yes.
LCI: Deletes the message.
LCI: Excuse me?
User: What is it?
LCI: You have one new message.
User: Who is it from?
LCI: The message is from Julie Alweis.
User: What is it about?
LCI: The subject of the message is expense report.
User: File this in my management folder.
LCI: The message disappears from the inbox.
LCI: Excuse me?
User: Go ahead.
LCI: IBM has reached the limit of 93, trading at 93.06.
User: Tell me when IBM reaches ninety three and a half.
LCI: Monitoring IBM for a limit of 93.5.
User: What is ninety three times one hundred twenty?
LCI: 93 times 120 is 11,160.
User: Thanks.
LCI: You’re welcome!