Implementación de conversión de voz en texto personalizada

Servicios de Azure AI
Voz de Azure AI
Azure Machine Learning

En esta guía de dos partes se describen varios enfoques para implementar eficazmente aplicaciones compatibles con voz de alta calidad. Se centra en ampliar y personalizar el modelo de línea base de la funcionalidad de conversión de voz en texto que proporciona el servicio AI Speech.

En este artículo se describe el espacio de problemas y el proceso de toma de decisiones para diseñar la solución. En el segundo artículo, Implementación de una solución personalizada de conversión de voz en texto, se proporciona un caso de uso para aplicar estas instrucciones y prácticas recomendadas.

El espectro de IA personalizado y pregenerado

El espectro de inteligencia artificial personalizado y pregenerado representa varios niveles de personalización y desarrollo de modelos de IA, que van desde modelos pregenerados listos para usar hasta soluciones de inteligencia artificial totalmente personalizadas.

Diagrama que muestra el espectro de niveles de personalización.

En el lado izquierdo del espectro, los servicios de Azure AI permiten una implementación rápida y de baja fricción de las funcionalidades de inteligencia artificial en aplicaciones mediante modelos entrenados previamente. Microsoft mantiene extensos conjuntos de datos para entrenar y crear estos modelos de línea base. Como resultado, puede usar modelos de línea base sin datos de entrenamiento adicionales. Se consumen gracias a llamadas API mediante programación de seguridad mejorada.

Los servicios de Azure AI incluyen:

  • Voz, Conversión de voz en texto, texto a voz, traducción de voz y Speaker Recognition
  • Idioma. Reconocimiento de entidades, análisis de sentimiento, respuesta a preguntas, reconocimiento del lenguaje conversacional y traductor
  • Visión. Computer Vision y Face API
  • Decisión. Anomaly Detector, Content Moderator y Personalizer
  • OpenAI Service. Modelos de lenguaje avanzados

Cuando los modelos de línea base pregenerados no funcionan con la precisión suficiente con los datos, puede personalizarlos agregando datos de entrenamiento relativos al dominio del problema. Esta personalización requiere el trabajo adicional de recopilar los datos adecuados para entrenar y evaluar un modelo aceptable. Los servicios de Azure AI que se pueden personalizar incluyen Custom Vision, Custom Translator, Custom Speech y CLU. La extensión de modelos de los servicios de Azure AI pregenerados está en el centro del espectro. La mayor parte de este artículo se centra en esa área central.

Como alternativa, cuando los modelos y los datos de entrenamiento se centran en un escenario específico y requieren un conjunto de datos de entrenamiento de su propiedad, Azure Machine Learning proporciona recursos de soluciones personalizados, herramientas, proceso y guía de flujo de trabajo para admitir la creación de modelos completamente personalizados. Este escenario aparece en el lado derecho del espectro. Estos modelos se crean desde cero. El desarrollo de un modelo mediante Azure Machine Learning suele oscilar entre usar herramientas visuales como AutoML y desarrollar el modelo mediante programación con cuadernos.

Servicio de voz de Azure

El servicio Voz de Azure unifica la funcionalidad de conversión de voz en texto, texto a voz, traducción de voz, asistente para voz y Speaker Recognition en una suscripción única basada en los servicios de Azure AI. Puede habilitar una aplicación para voz mediante la integración con el servicio de voz con SDK y API fáciles de usar.

El servicio de conversión de voz en texto de Azure analiza el audio en tiempo real o de forma asincrónica para transcribir la palabra hablada a texto. De forma predeterminada, la conversión de voz en texto de Azure usa un modelo de lenguaje universal como base de referencia que refleja el lenguaje hablado que se usa habitualmente. Este modelo de línea base se entrena previamente con dialectos y fonética que representan una variedad de dominios comunes. Como resultado, consumir el modelo de línea base no requiere ninguna configuración adicional y funciona bien en la mayoría de los escenarios.

Tenga en cuenta, sin embargo, que es posible que el modelo de línea base no sea suficiente si el audio contiene ruido ambiental o incluye una gran cantidad de jerga específica del sector y del dominio. En estos casos, la creación de un modelo de voz personalizado tiene sentido. Para ello, puede realizar el entrenamiento con datos adicionales asociados al dominio específico.

Según el tamaño del dominio personalizado, también puede tener sentido entrenar varios modelos y compartimentar un modelo para una aplicación individual. Por ejemplo, los analistas olímpicos informan sobre varios deportes, cada uno con su propia jerga. Dado que el vocabulario de cada evento deportivo difiere significativamente de otros, la creación de un modelo personalizado específico de un deporte aumenta la precisión al limitar los datos de expresión relativos a ese deporte en particular. Como resultado, el modelo puede aprender de un conjunto preciso y específico de datos.

Por lo tanto, hay tres enfoques para implementar la conversión de voz en texto de Azure:

  • El modelo de línea de base es adecuado cuando el audio está claro y no contiene ruido ambiente y la voz transcrita usa un lenguaje hablado habitualmente.
  • Un modelo personalizado aumenta el modelo de línea base para incluir vocabulario específico del dominio compartido en todas las áreas del dominio personalizado.
  • Tiene sentido usar varios modelos personalizados cuando el dominio personalizado tiene numerosas áreas, cada una con un vocabulario específico.

