scieee AI-readable full text Open interactive document viewer

Repositorio Institucional de Documentos

Abstract

El aprendizaje del habla es un proceso considerado natural y sencillo en la especie humana. Sin embargo, es fruto de complejos procesos mentales y de maduración de vital importancia al tratarse de una de las primeras destrezas sociales adquiridas, base de futuros desarrollos cognitivos, intelectuales y emocionales. Problemas al aprender a hablar pueden suponer futuros retrasos en la educación, o dificultades en la integración social de los niños, especialmente en aquellos casos en los que se añade algún grado de discapacidad mental o física. Esta Tesis de Fin de Máster se centra en la caracterización de un dispositivo de interfaz de usuario para su utilización como herramienta orientada al reconocimiento automático del habla en entornos pedagógicos a través de aplicaciones informáticas. Para ello se han diseñado dos soluciones de software. La primera de ellas se centra en la creación de una plataforma base sobre la que desarrollar aplicaciones que hagan uso de toda la potencialidad de un dispositivo sensor orientado a la creación de interfaces naturales de usuario. Esta solución, además, ha servido de base para el desarrollo de herramientas y aplicaciones usadas a lo largo del mismo. La segunda es un reconocedor de palabras aisladas con el que evaluar las capacidades de dicho dispositivo en cuanto a sus capacidades de obtención de señales de audio y el procesado interno que sobre éstas realiza y cómo afectan a la acción de dicho reconocedor. Para poder llevar a cabo esta caracterización se ha creado una base de datos de señales de voz con diferentes locutores, posiciones y opciones de procesado de audio que han servido de base para la obtención de resultados cuantificables. Arrúe Lobera, Álvaro; Miguel Artiaga, Antonio

Full text

