¿Cuál es el proceso de reconocimiento de voz (en resumen)?

Estoy copiando una respuesta que escribí anteriormente: la respuesta de Jeff Foley a ¿Puedes explicar el código que entra en el software de reconocimiento de voz?

Me encanta el reconocimiento de voz porque es una mezcla de disciplinas muy interesante: psicología, usabilidad, informática, “ciencia del habla”, lingüística, fisiología, acústica, procesamiento de señales, matemáticas … pero esto es lo que sucede en la mayoría de los sistemas modernos de reconocimiento de voz:

1) Desglosar la entrada. Primero, el sistema toma la señal del altavoz y comienza a descomponerla en partes componentes. Trata de adivinar qué fonemas, o “átomos” individuales del habla, como las consonantes y los sonidos vocálicos, comprenden cada parte de la señal. Esto no es una coincidencia exacta de ninguna manera; a / b / y a / d / suenan igual, fricativas como / s /, / z / y / sh / son fácilmente confundibles; Las resonancias de las vocales son difíciles de distinguir.

La mecánica actual involucra transformaciones y procesamiento de señales para observar la periodicidad: las vocales resuenan con ciertas frecuencias formantes identificables, las consonantes de parada tienen explosiones distintas de energía, las fricativas han sostenido el ruido de alta frecuencia, ese tipo de cosas. La coincidencia de patrones los compara con las características acústicas conocidas para ese tipo de sonidos. Hay cursos universitarios y libros de texto completos sobre el tema Cómo leer un espectrograma para que usted también pueda seguir las decisiones automatizadas que toma el software.

El resultado no es una respuesta definitiva, sino una lista de probabilidades de que ciertos sonidos sean los correctos en un período de tiempo determinado.

2) Buscar en la red. Ahora que tiene una matriz de resultados, es hora de encontrar el mejor camino a través del laberinto de fonemas y probabilidades para identificar palabras reales. Para esto, tiene algunas restricciones y ponderaciones para ayudar al software.

Un modelo acústico puede ayudar a identificar aún más qué fonemas tienen más probabilidades de ser correctos. Esto es especialmente cierto si el hablante es conocido (reconocimiento de voz dependiente del hablante, donde el hablante entrena el sistema por adelantado) o si es posible algún tipo de adaptación sobre la marcha en el camino, para sistemas independientes del hablante.

El vocabulario, o gramática, enumera todas las palabras posibles que el sistema puede reconocer. Se divide cada uno en sus fonemas componentes. Así es como el sistema sabe que / b / / oh / / ee / es la palabra legítima “niño” pero / d / / uh / / ee / no es una combinación válida. También trata de detectar los extremos de las palabras, lo que puede ser complicado dada la cantidad de palabras que se cruzan entre sí, ¿sabes qué dices? Las letras se tragan como el / t / en medio de “no hacerlo” y el vocabulario tiene que tener eso en cuenta, con reglas adicionales establecidas sobre cuándo tienen lugar esas gotas. (Y eso es solo para inglés … no me hagas hablar en otros idiomas, como el francés y sus enlaces …)

Algunos sistemas de reconocimiento de voz tienen gramáticas abiertas, que intentan reconocer un gran vocabulario de palabras para tomar un dictado abierto. Otros pueden tener gramáticas muy limitadas, especialmente para modelos independientes del hablante que solo pueden actuar en un conjunto más pequeño de comandos. A menudo, los “vocabularios” se extienden con variantes que se basan en ellos mismos, de modo que comandos como ” [the] [please]” pueden reconocer “Abrir la tienda de aplicaciones” y “Iniciar Chrome por favor” ambos trabajan.

El último conjunto importante de ponderaciones proviene del modelo de lenguaje: ¿qué palabras tienen más probabilidades de venir juntas en secuencia? Estos “bigrams” y “trigrams” se tienen en cuenta a pesar de que la cantidad de potencia de procesamiento y almacenamiento requerida para pasar a dos palabras antes y después puede ser paralizante. Pero los resultados son imprescindibles para el éxito: de repente, “Te amo” es más probable que “pasillo de visión” y se descartan por completo combinaciones como “Aye odio a tejo”. El modelo de lenguaje puede estar influenciado por palabras previamente reconocidas también; si “nudist beach” o “new to speech” tiene una clasificación más alta puede depender de si el hablante ha estado hablando sobre sus vacaciones o su clase de reconocimiento de voz. Los modelos de lenguaje también se pueden entrenar de antemano, con ejemplos previos de palabras que esperan dar al sistema un salto en las respuestas más probables.

