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.
- AI aprende de los datos del pasado para predecir, entonces, ¿debería haber preocupaciones en torno al pensamiento grupal? ¿La creatividad tendrá éxito en un mundo más autónomo?
- Si alguien sin experiencia en programación quisiera aprender algoritmos y aprendizaje automático, ¿cuáles serían las mejores fases de estudio e investigación? ¿Sería mejor comenzar con el aprendizaje de la codificación? ¿Con qué idioma es mejor comenzar?
- ¿Cuál es el mejor algoritmo para descubrir todos los nodos de la red y mantener esa red en tiempo real?
- ¿Alguien consiguió un trabajo en Machine Learning después de completar un Nanodegree de Machine Learning?
- ¿Cuáles son algunas formas de evitar la maldición de la dimensionalidad?
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?