¿Cómo funciona el reconocimiento de voz? ¿Qué avances en software / hardware deben hacerse para mejorarlo, o es solo una cuestión de construir una base de datos más grande?

> ¿Cómo funciona el reconocimiento de voz?

Hay muchos buenos libros de texto que explican que uno de ellos es


http://www.amazon.com/Spoken-Lan…

Si está interesado en el estado del arte, los métodos de aprendizaje profundo son muy activos en estos días y demuestran buenos resultados. Puede aprender sobre Deep Learning en reconocimiento de voz de otro libro muy bueno:

Reconocimiento automático del habla: un enfoque de aprendizaje profundo (tecnología de señales y comunicación): Dong Yu, Li Deng: 9781447157786: Amazon.com: Libros

> ¿Qué avances en software / hardware deben hacerse para mejorarlo, o es solo una cuestión de construir una base de datos más grande?

Como en todo aprendizaje automático, el tamaño de los datos no resuelve perfectamente el problema. La investigación reciente de Google aumentó la cantidad de datos utilizados para el entrenamiento a 100000 horas de datos de voz, pero su rendimiento no mejoró hasta cero. El aumento entre 1000 horas y 100 mil horas da una mejora del 1% del 10% al 9%. Por lo tanto, esto no va a converger a cero, incluso si recopila todo el discurso en la Tierra. Las estadísticas de la plataforma Nexiwave ASR también confirmaron eso.

El mayor problema es una falta de coincidencia entre el modelo matemático simple utilizado para la capacitación y los datos reales. Se espera la mayor mejora del cambio del modelo subyacente para que se ajuste mejor a los datos. Eso también requerirá el cambio de los algoritmos de entrenamiento porque el nuevo modelo podría requerir nuevos algoritmos para el entrenamiento.

Una manera fácil de entender cómo funciona el Reconocimiento de voz es pensar en ella como una carrera de relevos donde la frase reconocida es una colección de palabras, que vence a los otros equipos de frase competidores en la carrera por el reconocimiento.

La carrera de reconocimiento de relevos

Piense en una carrera de relevos en la que compiten varios equipos por frases (con corredores como palabras).

En esta carrera, cualquier combinación aceptable de palabras puede formar un equipo.

El ganador de esta carrera es el grupo de palabras que entregarán la salida reconocida que coincide con la entrada de voz.

Al igual que en una carrera de carrera donde el equipo más rápido gana la carrera, en nuestra carrera de reconocimiento el equipo con el puntaje más alto de ‘alineación’ * finalmente gana

* La puntuación de alineación es un término sintetizado para esta respuesta; Los números en la siguiente representación son indicativos.

“Detrás de escena” del reconocimiento de voz

Para relacionar la analogía anterior con el funcionamiento del reconocimiento de voz, primero presentaré brevemente los componentes básicos del reconocimiento

Diccionario (léxico) : un mapeo entre palabras y su pronunciación usando fonemas.

Modelo acústico: una base de datos de modelos probabilísticos que correlacionan fonemas con señales de voz de entrada (lo que el usuario realmente habló). Utiliza modelos ocultos de Markov (HMM) para asociar una señal de emisión a fonemas subyacentes.

Modelo de lenguaje: el corpus de frases aceptables. Las palabras del diccionario se organizan en frases en un modelo de lenguaje.

El resultado final del reconocimiento típicamente serían frases del modelo de lenguaje encadenadas para formar una oración significativa.

En pocas palabras, el objetivo del reconocedor es encontrar la mejor combinación de frases del modelo de lenguaje que produzca el puntaje de alineación más alto.

Para ese fin, la señal de entrada se divide en características. Estos se combinan con los modelos en el modelo acústico para mapear el enunciado con fonemas. Luego, la asociación de fonemas a palabras en el diccionario y la asociación de palabras con frases con palabras se usa para unir la respuesta final.

Llamemos a la medida de esta alineación

