#CognitiveServices – Tutorial to create and publish a complete model in Custom Speech Service (#CRIS)

Hi !

This is my 3rd or 4th time on this, so I better write about this so I won’t forget next time. So, let´s start from the beggining, Custom Speech Service definition (we used to know this as CRIS).

The Custom Speech Service lets you create custom speech-to-text models, tailored to your application’s environment, user population, and vocabulary.

So, I’ll by pass deep technical details, and I’ll share the necessary steps to build and publish a model to allow a speech to text conversion.

  • We need to start in a well know place: Azure portal and generate a Key for CRIS. We select New and we filter using Cognitive Services, then we select the option to add a new “Custom Speech Service”.

Clipboard03

  • Important, here we need to copy and store the keys values

Clipboard06

  • Now we can go to CRIS homepage, and start our model creation. There is a main menu “Custom Speech” which allows us to work with the components of the service.

Clipboard08

  • Let’s start with the files that we will use as the basis for creating the acoustic model. Select the option “Adaptation data”. In this section we can create 3 types of data elements
    • Acoustics Datasets
    • Language Datasets
    • Pronunciation Datasets
  • The first 2 are the minimums needed for a functional model. Let’s start by uploading a couple of files into “Acoustic Datasets”. In this section we must define the name and description of this data set and also upload 2 files
    • Transcription file is a plain text file, where we specify the filename (WAV) and the text specified in the same
    • Audio files is a zip file with all the audio files (WAV) that we upload as a sample

Clipboard11

  • In this step is important to read and understand the supported formats for the audi files. All the specifications are detailed in CRIS documentation (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
  • The next step is to upload a text file with samples of the phrases expected in the acoustic model that we will create. This is similar to the intent we process in LUIS. This file is a text file, and it must have an expected attempt in each line.

Clipboard13

  • And now that we have the basic files, we can create an Acoustic Model. For that we select the option “Acoustic models” from the top menu and create a new one using the elements that we uploaded previously.

Important: Depending on the size of the files that we upload as initial data, the complete process may take a couple of minutes.

  • Once you have created the acoustic model with the base files, you will be able to see some details of it. In the following image we can see that the accuracy that was obtained with the audio and the model is 88% (there is a 11.68% of errors detected)

Clipboard16

  • In the “Accuracy Tests” section we can see the recognized text in each audio file and the expected text in it.

Clipboard18

  • And it’s time to deploy the model to be able to use it in production. We can create a deployment model in the “Deployments” menu option
  • Once created we can see that we already have the URLs to use it from an App (about this I will write in another post)
  • And we also have the option to upload an audio file to test our model. Yes, with the specific format and touches noses that requires CRIS !

Clipboard02

In the next post, a bit of C # code to see how we can use this service from an application.

Happy Coding ! 🙂

Greetings @ Toronto (-6!)

El Bruno

References

Advertisements

#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