Reconocimiento Automático del Habla Introducción a las Tecnologías del Habla 2o cuatrimestre 2014 – Agustín Gravano Reconocimiento del Habla ● ASR = Automatic Speech Recognition ● Input: señal de audio conteniendo habla. ● Output: secuencia de palabras. ASR hola mundo The Noisy Channel Model ● ● Metáfora: La oración de origen atraviesa un “canal ruidoso”. Para reconstruir la oración, el sistema ASR debe: 1) Buscar en el espacio de todas las posibles oraciones. 2) Elegir la oración más probable, dada la entrada. Historia de ASR ● Generación 1: 1930s-1950s ● Técnicas ad-hoc para reconocer palabras aisladas (vocabularios muy reducidos). ● Relación entre clases de fonos y señal espectral. ● H. Fletcher & H. Dudley – Bell Labs ● Conclusión: ASR requeriría análisis temporal del espectro de la señal de audio. Historia de ASR ● Generación 2: 1950s-1960s ● Primeros sistemas de reconocimiento de fonemas. ● Análisis espectral, filtros acústicos, pattern matching. ● 1952: Davis, Biddulph & Balashek (Bell Labs): dígitos. Historia de ASR ● Generación 2: 1950s-1960s ● ● ● 1956: Olson & Belar, RCA Labs – 10 monosílabos. 1959: Forgie & Forgie, MIT – 10 vocales, independiente del hablante. 1959: Denes & Fry, Univ. College London – secuencia de una vocal seguida de una consonante (inventario: 4 vocales, 9 consonantes), con un rudimentario modelo del lenguaje. Historia de ASR Generación 3: 1960s-1980s ● ● Dynamic time warping (DTW): distancia entre 2 señales. Vyntsyuk (1968), Sakoe & Chiba (1970) TEMPLATE WORD ● UNKNOWN WORD Historia de ASR ● Generación 3: 1960s-1980s ● ● ● 1971-1976: Proyecto ARPA-SUR: Advanced Research Projects Agency – Speech Understanding Research. Objetivo: vocabulario de 1000 palabras, 90% aciertos, cercano a real-time en máquina de 100 MIPS Varios participantes. Sistema ganador: – ● HARPY, de CMU (95% – pero 80 veces real-time!) Llevó a numerosos avances en las tecnologías de ASR. – Ej: bases para sistemas estadísticos (HMM). Historia de ASR ● Generación 4: 1980s-2000s ● Métodos estadísticos. ● Hidden Markov Models. Representación del audio de entrada ● Input: señal de audio conteniendo habla. ● ¿Cómo la representamos para usar con HMM? Extracción de atributos: MFCC MFCC (Mel frequency cepstral coefficient): 1) Aplicar FFT a la señal. → Espectro 2) Mapear las amplitudes del espectro a la escala mel. 3) Calcular el logaritmo de las amplitudes del espectro. 4) Aplicar la transformada discreta del coseno (DCT) de la lista de valores resultantes (como si fuera una señal). 5) Los MFCC son las amplitudes del espectro resultante. Extracción de atributos: MFCC ● Dividir la señal en frames de ~20-30ms, cada ~10-15ms (con superposición no vacía). ● Extraer un vector de atributos de cada frame: ● 12 MFCC + 1 coeficiente de amplitud = 13 atributos ● Delta = 13 ● Delta-Delta = 13 ● Total: 39 atributos acústicos Vector 39D Modelo acústico ● Un HMM de 5 estados para cada fonema del lenguaje. ● HMMs “izquierda-a-derecha”. a11 s0 a01 s1 b1(o) ● a22 a12 s2 a33 a23 b2(o) s3 a34 s4 b3(o) Los 3 estados centrales del HMM tienen un modelo de mezcla de Gaussianas (GMM), que devuelve una probabilidad para cada vector observado o. HMMs de palabras ● Para cada palabra del léxico, se construye un HMM concatenando los HMMs de sus fonemas. /s/ /o/ /l/ HMMs de palabras ● Para cada palabra del léxico, se construye un HMM concatenando los HMMs de sus fonemas. /s/ /o/ Vectores de atributos acústicos (MFCC): o1, o2, o3, ... /l/ HMMs de palabras ● Para cada palabra del léxico, se construye un HMM concatenando los HMMs de sus fonemas. /s/ /o/ Vectores de atributos acústicos (MFCC): o1, o2, o3, ... /l/ Viterbi en un HMM de palabras /s/ /o/ /l/ Vectores de atributos acústicos (MFCC): o1, o2, o3, ... Viterbi en un HMM de palabras /s/ /o/ /l/ Vectores de atributos acústicos (MFCC): o1, o2, o3, ... Múltiples pronunciaciones ● ● ● Ejemplo (inglés): data = /d ey t ah/, /d ae t ah/ Opción 1: palabras distintas, cada una con su HMM. Opción 2: construir HMM con las dos pronunciaciones. /ey/ /d/ /t/ /ae/ /ah/ Entrenamiento de HMM 0)Inicializar modelos acústicos usando un corpus pequeño de grabaciones con alineaciones fonéticas (“flat start”). 1)Ajustar datos de entrenamiento (varias horas de grabaciones con transcripciones) al HMM actual. ● Algoritmo forward-backward. 2)Re-estimar los parámetros del HMM: A, B, π. ● Actualizar las probabilidades de transiciones (A, π) y modelos acústicos (B), para maximizar la probabilidad de los datos de entrenamiento dado el modelo. 3)Ir a 1) y repetir hasta conseguir convergencia. ASR de gramática restringida ● ● Ya entrenamos HMMs de palabras. ¿Cómo los usamos para armar un sistema de ASR? Gramática restringida (para un teléfono celular): $digit = ONE | TWO | THREE | ... | ZERO; $name = [JULIAN] ODELL | [DAVE] OLLASON | ... | [STEVE] YOUNG ( SENT-START ( DIAL ($digit)+ | (PHONE|CALL) $name) SENT-END ) ● Ejemplos: ● Dial three three two six five four ● Phone Odell ● Call Steve Young ASR de gramática restringida ● Armar un gran HMM combinando los HMMs de las palabras, de acuerdo a la gramática restringida. ASR de dominio abierto palabra1 palabra2 palabra3 ... palabran Modelo acústico del silencio ● ● Para concatenar palabras, debemos permitir que haya silencio entre ellas. Creamos un HMM especial para el silencio. a11 SIL = s0 a01 s1 a12 b1(o) s2 ASR de dominio abierto palabra1 palabra2 palabra3 SIL ... palabran ● Viterbi → Secuencia de palabras más probable, dados el modelo y la secuencia de observaciones (vectores de atributos acústicos). Word lattice ● No buscar la mejor solución, sino las k mejores. ● Algoritmo: Multiple-token decoder. Modelo del lenguaje ● k hipótesis generadas por HMM. ● Modelo del lenguaje de N-gramas: ● ● Refinar probabilidades de las hipótesis. ● Descartar hipótesis improbables. Ejemplo: ● el {banco,manco} central anunció la {emisión,emulsión} de nuevas monedas de cincuenta {centauros, centavos} HMM de Trifonos ● ● Problemas: co-articulación y asimilación. ● La producción de cada fono es afectada por sus vecinos. ● Ejemplos: [la] vs. [lo], [mosca. Solución: Usar HMMs de trifonos. ● Tener, para cada fonema del lenguaje, un HMM por cada posible par de vecinos izquierdo y derecho. ● Ejemplos: sil-m+o ● N fonemas → O(N³) potenciales trifonos. ● m-o+s o-s+k s-k+a k-a+sil Se mapean trifonos lógicos articulatoriamente similares a un conjunto reducido de trifonos físicos. ¿Cuán bien funciona el ASR con técnicas basadas en HMM? Historia de ASR ● ● Generación 4: 1980s-2000s ● Métodos estadísticos. ● Hidden Markov Models. Generación 5: 2000s-?? ● Procesamiento paralelo. ● Mejoras de performance con ruido. ● Deep Neural Networks!!!