El ‘puntaje de alineación’ que tiene dos partes.

  • Puntaje del modelo de lenguaje (puntaje LM)
  • La probabilidad de que una palabra siga a una palabra reconocida
  • Puntuación del modelo acústico (puntuación AM)
    • Miden el grado de coincidencia entre las características que representan el enunciado y el modelo de fonema que compone la palabra.

    El reconocedor rastrea la suma de estos dos puntajes (puntaje AM + puntaje LM) para cada palabra, lo que a su vez contribuye al puntaje general de una frase candidata.

    Y al igual que el equipo que registra el mejor tiempo gana la carrera de relevos, la frase con el puntaje más alto se reconoce como el texto del resultado.

    En otras palabras, como en una carrera de carrera de relevos, donde cada corredor se basa en el predecesor principal, en reconocimiento, la frase (la cadena de palabras) que acumula ese mayor ‘puntaje de alineación’ es la salida reconocida.

    Conclusión

    Obviamente, la explicación anterior suprime muchos detalles técnicos (que todavía estoy aprendiendo). Si bien hay otras formas de implementar el reconocimiento, esta respuesta se basa libremente en mi comprensión de cómo funciona CMU Sphinx.

    Mi intención aquí era presentar una explicación simplificada que al menos lo ayudaría a comenzar a explorar este tema.

    Espero que hayas encontrado esto útil.

    Referencias

    1. CMU Sphinx (y sus foros)
    2. Fundamentos del reconocimiento de voz: Lawrence Rabiner, Biing-Hwang Juang: 9780130151575: Amazon.com: Libros

    Nota sobre ediciones:

    He reemplazado completamente mi respuesta anterior con esta respuesta, ya que sentí que era una representación mucho mejor del concepto. Me gustaría agradecer a los lectores que votaron por mi respuesta anterior y espero escuchar sus comentarios sobre cómo esta respuesta se compara con ella.

    Para llegar a la respuesta es necesario entender la pregunta.

    ¿Qué queremos decir cuando decimos reconocimiento de voz / voz?
    El reconocimiento de voz es básicamente la tarea de identificar (en forma de texto) lo que está diciendo un hablante. El enunciado puede ser una palabra u oración aislada o incluso puede ser un párrafo.

    Pensemos en un sistema simple de reconocimiento de voz que puede identificar solo palabras aisladas, digamos dígitos del 0 al 9. Llamaremos a esto como sistema de reconocimiento de dígitos.

    ¿Cuál podría ser un enfoque ingenuo para el sistema de reconocimiento de dígitos?
    Un enfoque simple sería simplemente comparar las formas de onda, es decir, almacenar las formas de onda de los dígitos del 0 al 9 y luego simplemente comparar la forma de onda del enunciado de prueba con todas las plantillas almacenadas y determinar cuál de las formas de onda almacenadas es la más cercana a su forma de onda de prueba.

    Entonces, ahí estás, ya terminaste la tarea. Pero espera, ¿es tan simple? Y como habrás adivinado, la respuesta es NO.

    Entonces, ¿dónde está la caída?

    Realmente no podemos comparar las formas de onda directamente, ¿no? Las formas de onda serán diferentes incluso cuando la misma persona pronuncie la misma palabra en diferentes momentos. Solo piense en cómo pronuncia la misma palabra en diferentes estados emocionales; a veces puedes extender la palabra y otras veces no. ¿Correcto?

    Sistema de reconocimiento de voz abstracta
    Bien, ahora al menos sabemos que no podemos comparar formas de onda directamente. Por lo tanto, necesitamos hacer un procesamiento en la forma de onda del habla y convertirlo a alguna forma adecuada para la comparación. Esto se llama extracción de características, es decir, extraemos algunas características adecuadas de nuestra señal de voz y luego las comparamos.

    Este es el marco básico detrás de cada sistema de reconocimiento de voz. Así que esencialmente podemos jugar con 2 bloques principales:
    1. Extracción de características
    2. Técnicas de comparación

    La mayoría del sistema de reconocimiento de voz actual utiliza las características MFCC (coeficientes cepstrales de frecuencia de mel) (extracción de características) y el marco GMM-HMM (modelo de mezcla gaussiana – modelo de Markov oculto) para la comparación. Recientemente, incluso los marcos basados ​​en redes neuronales – HMM también se han desarrollado para la comparación de características.

    PD: Esta respuesta es solo un intento (sin entrar en detalles técnicos) para explicar la ciencia detrás del reconocimiento de voz de una manera muy muy abstracta. Los sistemas de reconocimiento de voz son mucho más complejos, pero el marco básico sigue siendo el mismo. ¡Espero que esto ayude!


    el software dividirá las palabras en algo que pueda comparar con su base de datos. La imagen a continuación muestra diferentes posibilidades del sonido que interpreta el software, y da la respuesta solo de acuerdo con eso. Es por eso que tiende a mejorar con un uso más prolongado, ya que es capaz de distinguir entre los diferentes sonidos que produce.

    Para convertir la voz en texto en pantalla o un comando de computadora, una computadora tiene que pasar por varios pasos complejos. Cuando hablas, creas vibraciones en el aire. El convertidor de analógico a digital (ADC) traduce esta onda analógica en datos digitales que la computadora puede entender. Para hacer esto, muestrea o digitaliza el sonido tomando medidas precisas de la onda a intervalos frecuentes. El sistema filtra el sonido digitalizado para eliminar el ruido no deseado y, a veces, para separarlo en diferentes bandas de frecuencia. También normaliza el sonido o lo ajusta a un nivel de volumen constante. Puede descargar el programa de reconocimiento de voz para su PC desde WadeProgram.

    Básicamente depende del método que esté siguiendo.

    Hoy, el procesamiento del habla basado en el aprendizaje automático ha evolucionado mucho y da resultados prometedores.

    Puede entrenar su red neuronal con bases de datos estándar por una vez.
    Creo que hay mucho alcance en sumergirse en arquitecturas híbridas de NN que uno debería seguir. La dependencia de una muestra sobre la otra en el dominio del tiempo en muestras de voz hace que sea importante que la red que se utiliza explote esta dependencia ya sea utilizando modelos híbridos de RNN + PNN u otra clasificación.

    La base de datos y el dolor de cabeza de clasificación se pueden resolver si nos concentramos un poco más en las técnicas de preprocesamiento, como pasar a un nivel inferior de segmentación de fonemas en tiempo real de las señales de voz y su clasificación. Como tienen menos números y la hibridación con HMM puede ayudar mejor a completar palabras y oraciones.

    Un análisis más profundo a este nivel puede aclarar las cosas al final.

    Cuando Apurv Jyotirmay respondió, la computadora interrumpe el discurso en una secuencia de fonemas e intenta hacer coincidir estos fonemas con una base de datos de palabras que conoce.

    Obviamente, como el habla es analógica y varía, esta técnica no puede obtener una coincidencia exacta y única el 100% del tiempo, por lo que generalmente se aplican algunas mejoras, por ejemplo

    • Los fonemas no siempre son claros, la computadora necesita decidir cuáles son más probables, si el clasificador puede aprender, puede mejorar para ser más preciso para el hablante en particular
    • El clasificador debe devolver más de 1 fonema posible, con probabilidades, de modo que si la palabra con todos los fonemas más probables no existe, se pueden formar otras palabras
    • Tanto el comparador como el clasificador pueden hacer un análisis de contexto, en el clasificador, algunos fonemas son muy raros o comunes uno al lado del otro, en el caso del comparador, incluso puede considerar la oración completa para sacar una mejor conclusión (supongamos que clasificador dio identificado (chi 1.00) – ((cke 0.5) | (ldr 0.5)) – en y tiene que decidir entre pollo y niños, el pollo asado es mucho más probable que los niños asados)