¿Por qué el aprendizaje profundo puede aplicarse al reconocimiento de voz con éxito dado que el habla es información no estacionaria?

Porque las personas no solo lanzan una red neuronal profunda fuera de la caja a una señal de voz y esperan que funcione bien. Como señala correctamente, las señales acústicas como el habla dependen del tiempo, por lo que solo tratar de clasificar los fonemas cuadro por cuadro con un DNN logra malos resultados.

Lo que logra buenos resultados actualmente es introducir las salidas de un DNN en un modelo híbrido oculto de Markov. Un HMM se combina con una distribución de emisiones, y los sistemas tradicionales utilizan GMM sobre alguna representación característica de un marco de discurso para modelar estas probabilidades de emisión. Se produjo un gran avance cuando las personas (muy inteligentes) se dieron cuenta de que sería posible convertir la distribución posterior p (y | x) modelada por DNN en una pseudo probabilidad verosímil p (x | y), y alimentarla al HMM [1 ] Ese es actualmente (que yo sepa) el estado actual de la técnica, usando redes cada vez más poderosas (incluyendo convoluciones, cuellos de botella, etc.) para estimar esa pseudo probabilidad.

Hay mucha investigación en curso para construir canales de aprendizaje profundo de extremo a extremo para el reconocimiento de voz, pero esos no son de grado comercial (de nuevo, que yo sepa). Algunas ideas usan RNNs para modelar la dependencia temporal [2, 3], y WaveNet [4] de Google también se puede usar para el reconocimiento de voz, aunque no estoy seguro de cómo se comparan los resultados con los enfoques de vanguardia dedicados.

[1] – http://ieeexplore.ieee.org/abstr…

[2] – [1402.1128] Arquitecturas de redes neuronales recurrentes basadas en memoria a largo plazo para reconocimiento de voz de vocabulario grande

[3] – Ampliar el reconocimiento de voz de extremo a extremo

[4] -https: //pdfs.semanticscholar.org…

Creo que existe cierta confusión entre los datos no estacionarios, la señal no estacionaria y la variabilidad.
Supongamos que nuestros datos están en el formato (Xi, Yi), Xi es el vector de características que representa un teléfono, Yi es la etiqueta de este teléfono.
la señal de voz no es estacionaria porque el proceso de producción (fuente glótica, tracto vocal, etc.) cambia con el tiempo, incluso en el mismo teléfono (el tono, por ejemplo, cambia lentamente). Aquí no hay un problema de aprendizaje, sino un problema de representación (de lo contrario, extracción de características), el objetivo es segmentar correctamente la señal de voz y representar cada segmento en un formato que capture la información más relevante requerida para la siguiente tarea de procesamiento (clasificación, etc);
La variabilidad del discurso se relaciona con la diferencia en la pronunciación del teléfono debido al género, edad, acento, etc. Para hacer frente a esta variabilidad, el conjunto de datos debe ser rico e incluir muchos altavoces, o realizar la normalización de características y la adaptación del modelo.
Los datos no estacionarios, desde la vista de aprendizaje automático, significa que el proceso que genera los datos (Xi, Yi) cambia con el tiempo (P (Xi), P (Yi), P (Yi | Xi) cambio), en la aplicación de reconocimiento de voz Esto puede suceder cuando el ambiente es ruidoso / reverberante; para lidiar con eso, se agrega una etapa de preprocesamiento o el modelo se entrena en un entorno de condiciones múltiples.
Pero no creo que este problema de datos no estacionarios se encuentre ampliamente en el reconocimiento de voz, porque el motor está restringido a un lenguaje y acento específicos.
Por ejemplo, si modelamos el idioma de una comunidad determinada y su idioma evoluciona con el tiempo (cambio en la pronunciación de algunos teléfonos, se introducen nuevas reglas gramaticales, etc.), entonces podemos decir que encontramos un problema de datos no estacionarios, ya que distribución de cambio de teléfono y palabra. Como otro ejemplo, si creamos un modelo acústico para un niño, y a medida que crece, la forma de pronunciación cambia, lo que resulta en una redistribución de los datos, podemos decir que es un problema de datos no estacionario.
En general, el aprendizaje profundo intenta entrenar el modelo en diferentes condiciones (ruido, reverberación, etc.) y cubrir todas las variaciones posibles (edad, género, emoción, etc.).

En el procesamiento del habla, la forma de onda del habla generalmente se divide en segmentos cortos (5–30 mseg.) Y se supone que la señal del habla es estacionaria dentro de estos cuadros cortos. Esto se llama la propiedad casi estacionaria de las formas de onda del habla.

Los métodos estándar de aprendizaje profundo operan en este dominio para clasificar cada cuadro a una determinada unidad de voz (depende del idioma, generalmente el fonema del inglés).

Luego, la palabra pronunciada se determina al encontrar una palabra que tenga la máxima probabilidad de ser la palabra que produce esa clase de fonemas. Esto necesita un modelado adicional de las transiciones (la probabilidad de fonema / a / después de fonema / k /). Se crea una red de probabilidades de cada fonema y se utiliza un algoritmo llamado viterbi para encontrar la mejor ruta de secuencia de fonemas. Esto se ocupa de la propiedad no estacionaria del habla.

Para detectar una secuencia de palabras, se utiliza un modelo de lenguaje (la probabilidad de palabra / all / after after / hello /) y una búsqueda similar (pero más complicada) encuentra la secuencia de palabras con la máxima probabilidad.

Recientemente, también se están utilizando enfoques de extremo a extremo que intentan eludir estos pasos. Pero están en las primeras etapas. Por ejemplo, secuencia a secuencia de modelos. Otro ejemplo, se han utilizado métodos autorregresivos como pixelrnn / wavenet para la síntesis de voz de extremo a extremo.

Se utiliza algo llamado CTC o clasificación temporal conexionista. Efectivamente, es una función de costo sofisticada que calcula la probabilidad de un etiquetado correcto de una secuencia. Para hacer esto, permite que la red muestre un “espacio en blanco” (distinto de un espacio) que corresponde a no hacer una predicción de un valor o no cambiar la predicción. Es decir, dado un poco de sonido de la palabra salidas de gato y 4 pasos de tiempo “CAT_”, “CA_T”, “C_AT” y “_CAT” serían todas salidas válidas. Esto le da la flexibilidad de reconocer la palabra, independientemente de cuánto tiempo haya tardado en decirse o en qué parte del audio se haya dicho. Luego calcula la probabilidad de una secuencia correcta sumando los productos de todas las asignaciones válidas de todas las variables en la secuencia. Hacer esto ingenuamente es computacionalmente prohibitivo, sin embargo, existe una solución de programación dinámica que calcula las probabilidades hacia adelante y hacia atrás de un etiquetado correcto hasta ese punto y más allá de ese punto, lo cual es eficiente.

CTC ha permitido que el aprendizaje profundo se use en datos de voz sin ningún otro modelo (a saber, HMM) que conduzca a la tenacidad y el éxito de los sistemas de aprendizaje profundo de extremo a extremo para el reconocimiento de voz.

Puede leer el documento aquí: http: // ftp: //ftp.idsia.ch/pub/juergen/icml2006.pdf

Sobre el reconocimiento de voz de extremo a extremo: http://proceedings.mlr.press/v48

También hice algunas diapositivas: http://deeplearning.cs.cmu.edu/s