Reconocimiento Automático del Habla Eduardo Lleida Solano Dpt. de Ingeniería Electrónica y Comunicaciones Universidad de Zaragoza
Reconocimiento Automático del Habla una historia reciente Dificultades en el RAH ¿Cómo funciona? , las bases ¿Dónde estamos?, ¿a dónde vamos? Consejos: ¿Dónde utilizar RAH?
Algunas Referencias Interesantes Libros genéricos: John R. Deller, John G. Proakis, John H.L. Hansen “Discrete-Time Processing of Speech Signals” Macmillan Publishing Company, 1993 Douglas O’Shaughnessy “Speech Communications, Human and Machine” IEEE Press, 2000 Libros avanzados: Frederick Jelinek “Statistical Methods for Speech Recognition” MIT Press, 1997 Steve Young, Gerrit Bloothooft “Corpus-Based Methods in Language and Speech Processing” Kluwer Academic Publishers,1997 Internet: http://svr-www.eng.cam.ac.uk/comp.speech Socrates/Erasmus Thematic Network: Speech Communication Sciences http://tn-speech.essex.ac.uk/tn-speech
Reconocimiento Automático del Habla: una historia reciente Los inicios: años 50 Bell Labs .... Reconocimiento de dígitos aislados monolocutor RCA Labs .... Reconocimiento de 10 sílabas monolocutor University College in England .... Reconocedor fonético MIT Lincoln Lab .... Reconocedor de vocales independiente del hablante Los fundamentos: años 60 Comienzo en Japón (NEC labs) Dynamic time warping .... Vintsyuk (Soviet Union) CMU ... Reconocimiento del Habla Continua .... HAL 9000 Las primeras soluciones: años 70, el mundo probabilístico Reconocimiento de palabras aisladas LPC, programación dinámica IBM: inicio proyecto reconocimiento de grandes vocabularios Gran inversión en los USA: proyectos DARPA Sistema HARPY (CMU) primer sistema con exito
una historia reciente Reconocimiento del Habla Continua: años 80, expansión Algoritmos para el habla continua y grandes vocabularios Explosión de los métodos estadísticos: Modelos Ocultos de Markov utilizados inicialmente por IBM y Dragon Systems popularizados por Bell Labs Introducción de las Redes Neuronales en el reconocimiento de voz Sistema SPHINX Empieza el negocio: años 90, primeras aplicaciones Ordenadores y procesadores baratos y rápidos Sistemas de dictado Integración entre reconocimiento de voz y procesado del lenguaje natural. ¿Una realidad?: años 00, integración en el S.O. Integración teléfono y Voice Web browsers VoiceXML estandard
Algunas impresiones recientes:
Dificultades: 1. ¿El sistema de RAH tiene que reconocer la voz de una persona o varias personas (incluyendo, quizas, cualquier persona)? 2. ¿Cual es el tamaño del vocabulario a reconocer? 3. Sobre el modo de dirigirse al sistema de RAH, ¿nos dirigiremos con palabras incluyendo pausas entre ellas o hablaremos de forma continua? 4. Variabilidad acústica y confusión acústica del vocabulario 5. Entorno acústico en el que se utilizará el sistema de RAH 6. ¿Cómo activar o se activa el sistema de RAH? 7. ¿Qué conocimientos lingüísticos son necesarios incorporar en el sistema de RAH?
Mono vs. Independiente del locutor Monolocutor el sistema aprende utilizando la voz de una única persona resultados altos en tasas de reconocimiento modalidad necesaria para personas con problemas de dicción Independiente del locutor aprendizaje con grandes bases de datos de voz de muchas personas se reduce la tasa de reconocimiento necesario para aplicaciones telefónicas Adaptación al locutor aprendizaje inicial con multiples locutores aprendizaje posterior con el uso de una persona después de la adaptación comportamiento como monolocutor volver
Tamaño del Vocabulario Incremento de la dificultad de reconocimiento con el tamaño del vocabulario: p.e. El usuario no conoce todas las palabras que el sistema es capaz de reconocer Incremento en la complejidad con el tamaño del vocabulario: memoria, cálculo y algoritmos de búsqueda. Clasificación: pequeño vocabulario (1-99) vocabulario medio (100-999) grandes vocabularios (> 1000) volver
Palabras Aisladas vs. Habla Continua Reconocimiento de palabras aisladas las frases se pronuncian con pausas entre palabras pausas suficientemente largas facilidad en la localización del inicio y final de palabra se simplifican los algoritmos de reconocimiento modo no natural de comunicación Reconocimiento de habla continua las frases se pronuncian sin ningún tipo de restricción presencia de coarticulación entre palabras no hay conocimiento a priori de las fronteras entre palabras modo natural de comunicación fenómenos de habla espontanea volver
Variabilidad y Confusión Acústica Variabilidad acústica Diferencias en las pronunciaciones de sonidos una misma persona, entre personas coarticulación Unidad básica de reconocimiento fonemas, difonemas, trifonemas, semisílabas, sílabas, palabras Confusión acústica similitud acústica entre palabras del vocabulario estalagmita, estalagtita volver
Entorno Acústico volver Condiciones de laboratorio: voz de alta calidad sin ruidos, sin reverberación o ecos Condiciones reales ruido ambiental otras personas, equipos de sonido, aire acondicionado, ... Distorsiones del canal variaciones en los micrófonos, canal telefónico, salas, ... Ruidos de respiración, toses, labios, .... volver
Activación del Sistema de RAH Activación manual El usuario indica mediante, p.e. un pulsador, cuando debe reconocer Sistema fiable y robusto Sistema poco versátil Activación automática En sistemas de diálogo: Sistemas actuales: por turnos En el futuro: por turnos con interrupción Palabra de activación, tipo Start Trek En el futuro: por comprensión del diálogo Volver
Restricciones Lingüísticas Léxico: ¿Cómo se construyen las palabras a partir de las unidades de reconocimiento? fonemas, difonemas, trifonemas Sintáctico: ¿Cómo están relacionadas unas palabras con otras para formar una frase? Nivel de reconocimiento automático del habla Semántico: ¿Cúal es el significado de las palabras?, Necesario para mantener un diálogo Nivel de comprensión Pragmático Relaciones entre las palabras y sus usos a lo largo del diálogo “Me gusta” ---> hace referencia a algo ocurrido en el diálogo Nivel de diálogo
Reconocimiento Diálogo Comprensión volver
¿Cómo funciona?, Las bases Formulación matemática simple: teoría probabilística Sea O una secuencia de T medidas acústicas de la voz Sea W una secuencia of N palabras pertenecientes a un vocabulario fijo y conocido. P(W|O) es la probabilidad de que la secuencia de palabras W haya sido pronunciada, dado que la secuencia O de medidas acústicas ha sido observada El reconocedor decidirá a favor de la secuencia de palabras W que satisfaga W = arg maxW P(W|O) Es decir, el reconocedor dará como resultado la secuencia mas probable de palabras dadas la medidas acústicas obtenidas.
Fórmula del Reconocedor Las Bases Utilizando la fórmula de Bayes P(W) ... Probabilidad de que la secuencia de palabras W sea pronunciada P(O|W) ... Probabilidad de que cuando una persona pronuncia la secuencia de palabras W obtengamos la secuencia de medidas acústicas O P(O) ... Probabilidad de la secuencia de medidas acústicas O Fórmula del Reconocedor Modelo Acústico Modelo de Lenguaje
Componentes de un sistema de Reconocimiento voz texto Procesado Acústico Análisis Gramatical transcripción Análisis Léxico Hz Aprendizaje modelos acústicos Entrenamiento Modelado Acústico P(O|W) Modelado Lenguaje P(W) Reconocimiento Algoritmo de Reconocimiento Secuencia de Palabras Procesado Acústico Voz
Componentes de un sistema de Reconocimiento voz texto Procesado Acústico Análisis Gramatical transcripción Análisis Léxico Aprendizaje modelos acústicos Entrenamiento P(O|W) P(W) Modelado Acústico Modelado Lenguaje Reconocimiento Algoritmo de Reconocimiento Secuencia de Palabras Procesado Acústico voz
Modelado Acústico: ¿Qué y Cómo? ¿Qué queremos modelar? Unidades básicas de reconocimiento Modelos de palabras Modelos independientes del contexto: fonemas Modelos contextuales: modelan coarticulación fonemas en contextos concretos trifonema A-B+C difonema A-B or B+C ¿Cómo modelamos las unidades? Modelos Ocultos de Markov probabilidades de transición aij------> la parte oculta distribución de probabilidades de observación bj(ot) -----> la parte visible
Modelos Ocultos de Markov Reconocimiento Dado un Modelo Oculto de Markov (HMM) l Calcular la probabilidad de que dicho modelo genere la secuencia de medidas acústicas O={O1, O2, O3,.... OT}
Hidden Markov Models transition probabilities satisfy the stochastic constraint N number of states HMM state duration: exponential distribution, weak point because: Speech: gamma distribution Output probability distribution The acoustic measurements take values from a finite set Discrete probability densities Continuos probability densities Mixture of Gaussian probability density function
Hidden Markov Models Mixture Gaussian Output Distributions
Hidden Markov Models Speech modeling: Basic speech units Word models context independent models: phone models context dependent models: model coarticulation phones in a particular context triphone A-B+C biphones A-B or B+C
Forward-Backward Algorithm
Forward-Backward Algorithm
Modelos Ocultos de Markov Aproximación: secuencia más probable de estados Algoritmo de Viterbi Estado observación 1 2 3 T Inicialización d1(i) = pi bi(O1) y1(i) = 0 1 i N
Algoritmo de Viterbi Estado 3 aij dt(j) 2 1 1 2 dt-1(i) T observación Recursión dt(j) = max [dt-1(i) aij] bj(Ot) 2 t T 1 i N yt(j) = arg max [dt-1(i) aij] 1 j N
Algoritmo de Viterbi Estado observación 1 2 3 T Backtraking P* = max [dT(i)] 1 i N qT*=arg max [dT(i)] qt* = yt+1( qt+1*) t = T-1, T-2, ...1
Estimacion de los Parámetros de un HMM Modos Entrenamiento: Aislado Continuo volver
Modelado de Lenguaje Controla la actividad de un reconocedor Restringe el proceso de reconocimiento, solo se buscan aquellas combinaciones de palabras permitidas por la gramática Tipos básicos de gramáticas: 1. Gramáticas de reglas o de estados finitos 2. Gramáticas de dictado o estocásticas
Modelado de Lenguaje: Gramáticas de Reglas La gramática le indica al reconocedor mediante reglas que es lo que espera que el usuario diga Reconocimiento rápido y bastante exacto Es necesario un diseño cuidadoso de las reglas para permitir una libertad de expresión razonable Ejemplo (Java Speech Grammar format) #JSFG v1.0 // Define the grammar name grammar SimpleCommands; // Define the rules public <Command>=[<Polite>]<Action><Object>(and <Object>)*; <Action> = open| close | delete; <Object> = the window | the file; <Polite> = please;
Modelado de Lenguaje: Gramáticas de Dictado Punto de vista probabilístico p( W ) = p( w1 w2 ...wN ) = p( w1 ) p( w2 / w1 ) ... p( wN / w1 w2 ...wN-1 ) n-gramas generalmente: n = 2 : bigramas n = 3 : trigramas p( wi / w1 w2 ...wi-1 ) = p( wi / wi-n+1 ...wi-1 ) Clases de palabras p( wi / w1 w2 ...wi-1 ) = p( wi / C(wi) ) p( C(wi) / C(wi-n+1) ...C (wi-1) ) Dificultad de una tarea: número promedio de transiciones desde una palabra: Perplejidad volver
Algoritmo de Reconocimiento voz Secuencia de palabras Algoritmo de Reconocimiento O W = w1 w2 ... wN Regla de búsqueda W = argmax { p( W/O ) } = argmax { p( O / W ) p( W ) } W Modelo de Lenguaje Modelo Acústico
Word String Search Maximization function W = argmax { p( W /O ) } = argmax { p( O / W ) p( W ) } W p( O / W) = Σ p( O , s / W) = Σ Π p( Ois / wi) s i Acoustic model p( W ) = p( w1 w2 ...wN ) = p( w1) Π p( wi / wi-1) i Language model i W= argmax { p( w1) p( O1s / w1) Π p( Ois / wi) p( wi / wi-1) } W
Word String Search: Isolated Word Recognition GRAMMAR COMPUTATION
Word String Search: CSR Search Network o states Linear lexicon been B IH N seen S IY N a b c d e Word Acoustic models time word acoustic model
Word String Search : CSR intra-word transitions time a b c d e o states o Acoustic models
Word String Search : CSR inter-word transitions time a b c d e o states Acoustic models o Language model
Word String Search : CSR inter-word transitions time a b c d e o states Acoustic models o Write the predecessor from where the transition (d) is done and the initial time (i) i
Word String Search : CSR Backtraking time a b c d e o states Acoustic models o o o o o deb
Algoritmo de Reconocimiento Problemas Carga computacional no se pueden propagar todos los caminos Búsqueda en Haz Activar o desactivar caminos según su probabilidad caiga o no por debajo de un umbral dependiente del camino más probable. Gestión de Memoria Partial traceback cuando una palabra está reconocida, todos los caminos activos pasan por ella.
Partial Traceback e d c b a back Word “d” is recognized states time a b c d e o states Acoustic models o o o o o back
Current Error Rates for High-Performance Speech Recognition Corpus Type Vocabulary, # of words Word error rate Connected digits Read 10 < 0.3 % Airline travel system Spontaneous 2500 2 % Wall Street Journal Read 64000 7 % Broadcast news Read/Spontaneous 64000 30 % Call home Conversational 10000 50 %
¿Dónde estamos? Sistemas de Dictado Adaptado al locutor Gran vocabulario y ampliable Habla continua Servicios Telefónicos Acceso a información Encuestas Transacciones comerciales Centralitas manos libres
¿A dónde vamos?
Consejos: ¿Dónde y cuando utilizar RAH? Y para ir terminando .... Consejos: ¿Dónde y cuando utilizar RAH? Premisa: Las aplicaciones con RAH tienen éxito cuando el usuario está motivado en su uso Limitaciones: 1. Los sistemas de RAH no transcriben voz sin restricciones 2. Los sistema de RAH comenten muchos errores Necesidad: Verificar el resultado del reconocedor: confianza acústica
¿Dónde y cuando utilizar la voz? Utilizar cuando ... Evitar cuando ... La tarea requiera que el usuario hable con otras personas mientras utiliza la aplicación No se dispone de un teclado,p.e, sobre la red telefónica Tareas que requieran la utilización de las manos del usuario, p.e. editores gráficos El usuario trabaja en condiciones malas de ruido ambiental Usuarios que no pueden teclear o no están acostrumbrados al uso de un teclado Las tareas se pueden realizar de una forma mas sencilla y eficiente con un ratón y teclado Usuarios con discapacidades físicas que limitan el uso de las manos
tipos de errores Rechazos: el usuario habla pero el RAH no entiende lo que dice Sustituciones: el RAH reconoce palabras que son distintas a las que el usuario pronuncia Falsas Alarmas: el usuario no dice nada y el RAH devuelve una palabra reconocida
Causas problema causa Rechazo o Sustituciones Falsas Alarmas El usuario pronuncia una o mas palabras no contenidas en el vocabulario La frase pronunciada no se adapta a ninguna gramática activa El usuario habla antes de que el sistema esté listo para reconocer Palabras muy parecidas que producen confusión Pausas muy largas en el medio de frases El usuario habla con disfluencias (falsos comienzos,”umm”,”ehh”) El usuario tiene un acento muy marcado o está resfriado La voz del usuario difiere considerablemente del aprendizaje El micrófono no está bien ajustado Rechazo o Sustituciones Sonidos como risas, toses, etc. Voces lejanas El usuario está hablando con otra persona Falsas Alarmas