Con todas estas restricciones en su lugar, es hora de buscar. Lo más rápido posible, el sistema toma todas estas ponderaciones y atraviesa el modelo oculto de Markov para encontrar la mejor respuesta posible. Esto se ha comparado con tratar de adivinar qué sucede en un juego de béisbol mientras caminas al lado del estadio. Tienes pistas sobre lo que está pasando entre los aplausos de la multitud (la entrada de audio); tienes restricciones dadas las reglas del juego (gramática y vocabulario); tienes tendencias dado el orden de bateo y qué bateadores tienen más probabilidades de desempeñarse bien (modelo de lenguaje). Júntelos todos y, con suficiente práctica y capacitación, podría reunir un puntaje de caja.

La búsqueda de la mejor ruta a menudo se ejecuta hacia atrás y hacia adelante, porque a veces una búsqueda de ruta hacia adelante puede llevarlo por mal camino. Piense en ello como tratar de encontrar el mejor camino de una cuadra de la ciudad a otra. Cada vez que llega a una intersección, puede elegir el camino más corto hacia la próxima intersección … pero puede terminar visitando una serie de intersecciones que toman un camino largo y indirecto para llegar al destino. Los algoritmos y variantes de búsqueda (muchos basados ​​en el algoritmo de Viterbi) se actualizan regularmente para maximizar la velocidad y la precisión, ambos increíblemente importantes para el reconocimiento de voz utilizable.

3) Devuelve la n-mejor lista de resultados. Finalmente, el sistema tiene una suposición y la devuelve a cualquier programa que haya proporcionado la entrada en primer lugar. Sin embargo, el software no suele terminar ahí. Por lo general, proporciona una n-mejor lista de los siguientes ganadores de la búsqueda, como un programa de ajedrez que enumera todas sus principales alternativas de movimiento rechazado. Lo que sea que esté usando el motor de reconocimiento de voz puede decidir cómo proceder: ¿ofrece las alternativas como opciones de corrección? ¿Simplemente sirve la mejor respuesta? A veces, también se devuelve un puntaje de confianza, y el software puede decidir rechazar una respuesta con una confianza demasiado baja, o buscar confirmación si hay confianza de nivel medio en la respuesta.

Nada de esto incluso comienza a considerar toda la usabilidad y psicología de estructurar un diálogo de ida y vuelta entre una interfaz tipo Siri y un usuario, y mucho menos tomar la traducción del discurso a texto y luego tratar de discernir su significado (” Estoy bastante seguro de que dijiste ‘abre las puertas de la bahía del pod Hal’, pero no veo un programa llamado “Puertas de la bahía del pod Hal”, ¿así que se supone que debo volcar ese texto en la ventana actual?

More Interesting

¿Qué piensan los pequeños equipos de ciencia de datos sobre la plataforma Dato y el pensamiento de Carlos Guestrin detrás de la democratización del aprendizaje automático?

¿Cuál debería ser el primer paso para aprender IA y aprendizaje automático?

¿Tengo que escuchar el curso de aprendizaje automático Coursera de Andrew Ng?

¿Puedo usar el algoritmo de aprendizaje automático en mi proyecto de investigación aunque no soy un experto en él?

¿Cuáles son algunos de los temas candentes que se están investigando actualmente en la escucha de máquinas / procesamiento de audio?

¿Cómo se calcula la pérdida WARP de la estadística de orden K para aprender a clasificar las recomendaciones?

¿Cuál es la diferencia entre un conjunto de entrenamiento y un conjunto de prueba?

¿Cuál es su enfoque para el diseño de redes neuronales convolucionales?

¿Hay algún otro clasificador de aprendizaje profundo como softmax?

¿Cuántas redes neuronales cubre el curso Coursera de Andrew Ng?

¿El curso de aprendizaje automático que el profesor Andrew Ng ofrece en Coursera me será útil como desarrollador de software profesional para resolver problemas de aprendizaje automático del mundo real?

Cómo comenzar a aprender lenguaje máquina a partir de tutoriales

¿Cuál es la intuición detrás de la propagación hacia atrás?

¿Por qué no es una buena idea tener el mismo tren y equipo de prueba?

Cómo llamar a clasificadores y conjuntos de datos de WEKA a Netbeans IDE 7.1