#CognitiveServices – Los N pasos que debes seguir para crear tu modelo en Custom Speech Service (#CRIS)

Hola !

Es la 3ra o 4ta vez que hago esto y voy a usar este post como reminder de los pasos que debo seguir. Empecemos por explicar que es Custom Speech Service, antes conocido como CRIS.

Custom Speech Service es un servicio parte de Microsoft Cognitive Services que permite crear modelos personalizados de voz a texto, basados en un dominio de aplicación específico, que además soporta personalizaciones y especiales para diferentes acentos, cuestiones ambientales y cambios de vocabulario.

Pues bien, ahorrándome los detalles técnicos, los pasos para crear y publicar un modelo de reconocimiento de audio a texto son los siguientes.

  • Comenzamos por un clásico, en el portal de Azure, necesitamos generar una Key. En la opción New filtramos por Cognitive Services y veremos la opción para agregar “Custom Speech Service”.

Clipboard03

  • Es importante en este paso copiar los valores de las Keys que luego utilizaremos en CRIS

Clipboard06

  • Lo siguiente es ir al home de CRIS y desde allí comenzaremos a trabajar. El menú principal de “Custom Speech” nos presenta los elementos que podemos crear en este servicio.

Clipboard08

  • Comenzamos por los archivos que serviran como base para crear el modelo acústico. Seleccionamos la opción “Adaptation Data”. En esta sección podemos crear 3 tipos de elementos de datos
    • Acoustics Datasets
    • Language Datasets
    • Pronunciation Datasets
  • Los 2 primeros son los mínimos necesarios para un modelo funcional. Comencemos por subir un par de archivos en “Acoustic Datasets”. En esta sección debemos definir el nombre y descripción de este set de datos y además subir 2 archivos
    • Transcription File es un archivo de texto plano, donde específicamos el nombre del archivo (wav) y el texto que se especifica en el mismo
    • Audio Files es un archivo zip con todos los archivos de audio (wav) que subiremos como muestra

Clipboard11

  • En este paso es muy importante tener en cuenta los formatos de audio soportados y otras especificaciones que se pueden leer aquí (link).
Property Value
File Format RIFF (WAV)
Sampling Rate 8000 Hz or 16000 Hz
Channels 1 (mono)
Sample Format PCM, 16 bit integers
File Duration 0.1 seconds < duration < 60 seconds
Silence Collar > 0.1 seconds
Archive Format Zip
Maximum Archive Size 2 GB
  • El siguiente paso es subir un archivo con ejemplos de las frases esperadas en el modelo acústico que crearemos. Esto es parecido a los intents que procesamos en LUIS. Este archivo es un archivo de texto, y el mismo debe poseer un intento esperado por línea.

Clipboard13

  • Y ahora que tenemos los archivos básicos, ya podemos crear un modelo acústico. Para eso seleccionamos la opción “Acoustic Models” del menú superior y creamos uno nuevo utilizando los elementos que subimos anteriormente.

Importante: Dependiendo del tamaño de los archivos que subamos como datos iniciales, el procesamiento de los mismos puede tardar un par de minutos.

  • Una vez creado el modelo acústico con los archivos de base, podremos ver algunos detalles del mismo. En la siguiente imagen podemos ver que la precisión que se obtuvo con los audios y el modelo es de un 88% (hay un 11.68% de errores detectados)

Clipboard16

  • En la sección “Accuracy Tests” podemos ver el texto reconocido en cada archivo de audio y el texto esperado en el mismo.

Clipboard18

  • Y llega el momento de desplegar el modelo para poder utilizarlo en producción. Podemos crear un modelo de despliegue en la opción de menu “Deployments”
  • Una vez creado podremos ver que ya tenemos las urls para utilizarlo desde una app (sobre esto escribiré en otro post)
  • Y además tenemos la opción de subir un archivo de audio para probar nuestro modelo. Eso sí, con el formato específico y toca narices que requiere CRIS !

Clipboard02

En el próximo post, un poco de código C# para ver cómo podemos utilizar este servicio desde una aplicación.

Happy Coding ! 🙂

Saludos @ Toronto (-6!)

El Bruno

References

Leave a comment

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: