Utilización de Agentes Animados
para interfaces avanzadas de
ayuda
Grupo de Tratamiento del Habla,
Dpto. Ingeniería Electrónica
Autor: Jesús Heras Parra
Tutor: Juan Manuel Montero Martínez
ÍNDICE
Introducción
Los Agentes Animados y MS Agent
La Biblioteca Agentes
La integración en el Analizador de Estilo
Conclusiones y Líneas futuras
Introducción
Objetivo

Agentes Animados en interfaces avanzadas
Medios


IDE Microsoft Visual C++ 6
Microsoft Agent 2.0
Aplicación práctica


Biblioteca (DLL) que facilite la integración de MSAgent
Completar la GUI del Analizador de estilo para textos en
inglés científico/técnico (ANNESTE)


Inclusión de un Agente Animado
Actualización de la GUI
PARTE I
LOS AGENTES ANIMADOS Y
MICROSOFT AGENT
Agentes Animados (I)
Definición

Agente informático con apariencia de personaje
Uso

En interfaces conversacionales buscando una interacción
más natural entre persona y máquina
Recursos

Elementos no verbales que humanizan y refuerzan la
comunicación




Expresiones faciales, gestos corporales, miradas
expresivas
Convencionalismos sociales
Dotados de personalidad
Trasmiten y reconocen emociones
Agentes Animados (II)
Ventajas de las GUI con Agentes


Forma natural de incluir entrada y salida de voz
Consiguen



Sistemas más amigables
Usuarios más cooperativos
Enriquecen la interfaz


Entrada multimodal
Salida multimedia
Inconvenientes


Coste de implementación
Los propios de las SUI (Spoken UI)


Lentitud, turnos de palabra, errores de reconocimiento,...
Rechazo inicial de los usuarios adaptados a las GUI
convencionales
Definición

Microsoft Agent (I)
Componente software usable desde cualquier lenguaje de
programación que pueda ser cliente de Automatización OLE


Ofrece servicios programables de animación de personajes
Facilita incorporar síntesis de habla y reconocimiento de voz
Ventajas




Compatible SAPI (TTS y SR)
Licencia sin royalties
Existencia de personajes de uso libre
Varias herramientas para crear un personaje propio
Inconvenientes




Complejidad de programación
Motor de reconocimiento: Habla aislada y Click-to-Speak
Proceso de instalación complicado
MS Windows
Microsoft Agent (II)
Aplicación
Cliente
pIAgent
(1) Solicita
acceso a la interfaz
del Objeto Agent
Tecnología Base

(5) El cliente puede
llamar a los miembros
de la interfaz
IAgent
ej. pIAgent->Load()
(4) Devuelve el
puntero a la interfaz
IAgent
Biblioteca
Objeto
COM
Agent
(3) COM lanza el
proceso AgentSvr.exe
COM
Servidor de Automatización OLE

AgentSvr.exe
Los clientes se conectan al servidor
y solicitan servicios a través de
interfaces según el estándar COM
(2) COM busca el
path en el Registro
HKEY_CLASSES_ROOT
CLSID_AgentServer
LocalServer32 = C:\...\AgentSrv.Exe
Microsoft Agent (III)
IAgentNotifySink
IAgent
IAgentCharacter
IAgentCommands
IUnknown
Interfaces de
programación


Servicios a través de
punteros a interfaces
Captura de eventos
de usuario
IAgentBalloon
IAgentSpeechInputPtoperties
IAgentAudioProperties
IAgentCommandsWindow
IAgentPropertySheet
PARTE II
PARTE II
DESARROLLO
SOFTWARE
Motivación

La biblioteca Agentes
Facilitar la integración de MSAgent en aplicaciones


Agrupando servicios
Ocultando los requerimientos de COM
Servicios

De base




De voz



Conectar y desconectar al servidor AgentSvr.exe
Cargar y descargar personajes
Acceso a las distintas ventanas de la interfaz
Sintetizar texto o reproducir fichero de audio
Insertar y eliminar comandos de voz
Gráficos




Mostrar y Ocultar personaje
Ejecutar animaciones
Desplazamiento del personaje
Señalar un punto con el personaje
Analizador de Estilo (I)
Antigua versión de ANNESTE

PFC Rogelio Vargas


Analiza textos en inglés técnico mediante
 cálculo de variables lingüísticas
 valoración mediante reglas de experto (tipologías)
PFC Pilar Santamaría

Guía del estilo del inglés científico-técnico
 Formato HTML
Buen candidato a incluir Agentes Animados


Orientado a experto, no a usuario final
Información de ayuda densa y un poco aburrida
Analizador de Estilo (II)
Diagrama de bloques de la nueva versión
Módulos C:
Analizar Estilo
PFC de Rogelio
Vargas
GUI
Doc/Vista(MDI)
Cuadros de
Resultados
Control
ActiveX:
Navegación
Clases C++:
Personaje
Interactivo
Páginas Web
de Ayuda
Biblioteca
Agentes.dll
PFC de Pilar
Santamaría

GUI basasa en MDI (desarrollada mediante MFC)



Muestra resultados de forma gráfica en cuadros de diálogo
Incluye un navegador propio para visualizar la ayuda HTML
Complementada con Agentes Animados y voz
Analizador de Estilo (III)
Mejoras de la nueva versión



