1 / 31

Nueva arquitectura para un servidor vocal telefónico con Reconocimiento Automático de Habla

Nueva arquitectura para un servidor vocal telefónico con Reconocimiento Automático de Habla. Autor: Javier López García. ÍNDICE. Objetivos Análisis y diseño de sistemas SW Arquitectura de SERVIVOX: el kernel Reconocimiento: TIDAISL Matrices y evaluador de expresiones Conclusiones

thor
Télécharger la présentation

Nueva arquitectura para un servidor vocal telefónico con Reconocimiento Automático de Habla

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Nueva arquitectura para un servidor vocal telefónico con Reconocimiento Automático de Habla Autor: Javier López García

  2. ÍNDICE • Objetivos • Análisis y diseño de sistemas SW • Arquitectura de SERVIVOX: el kernel • Reconocimiento: TIDAISL • Matrices y evaluador de expresiones • Conclusiones • Líneas futuras Javier López García

  3. OBJETIVOS DEL PROYECTO • Diseñar una nueva arquitectura para SERVIVOX que le proporcione mayor modularidad y flexibilidad. • Reestructurar el software de TIDAISL de modo que se puedan integrar los módulos desarrollados en SERVIVOX. • Ampliar y mejorarel LDD. • Generar documentación precisa sobre: • La estructura actual de SERVIVOX. • Los pasos a seguir para ampliarlo con software de TIDAISL. Javier López García

  4. DESARROLLO DE SOFTWARE • Fases: • Análisis (Requisitos, ...) • Diseño. • Implementación. • Pruebas. • Mantenimiento. • Estrategias: • Lineal en cascada. • Prototipado-evolutiva. • Metodologías: • Estructurada. • Orientada a objetos. Javier López García

  5. ANÁLISIS Y DISEÑO • Análisis: • Consiste en descomponer un sistema en los elementos que lo integran. • Responde a la pregunta “qué es el problema”, define el problema con precisión. • Genera un modelo conceptual del sistema. • Diseño: • Se realiza después del análisis. • Responde a la pregunta “cómo se resuelve el problema con las herramientas disponibles”. • Modifica los modelos generados en el análisis para reflejar decisiones relativas al entorno en que el sistema debe funcionar. • Genera un modelo físico del sistema. Javier López García

  6. ANÁLISIS ORIENTADO A OBJETOS • El análisis y el diseño orientados a objetos utilizan los objetos como elementos básicos para la elaboración de modelos. • Objeto: podemos definir formalmente un objeto como una abstracción de algún objeto en el mundo real que incluye los datos o propiedades (atributos) que describen el objeto real, e incluye las operaciones (métodos) que manipulan estos datos, que son además las únicas autorizadas para hacerlo. Javier López García

  7. ANÁLISIS PROPUESTO • Fase inicial: • Estudio de documentación previa: PFCs. • Reuniones con el cliente: desde gestores a técnicos. • Componentes: • Modelo de requisitos: necesidades de los usuarios. • Ámbito del proyecto. • Diagrama de contexto. • Guiones de casos de uso. • Modelo de objetos: • Arquitectura. • Diagrama de objetos. • Diccionario: define los conceptos utilizados. Se elabora conjuntamente con los modelos anteriores. Javier López García

  8. ÁMBITO DE SERVIVOX • Un sistema que permita: • editar, compilar, ejecutar, configurar, depurar, crear, analizar y supervisar aplicaciones multimedia que proporcionen un servicio automático de atención al cliente con síntesis y reconocimiento de habla, con acceso a bases de datos y utilidades de correo electrónico. • El sistema será también una herramienta para los desarrolladores de aplicaciones. • Será competencia del sistema: • proporcionar un lenguaje de descripción de aplicaciones multimedia, junto con las herramientas necesarias para editar, compilar, ejecutar, etc, dichas aplicaciones. • No será competencia del sistema: • el reconocimiento y la síntesis del habla, el proporcionar un servidor de “mail” o un servidor de bases de datos, pero sí definir una interfaz que se comunique con estos sistemas. Javier López García

  9. Portable Interfaz Usuario Sistema Backend PORTABLE, PROFILE, FILEHAND MÓDULO MAGO DE OZ MOTOR DE BÚSQUEDA (RENFE) RPC Log OPERADOR(A) TELEFÓNICO SUPERVISOR MAIL (POP3) ODBC ( BASES DE DATOS ) MENSAJES PREGRABADOS PROGRAMADOR PROGRAMAS EXTERNOS EJECUTABLES Configura Interfaz Usuario Servicio SERVIDOR AGENTES ANIMADOS DRIVER AUDIO DLL DE SÍNTESIS MÓDULO DE COMPRENSIÓN NLP LIBRERÍA DE RECONO CIMIENTO MÓDULO DE GENERACIÓN DE RESPUESTA MÓDULO DE ACENTOS DRIVER TELÉFONO DRIVER IMÁGENES Voz SISTEMA SERVIVOX DE APLICACIONES MULTIMEDIA

  10. ÍNDICE • Objetivos • Análisis y diseño de sistemas SW • Arquitectura de SERVIVOX: el kernel • Reconocimiento: TIDAISL • Matrices • Evaluador de expresiones • Conclusiones • Líneas futuras Javier López García

  11. ARQUITECTURA DEL SERVIVOX (I) • Inspirada en la arquitectura DARPA. • Estructura cliente-servidor: • El kernel controla la secuencia del diálogo (cliente). • Toda la funcionalidad reside en los servidores. • Estructura de subsistemas intercambiables: • Interfaz kernel-servidor normalizada (__funciones). • Reparto normalizado de tareas entre los servidores. • Kernel programable: se define el LDD para la descripción de aplicaciones multimedia. • Log centralizado: seguimiento cronológico de la secuencia de trazas generadas por la aplicación. Javier López García

  12. ARQUITECTURA DEL SERVIVOX (II) Javier López García

  13. EL KERNEL • Núcleo de ejecución del autómata. • Lenguaje de alto nivel especializado en aplicaciones con interfaces vocales y multimedia (LDD). • Principales objetos del kernel: • Autómata y Ejecutar autómata. • Tabla de funciones. • Argumentos y Pila de Subrutinas. • Eventos y Errores. • Variables y Variables iniciales. • Configuración y Log. • Otros: fechasHoras, strings, ficheros, temporiz, matrices. Javier López García

  14. FUNCIONAMIENTO DEL KERNEL PilaSub y Argumentos Tabla Func. 2 1 Automata Ejecutor __Funciones Funciones C 4 3 Eventos y errores Config y Log Variables Javier López García

  15. ÍNDICE • Objetivos • Análisis y diseño de sistemas SW • Arquitectura de SERVIVOX: el kernel • Reconocimiento: TIDAISL • Matrices • Evaluador de expresiones • Conclusiones • Líneas futuras Javier López García

  16. TIDAISL • Plataforma donde se prueban los nuevos parametrizadores y reconocedores. • Mains que integran: test bench + recono/param. • Objetivos: • Separar el test bench del recono/param. • Proveer operaciones síncronas en trama. • Crear librerías de procesamiento integrables en SERVIVOX: • paramet: rasta, mfcc. • HMM_SC_DC • lib_comun: configuración, listas... Javier López García

  17. CLASES DE RECONOCIMIENTO (I) • Proponer una nueva arquitectura para las clases de reconocimiento de SERVIVOX. • Reducir la herencia (inclusión). • Desposeerlas de la funcionalidad de reconocimiento: clases meramente interfaz. • Integrar las librerías de TIDAISL disponibles. • Realizar de forma práctica un reconocedor de una etapa: TReconoNuevo. Javier López García

  18. CLASES DE RECONOCIMIENTO (II) Javier López García

  19. ÍNDICE • Objetivos • Análisis y diseño de sistemas SW • Arquitectura de SERVIVOX: el kernel • Reconocimiento: TIDAISL • Matrices • Evaluador de expresiones • Conclusiones • Líneas futuras Javier López García

  20. MATRICES DEL LDD (I) • Dotar al LDD de arrays multidimensionales accesibles por índice y por clave. • Conjunto de pares atributo-valor. • Aplicaciones más legibles. • Diseño a medida para el módulo matrices. • Implementación puramente orientada a objetos. • Programación en C++ haciendo uso de la librería estándar (STL). Javier López García

  21. MATRICES DEL LDD (II) Javier López García

  22. EVALUADOR DE EXPRESIONES • Evaluador de expresiones aritmético-lógicas con variables. • Incorpora: • Operadores lógicos. • Paréntesis. • Las precedencias habituales en C. • Diseño flexible para poder usarse más allá de la mera asignación: clase virtual TgestorVariables. • Ejemplo: “n_var2>(1+n_var)/3.1+2*3” Javier López García

  23. RESUMEN • Análisis de alto nivel de SERVIVOX orientado a objetos. • Re-diseño del arquitectura y su implementación (prototipado evolutivo). • Rediseño de parte de TIDAISL y de las clases de reconocimiento y parametrización de SERVIVOX. • Funcionalidad añadida al LDD: • Evaluador de expresiones aritmético-lógicas. • Arrays multidimensionales. • Paso de argumentos a subrutinas. • Variables locales. Javier López García

  24. CONCLUSIONES (I) • El análisis orientado a objetos es una herramienta más potente que el análisis estructurado. • El prototipado evolutivo es una estrategia adecuada para desarrollar un sistema: • Es más seguro. • Implica menor coste. • Pero se pueden heredar características del sistema original. • La importancia de un análisis natural: • El sistema es más fácilmente comprensible. • El sistema puede crecer más fácilmente. • Al integrar TIDAISL y SERVIVOX hay que evitar la duplicación del código: usar librerías. Javier López García

  25. CONCLUSIONES (II) • Importancia de una buena documentación: • No sólo documentación de uso (manuales), • sino también documentación interna (desarrolladores). • Comparación con otros proyectos: • GTH: ahora situación análoga a TIDAISL o síntesis. • Empresa: hay más separación entre desarrolladores y pruebas de sistemas y más documentación interna (pero puede no ser de calidad porque se hace por cumplir). • Logros concretos del proyecto: • Desarrollo de aplicaciones (RENFE) facilitado por la ampliación del LDD: variables locales y subrutinas. • Añadir una nueva función de reconocimiento es más fácil. • La incorporación de personal es más sencilla (doc + arq). Javier López García

  26. LÍNEAS FUTURAS • Ejecución distribuida • Re-diseño de otros módulos de reconocimiento (dígitos, preselección y deletreo). • Registrar cambios en el repositorio de TIDAISL. • Incorporación del evaluador a la sintaxis de las asignaciones del LDD. • Re-diseño de algunas aplicaciones existentes empleando variables locales y paso de parámetros. • Eliminación del procesamiento en segundo plano por medio de funciones idle. Javier López García

  27. ¿PREGUNTAS? Javier López García

  28. LA ARQUITECTURA GALAXY (I) • Consiste en: • Una estructura cliente-servidor. • Reparto normalizado de tareas entre servidores. • Protocolos de comunicación normalizados. • Módulo central (Hub) que canaliza las comunicaciones controlado por un lenguaje de “script”. • Objetivos: • Favorecer la interoperabilidad de equipos y el “plug&play”. • Hacer flexible el diálogo, gracias a la configurabilidad del “hub”. Javier López García

  29. LA ARQUITECTURA GALAXY (II) Generación del lenguaje Conversión texto-voz Gestor del diálogo HUB Servidor de audio Back-end de la aplicación Reconocimiento de habla Seguimiento del contexto “Parsing” del lenguaje Javier López García

  30. CARACTERÍSTICAS DEL LDD • Instrucciones síncronas: aritméticas, strings, arrays. • Instrucciones especializadas: • Asíncronas: reco, agentes animados, ... • Síncronas: mail • Excepciones: • colgado • timeout • fin de intentos • cadena corta • Variables: predefinidas, de usuario, locales. • Instrucciones de control: IF, WHILE, SUBRUTINAS, .... Javier López García

  31. Subrutinas y variables locales • Ejemplo de uso: • gosub SINTETIZAR_MENSAJE_LARGO_ARRAY: (n_array_mensaje_largo_dar_timeout, 2;n_result); • Ejemplo de subrutina: • SUBRUTINA SINTETIZAR_MENSAJE_ARRAY: (n_sub_array_mensajes, n_sub_indice_array_mensajes; n_resultado) • DEF_VAR • s_mensaje_aux • FIN_VAR • LEE_ARRAY (n_sub_array_mensajes, n_sub_indice_array_mensajes; s_mensaje_aux); • sintetizar (s_mensaje_aux;); • n_resultado=0; Javier López García

More Related