Tesis Fin de Máster Máster en Tecnologías de la Información y Comunicaciones en Redes Móviles Dispositivo de interfaz de usuario orientado a enseñanza del habla por ordenador: Caracterización acústica y diseño e implementación de aplicación interactiva ESCUELA DE INGENIERÍA Y ARQUITECTURA UNIVERSIDAD DE ZARAGOZA FEBRERO 2013 AUTOR: ÁLVARO ARRÚE LOBERA DIRECTOR: DR. ANTONIO MIGUEL ARTIAGA Dispositivo de interfaz de usuario orientado a enseñanza del habla por ordenador Caracterización acústica y diseño e implementación de aplicación interactiva 2 Tesis Fin de Máster – Máster en Tecnologías de la Información y Comunicaciones en Redes Móviles 3 Dispositivo de interfaz de usuario orientado a enseñanza del habla por ordenador Caracterización acústica y diseño e implementación de aplicación interactiva 4 RESUMEN El aprendizaje del habla es un proceso considerado natural y sencillo en la especie humana. Sin embargo, es fruto de complejos procesos mentales y de maduración de vital importancia al tratarse de una de las primeras destrezas sociales adquiridas, base de futuros desarrollos cognitivos, intelectuales y emocionales. Problemas al aprender a hablar pueden suponer futuros retrasos en la educación, o dificultades en la integración social de los niños, especialmente en aquellos casos en los que se añade algún grado de discapacidad mental o física. Esta Tesis de Fin de Máster se centra en la caracterización de un dispositivo de interfaz de usuario para su utilización como herramienta orientada al reconocimiento automático del habla en entornos pedagógicos a través de aplicaciones informáticas. Para ello se han diseñado dos soluciones de software. La primera de ellas se centra en la creación de una plataforma base sobre la que desarrollar aplicaciones que hagan uso de toda la potencialidad de un dispositivo sensor orientado a la creación de interfaces naturales de usuario. Esta solución, además, ha servido de base para el desarrollo de herramientas y aplicaciones usadas a lo largo del mismo. La segunda es un reconocedor de palabras aisladas con el que evaluar las capacidades de dicho dispositivo en cuanto a sus capacidades de obtención de señales de audio y el procesado interno que sobre éstas realiza y cómo afectan a la acción de dicho reconocedor. Para poder llevar a cabo esta caracterización se ha creado una base de datos de señales de voz con diferentes locutores, posiciones y opciones de procesado de audio que han servido de base para la obtención de resultados cuantificables. Tesis Fin de Máster – Máster en Tecnologías de la Información y Comunicaciones en Redes Móviles 5 A mi familia, a mis amigos, a Anat, por acompañarme durante este trayecto, en un año tan lleno de cambios y oportunidades, en el que sobre todo, he aprendido. Dispositivo de interfaz de usuario orientado a enseñanza del habla por ordenador Caracterización acústica y diseño e implementación de aplicación interactiva 6 Contenido RESUMEN .................................................................................................................................... 4 Contenido .................................................................................................................................... 6 Índice de figuras .......................................................................................................................... 8 1. INTRODUCCIÓN ................................................................................................................. 10 1.1. Antecedentes y motivación ............................................................................................ 10 1.2. Objetivos ........................................................................................................................ 10 1.3 Organización de la memoria ........................................................................................... 11 2. ESTADO DEL ARTE ............................................................................................................. 12 2.1. Reconocimiento automático del habla .......................................................................... 12 2.1.1. Introducción ............................................................................................................ 12 2.1.1. Estado del arte ........................................................................................................ 12 2.1.2. Arquitectura ............................................................................................................ 12 Funcionamiento ................................................................................................................ 12 2.2. Hardware/Software: Microsoft Kinect ........................................................................... 15 2.2.2. Microsoft Kinect ...................................................................................................... 15 2.2.3. Características acústicas de Kinect y procesado de señal de audio ........................ 16 2.2.4 Entornos de desarrollo de Microsoft Kinect ............................................................ 17 3. DESARROLLO ..................................................................................................................... 18 3.1 Framework de software .............................................................................................. 18 3.2. Obtención de los datos de voz ....................................................................................... 19 3.2.1. Preparación de las medidas .................................................................................... 19 3.2.2. Locutores y palabras de entrenamiento y test ....................................................... 20 3.2.3. Configuración de Microsoft Kinect .......................................................................... 21 3.3. Procesado de los datos................................................................................................... 21 3.3.1 Estructuras y archivos .............................................................................................. 21 3.3.2. Procesado ................................................................................................................ 22 3.4. Obtención de resultados ................................................................................................ 23 3.4.1. Análisis cuantitativo ............................................................................................... 23 3.4.2. Análisis dimensional ............................................................................................... 25 4. CONCLUSIONES Y LÍNEAS FUTURAS .................................................................................. 28 5. DIAGRAMA DE GANTT ....................................................................................................... 29 6. BIBLIOGRAFÍA .................................................................................................................... 31 ANEXO A: RECONOCEDORES AUTOMÁTICOS DEL HABLA ........................................................ 33 Tesis Fin de Máster – Máster en Tecnologías de la Información y Comunicaciones en Redes Móviles 7 A.1. Reconocimiento automático del habla .......................................................................... 33 A.1.1. Introducción ............................................................................................................ 33 A.1.1. Estado del arte ........................................................................................................ 33 A.1.2. Arquitectura ............................................................................................................ 35 A.1.3. Clasificación y precisión de RAH ............................................................................. 44 ANEXO B: MICROSOFT KINECT .................................................................................................. 46 B.1. Introducción: Interfaces multimodales e Interfaces Naturales de Usuario ................... 46 B.2. Microsoft Kinect ............................................................................................................. 46 B. 3. Características acústicas de Kinect y procesado de señal de audio .............................. 49 B.3.1. Acoustic Echo Reduction ......................................................................................... 49 B.3.2. Noise Suppression y Automatic Gain Control ......................................................... 50 B.3.3. Beamforming ........................................................................................................... 50 B.4. Entornos de desarrollo de Microsoft Kinect (Kinect SDK y OPENNI) ............................. 51 ANEXO C: FRASES DE ENTRENAMIENTO Y TEST ........................................................................ 54 ANEXO D: FRAMEWORK DE SOFTWARE ................................................................................... 57 D.1. Introducción ................................................................................................................... 57 D.2. Aplicaciones ................................................................................................................... 57 Total Explorer .................................................................................................................... 57 Voice Sampler .................................................................................................................... 58 D.3. Inicialización ................................................................................................................... 59 D.4. Eventos: Captura de esqueletos, RGB y profundidad .................................................... 59 D.5. Captura de voz y creación del archivo de muestra ........................................................ 60 D.6. Nomenclatura de las muestras ...................................................................................... 60 D.7. Representación visual: Direct2D .................................................................................... 61 D.8. Módulo de juego – Tablero ............................................................................................ 62 D.9. Opciones de trabajo, visualización y grabación ............................................................. 62 D.9.1. Menús desplegables de modos de trabajo ............................................................. 62 D.9.2. Opciones de visualización de la señal de audio ...................................................... 63 D.9.3. Botones de acción de la aplicación ......................................................................... 63 D.10. Scripts .......................................................................................................................... 63 D.11. Software y Hardware utilizado en su desarrollo ......................................................... 64 ANEXO E: RESULTADOS Y VALIDACIÓN ..................................................................................... 65 ANEXO F: SOFTWARE UTILIZADO PARA EL DESARROLLO DEL RAH .......................................... 67 HTK Hidden Markov Model Toolkit ....................................................................................... 67 Dispositivo de interfaz de usuario orientado a enseñanza del habla por ordenador Caracterización acústica y diseño e implementación de aplicación interactiva 8 Mathworks MATLAB.............................................................................................................. 67 ANEXO G: FUNCIONES IMPLEMENTADAS EN MATLAB ............................................................. 69 G.1. Funciones de entrenamiento ......................................................................................... 69 G.2. Funciones de reconocimiento ....................................................................................... 69 G.2. Funciones de resultados y representaciones ................................................................ 70 Índice de figuras Figura 1 Esquema de la arquitectura de un RAH genérico ....................................................... 13 Figura 2 Cadena de tratamiento de señales de voz para extraer su vector de características. 14 Figura 3: Estructura genérica de un HMM ................................................................................ 14 Figura 4 Kinect y sus componentes ........................................................................................... 15 Figura 5 Caja acústica de los micrófonos y esquema AEC de Kinect ......................................... 16 Figura 6 Interacciones Hardware/Software de Kinect .............................................................. 17 Figura 7 Imágenes de Total Explorer y Voice Sampler en funcionamiento .............................. 18 Figura 8 Posiciones de grabación de frases de entrenamiento y test ...................................... 19 Figura 9 Tasa de aciertos por modelo comparado entre locutores .......................................... 24 Figura 10 Tasa de aciertos por test para el locutor Álvaro ....................................................... 24 Figura 11 Tasa de aciertos por test para el locutor Anat .......................................................... 25 Figura 12 Análisis de la variación residual según la dimensionalidad de los modelos entrenados para el locutor Álvaro ............................................................................................ 26 Figura 13 Análisis de la variación residual según la dimensionalidad de los modelos entrenados para el locutor Anat ............................................................................................... 26 Figura 14 Mapa de vecindad de los modelos adaptados al locutor Álvaro (Raw izquierda, Proc. derecha) .................................................................................................................................... 27 Figura 15 Mapa de vecindad de los modelos adaptados al locutor Anat (Raw izquierda, Proc Derecha) .................................................................................................................................... 27 Figura 16 Diagrama de Gantt del proyecto y las tareas realizadas ........................................... 30 Figura 17 Esquema de la arquitectura de un RAH genérico ..................................................... 35 Figura 18 Cadena de tratamiento de señales de voz para extraer su vector de características ................................................................................................................................................... 37 Figura 19: Estructura genérica de un HMM .............................................................................. 38 Figura 20 HMM de orden 1 ....................................................................................................... 39 Figura 21 Proceso de adaptación supervisada de las gaussianas siguiendo un proceso MAP . 42 Figura 22 El algoritmo de Viterbi para reconocimiento de palabras aisladas ........................... 43 Figura 23 Kinect y sus componentes ......................................................................................... 46 Figura 24 Articulaciones monitorizadas por el motor de esqueletos de Kinect ....................... 48 Figura 25 Matriz pseudoaleatoria emitida por Kinect .............................................................. 48 Figura 26 Caja acústica de los micrófonos de Kinect [8] ........................................................... 49 Figura 27 Esquema de AEC estéreo de Kinect [8] ..................................................................... 50 Figura 28 Respuesta en magnitud del array de micrófonos con Beamsteering [8] .................. 50 Tesis Fin de Máster – Máster en Tecnologías de la Información y Comunicaciones en Redes Móviles 9 Figura 29 Interacciones HW/SW de Kinect ............................................................................... 51 Figura 30 Arquitectura del SDK ................................................................................................. 52 Figura 31 Imagen de Total Explorer en funcionamiento ........................................................... 57 Figura 32 Imagen de Voice Sampler en funcionamiento .......................................................... 58 Figura 33 Tasa de aciertos de todos los modelos entrenados y testeados en las cuatro posiciones de referencia ........................................................................................................... 65 Índice de tablas Tabla 1 Características técnicas del sensor Microsoft Kinect ................................................... 15 Tabla 2. Número de muestras de voz tomadas en la base de datos ........................................ 20 Tabla 3 Modos de Kinect capturados para entrenamiento y test ............................................ 21 Tabla 4 Tipos de Reconocedores Automáticos del Habla ......................................................... 44 Tabla 5 Factores que afectan a la precisión de un RAH ............................................................ 44 Tabla 6 Características técnicas del sensor Microsot Kinect ..................................................... 47 Tabla 7 Características de las diferentes SDK............................................................................ 51 Tabla 8 Requisitos técnicos de la plataforma Kinect for Windows SDK .................................... 52 Tabla 9 Frases de entrenamiento .............................................................................................. 54 Tabla 10 Palabras de test .......................................................................................................... 55 Tabla 11 Modos de seguimiento de jugadores y Kinect ........................................................... 62 Tabla 12 Modos de trabajo de Kinect en audio ........................................................................ 63 Tabla 13 Opciones de visualización de la señal de audio .......................................................... 63 Tabla 14 Botones de acción para captura de sonido ................................................................ 63 Tabla 15 Campos de configuración del script de automatización de medidas ......................... 64 Tabla 16 Tasa de aciertos para cada modelo y test .................................................................. 66 Tabla 17 Variables de trabajo del script GetFigure.m a determinar para obtener una matriz de resultados .................................................................................................................................. 71 Dispositivo de interfaz de usuario orientado a enseñanza del habla por ordenador Caracterización acústica y diseño e implementación de aplicación interactiva 16 audio aproximadamente -50° a 50° de detección.  Automatic Echo Cancellation  Noise suppresion  Automatic Gain Control Motor  Control de inclinación del módulo Acelerómetro  Utilizado para estimar inclinación de la cámara Ángulo de visión  43° Vertical, 57° Horizontal Rango  Modo lejano: 1.2-3.9m  Modo cercano: 0.4-3m (solo Kinect for Windows) Resolución  Resolución espacial x/y: 3mm @2m  Resolución de profundidad z: 1cm @2m Microsoft Kinect incluye sistemas de captura de audio y video con capacidad de procesado por hardware en la propia consola, siendo transmitido un flujo de audio y video hasta el PC. 2.2.3. Características acústicas de Kinect y procesado de señal de audio Aunque visualmente es un dispositivo muy potente para su coste de mercado (gracias a la fabricación en escala), desde el punto de vista del sonido, Microsoft Kinect incluye importantes avances en tratamiento de audio [8]. El dispositivo Kinect dispone de cuatro micrófonos supercardiodes en array, 3 de ellos en un extremo de la carcasa y otro en el extremo contrario del frontal del dispositivo. Figura 5 Caja acústica de los micrófonos y esquema AEC de Kinect Gracias a esta arquitectura acústica, y al procesado digital que realiza a través del sistema de audio de Windows, Kinect es capaz de ofrecer diferentes mejoras en la captura de sonido, a saber: Acoustic Echo Reduction Kinect debe enfrentarse al ruido generado por los sonidos reproducidos por la aplicación que se está ejecutando y, para ello, utiliza algoritmos de cancelación activa de ruido y supresión activa de ruido de forma adaptativa. Tesis Fin de Máster – Máster en Tecnologías de la Información y Comunicaciones en Redes Móviles 17 Noise Suppression y Automatic Gain Control Además de la AEC, Kinect introduce algoritmos de eliminación de ruido de forma estadística y un sistema variable de ganancia de los micrófonos para adaptar dinámicamente señales de voz de baja presión sonora. Beamforming Uno de los puntos más interesantes en el tratamiento de audio de Kinect es la capacidad de formar haces de captura (Beamforming) de sonido aumentando la directividad del array de 4 micrófonos. Para ello, Kinect crea un haz móvil (Beamsteering), que busca el máximo de intensidad de la señal de voz recibida, obteniendo una ganancia de directividad máxima y reduciendo el ruido de interferencia procedente de otras direcciones. 2.2.4 Entornos de desarrollo de Microsoft Kinect La comunicación del dispositivo Microsoft Kinect se realiza a través de un puerto USB 2.0 y con diferentes librerías incluidas en los distintos kits de desarrollo. Figura 6 Interacciones Hardware/Software de Kinect 1 El éxito del lanzamiento, su bajo coste y sus características avanzadas de captura de información, promovieron la aparición de diferentes drivers y SDK desarrollados de forma independiente y ajena a Microsoft. Finalmente, la compañía de Redmond, consciente de la importancia de alimentar a una gran comunidad de desarrolladores de software y servicios, así como del entorno académico y científico, hizo público un SDK 2 propietario pero de libre uso sin ánimo de lucro para el desarrollo de aplicaciones en PC utilizando Kinect. En la realización de esta TFM se ha utilizado el dispositivo Kinect original para consola XBOX360, por su menor precio, facilidad de adquisición y con el objetivo final de caracterizar su respuesta acústica, usándolo con un reconocedor automático del habla con palabras aisladas con el objetivo de evaluar el efecto del procesado en la cadena de audio a efectos de reconocimiento. En el ANEXO B se puede encontrar más información acerca de las características del dispositivo Kinect. 1 http://msdn.microsoft.com/en-us/library/jj131023.aspx 2 http://www.microsoft.com/en-us/kinectforwindows/ Dispositivo de interfaz de usuario orientado a enseñanza del habla por ordenador Caracterización acústica y diseño e implementación de aplicación interactiva 18 3. DESARROLLO 3.1 Framework de software Plataforma de desarrollo Esta plataforma ha sido implementada utilizando Visual Studio 2010 con los SDK correspondientes a DirectX y Kinect for Windows actualizados a su última versión y utilizando C++ como lenguaje de programación. El uso de C++ como lenguaje de programación [9] frente a C# se decidió como una de los requisitos de la TFM con el fin de garantizar máxima compatibilidad con las aplicaciones previamente realizadas por el Departamento de Tecnologías de Voz y facilitar su adaptación al sensor Kinect. Figura 7 Imágenes de Total Explorer y Voice Sampler en funcionamiento El software se puede dividir en diferentes módulos de acuerdo a las funcionalidades que en él se pueden encontrar y dependiendo de la naturaleza de la información capturada, así como de la configuración de los dispositivos: 1) Inicialización: Setup de Kinect y de las variables de trabajo, juego, audio… 2) Visual: Centrado en la presentación de los flujos de video y el esqueleto 3) Audio: Centrado en el tratamiento y visualización de las señales de audio capturadas. Total Explorer La plataforma se ha diseñado de una forma flexible para poder desarrollar videojuegos de tipo tablero, usados anteriormente por el departamento en actividades de educación especial. Total Explorer es la base para el desarrollo de este tipo de aplicaciones tablero, con la incorporación de las capacidades de detección de gestos y voz de Kinect. Voice Sampler Esta aplicación permite seleccionar los modos de funcionamiento de la arquitectura audio de Kinect y facilita la labor de grabación de las muestras de voz para su posterior uso en el reconocedor de palabras aisladas. En el ANEXO D se puede encontrar más información sobre la implementación y funcionalidades de la plataforma de software. Tesis Fin de Máster – Máster en Tecnologías de la Información y Comunicaciones en Redes Móviles 19 3.2. Obtención de los datos de voz 3.2.1. Preparación de las medidas Introducción y objetivos La obtención de los datos se debe estudiar con detenimiento para poder obtener muestras significativas que permitan, por una parte, obtener frases de entrenamiento para poder adaptar los modelos base a cada locutor y, posteriormente, capturar palabras de test para cuantificar la efectividad del reconocedor. En el caso particular de esta TFM se han realizado estas medidas en un entorno similar al del uso habitual de un dispositivo Kinect en un entorno doméstico y destinado a un uso lúdico. Para ello, se han presentado los elementos de la cadena de grabación en una sala de estar con una distribución asimétrica y tomando medidas en las áreas de trabajo visual del sensor. Figura 8 Posiciones de grabación de frases de entrenamiento y test Disposición de los dispositivos y de los componentes El dispositivo Microsoft Kinect se situó en un punto fijo para el resto de medidas, a 1.9 m del suelo y a 10 cm de la pared, con el eje visual inclinado para obtener un rayo directo a la boca de un locutor de altura 1.70m, de pie y a 2m del eje vertical del dispositivo, emulando las circunstancias habituales de uso. Ningún elemento extraño se sitúa entre el dispositivo y el locutor, manteniendo en todo momento la condición de LoS (Line of Sight) tanto para la parte visual como la acústica. Asunción de simetría respecto al eje De acuerdo a las especificaciones técnicas de Microsoft, el dispositivo Kinect tiene simetría funcional respecto al eje perpendicular al frontal de la carcasa, o eje de captura de Dispositivo de interfaz de usuario orientado a enseñanza del habla por ordenador Caracterización acústica y diseño e implementación de aplicación interactiva 20 información. Estas consideraciones se han tomado como medida de precaución, ya que en todo momento las capturas de voz se han realizado manteniendo la condición de LoS con el dispositivo. Posiciones de entrenamiento y test En la Figura 8 se pueden observar las diferentes posiciones de referencia donde se tomaron tanto las muestras de entrenamiento como de test para cada uno de los locutores y cada una de las diferentes configuraciones de tratamiento de señal del dispositivo Kinect. 3.2.2. Locutores y palabras de entrenamiento y test Locutores Para la caracterización del Reconocedor Automático del Habla (RAH) se capturaron muestras de voz de entrenamiento y test de dos locutores distintos: un hombre y una mujer jóvenes con la voz ya madura, sin entrenamiento previo en la locución y sin enfermedades o trastornos aparentes en el habla. En esta TFM, al tratarse de un estudio preliminar, se han elegido dos locutores cercanos a la franja demográfica de uso de Microsoft Kinect, sin embargo sería necesario profundizar en otros tipos de usuario. En cuanto a la aplicación práctica de la Kinect para personas con necesidades especiales, al ser un sector muy específico, no entraría en las categorías asociadas al estudio estadístico de la población, siendo ideal un entrenamiento específico de los modelos de acuerdo a las necesidades especiales de sus usuarios. Frases de entrenamiento Para esta TFM se obtuvo un corpus propio de acuerdo a las diferentes características de Kinect en captura y tratamiento de audio. Para el entrenamiento de los modelos se tomaron muestras de cada locutor leyendo una batería de frases de entrenamiento con los principales fonemas en español y con una mayor presencia de aquellos más comunes en lengua española [10]. Se puede consultar la lista de frases en el ANEXO C. Las frases de entrenamiento se grabaron en cada una de las posiciones fijas descritas en la Figura 8. Tabla 2. Número de muestras de voz tomadas en la base de datos Locutores Posiciones Modos de Kinect Nº de Frases Total de frases Entrenamiento 2 8 2 50 1.600 Test 2 4 2 54 864 TOTAL 2.464 Palabras de test Para las palabras de test utilizadas para determinar las tasas de éxito del RAH se grabaron 54 palabras para cada locutor, con diferentes características de grabación en la Kinect y en las posiciones marcadas en la Figura 8. Cabe destacar que las grabaciones de test se realizaron en puntos de especial significación entre los utilizados para el entrenamiento y también en puntos que no estaban referenciados originalmente en el entrenamiento. Se puede encontrar el listado completo de palabras de test en el ANEXO C. Tesis Fin de Máster – Máster en Tecnologías de la Información y Comunicaciones en Redes Móviles 21 3.2.3. Configuración de Microsoft Kinect A través del SDK para Kinect oficial de Microsoft es posible configurar diferentes parámetros en la captura de audio de acuerdo a las opciones mostradas en la Tabla 3. En verde se resaltan las opciones que se utilizaron para capturar las muestras de entrenamiento y test con el objetivo de caracterizar el dispositivo Kinect, sin ninguna mejora de sonido a partir de tratamiento y con todos los sistemas de corrección disponibles. Cada una de estas opciones de captura de sonido se realizó para cada una de las posiciones de test y entrenamiento y para cada uno de los locutores. Para poder organizar y ejecutar la captura de muestras de una forma rápida, eficaz y ordenada se desarrolló una aplicación basada en Kinect SDK, Voice Sampler (ver ANEXO D). Tabla 3 Modos de Kinect capturados para entrenamiento y test 3.3. Procesado de los datos Una vez obtenidos las capturas de datos de entrenamiento y test para cada locutor y con los diferentes modos de audio de Kinect, es necesario tratar los datos para obtener resultados acerca de la bondad del dispositivo Kinect de Microsoft a la hora de utilizarlo como elemento de captura dentro de un reconocedor automático del habla. Para ello, es necesario aplicar diferentes cálculos y modificaciones a las muestras PCM a fin de poder cuantificar matemáticamente la tasa de aciertos. En esta TFM se ha implementado un reconocedor de palabras aisladas en Matlab haciendo uso De modelos HMM entrenados mediante la herramienta de software libre HTK (Hidden Markov Model Toolkit). 3.3.1 Estructuras y archivos Ficheros *.list  File path list El script List_test_scripts se encarga de buscar en el árbol de directorios indicado todas las carpetas con archivos de test o train que se encuentren, generando un archivo de texto con extensión .list, en el cual se pueden encontrar los paths a cada archivo .mfc con los vectores de características de cada audio. El script revisa directorio a directorio buscando las carpetas test y analizando, carpeta a carpeta, el nombre del locutor, distancia, grados y procesado de los archivos. Al utilizar una nomenclatura estructurada a la hora de capturar las muestras (ver ANEXO D.6) es sencillo automatizar esta operación. Configuración array Acoustic Echo Suppression Single Channel Off On Single Channel con AEC Off On Optibeam Array Off On Optibeam Array con AEC Off On Dispositivo de interfaz de usuario orientado a enseñanza del habla por ordenador Caracterización acústica y diseño e implementación de aplicación interactiva 22 Ficheros *.txt  Listas de palabras Existen diferentes archivos .txt con la lista de palabras de test grabadas y el diccionario de posibles palabras contra las que testear. Estructuras Una de las condiciones seguidas en la elaboración del procesado en Matlab de las señales de voz capturadas es el mantenimiento de una política de alta automatización de resultados, dada la gran cantidad de archivos, modelos, frases y tests utilizados. Para ello, se han creado dos estructuras de datos tipo struct en Matlab que facilitan la obtención de variables y datos de una forma ordenada y recurrente: st_tests y st_models.  Structs: st_tests speaker_name: nombre del locutor distance: distancia en cm al micrófono degrees: grados respecto al eje de grabación de la kinect processing: procesado o no de la señal de test m_LH: [54x57 double]: matriz con la log verosimilitud de los pares palabra dicha/palabra del diccionario recogn_word: índice de la palabra reconocida (máxima log verosimilitud) recogn_LH: log-verosimilitud de la palabra reconocida file: nombre del File Path List utilizado para el test  Structs: st_models speaker_name: nombre del locutor distance: distancia en cm al micrófono degrees: grados respecto al eje de grabación de la kinect processing: procesado o no de las señales de entrenamiento del modelo model_db: modelo entrenado correspondiente tests: struct st_tests con los tests para ese modelo 3.3.2. Procesado Extracción de los vectores de características Haciendo uso de HTK se han obtenido los vectores de características de las diferentes muestras de voz tanto para entrenamiento como para test. Estos vectores de características mantienen la misma nomenclatura que las señales de audio capturadas pero tienen extensión .mfc. Cada uno de los vectores de características de cada frame de sonido procesado está compuesto por 12 MFCC más la información de energía (por triplicado), que junto a las derivadas y aceleraciones hacen un total de 39 elementos por frame. Baseline: Modelo simple Previamente a los procesos de adaptación y test, se ha generado un modelo simple que servirá de base para los diferentes pasos. Este modelo simple, baseline para los diferentes locutores, posiciones y características de grabación está formado por fonemas, cada uno de los cuales tiene 3 estados. Cada uno de estos estados a su vez está modelado por 8 gaussianas. Dados los objetivos de la presente TFM, este modelo, aunque demasiado simple para RAHs que deban trabajar en entornos reales de funcionamiento, permite una mayor flexibilidad y Tesis Fin de Máster – Máster en Tecnologías de la Información y Comunicaciones en Redes Móviles 23 reducción de la complejidad a la hora de afrontar al análisis de las características del dispositivo Kinect. Funciones en Matlab Para la implementación del reconocedor de palabras aisladas en Matlab se han programado diferentes funciones y scripts en lenguaje M. Asimismo, se ha usado la librería vivo_reco 3 de HTK para Matlab con el fin de testear los diferentes modelos con las palabras de test correspondientes, para cada posición, locutor y modo de funcionamiento del audio de Kinect. Se pueden dividir en tres grandes grupos: entrenamiento, reconocimiento y obtención de resultados. En el ANEXO G se puede encontrar un listado de las diferentes funciones y scripts implementados. 3.4. Obtención de resultados 3.4.1. Análisis cuantitativo Para realizar el análisis cuantitativo del reconocedor de palabras aisladas con los modelos entrenados y las posiciones de test, se deben tener en cuenta cómo se han realizado las medidas y en qué condiciones. Para cada locutor se han diferenciado dos tipos de procesado:  Raw: Modo de captura del micrófono de Kinect sin procesado de señal ni Beamforming.  Proc: Modo de captura del micrófono de Kinect con procesado de señal y Beamforming. A su vez, tenemos los datos para los dos locutores descritos en la toma de medidas:  Álvaro: Hombre joven con la voz ya madura, sin entrenamiento previo en la locución y sin enfermedades o trastornos aparentes en el habla.  Anat: Mujer joven con la voz ya madura, sin entrenamiento previo en la locución y sin enfermedades o trastornos aparentes en el habla. Las posiciones de cada modelo son los indicados en la Figura 8: 8 posiciones de grabación y 4 de test. Por otro lado, se han incluido los datos referentes al baseline de las medidas. Este baseline y sus tasas de aciertos se han calculado aplicando el reconocedor de palabras aisladas al modelo simple, sin entrenar, las palabras grabadas para cada posición de test. La obtención de los resultados para el baseline ayuda a identificar el funcionamiento del RAH con modelos adaptados por entrenamiento MAP. Debe destacarse que en esta TFM se han utilizado modelos de partida extremadamente sencillos, con pocos estados y gaussianas. 3 http://www.vivolab.es Dispositivo de interfaz de usuario orientado a enseñanza del habla por ordenador Caracterización acústica y diseño e implementación de aplicación interactiva 24 Se puede encontrar una tabla resumen de valores (Tabla 16) y su representación gráfica (Figura 33) en el ANEXO E donde se puede observar de una manera global el comportamiento de cada modelo entrenado respecto a las distintas posiciones de test. En esta figura global de los datos se puede observar una clara diferencia entre la tasa de aciertos por locutor, siendo mucho mejor en términos globales, la tasa para el locutor Álvaro que para el locutor Anat. Esto puede deberse a diferencias en la dicción de ambos locutores, siendo la del locutor Anat mucho más rápida que la del locutor Álvaro. De una forma más clara se puede observar también en la Figura 9. Esta diferencia tiene incidencia directa en la tasa de reconocimiento global por locutor. Figura 9 Tasa de aciertos por modelo comparado entre locutores Respecto a la tasa de aciertos por test, podemos observar cómo en ambos locutores hay una relación directa entre la tasa de aciertos del baseline y la tasa de aciertos en los modelos adaptados: cuanto mejores han sido los resultados en el baseline, mejor se comportan los modelos adaptados de una forma lineal y fácilmente visualizable (Figura 10 y Figura 11). Figura 10 Tasa de aciertos por test para el locutor Álvaro En ambos casos, además, el reconocimiento es mejor en los modelos y tests donde no se ha realizado procesado de audio, o con una diferencia estadísticamente despreciable, salvo en el 10,00 20,00 30,00 40,00 50,00 60,00 70,00 80,00 90,00 100,00 1 2 3 4 5 6 7 8 BL Tasa de aciertos por modelo Álvaro Raw Álvaro proc Anat raw Anat Proc 10,00 20,00 30,00 40,00 50,00 60,00 70,00 80,00 90,00 100,00 1 2 3 4 Tasa de aciertos por test Álvaro raw proc BL raw BL proc Tesis Fin de Máster – Máster en Tecnologías de la Información y Comunicaciones en Redes Móviles 25 caso del Test 3. Este test se realizó en una posición angular alejada del eje de grabación (30°), y es en este caso particular donde se comportan mucho mejor los modelos con procesado de audio. En este caso domina el efecto del Beamsteering de Kinect permitiendo una tasa de reconocimiento mucho mayor al permitir dirigir el haz del micrófono al punto de interés. Figura 11 Tasa de aciertos por test para el locutor Anat Este mismo efecto se puede observar en la posición 7 de la Figura 9. Esta posición es la más alejada en distancia y ángulo al eje de grabación de Kinect y es, de nuevo, en este caso donde se puede apreciar la mejora del Beamsteering sobre la tasa de reconocimiento en ambos locutores. 3.4.2. Análisis dimensional Como método para intentar identificar parámetros relacionados con la diversidad geográfica de los modelos (en las diversas posiciones utilizadas para entrenamiento y test) se han aplicado los principios de reducción no lineal de dimensionalidad descritos por la Universidad de Stanford [11] y el toolbox de libre acceso. A diferencia de los métodos tradicionales, como PCA o MDS, con este análisis no lineal se utiliza la distancia geodésica frente a la euclídea. En líneas generales, este método calcula las distancias geodésicas entre los puntos (o datos de entrada) más cercanos entre sí, pero a su vez es capaz de mantener intacta la estructura subyacente de los datos, ya que dadas ciertas condiciones, la distancia euclídea puede no ser un camino válido. En el caso del locutor Álvaro, que como hemos visto en el análisis cuantitativo posee unas mejores tasas de acierto, al analizar la variación del error residual conforme aumentamos la dimensionalidad, podemos observar en la Figura 12 que dicho error converge a dos niveles diferenciados a partir de la dimensión número 4, dependiendo de si el audio ha sido procesado o no. Aunque a priori se podría determinar que las grabaciones procesadas tienen un menor error residual, al haber analizado que la tasa de aciertos es menor en este caso, es posible discernir que el procesado AEC y de Beamforming está eliminando información en las grabaciones que es importante para el reconocedor de palabras aisladas, algo que ha sido corroborado en diversos estudios sobre robustez al ruido mediante sustracción espectral en RAH. 10,00 20,00 30,00 40,00 50,00 60,00 70,00 80,00 90,00 100,00 1 2 3 4 Tasa de aciertos por test Anat raw proc BL raw BL proc Dispositivo de interfaz de usuario orientado a enseñanza del habla por ordenador Caracterización acústica y diseño e implementación de aplicación interactiva 32 [14] T. B. Martin, A. L. Nelson, and H. J. Zadell, Speech Recognition by Feature Abstraction Techniques, Tech. Report AL-TDR-64-176, Air Force Avionics Lab, 1964. [15] A. J. Viterbi, Error Bounds for Convolutional Codes and an Asymptotically Optimal Decoding Algorithm, IEEE Trans. Information Theory 13 (2): 260-269, 1967. [16] F. Jelinek, Continuous Speech Recognition by Statistical Methods, Proc. IEEE 64(4): 532- 556, 1976. [17] Z. Ghahramani. An introduction to hidden Markov models and Bayesian networks, International Journal of Pattern Recognition and Artificial Intelligence 15 (1): 9-42, 2001. [18] A. P. Dempster, N. M. Laird and D. B. Rubin. Maximum Likelihood from Incomplete Data via the EM Algorithm, Journal of the Royal Statistical Society Series B (Methodological) 39(1): 1-38, 1977. [19] R. Moore. Speech Processing, McGraw-Hill, 1990. Tesis Fin de Máster – Máster en Tecnologías de la Información y Comunicaciones en Redes Móviles 33 ANEXO A: RECONOCEDORES AUTOMÁTICOS DEL HABLA A.1. Reconocimiento automático del habla A.1.1. Introducción El habla, en su definición formal, es el uso particular o individual por parte del ser humano de la lengua para comunicarse. Tradicionalmente, esta comunicación se realizaba de forma efectiva entre personas, actuando tanto como emisor y como receptor del mensaje, sin embargo, la aparición de la electrónica y la informática durante el siglo XX, introduce un nuevo elemento en la comunicación, siendo un paso natural el desarrollo de técnicas de comunicación oral hombre-máquina. Los reconocedores automáticos del habla (RAH) concentran su labor en este campo, siendo su objetivo final el perfeccionamiento de esta comunicación oral con múltiples beneficios sociales, académicos, industriales, militares y, finalmente, económicos. El RAH es un proceso de clasificación de secuencias de patrones, capaz de procesar la señal de voz emitida por el ser humano y reconocer la información contenida en ella, convirtiéndola en texto o emitiendo órdenes que actúen en consecuencia. Esta tecnología permite la comunicación oral hombre-máquina, abriendo un amplio abanico de aplicaciones prácticas en diferentes sectores:  Sistemas de dictado.  Sistemas de control oral para personas con discapacidad.  Sistemas de asistencia e información para personas con problemas de audición (p.e. subtitulación automática de contenidos audiovisuales).  Aplicaciones telefónicas (p.e. servicios de asistencia técnica telefónica).  Aplicaciones biométricas (p.e. identificación del locutor).  Autoaprendizaje de idiomas  Interfaces multimodales de interacción hombre-máquina. Equipamiento electrónico o informático, como ordenadores, smartdevices (smartphones o tabletas), módulos hardware de control (p.e. dashboard de un coche) y entretenimiento (p.e. Microsoft Kinect) que incluyen el habla como un elemento más de interacción con el usuario de forma bidireccional. La investigación y desarrollo de RAH tiene como objetivo final el reconocedor ideal, es decir, aquel con una tasa de error nula. Sin embargo, la complejidad del sistema obliga al desarrollo e investigación de diversas técnicas para cada uno de los diferentes elementos de la arquitectura del reconocedor (parametrización, entrenamiento, modelado del lenguaje, adaptación del locutor…). A todo ello se unen los distintos avances en hardware y software procedentes de la electrónica y la informática, con un crecimiento exponencial de su capacidad de procesado y una disminución directa de su consumo y precio, lo que ha permitido que en los últimos años aparezcan, finalmente, las primeras aplicaciones basadas en RAH destinadas a un mercado global y a un precio razonable para el consumidor. A.1.1. Estado del arte Diseñar una máquina capaz de imitar al ser humano y su comportamiento, y particularmente su capacidad para hablar de forma natural, ha sido objeto de estudio por parte de ingenieros y Dispositivo de interfaz de usuario orientado a enseñanza del habla por ordenador Caracterización acústica y diseño e implementación de aplicación interactiva 34 científicos a lo largo de los siglos. En los años 1930, los laboratorios Dell [12], propusieron un modelo para el análisis y síntesis del habla, dando inicio a una aproximación sistemática al problema del reconocimiento automático del habla que progresivamente ha llevado de un autómata capaz de responder ante un pequeño número de sonidos hasta los actuales sistemas, capaces de responder ante largas frases expresadas con fluidez y naturalidad, teniendo en cuenta la variabilidad estadística del idioma utilizado. La primera mitad del siglo XX pone de manifiesto la importancia de la respuesta frecuencial como modo de identificación de la naturaleza fonética de la señal de voz, sentando la base de los sistemas modernos de RAH, y de los algoritmos utilizados, identificando el concepto de medida de la potencia espectral del habla (y sus variaciones temporales) o de sus variantes como el cepstrum. Continuando con esta línea, se determina la relevancia del uso de los formantes, modos de resonancia naturales del tracto vocal, como las zonas de mayor concentración de energía de los fonemas y su utilidad en el reconocimiento de palabras aisladas [13]. También se comienzan a utilizar técnicas de análisis estadístico mejorando la fiabilidad de estos primeros reconocedores. Durante los años sesenta se desarrollaron diferentes tecnologías como el análisis por banco de filtros, métodos de normalización temporal [14] y los primeros pasos de las metodologías de programación dinámica [15], permitiendo el reconocimiento de pequeños vocabularios, en torno a 10-100 palabras aisladas. La década de los setenta introduce los modelos de reconocimiento de patrones, los métodos LPC de representación espectral [2], programación dinámica para resolver la problemática de concatenación de palabras, etc... Aumentando los vocabularios en un orden de magnitud, entre 100-1000 palabras. Los ochenta incluyen finalmente los modelos ocultos de Markov (HMM) y modelos estocásticos del lenguaje [4] [16]. Estas dos tecnologías clave tienen como consecuencia un avance sustancial de los vocabularios de los RAH, permitiendo grandes diccionarios de entre 1000 e infinitas palabras, siendo ya limitados por otras condiciones gracias al uso de métodos estadísticos y que, finalmente, permite afrontar problemas de reconocimiento del habla continua de una forma eficaz. En los años 90 continúan las líneas maestras trazadas en la década anterior. Se construyen grandes vocabularios sin limitaciones en los modelos de lenguaje y avances en el reconocimiento y comprensión de habla continua. Se introducen métodos de comprensión estocástica del lenguaje, aprendizaje estadístico de modelos acústicos y del lenguaje, así como un entorno de máquina de estados finitos. Cabe destacar la aparición del HTK Toolkit 4 (Hidden Markov Model Toolkit) de la Universidad de Cambridge en 1999, herramienta versátil y abierta para el manejo y manipulación de HMMs y de uso muy extendido en el ámbito de la investigación de RAH. En la pasada década, es importante destacar la integración de los RAH en diferentes aplicaciones de uso cotidiano. La extensión de dispositivos inteligentes (smartphones, 4 http://htk.eng.cam.ac.uk/ Tesis Fin de Máster – Máster en Tecnologías de la Información y Comunicaciones en Redes Móviles 35 tabletas), con conectividad a internet ha aumentado de forma exponencial la exposición de la gente a este tipo de interacción hombre máquina, dejando de ser una excepción para convertirse en un elemento más de comunicación con dispositivos electrónicos e informáticos. También se ha de destacar la presencia de interfaces multimodales que incluyen los RAH como un elemento más de interacción, dando lugar a HMIs avanzados con carácter militar, académico, y lúdico. A.1.2. Arquitectura Figura 17 Esquema de la arquitectura de un RAH genérico Funcionamiento A partir de los diferentes desarrollos tecnológicos en el ámbito del RAH descritos en el apartado anterior, actualmente y de forma genérica, los RAH que ofrecen mejores resultados son aquellos basados en el teorema de Bayes, la teoría de la información y las técnicas de comparación de patrones y programación dinámica. De acuerdo a la aproximación a partir del teorema de Bayes, podemos describir un reconocedor automático del habla como un sistema en el que se debe disponer de unos patrones asociados a las partes del habla que se van a reconocer (fonemas, palabras, frases…), de manera que procesando una secuencia de vectores de características u observaciones O , tengamos como respuesta la secuencia de patrones que representan a este vector con la probabilidad mayor. La secuencia de vectores O es extraída y procesada a partir de las señales de audio capturadas mediante un micrófono u otro tipo de transductor a partir de diferentes Dispositivo de interfaz de usuario orientado a enseñanza del habla por ordenador Caracterización acústica y diseño e implementación de aplicación interactiva 36 métodos de extracción de características. Este conjunto de observaciones O se puede definir como: =( ,..., ,..., ) 1 t T O o o o [1, ]tT Ecuación A-1 siendo t o el vector de características observado en el instante t, siendo T el número de observaciones. La salida deseada del sistema será una secuencia de fonemas (o palabras si estas son la unidad mínima sintáctica) que deberían aproximarse a las pronunciadas por el locutor: =( ,..., ,..., ) 1 j N W w w w Ecuación A-2 donde N es el número de palabras o fonemas de la secuencia. El RAH deberá aproximarse a esta secuencia de fonemas deseada, que desde un punto de vista probabilístico será aquella secuencia con mayor probabilidad de acuerdo a las observaciones O . Expresado de forma matemática: W ˆargmax ( | )PWWΟ Ecuación A-3 Dado que esta probabilidad no es calculable directamente, aplicamos el teorema de Bayes: W ( ) ( ) ˆargmax () PP P  Ο |W W WΟ Ecuación A-4  ()PW es la probabilidad de la secuencia de palabras W , que se define como el modelo de lenguaje  ()PΟ |W es la probabilidad de observar la secuencia O cuando se pronuncia la secuencia W  ()PΟ se refiere a la probabilidad de las secuencias acústicas. Se puede eliminar al no afectar a la maximización. Obtenemos de esta forma la fórmula fundamental del reconocimiento automático del habla: Tesis Fin de Máster – Máster en Tecnologías de la Información y Comunicaciones en Redes Móviles 37 W ˆargmax ( ) ( )PPWΟ |W W Ecuación A-5 En el esquema de la arquitectura de un reconocedor automático del habla podemos encontrar entonces dos procesos independientes:  Fase de entrenamiento: Fase en la que el reconocedor aprende, a partir de las muestras de voz y texto, los modelos acústicos ()PΟ |W y los modelos de lenguaje ()PW .  Fase de reconocimiento: En ella se produce el reconocimiento propiamente dicho obteniendo como salida la secuencia de palabras reconocidas. Como se puede observar en el esquema del reconocedor genérico (Figura 17), existen diferentes módulos dentro de cada una de las fases de las que está compuesto: Base de datos En la base de datos podemos encontrar las palabras que utilizaremos para entrenar al sistema. Estas palabras deben ser elegidas con cuidado atendiendo a factores como la inclusión de todos los fonemas del lenguaje a reconocer y, además, deben estar balanceadas, es decir, que estos fonemas tengan una tasa de aparición similar a su presencia en dicho lenguaje. Estas palabras deben ser suficientes, ya que su número tiene incidencia directa en la calidad del reconocedor. Extracción de características El módulo de extracción de características, común a la fase de entrenamiento y de reconocimiento, tiene como objetivo procesar las señales de audio tomadas del locutor con el objetivo de resaltar la información relevante para el RAH y eliminar aquella que no tenga importancia fonética. Tradicionalmente, dos son las técnicas utilizadas en la extracción de características, Linear Prediction Coefficients (LPC)[2] y Mel-Frequency Cepstral Coefficients (MFCC)[3]. Esta última técnica será la utilizada en esta TFM. Figura 18 Cadena de tratamiento de señales de voz para extraer su vector de características El proceso de extracción de características a partir de la técnica MFCC se puede observar en la Figura 18. Comienza con la aplicación de un preénfasis de las altas frecuencias para compensar el desplazamiento frecuencial de los datos sonoros debido a la forma de radiación de los labios en la fonación. Posteriormente, se realiza un proceso de enventanado, de 25ms de duración, con la posibilidad de añadir un solape de entorno a los 10 ms para poder obtener una mayor resolución temporal a la hora de realizar la transformada de Fourier de estos datos enventanados. A esta información espectral se le aplican los filtros de Mel (banco de filtros de frecuencia y amplitud variable que replican las ventanas perceptuales del oído humano), Dispositivo de interfaz de usuario orientado a enseñanza del habla por ordenador Caracterización acústica y diseño e implementación de aplicación interactiva 38 introduciendo factores psicoacústicos en la extracción de datos y aumentando la resolución en las medias y bajas frecuencias. Finalmente, se aplica la Transformada Discreta del Coseno (DCT) para decorrelar los coeficientes del vector resultante. Los coeficientes obtenidos con esta técnica poseen una gran cantidad de información en el dominio espectral (de especial relevancia en los formantes). Sin embargo, el vector de características que finalmente será utilizado en el reconocedor incluye otros elementos de información en el dominio temporal (energía, frecuencia de los formantes, velocidad de la fonación) para poder reflejar la variabilidad temporal del habla. Modelo acústico Existen diferentes métodos para obtener el modelado acústico, siendo los más utilizados, como en el caso de la presente TFM, los relacionados con los modelos ocultos de Markov o HMM (Hidden Markov Models)[4]. Los modelos ocultos de Markov son una máquina de estados finita, cuyas observaciones son una función probabilística del estado. En otras palabras, un HMM es un proceso doblemente estocástico formado por: 1) Un proceso estocástico oculto, no observable directamente, que corresponde a las transiciones entre los diferentes estados. 3) Un proceso estocástico observable cuya salida es una secuencia de vectores de voz. Figura 19: Estructura genérica de un HMM A diferencia de un modelo de Markov, en el que son observables los propios estados, en un HMM, estos estados no son visibles, pero sí lo son las variables influenciadas por dicho estado. La unidad mínima de habla elegida (fonema, sílaba, palabra, frase…) queda representada como una sucesión de estados “ocultos”, cada uno de los cuales está caracterizado por una función de densidad de probabilidad o pdf (probability density function) y una probabilidad de transición al resto de posibles estados. Existen diferentes niveles de HMMs, sin embargo, frente a opciones más complejas (matemática y computacionalmente hablando) son muy comunes el uso de HMM de orden 1[17], cuyas restricciones son: 1) el proceso estocástico de generación de las observaciones sólo depende en cada momento de un único estado Tesis Fin de Máster – Máster en Tecnologías de la Información y Comunicaciones en Redes Móviles 39 (independencia de la salida); 2) la transición entre estados sólo depende de los estados origen y destino; y 3) el proceso es de izquierda a derecha en la transición de estados (no es ergódico). Figura 20 HMM de orden 1 Dadas estas restricciones, los parámetros fundamentales que definen un modelo oculto de Markov de orden 1 son: 1) s : Es el conjunto de estados del modelo, siendo N el número de estados que lo forman. =( ,..., ,..., ) 1 j N S s s s Ecuación A-6 2) ,1 j b j N : pdf asociada al estado j-ésimo.   jt bB Ecuación A-7 3) ,1 ,1 ij a i N j N    : Se corresponde con la probabilidad de transición del estado i al j ( | ) ij i aPj ss   ij aA Ecuación A-8 4) Una matriz de estados iniciales   i    con () i i P  s Definido el número de estados N y las matrices A , B y  , se puede describir un HMM como    A,B,Π . Para completar el modelo, sería necesario definir la pdf de cada estado. En este proyecto se utilizarán Gaussian Mixture Models, que son mezclas de Gaussianas ponderadas con diferentes pesos, junto a la restricción número 2 de un HMM de orden 1, para la observación en el instante t en el estado j: ,, 1 ( ) ( ; , ) C j j c j c c bw  Σ t j,c t oΝ o μ Ecuación A-9 Dispositivo de interfaz de usuario orientado a enseñanza del habla por ordenador Caracterización acústica y diseño e implementación de aplicación interactiva 40 Estas GMM se obtienen mediante la utilización del algoritmo iterativo EM (Estimation- Maximization)[18], encargado de realizar una estimación de máxima verosimilitud de parámetros de problemas en los que existen ciertas variables ocultas, obteniendo los parámetros que las representan ,jc μ , ,jc Σ , media y covarianza para cada una de las gaussianas ponderadas por wj,c . Para terminar de definir correctamente un HMM, además del número de estados N y    A,B,Π , es necesario el número de Gaussianas que se utilizarán en la mezcla, definido en la Ecuación A-9. El entrenamiento de los HMM se realiza generalmente mediante la estimación de máxima verosimilitud ML (Maximum Likelihood) usando el algoritmo EM. Adaptación supervisada La variabilidad en el habla es uno de los factores más complejos que se encuentran en los RAH. Esta variabilidad se agrupa en dos grandes grupos (ver Tabla 5), factores intrínsecos (variabilidad del contexto, del locutor, estilo…) y factores extrínsecos, como las condiciones ambientales en las que se produce la adquisición de las señales de voz. Uno de los objetivos de esta TFM es el estudio y la compensación de los efectos del canal haciendo uso del procesado de audio de Kinect. Dentro de los factores intrínsecos, la variabilidad en el habla de los diferentes locutores se postula como una línea de desarrollo de importancia capital. Cada individuo posee una forma única de hablar, determinada por características fisiológicas (forma del tracto vocal, longitud de las cuerdas vocales), modificadas por condiciones psicológicas y coyunturales (lengua materna o no, dificultades en la pronunciación, resfriados o congestiones…). Esta variabilidad por individuo o por circunstancias temporales, complica sobremanera el desarrollo de los reconocedores. Los modelos independientes del modelo se aproximan a este problema entrenando dichos modelos con el mayor número posible de locutores, reforzando la diversidad de características y acentos. Sin embargo, estos modelos acaban siendo demasiado generales. Con el objetivo de mejorar estos modelos generalistas, se utilizan otros modelos especializados usando información de los locutores a estudio y obteniendo los denominados modelos adaptados. Frente a una aproximación de modelo monolocutor (en el que tenemos mucha información de un único locutor a estudio), generalmente en un sistema multilocutor, la información de los diferentes locutores es mucho más reducida o nula, por lo que se debe buscar la forma de adaptar nuestros modelos de forma eficiente para que en la práctica funcionen como sistemas monolocutor. Las técnicas de adaptación supervisada se encargan de esta tarea, siendo dos de los algoritmos más utilizados el MLLR y el MAP. Se denominan supervisados porque para el correcto Tesis Fin de Máster – Máster en Tecnologías de la Información y Comunicaciones en Redes Móviles 41 entrenamiento de los nuevos modelos adaptados es necesaria una transcripción correcta del material de entrenamiento. Maximum Likelihood Linear Regression (MLLR) Se trata de una adaptación lineal con la que se realiza una serie de transformaciones para reducir las diferencias entre el modelo independiente y las locuciones de entrenamiento de cada locutor [5]. MLLR adapta cada una de las gaussianas al locutor aplicando una transformación lineal: ˆc W jc jc μμ Ecuación A-10 siendo jc μ el vector de medias de la c-ésima Gaussiana en el estado j y c W la matriz de transformación lineal de medias ,, ˆj c j c ΣΣHH Ecuación A-11 donde ,jc Σ es la matriz de covarianzas de la c-ésima gaussiana en el estado j y H la matriz de transformación. Se puede utilizar MLLR de dos formas para proceder con la adaptación: 1) global (se adaptan las medias, las varianzas, o ambas, de todas las Gaussianas de cada estado de forma global) o 2) se dividen las Gaussianas en clases de regresión y se aplica la adaptación por separado. El MLLR global es recomendable cuando no se tienen muchos datos de entrenamiento. En el segundo caso, dependiendo de la cantidad de datos, se determinará qué Gaussianas por separado pueden ser adaptadas o no. En el caso de tener una cantidad de datos suficiente, esta adaptación será más efectiva que en el caso global. Maximum a Posteriori (MAP) Esta adaptación utiliza un modelo inicial genérico de partida, o modelo independiente del locutor, cuya información es por tanto conocida a priori. Con la información nueva observada en el locutor particular, combinada con la conocida, y ponderadas por un factor de adaptación fijado de antemano, se estima la nueva información [6]. Dispositivo de interfaz de usuario orientado a enseñanza del habla por ordenador Caracterización acústica y diseño e implementación de aplicación interactiva 48 Figura 24 Articulaciones monitorizadas por el motor de esqueletos de Kinect 6 Microsoft Kinect incluye sistemas de captura de audio y video con capacidad de procesado por hardware en la propia consola, siendo transmitido un flujo de audio y video hasta el PC. A grandes rasgos, desde el punto de vista de imagen, Kinect 7 es capaz de capturar mapas de profundidad gracias a un emisor de luz estructurada infrarroja y un receptor CMOS. Este haz de luz estructurada de acuerdo a una malla de puntos pseudoaleatorios “choca” con los objetos y rebota hasta el receptor CMOS. A partir de la distorsión de puntos, Kinect procesa la distancia de cada uno de estos píxeles con una precisión de en torno a 1 cm a dos metros de distancia. Además Kinect incluye una cámara que permite recibir en el PC un flujo de video de hasta 1024x768 pixeles en formato RGB o YUV. Desde el punto de vista de tratamiento de señal de imagen, Kinect es capaz de detectar la presencia de usuarios y generar un esqueleto de jugador capturando hasta 20 articulaciones con una tasa de 30 fps y con un máximo de hasta 2 jugadores activos de pie, o 4 jugadores sentados (en la última actualización del SDK). A su vez, Kinect es capaz de discernir por estimación el plano de suelo. Figura 25 Matriz pseudoaleatoria emitida por Kinect 6 http://msdn.microsoft.com/en-us/library/hh855347.aspx 7 http://msdn.microsoft.com/en-us/library/hh855347.aspx Tesis Fin de Máster – Máster en Tecnologías de la Información y Comunicaciones en Redes Móviles 49 Kinect también incluye un motor en su base que permite modificar vía software la inclinación del sensor para poder apuntar mejor a la zona de interés. Se incluye un acelerómetro que permite estimar la inclinación y, junto al motor, equilibrar de forma automática el dispositivo. B. 3. Características acústicas de Kinect y procesado de señal de audio Aunque visualmente es un dispositivo muy potente para su coste de mercado (gracias a la fabricación en escala), desde el punto de vista del sonido, Microsoft Kinect incluye importantes avances en tratamiento de audio [8]. El dispositivo Kinect dispone de cuatro micrófonos supercardiodes en array, 3 de ellos en un extremo de la carcasa y otro en el extremo contrario del frontal del dispositivo. Tanto la disposición de los micrófonos como la caja acústica en la que se encuentran han sido optimizados para mejorar sus parámetros de directividad de acuerdo a las necesidades del dispositivo. Cada uno de estos micrófonos tiene asociado un conversor analógico-digital de 24bits para tener una resolución lo suficientemente elevada. Figura 26 Caja acústica de los micrófonos de Kinect [8] Gracias a esta arquitectura acústica y al procesado digital que realiza a través del sistema de audio de Windows, Kinect es capaz de ofrecer diferentes mejoras en la captura de sonido con el objetivo de mejorar la inteligibilidad de los locutores para el posterior reconocimiento automático del habla. Las principales innovaciones de Microsoft Kinect a la hora de implementar NUIs son las siguientes: B.3.1. Acoustic Echo Reduction Al ser un dispositivo básicamente diseñado para el ocio y el entretenimiento, Kinect debe enfrentarse al ruido generado por los sonidos reproducidos por la aplicación que se está ejecutando. Además, por la disposición típica de altavoces y Kinect (altavoces y sensor en el plano de la pantalla) se encuentra mucho más cerca de la fuente de ruido que del locutor. Esto hace obligatoria la utilización de supresión activa de ruido, englobándose en este concepto algoritmos de cancelación activa de ruido y supresión activa de ruido. Ésta se realiza de forma adaptativa, al conocer el sonido que se está enviando a los altavoces, como se puede ver en la Figura 27. Dispositivo de interfaz de usuario orientado a enseñanza del habla por ordenador Caracterización acústica y diseño e implementación de aplicación interactiva 50 Figura 27 Esquema de AEC estéreo de Kinect [8] A través de esta disposición, Kinect calibra los filtros de mezcla para los canales L y R y utiliza un filtro adaptativo conjunto para la cancelación del sonido reproducido. Kinect es así capaz de realizar reducción acústica de eco para sonido estéreo. A través del SDK es posible activar o desactivar este procesado AEC. B.3.2. Noise Suppression y Automatic Gain Control Además de la AEC, Kinect introduce algoritmos de eliminación de ruido de forma estadística y un sistema variable de ganancia de los micrófonos para adaptar dinámicamente señales de voz de baja presión sonora. B.3.3. Beamforming Uno de los puntos más interesantes en el tratamiento de audio de Kinect, es la capacidad de formar haces de captura (Beamforming) de sonido aumentando la directividad del array de 4 micrófonos situado en el frontal del dispositivo. Para ello, Kinect crea un haz móvil (Beamsteering) que busca el máximo de intensidad de la señal de voz recibida, obteniendo una ganancia de directividad máxima y reduciendo el ruido de interferencia procedente de otras direcciones. Figura 28 Respuesta en magnitud del array de micrófonos con Beamsteering [8] Según las especificaciones de Microsoft, este Beamforming tiene un ángulo de cobertura de 100° (-50° - 50°) con una precisión de 10° para un total de 10 regiones de formación de haz. Tesis Fin de Máster – Máster en Tecnologías de la Información y Comunicaciones en Redes Móviles 51 A través del SDK es posible activar o desactivar el beamforming, funcionando así los micrófonos individualmente y ofreciendo la posibilidad de grabar las cuatro señales de audio de forma independiente. B.4. Entornos de desarrollo de Microsoft Kinect (Kinect SDK y OPENNI) La comunicación del dispositivo Microsoft Kinect se realiza a través de un puerto USB 2.0 y con diferentes librerías incluidas en los distintos kits de desarrollo. Figura 29 Interacciones HW/SW de Kinect 8 El éxito del lanzamiento, su bajo coste y sus características avanzadas de captura de información promovieron la aparición de diferentes drivers y SDK desarrollados de forma independiente y ajena a Microsoft. Finalmente, la compañía de Redmond, consciente de la importancia de alimentar a una gran comunidad de desarrolladores de software y servicios, así como del entorno académico y científico, hizo público un SDK propietario pero de libre uso sin ánimo de lucro para el desarrollo de aplicaciones en PC utilizando Kinect. Dos son los principales entornos disponibles en el mercado: Kinect for Windows SDK, desarrollado por Microsoft y OpenNI 9 , software libre y mantenido por la comunidad de desarrolladores. Las principales características y diferencias entre ambos sistemas se pueden encontrar en la Tabla 7. Tabla 7 Características de las diferentes SDK 8 http://msdn.microsoft.com/en-us/library/jj131023.aspx 9 http://www.openni.org/ Kinect SDK OpenNI Número de articulaciones 20 20 Lag Ms ms Detección de articulaciones Más preciso y rápido Más robusto a falsos positivos Flujo de video Hasta 1024x768 Hasta 800x600 Audio Si No Dependencia de plataforma Sólo Windows 7 o más reciente Windows, Linux, OS X Soporte de máquinas virtuales Si - Modo de licencia Licencia gratuita sin ánimo de lucro. De pago para aplicaciones comerciales. Libre Dispositivo de interfaz de usuario orientado a enseñanza del habla por ordenador Caracterización acústica y diseño e implementación de aplicación interactiva 52 La principal diferencia a efectos de esta TFM es que el SDK desarrollado por Microsoft incluye una API (Application Programming Interface) para toda la parte de audio, frente a OpenNI, que pese a tener otras ventajas comparativas, deja de lado esta importante parte del dispositivo para centrarse en la parte visual. Tabla 8 Requisitos técnicos de la plataforma Kinect for Windows SDK Desde el lanzamiento del primer SDK de Microsoft, diferentes versiones del mismo han ido apareciendo espaciados en el tiempo, incluyendo nuevos ejemplos de desarrollo y mejoras y ajustes. Figura 30 Arquitectura del SDK 10 A su vez, nuevas opciones y posibilidades se han ido introduciendo paulatinamente, incluyendo detección de dedos, de rasgos faciales así como diferentes toolkits para testear las 10 http://msdn.microsoft.com/en-us/library/jj131023.aspx Lenguajes (o wrappers) C++, C#, Visual Basic C++, C#, Python, C synchronous, Java, Javascript Otros Reconocimiento de dedos Reconocimiento de dedos Requisitos técnicos de la plataforma con Windows SDK  Microsoft Windows 7, Microsoft Windows Embedded Standard 7 o Windows 8  Procesador 32 bit (x86) or 64 bit (x64)  Procesador Dual-core 2.66-GHz o superior  Bus USB 2.0 dedicado (limitación de ancho de banda)  2 GB RAM  Visual Studio 2010  .NET Framework 4.0  Kinect for Windows SDK  Opcionalmente: o DirectX SDK Tesis Fin de Máster – Máster en Tecnologías de la Información y Comunicaciones en Redes Móviles 53 aplicaciones desarrolladas, sobre todo tras la aparición de Kinect for Windows, al incluir esta evolución del dispositivo el modo de trabajo en campo cercano. En la realización de esta TFM se ha utilizado el dispositivo Kinect original para consola XBOX360, por su menor precio, facilidad de adquisición y con el objetivo final de caracterizar su respuesta acústica usándolo con un reconocedor automático del habla con palabras aisladas, con la finalidad de evaluar el efecto del procesado en la cadena de audio a efectos de reconocimiento. Dispositivo de interfaz de usuario orientado a enseñanza del habla por ordenador Caracterización acústica y diseño e implementación de aplicación interactiva 54 ANEXO C: FRASES DE ENTRENAMIENTO Y TEST Tanto las frases utilizadas para entrenar los diferentes modelos mediante técnica de adaptación MAP, como las palabras de test grabadas para hacer el análisis de resultados, han sido elegidas siguiendo las indicaciones dadas por la base de datos de la lengua castellana reflejado en el proyecto Albayzin [10], manteniendo los criterios de balanceo correcto de los tipos y apariciones de fonemas de acuerdo a su presencia estadística en el idioma español. Tabla 9 Frases de entrenamiento 1 Francia, Suiza y Hungría ya hicieron causa común 2 mi primer profesor de lengua fue López García 3 Guillermo y Yolanda practicaban ciclismo con Jaime 4 el primero en Guipúzcoa y el segundo en Valladolid 5 fue aquel hombre tan gordo el que se acercó en globo 6 éramos un grupo de profesores de lengua y literatura 7 yo no recuerdo en mi pueblo ningún caso de triquinosis 8 éramos un grupo de gente bastante distinguida 9 después ya se hizo muy amiga nuestra 10 los achaques de Jesús remitieron sin causar disgustos 11 su viuda se casó con un profesor de inglés de allá 12 durante tus estudios has hecho algún viaje 13 dos años y medio en Vilanova ya fueron suficientes 14 pero en el fondo le tengo cariño 15 puede haber deficiencia de agua en Logroño 16 la sangre se revuelve con estas migas de pan blanco 17 los yernos de Ismael no engordaran los pollos con hierba 18 mi mujer es profesora de lengua y literatura 19 sabia un poquito de inglés pero muy poco 20 en julio hacíamos en Burgos otra vez la preparación 21 un niño muy rico que se llama Ignacio 22 no en lenguaje hablado pero si en lenguaje escrito 23 era muy gordo, muy gordo y con un tupé inmenso 24 ellos ya desde un principio se quedan con el dinero 25 después de la mili ya me vine a Cataluña 26 estuve en Guernica dando clase de lengua y literatura 27 firmaban como cántabros incluso en tumbas funerarias 28 aunque ellos ya engrasaron los ejes como yo les enseñé 29 habla un poco de su prepotencia y de su orgullo 30 trabajaba en Granollers y vivía en Barcelona 31 es uno de los recuerdos más bonitos que guardo 32 vimos que el ambiente había cambiado mucho 33 bajamos un día al mercadillo de Palma 34 por las noches organizaban bailes y fiestas 35 yo entré en filas a cumplir el servicio militar Tesis Fin de Máster – Máster en Tecnologías de la Información y Comunicaciones en Redes Móviles 55 36 uno llevaba el chorizo el otro llevaba el gazpacho 37 con Gema y con Blanca me veo por las noches en casa 38 subimos un rato al apartamento y luego ya nos fuimos 39 le voy a contar por qué he estudiado lengua 40 llevas quince años fuera de la montaña 41 existe un viento del norte que es un viento frio 42 nos dio el disgusto más grande de nuestra vida 43 se hacen chorizos y salchichones de dos clases 44 antes de primero de bachiller ya te traumatizaban 45 la profesora que tengo tampoco es muy agradable 46 yo tengo derecho a que a mí se me entienda 47 al segundo día empezaron a llegar colegios 48 en estos pueblos preciosos de Vizcaya y Guipúzcoa 49 me he tomado un café con leche en un bar 50 dentro de muy poco pues va a estar la mitad cubierto Tabla 10 Palabras de test 1 árbol 2 bruja 3 campana 4 casa 5 cuchara 6 ducha 7 flan 8 fuma 9 globo 10 grifo 11 jarra 12 lápiz 13 llave 14 mariposa 15 niño 16 pala 17 pan 18 periódico 19 piano 20 piña 21 plátano 22 preso 23 puerta 24 semáforo Dispositivo de interfaz de usuario orientado a enseñanza del habla por ordenador Caracterización acústica y diseño e implementación de aplicación interactiva 56 25 sol 26 taza 27 toalla 28 tortuga 29 zapato 30 dos ocho cuatro seis uno cero tres cinco siete nueve 31 cero cero uno uno dos siete 32 ocho cuatro ocho ocho seis dos ocho cinco uno cuatro uno uno tres cero siete siete 33 cero nueve cinco cero nueve seis 34 tres nueve cero siete cinco dos uno ocho seis cuatro 35 cero cero tres cero tres nueve 36 nueve cinco uno nueve nueve uno uno cinco cero ocho uno cero cero cero uno seis 37 uno seis uno seis dos uno 38 cuatro tres cero seis nueve ocho siete uno dos cinco 39 cero cero tres uno cuatro tres 40 nueve cinco ocho siete dos dos ocho dos ocho cuatro cero seis uno cero seis cinco 41 ocho nueve ocho ocho cero cuatro 42 cuatro dos cinco ocho nueve seis tres cero uno siete 43 cero cero cuatro cero cuatro dos 44 tres cuatro seis tres dos seis uno dos seis uno nueve cinco cero dos ocho tres 45 cero siete seis cero siete siete 46 seis uno cuatro nueve cinco dos cero siete tres ocho 47 cero cero cuatro uno cinco seis 48 cuatro cuatro ocho cuatro siete uno nueve seis uno dos uno uno nueve cero dos seis 49 tres cinco cinco tres cinco seis 50 nueve cinco dos ocho uno cuatro tres seis siete cero 51 cero cero siete cero siete uno 52 dos cinco cuatro dos ocho tres nueve siete seis seis tres cuatro cinco uno tres ocho 53 dos dos cuatro dos uno uno 54 cero uno dos seis ocho nueve siete cinco cuatro tres Tesis Fin de Máster – Máster en Tecnologías de la Información y Comunicaciones en Redes Móviles 57 ANEXO D: FRAMEWORK DE SOFTWARE D.1. Introducción El uso de C++ como lenguaje de programación [9] frente a C# se decidió como una de los requisitos de la TFM con el fin de garantizar máxima compatibilidad con las aplicaciones previamente realizadas por el Departamento de Tecnologías de Voz y facilitar su adaptación al sensor Kinect. Microsoft, dentro de una política de promoción y aceptación de C# ofrece una mayor cantidad de recursos (tutoriales, ejemplos, videos, soporte técnico, foros) para este lenguaje que para C++. De esta forma hace una clara diferenciación entre los desarrolladores no profesionales o casuales, y los desarrolladores científicos o core, a los que deja más libertad de trabajo a cambio de menor soporte. En esta TFM no se han utilizado Windows Forms, realizando todo el trabajo de programación al nivel más bajo posible con Kinect SDK. El software se puede dividir en diferentes módulos de acuerdo a las funcionalidades que en él se pueden encontrar y dependiendo de la naturaleza de la información capturada, así como de la configuración de los dispositivos. Figura 31 Imagen de Total Explorer en funcionamiento D.2. Aplicaciones Total Explorer Para la aplicación pedagógica se ha diseñado la plataforma de un minijuego que hace un uso básico de las capacidades de captura de movimientos y audio de Kinect para la creación de interfaces NUI. Se trata de la base de un minijuego basado en un tablero sobre el que se selecciona con gestos una casilla que presenta un pictograma. Una vez seleccionado se espera a que el usuario pronuncie la palabra correspondiente al pictograma. Dispositivo de interfaz de usuario orientado a enseñanza del habla por ordenador Caracterización acústica y diseño e implementación de aplicación interactiva 64 - Script.txt: Cada línea de este archivo de texto contiene una serie de campos separados por espacios con los diferentes parámetros que se han de utilizar para capturar el sonido, así como los parámetros de grabación ambiental. Se puede pasar de una línea a otra utilizando los botones previous y next de la GUI. Tabla 15 Campos de configuración del script de automatización de medidas Locutor Distancia Ángulo Modo de array Modo de supresión de eco Reservado Input Signal Background Noise Nombre Selección grados Selección Selección No usado No usado No usado - test.txt: Cada línea de este archivo de texto tiene cada palabra/frase de test que se ha de decir. Se puede pasar de una línea a otra utilizando los botones Phrase y Phrase de la GUI siendo presentada cada frase por pantalla. D.11. Software y Hardware utilizado en su desarrollo  Ordenador sobremesa Intel i7 Quad Core 2.4Ghz 4Mb RAM (Desarrollo)  Ordenador portátil Intel i5 Dual Core 2.4GHz 4Mb RAM (Captura)  Windows 7 Professional 64 Bit  Kinect for XBOX 360  Visual Studio 2010  DirectX SDK  Windows SDK  Kinect for Windows SDK v1.5 Tesis Fin de Máster – Máster en Tecnologías de la Información y Comunicaciones en Redes Móviles 65 ANEXO E: RESULTADOS Y VALIDACIÓN Álvaro Raw Álvaro Proc Anat Raw Anat Proc Figura 33 Tasa de aciertos de todos los modelos entrenados y testeados en las cuatro posiciones de referencia Dispositivo de interfaz de usuario orientado a enseñanza del habla por ordenador Caracterización acústica y diseño e implementación de aplicación interactiva 66 Tabla 16 Tasa de aciertos para cada modelo y test BASELINE 1 2 3 4 5 6 7 8 Media Álvaro Raw 1 48,28 86,21 86,21 79,31 82,76 82,76 79,31 82,76 86,21 83,19 POSICIONES DE TEST 2 51,72 82,76 79,31 82,76 68,97 75,86 89,66 75,86 86,21 80,17 3 41,38 65,52 72,41 68,97 55,17 68,97 82,76 79,31 79,31 71,55 4 58,62 89,66 82,76 89,66 79,31 79,31 82,76 79,31 82,76 83,19 Media 50,00 81,03 80,17 80,17 71,55 76,72 83,62 79,31 83,62 79,53 Álvaro Proc 1 41,38 75,86 68,97 75,86 72,41 68,97 75,86 75,86 79,31 74,14 2 41,38 82,76 75,86 79,31 75,86 72,41 75,86 86,21 72,41 77,59 3 41,38 75,86 72,41 68,97 68,97 75,86 72,41 79,31 79,31 74,14 4 48,28 75,86 82,76 68,97 82,76 65,52 68,97 79,31 75,86 75,00 Media 43,10 77,59 75,00 73,28 75,00 70,69 73,28 80,17 76,72 75,22 Anat Raw 1 34,48 65,52 68,97 58,62 62,07 58,62 48,28 55,17 62,07 59,91 2 44,83 62,07 72,41 68,97 68,97 65,52 62,07 72,41 62,07 66,81 3 31,03 44,83 55,17 62,07 62,07 51,72 51,72 48,28 58,62 54,31 4 27,59 41,38 51,72 55,17 55,17 58,62 51,72 55,17 51,72 52,59 Media 34,48 53,45 62,07 61,21 62,07 58,62 53,45 57,76 58,62 58,41 Anat Proc 1 34,48 48,28 58,62 65,52 51,72 58,62 58,62 51,72 65,52 57,33 2 44,83 51,72 55,17 72,41 65,52 58,62 62,07 51,72 65,52 60,34 3 48,28 68,97 58,62 65,52 75,86 65,52 65,52 79,31 75,86 69,40 4 31,03 44,83 58,62 62,07 58,62 51,72 55,17 48,28 55,17 54,31 Media 39,66 53,45 57,76 66,38 62,93 58,62 60,34 57,76 65,52 60,34 POSICIONES DE CADA MODELO Tesis Fin de Máster – Máster en Tecnologías de la Información y Comunicaciones en Redes Móviles 67 ANEXO F: SOFTWARE UTILIZADO PARA EL DESARROLLO DEL RAH HTK Hidden Markov Model Toolkit HTK 14 es un toolkit portable a diferentes plataformas, diseñado para construir y manipular modelos ocultos de Markov. Se trata de una plataforma muy versátil y potente, cuya utilización, aunque inicialmente pensada para investigación en reconocimiento del habla, ha transcendido a otras áreas como el reconocimiento de caracteres o la secuenciación de estructuras de ADN, al ser aplicables los modelos ocultos de Markov. HTK contiene una serie de librerías y herramientas, con acceso al código fuente en C. Estas herramientas permiten la creación, entrenamiento, tratamiento y testeo de HMM y de las gaussianas relacionadas en cada estado. Además, HTK contiene una profusa documentación con la teoría que describe los modelos ocultos de Markov y una orientación hacía la aplicación práctica de ésta. Desarrollado originalmente por la Universidad de Cambridge, sus derechos de explotación y distribución fueron transferidos a una empresa privada que posteriormente sería absorbida por Microsoft. Actualmente, aunque Microsoft mantiene los derechos sobre HTK, estos han sido licenciados de nuevo a la Universidad de Cambridge permitiendo un modelo colaborativo a la hora de introducir mejoras en el código fuente que pueden ser incluidos en las consiguientes revisiones del toolkit. Mathworks MATLAB Matlab 15 es un entorno de desarrollo matemático con su propio lenguaje de programación, el lenguaje M. Desarrollado por Mathworks, Matlab incluye las herramientas necesarias para poder trabajar de una forma intuitiva, flexible y potente en diversas disciplinas técnicas y científicas (tratamiento de señal y comunicaciones, imagen y video, sistemas de control, biología…) a través de diferentes funciones matemáticas ya compiladas que pueden ser usadas para crear nuevas funciones a partir de ellas y extender el alcance de los objetivos de cada proyecto. Esta flexibilidad, recomienda su utilización allí donde otras soluciones comerciales (hojas de cálculo,…) o lenguajes de programación, exigen un esfuerzo de tiempo y recursos elevados al no estar específicamente diseñados para los requerimientos de una determinada problemática. Matlab tiene una gran penetración tanto dentro del mundo académico como en el industrial, siendo referente en multitud de áreas técnicas. Se trata de un software propietario compuesto de una funcionalidad básica y diferentes toolbox que pueden ser adquiridos comercialmente. Sin embargo, la gran distribución de este software, ha generado una importante comunidad a su alrededor, con multitud de contribuciones libres en muy diversas disciplinas. 14 http://htk.eng.cam.ac.uk/] 15 http://www.mathworks.es/products/matlab/] Dispositivo de interfaz de usuario orientado a enseñanza del habla por ordenador Caracterización acústica y diseño e implementación de aplicación interactiva 68 En la elaboración de esta TFM se ha utilizado el ISOMAP Toolkit de reducción no lineal de dimensiones de la universidad de Stanford 16 También se pueden encontrar diferentes alternativas a Matlab en el mercado, como Mathematica, o de software libre (OCTAVE), pero no tienen la funcionalidad y la versatilidad del original o su facilidad de uso. 16 http://isomap.stanford.edu/ Tesis Fin de Máster – Máster en Tecnologías de la Información y Comunicaciones en Redes Móviles 69 ANEXO G: FUNCIONES IMPLEMENTADAS EN MATLAB G.1. Funciones de entrenamiento Esta fase se encarga de entrenar los modelos simples para realizar la adaptación MAP a cada uno de los locutores y las condiciones de grabación. 1) train_model.m Este script se encarga de entrenar cada modelo simple de acuerdo a las frases de entrenamiento de cada posición, a través de una adaptación supervisada MAP dado el propio modelo simple, un string con cada frase utilizada en la adaptación y el path de los archivos .mfc correspondiente a dichos textos. Como salida tenemos el modelo adaptado para la posición, el locutor y el procesado de audio de Kinect correspondiente, que es salvado en un archivo .mat de acuerdo a la nomenclatura autoexplicativa correspondiente. 2) Get_Models_Script.m Este script tiene dos objetivos fundamentales: 1) Obtener los archivos .list con los paths de los archivos .mfc que se van a utilizar en el entrenamiento MAP de los modelos simples. Para ello se le indica un path inicial en el que comenzar a buscar los diferentes directorios donde se encuentran los audios procesados de entrenamiento. Como resultado se obtiene un archivo .list para cada posición, locutor y procesado, y nombrado de acuerdo a estas características. 2) Preparar el entorno y las variables para ejecutar train_model.m y obtener el modelo entrenado. Al finalizar este script obtenemos todos los modelos entrenados mediante MAP para los cuales tenemos datos de entrenamiento suficientes. Además, estos modelos se guardan en archivos .mat de Matlab con una nomenclatura correcta. G.2. Funciones de reconocimiento En esta fase se produce el reconocimiento aislado de palabras propiamente dicho y la preparación de diferentes structs con datos útiles y accesibles para la obtención de resultados estadísticos y visuales en la siguiente fase. De nuevo, se incide en una organización y programación orientada a poder automatizar grandes cantidades de datos, facilitando la futura escalabilidad a nuevos locutores o condiciones de grabación. 1) List_Tests_Script.m Este script se encarga de crear la estructura st_tests y de introducir la información para cada una de las variables y para cada uno de los tests a realizar. Este proceso se realiza en 2 pasos: a. Enumerar los diferentes tests grabados buscando en el árbol de directorios desde un path indicado. De esta forma, buscando por los directorios y haciendo uso de la nomenclatura de los archivos se pueden determinar por un lado los valores de locutor, distancia, grados y procesado. A su vez, genera un Dispositivo de interfaz de usuario orientado a enseñanza del habla por ordenador Caracterización acústica y diseño e implementación de aplicación interactiva 70 archivo .list con los paths de los archivos .mfc a utilizar en el reconocedor de palabras. b. Completar la información de st_tests para cada cada modelo y test, incluyendo asimismo el nombre del archivo .list a utilizar. Tras ejecutar este test se obtiene un struct con todos posibles tests para cada locutor, posición, distancia, grado y procesado, así como los diferentes parámetros de cada una de ellas fácilmente accesibles, dimensionados e inicializados. 2) List_models.m Este script realiza un trabajo similar a List_Tests_Script pero en lugar de tests, se encarga de recopilar todos los modelos entrenados que se encuentran en el directorio raíz y actualiza sus valores internos para cada elemento del struct st_models. Hay que destacar que en la variable model_db, se almacena el modelo entrenado para luego poder trabajar directamente con él. Además, a cada uno de los modelos del struct se le asocia una estructura st_tests con todos los posibles tests y donde se almacenarán los resultados del reconocedor. 3) run_test.m Esta función es la encargada de evaluar la log-verosimilitud entre las palabras dichas y las palabras existentes en el diccionario del reconocedor. o Parámetros de entrada: st_models, st_tests, i (índice del modelo a evaluar), j (índice del test a evaluar). o Salida: modelo actualizado con los resultados de log-verosimilitud entre todas las palabras dichas en el test y todas las palabras del diccionario del reconocedor. Esta log-verosimilitud se almacena en una matriz guardada en la variable m_LH y que presenta los valores para cada pareja palabra dicha – palabra del diccionario. 4) Script_todo.m Este script evalúa 1) List_Tests_Script.m, 2) List_models.m y, finalmente, llama a run_test.m para los conjuntos modelo-test de interés. Al tratarse de un proceso que puede llegar a ser muy intensivo computacionalmente guarda st_models en un archivo .mat de Matlab al finalizar el proceso. G.2. Funciones de resultados y representaciones 1) GetFigure.m Este script se encarga de generar una matriz de resultados de los diferentes modelos y tests de cada uno de ellos de acuerdo a una serie de parámetros de búsqueda. El objetivo es facilitar la obtención de resultados a la hora de evaluar el modelo y el reconocedor de palabras aisladas y preparar las variables para ejecutar otras rutinas más específicas de representación y comparación. Los parámetros de entrada que se deben determinar para cada modelo y test se pueden encontrar en la Tabla 17: Tesis Fin de Máster – Máster en Tecnologías de la Información y Comunicaciones en Redes Móviles 71 Tabla 17 Variables de trabajo del script GetFigure.m a determinar para obtener una matriz de resultados GetFigure.m Opciones Variables Opciones Explicación m_speaker 0) Álvaro 1) Anat 2) Ambos De entre los modelos, seleccionar los indicados respecto al locutor t_speaker 0) Álvaro 1) Anat 2) Ambos De entre los tests, seleccionar los indicados respecto al locutor m_distance 0) 150cm 1) 250cm 2) 300cm 'Todo' De entre los modelos, seleccionar los indicados respecto a la distancia al sensor. 'Todo' selecciona todas las opciones. t_distance 0) 100cm 0) 150cm 1) 250cm 2) 275cm 3) 250+275cm 'Todo' De entre los tests, seleccionar los indicados respecto a la distancia al sensor. 'Todo' selecciona todas las opciones. m_degrees 0) 0° 1) 10° 2) 20° 3) 30° 4) 40° 'Todo' De entre los modelos, seleccionar los indicados respecto al ángulo con el sensor. 'Todo' selecciona todas las opciones. t_degrees 0) 0° 1) 10° 2) 20° 3) 30° 'Todo' De entre los tests, seleccionar los indicados respecto al ángulo con el sensor. 'Todo' selecciona todas las opciones. m_processing 0) Sin procesado 1) procesado 2) Ambos De entre los modelos, seleccionar los indicados respecto al procesado de audio realizado. t_processing 0) Sin procesado 1) procesado 2) Ambos De entre los tests, seleccionar los indicados respecto al procesado de audio realizado. SP_word 0 - 54 siendo 0 todas las palabras De entre las palabras de test grabadas, seleccionar las indicadas. CB_word 0 - 57 siendo 0 todas las palabras De entre las palabras de test del diccionario, seleccionar las indicadas. GetFigure genera dos matrices booleanas, M y W, donde se indica qué modelos, qué tests y qué palabras es necesario analizar, sirviendo como entrada para las funciones de evaluación. 2) Comp_degrees.m Función que chequea si el modelo o test debe incluirse en la matriz M de GetFigure de acuerdo al ángulo respecto al dispositivo Kinect y según los valores de los parámetros de entrada. 3) Comp_distance.m Dispositivo de interfaz de usuario orientado a enseñanza del habla por ordenador Caracterización acústica y diseño e implementación de aplicación interactiva 72 Función que chequea si el modelo o test debe incluirse en la matriz M de GetFigure de acuerdo a la distancia respecto al dispositivo Kinect y según los valores de los parámetros de entrada. 4) Comp_pos.m Función que chequea si el modelo o test debe incluirse en la matriz M de GetFigure de acuerdo a la posición dispositivo Kinect y según los valores de los parámetros de entrada. 5) Comp_proc.m Función que chequea si el modelo o test debe incluirse en la matriz M de GetFigure de acuerdo al procesado de audio del dispositivo Kinect y según los valores de los parámetros de entrada. 6) Funciones de evaluación Funciones generadas a partir de diferentes parámetros de GetFigure y que una vez obtenida la matriz de resultados permiten evaluar la tasa de aciertos correspondiente a los datos experimentales. Pueden variar dependiendo de las necesidades específicas de resultados o representación. o tasa_de_aciertos.m  Tasa de aciertos para los modelos y tests seleccionados o tasa_de_aciertos_word.m  Tasa de aciertos de una palabra particular en los modelos y tests seleccionados. 7) Funciones de creación de supervectores Un supervector es una matriz en la que en cada columna tenemos concatenadas todas las medias de las diferentes gaussianas utilizadas para modelar las salidas de los HMMs en cada modelo entrenado. Para cada locutor se genera uno de estos supervectores diferenciando entre los modelos con y sin procesado de audio. Se han creado cuatro funciones de este estilo que dan como salida el supervector utilizado en posteriores scripts: o Svect_Alvaro_raw.m: Supervector con los modelos asociados al locutor Álvaro para cada posición y sin procesado de señal en la captura. o Svect_Alvaro_proc.m: Supervector con los modelos asociados al locutor Álvaro para cada posición y con procesado de señal en la captura. o Svect_Anat_raw.m: Supervector con los modelos asociados al locutor Anat para cada posición y sin procesado de señal en la captura. o Svect_Anat_proc.m: Supervector con los modelos asociados al locutor Anat para cada posición y con procesado de señal en la captura. 8) Isomap.m En esta función se utilizan los supervectores para calcular el diagrama de vecindad de los diferentes modelos y la variación del error residual con el aumento de la dimensionalidad de los datos. Tesis Fin de Máster – Máster en Tecnologías de la Información y Comunicaciones en Redes Móviles 73