Diagrama que resume los tres enfoques para implementar la conversión de voz en texto de Azure.

Posibles casos de uso

Estos son algunos escenarios genéricos y casos de uso en los que resulta útil la conversión de voz en texto personalizada:

  • Transcripción de voz para un dominio específico, como transcripción médica o transcripción de un centro de llamadas
  • Transcripción en directo, como en una aplicación o para proporcionar subtítulos para streaming de vídeo en directo

SDK de Microsoft y herramientas de código abierto

Al trabajar con la conversión de voz en texto, es posible que estos recursos le resulten útiles:

Consideraciones de diseño

En esta sección se describen algunas consideraciones de diseño para crear una aplicación basada en voz.

Comparación entre un modelo de línea base y el modelo personalizado

Azure Speech incluye modelos de línea base que admiten varios idiomas. Estos modelos se entrenan previamente con una gran cantidad de vocabulario y dominios. Sin embargo, es posible que tenga un vocabulario especializado que sea necesario reconocerlo. En estas situaciones, los modelos de línea base podrían ser insuficientes. La mejor forma para determinar si el modelo base será suficiente es analizar la transcripción generada a partir del modelo de línea base y compararla con una transcripción generada por el usuario para el mismo audio. En el artículo de implementación de esta guía se describe el uso de Speech Studio para comparar las transcripciones y obtener una puntuación de tasa de errores de palabras (WER). Si hay varias sustituciones de palabras incorrectas en los resultados, se recomienda entrenar un modelo personalizado para reconocer esas palabras.

Comparación entre un modelo y muchos modelos personalizados

Si el escenario se beneficiará de un modelo personalizado, debe determinar cuántos modelos se van a crear. Un modelo suele ser suficiente si las expresiones están estrechamente relacionadas con un área o dominio. Sin embargo, varios modelos son mejores si el vocabulario es significativamente diferente en las áreas de dominio. En este escenario, también necesita un conjunto de datos de entrenamiento.

Volvamos al ejemplo de los Juegos Olímpicos. Supongamos que necesita incluir la transcripción de comentarios de audio para varios deportes, incluyendo hockey sobre hielo, luge, snowboarding, esquí alpino, etc. La creación de un modelo de voz personalizado para cada deporte mejorará la precisión porque cada deporte tiene terminología única. Sin embargo, cada modelo debe tener diversos datos de entrenamiento. Es demasiado restrictivo y limitado crear un modelo para cada comentador de cada deporte. Un enfoque más práctico es crear un modelo único para cada deporte, pero incluir audio de un grupo que incluye comentadores con diferentes acentos, de ambos sexos y de varias edades. Todas las frases específicas del dominio relacionadas con el deporte capturadas por los diversos analistas residen en el mismo modelo.

También debe tener en cuenta qué idiomas y configuraciones regionales admitir. Es posible que tenga sentido crear estos modelos en función de la configuración regional.

Adaptación del modelo acústico y de idioma

Azure Speech proporciona tres opciones para entrenar un modelo personalizado:

La adaptación del modelo de lenguaje es la personalización más usada. Un modelo de lenguaje ayuda a entrenar cómo se usan juntas determinadas palabras en un contexto determinado o en un dominio específico. La creación de un modelo de lenguaje también es relativamente fácil y rápida. En primer lugar, entrene el modelo proporcionando una variedad de expresiones y frases para el dominio determinado. Por ejemplo, si el objetivo es generar una transcripción para esquí alpino, recopile transcripciones generadas por humanos de varios eventos de esquí. Limpie y combine las transcripciones para crear un archivo de datos de entrenamiento con aproximadamente 50 000 frases y oraciones. Para obtener más información sobre los requisitos de datos para el entrenamiento del modelo de lenguaje personalizado, consulte Conjuntos de datos de entrenamiento y pruebas.

La personalización del modelo de pronunciación también es una de las personalizaciones más usadas. Un modelo de pronunciación ayuda al modelo personalizado a reconocer palabras poco frecuentes que no tienen una pronunciación estándar. Por ejemplo, parte de la terminología de esquí alpino toma préstamos de otros idiomas, como los términos schuss y mogul. Estas palabras son excelentes candidatas para un entrenamiento con un conjunto de datos de pronunciación. Para obtener más información sobre cómo mejorar el reconocimiento mediante un archivo de pronunciación, consulte Datos de pronunciación para entrenamiento. Para obtener más información sobre cómo crear un modelo personalizado mediante Speech Studio, consulte ¿Qué es Habla personalizada?.

