En esta entrada del blog, presentamos una característica única de la plataforma de conversión de voz a texto Voicegain que combina de manera eficiente el uso de gramáticas con el uso de modelos de vocabulario extensos para brindar a los desarrolladores la capacidad de lograr una alta precisión de reconocimiento de una manera muy eficiente y conveniente.
Dos tipos de reconocimiento de voz
Los sistemas de reconocimiento de voz (ASR) generalmente se pueden dividir en dos tipos:
Amplio vocabulario y reconocimiento continuo de voz
Este tipo de reconocedor se usa generalmente para la transcripción cuando el vocabulario es muy amplio y la duración del audio de la voz es ilimitada (excepto por motivos prácticos, por ejemplo, límite relacionado con los recursos). A continuación se muestran los componentes típicos y los pasos de procesamiento de un sistema de este tipo:
El funcionamiento de un sistema de este tipo es el siguiente: (s) La señal de audio se procesa en características. (b) Las funciones se introducen en un procesador de modelo acústico. El procesador convierte los datos del ámbito acústico a texto/lingüístico o a algún otro ámbito intermedio (por ejemplo, incrustaciones de audio). Los valores de salida pueden ser fonemas, letras, fragmentos de palabras, incrustaciones de audio, etc., presentados como vectores de probabilidades. (c) Estos vectores se pasan luego al componente de búsqueda/optimización. La búsqueda utiliza el modelo lingüístico para decidir qué hipótesis formadas a partir del resultado de la etapa anterior tienen más probabilidades de ser la interpretación textual correcta del audio del discurso de entrada.
Los modelos lingüísticos utilizados pueden adoptar diversas formas. Dos de las muchas manifestaciones posibles son: (a) los modelos lingüísticos ARPA, que se basan en n gramas, y (b) los modelos lingüísticos de redes neuronales en los que una red neuronal (por ejemplo, RNN) es entrenada para representar un modelo lingüístico. Algunos de los modelos lingüísticos también pueden incorporar una parte descodificadora si la salida del modelo acústico está codificada (por ejemplo, si se representa mediante incrustaciones acústicas).
Debido a que el vocabulario de este tipo de reconocedores es amplio, son propensos a errores de reconocimiento. Este es particularmente el caso de los enunciados cortos que no proporcionan mucho contexto al modelo lingüístico como para restringir suficientemente las hipótesis. Un ejemplo sería reconocer erróneamente «tarjeta» como «coche» si esa es la única palabra que se dice y el hablante tiene un acento específico.
Las ofertas de conversión de voz a texto en la nube de los proveedores de Big Cloud (Google, Amazon y Microsoft) son ejemplos de ASR de vocabulario amplio.
Reconocimiento de voz basado en gramática
En un sistema de este tipo, el desarrollador de Voice Bot/IVR utiliza una gramática libre de contexto para definir un conjunto de posibles expresiones que pueden reconocerse. Por lo general, las gramáticas se definen utilizando el estándar SRGS (especificación gramatical de reconocimiento de voz), ya sea en gramática ABNF o GRXML. Otros tipos de gramáticas que se utilizan son JSGF (formato gramatical de JSpeech) y GSL (que es el lenguaje de especificación gramatical de Nuance).
Los componentes y los pasos de procesamiento de un sistema de reconocimiento de voz típico que usa tales gramáticas se ilustran a continuación:
En este sistema, la evaluación de los resultados del procesamiento del modelo acústico se realiza mediante un optimizador de búsqueda/optimización que utiliza las reglas contenidas en la gramática para decidir qué hipótesis son aceptables. Solo se pueden generar los enunciados que se pueden generar a partir de la gramática.
Si se pronuncia una expresión fuera de la gramática y se presenta al reconocedor, es posible que aún se reconozca, pero con poca confianza. Si la confianza está por debajo de un umbral establecido, se devolverá un NOMATCH.
La desventaja obvia de usar un reconocedor de este tipo es que no reconocerá expresiones fuera del alcance de la gramática. Estas expresiones se denominan expresiones fuera de gramática. Sin embargo, una gran ventaja de este enfoque es que es menos propenso a ser reconocido erróneamente cuando una expresión que ya se ha dicho se ha anticipado y se incluye en la gramática.
Una ventaja adicional de usar un reconocedor basado en la gramática es que la mayoría de las gramáticas permiten la inserción de etiquetas semánticas, que permiten a la gramática no solo definir un enunciado, sino también la interpretación semántica de ese enunciado.
Ejemplos de este tipo de sistema de reconocimiento de voz basado en la gramática serían las ofertas de conversión de voz a texto, como Nuance ASR o Lumenvox ASR.
Combinación del reconocimiento gramatical y de vocabulario extenso
Es evidente que ambos tipos de sistemas de reconocimiento de voz tienen ventajas y desventajas. Por lo tanto, parece comprensible que una combinación de ambos pueda tener las ventajas de ambos y, al mismo tiempo, evitar algunos inconvenientes.
Enfoque utilizando una combinación de ASR existentes
Un enfoque simple sería combinar dos sistemas de reconocimiento de voz diferentes. Sería necesario crear dos sesiones de reconocimiento de voz y dividir la transmisión de audio entrante para que cada sesión reciba una copia del audio entrante. Esas dos sesiones procesarían el audio por separado y generarían resultados separados que luego tendrían que combinarse. Esto se ilustra a continuación:
Desventajas de usar dos sesiones de ASR
La configuración presentada anteriormente tiene varias desventajas:
- Introduce complejidad en la transmisión del audio al reconocedor. Es necesario agregar un componente similar a un proxy adicional que divida la transmisión de audio y la envíe a dos sistemas ASR independientes.
- La combinación de los resultados también requiere un nuevo componente independiente. Esto no es necesariamente trivial, ya que los dos sistemas ASR desconectados tienen diferentes puntos finales, lo que significa que los resultados llegarán en momentos diferentes.
- Se necesitarán recursos informáticos adicionales para permitir la ejecución de dos sistemas ASR independientes en lugar de solo uno.
- Otra desventaja es tener que pague el doble de la tarifa de licencia ya que cada ASR tendrá que tener una licencia de sesión independiente.
Enfoque de ganancia de voz
La plataforma Voicegain proporciona un sistema de reconocimiento de voz que combina ambos tipos de reconocimiento de voz para aprovechar las ventajas de ambos. Nuestro sistema se ilustra en la siguiente figura:
En este sistema, el procesamiento hasta la salida del procesamiento del modelo acústico es esencialmente idéntico al procesamiento realizado en los sistemas representados en las dos primeras figuras de esta publicación. Sin embargo, tras este paso, Voicegain incluye un novedoso módulo de búsqueda/optimización que utiliza tanto la gramática como el modelo lingüístico de vocabulario extenso para generar los resultados finales del reconocimiento. La señalización final se realiza de manera similar a la de un reconocedor basado en gramática, ya que parece tener más sentido dado el caso de uso (pero esto se puede modificar). El resultado final del reconocimiento constará de los n mejores resultados del reconocimiento basado en la gramática, si la gramática coincidió, y una o más hipótesis del reconocimiento de vocabulario extenso.
El desarrollador de la aplicación puede tomar sus propias decisiones sobre cómo usar el resultado del reconocimiento. Por ejemplo, el valor de confianza se puede usar para determinar si el resultado basado en la gramática o el resultado del vocabulario extenso se debe usar en un punto determinado de la aplicación.
Con la versión 1.22.0 de Voicegain, esta función está disponible de forma general como parte de nuestra API de reconocimiento.
Un ejemplo de solicitud con nuestra API /asr/recognize/async tiene este aspecto:
Como puede ver, solo hay una definición para la transmisión de audio entrante. La sección de gramática de settings.asr contiene dos definiciones gramaticales:
- una es una gramática JSGF estándar con semántica de formato de etiqueta literal,
- el otro no es en realidad una gramática sino un comando para activar la transcripción de vocabulario grande para esta sesión {type:Built-in, name:transcribe}
Caso de uso de MRCP
Además de estar disponible en nuestras API STT y Telephone Bot, la interfaz MRCP admite el reconocimiento de vocabulario extenso y basado en gramática al mismo tiempo. Por ejemplo, desde VXML puedes pasar tanto la gramática GRXML como la gramática builtin:speech/transcribe y recibirás tanto el resultado de GRXML como el de vocabulario extenso.
Si está creando un asistente de voz inteligente, un bot de voz, una aplicación de voz IVR o cualquier otra aplicación que pueda beneficiarse de esta función, contacta con nosotros vía (correo electrónico) info@voicegain.ai) para entablar un debate más profundo.