Inclusión de cuadros de diálogo con los resultados del
análisis
Navegador propio para la ayuda HTML
Inclusión de dos Agentes Animados
Analizador de Estilo (IV)
Funciones de los Agentes Animados

Animar una IU algo árida



Anfitrión: presentación del programa
Tutor: guía paso a paso
Explicar los resultados del análisis a un no lingüista y
ayudar a mejorar el estilo

Agente inteligente
 Experto del dominio “tablas de resultados”
 Ayuda a completar la tarea “mejorar el estilo”
Recursos




Desplazamientos por pantalla concentrando la atención del
usuario sobre determinados puntos
Gestos y animaciones
Síntesis de voz y reconocimiento de comandos de voz
Apertura de ventanas de resultados o páginas Web
Comentar Tablas (I)
Funcionalidad

Explicación de los resultados del análisis y comentarios de
mejora
Diagrama de casos de uso
Comentar media
Comentar malos
resultados
Alabar buenos
resultados
Personaje
Diálogo
Usuario/Personaje
Abrir Cuadro
de Diálogo
Usuario
Comentar Tablas (II)
CTablaIndices
Diagrama de Clases
iNumeroIndices: int
hHandleVentana : HWND
pxIndices: *CIndice
Comenta Una
CTablaIndices (int nIndices)
GetHandleWnd (void): HWND
SetHandleWnd (HWND hWnd)
GetTamanyoTabla(void) : int
SetTamanyoTabla(int Tamanyo)
GenerarSubTabla(CTablaIndices
*pxSubTabla, int iElementos): int
RecortarTabla ( int iElementos): int
CTablaRangos
iNumeroRangos : int
pxRangos: *RANGO_Q
Consulta
Rangos
CTablaRangos (int nRangos)
CPersonaje
CIndice
iIdentificador : int
iValor : int
xRangoOK RANGO_OK
tcTexto: char [60]
iMensajeWnd : int
Funciones de acceso a
los atributos
CRango
iMinimo : int
iMaximo : int
iValoracion : int
tcTexto[60] : char
tcObjetivoMejora:char[4]
Instance:
*CPersonaje
pIAgentEx: IAgentEx*
lRequestID: long
lCharID :
long
iHandleCharacter: int
-CPersonaje
+getInstance:*CPersonaje
vSignalButton : void
CrearNotifySink: HRESULT
CComentarTablas
pxSubTblMalos *CTablaIndices
pxSubTblBuenos *CTablaIndices
iXmedia : int
iXminBuenos : int
iXminDestacar : int
iNumeroIndices : int
iMaxNumMalos : int
pxPersonaje: CPersonaje
+ComentarTabla
+DestacarBuenosResultados
+ComentarMalosResultados
+ComentarMedia
-CalcularMalos
-CalcularMedia
-CalcularBuenos
-DialogoMalos
-PreguntaCorta
-PreguntaLarga
-AbrirCuadroConMagia
-DirigirPersonaje
-SenyalaPersonaje
-SintetizaTxtNegValyPos
-SintetizaTxtPositValyPos
-ObtenerRespuesta
-CruzarTablas
-GetValores
-EnviarMensajes
Comentar Tablas (III)
Diseño diálogo interactivo

Iniciativa mixta



Definir bien el contexto



Depende de resultados y/o negociaciación con el usuario
Variabilidad en los comentarios de los personajes


Ventana de Comandos Activos
Activación y desactivación de comandos de voz
 Escenarios con menores posibilidades
Reducido nivel de profundidad del diálogo


El usuario consulta la Ventana de Comandos de Voz activos
y solicita una tarea
El personaje propone alternativas y el usuario elige
(interfaz de apoyo a la toma de decisiones)
Personajes más inteligentes y amenos
Realimentación


Animaciones asociadas al estado de escucha
Asentimientos o negaciones con la cabeza
Conclusiones (I)

Nueva API de manejo de Microsoft Agent



Uso de la API desde el sistema Servivox de desarrollo de
aplicaciones multimedia (PFC Javier Martínez)
Integración en el Analizador de Estilo (en formato DLL)
Nueva versión del analizador de estilo ANESTTE



GUI complementada con Agentes Animados
Actualización de la GUI
 Nuevos cuadros de resultados
 Inclusión de un Navegador (Control ActiveX)
Primera versión de un módulo de diálogo para ayuda al
usuario
Dificultades

Elevado coste de desarrollo de IU’s con Agentes




Conclusiones (II)
Integración en interfaz de ventanas
Sincronización de voz con
 expresiones faciales y gestos
 animaciones en general
Las acciones o respuestas del usuario son muy variadas e
imprevisibles
 Debido a la presencia de un personaje “vivo”
Necesidad de conocimientos sobre COM/OLE para la
programación de MS Agent
De gran ayuda

Herramienta Class Wizard de Microsoft Visual


Generación y organización de código
Colección MSDN: información técnica muy completa
Líneas futuras

Mejora del módulo de diálogo





Modelo de usuario
Confianza
Estrategias de confirmación
Evaluación con usuarios finales
Potenciar el manejo de la aplicación via voz
Utilización de Agentes
Animados para interfaces
avanzadas de ayuda
Grupo de Tratamiento del Habla,
Dpto. Ingeniería Electrónica
ETSIT Madrid
Noviembre de 2002
Descargar

No Slide Title