La adaptación del modelo acústico proporciona entrenamiento fonético sobre la pronunciación de determinadas palabras para que Voz de Azure pueda reconocerlas correctamente. Para crear un modelo acústico, necesita ejemplos de audio y transcripciones generadas por humanos. Si el lenguaje de reconocimiento coincide con configuraciones regionales comunes, como en-US, el uso del modelo de línea base actual debe ser suficiente. Los modelos de línea base tienen un entrenamiento diverso que usa las voces de hablantes nativos y no nativos de inglés para cubrir una gran cantidad de vocabulario inglés. Por lo tanto, la creación de una adaptación de modelos acústicos en el modelo base en-US podría no proporcionar mucha mejora. El entrenamiento de un modelo acústico personalizado también tarda un poco más. Para obtener más información sobre los requisitos de datos para el entrenamiento acústico personalizado, consulte Conjuntos de datos de entrenamiento y pruebas.

El modelo personalizado final puede incluir conjuntos de datos que usan una combinación de las tres personalizaciones descritas en esta sección.

Entrenamiento de un modelo personalizado

Hay dos enfoques para entrenar un modelo personalizado:

  • Entrene con numerosos ejemplos de frases y expresiones del dominio. Por ejemplo, incluya transcripciones de audio de eventos de esquí alpino limpias y normalizadas y transcripciones generadas por humanos de eventos anteriores. Asegúrese de que las transcripciones incluyen los términos utilizados en el esquí alpino y varios ejemplos de cómo los autores los pronuncian. Si sigue este proceso, el modelo personalizado resultante debe ser capaz de reconocer palabras y frases específicas del dominio.

  • Entrene con datos específicos que se centren en áreas problemáticas. Este enfoque funciona bien cuando no hay muchos datos de entrenamiento, por ejemplo, si se usan nuevos términos de jerga durante los eventos de esquí alpino y deben incluirse en el modelo. Este tipo de entrenamiento usa el siguiente enfoque:

    • Use Speech Studio para generar una transcripción y compararla con transcripciones generadas por humanos.
    • Identifique áreas problemáticas de patrones sobre lo que dicen los comentadores. Identifique:
      • Contextos en los que se aplican la palabra o expresión problemáticas.
      • Diferentes inflexiones y pronunciaciones de la palabra o expresión.
      • Cualquier aplicación específica de la palabra o expresión por parte del comentador.

El entrenamiento de un modelo personalizado con datos específicos puede llevar mucho tiempo. Los pasos incluyen analizar cuidadosamente las lagunas de transcripción, agregar manualmente frases de entrenamiento y repetir este proceso varias veces. Sin embargo, al final, este enfoque proporciona un entrenamiento centrado para las áreas problemáticas que se transcribieron previamente incorrectamente. Y es posible crear este modelo de forma iterativa mediante el entrenamiento selectivo en áreas críticas y, a continuación, continuar con la lista en orden de importancia. Otra ventaja es que el tamaño del conjunto de datos incluirá varios cientos de expresiones en lugar de unos pocos miles, incluso después de muchas iteraciones de la creación de los datos de entrenamiento.

Después de compilar el modelo

Después de compilar el modelo, tenga en cuenta las siguientes recomendaciones:

  • Tenga en cuenta la diferencia entre texto léxico y texto para mostrar. Speech Studio genera WER basado en texto léxico. Sin embargo, lo que ve el usuario es el texto para mostrar con signos de puntuación, mayúsculas y palabras numéricas representadas como números. A continuación se muestra un ejemplo de una comparación del texto léxico y el texto para mostrar.

    Texto léxico: la velocidad es excelente y el tiempo es aún mejor cincuenta y siete cero seis tres segundos para la alemana

    Texto para mostrar: La velocidad es excelente. Y el tiempo es aún mejor. 57063 segundos para el alemán.

    Lo que se espera (implícito) es: La velocidad es excelente. Y el tiempo es aún mejor. 57,063 segundos para el alemán

    El modelo personalizado tiene una tasa WER baja, pero eso no significa que la tasa de errores percibida por el usuario (errores en el texto para mostrar) sea baja. Este problema se produce principalmente en la entrada alfanumérica porque diferentes aplicaciones pueden tener formas alternativas de representar la entrada. No debe confiar solo en WER. También debe revisar el resultado final del reconocimiento.

    Cuando el texto para mostrar parece incorrecto, revise el resultado de reconocimiento detallado del SDK, que incluye texto léxico, en el que todo está escrito. Si el texto léxico es correcto, el reconocimiento es preciso. Después, puede resolver errores en el texto para mostrar (el resultado final reconocido) agregando reglas posteriores al procesamiento.

  • Administre conjuntos de datos, modelos y sus versiones. En Speech Studio, al crear proyectos, conjuntos de datos y modelos, solo hay dos campos: nombre y descripción. Al compilar conjuntos de datos y modelos de forma iterativa, debe seguir un buen esquema de nomenclatura y control de versiones para facilitar la identificación del contenido de un conjunto de datos y qué modelo refleja qué versión del conjunto de datos. Para obtener más información sobre esta recomendación, consulte Implementación de una solución personalizada de conversión de voz en texto.

Colaboradores

Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes colaboradores.

Autor principal:

Otros colaboradores:

Para ver los perfiles no públicos de LinkedIn, inicie sesión en LinkedIn.

Pasos siguientes