#AI – Some news in Cognitive Services presented at #MSBuild 2018

Hi!

Again, it’s time to write about some topics what has most caught my attention in the news presented during Microsoft Build 2018. In this case I will only comment on some news related to Vision and Speech.

Vision

  • Computer Vision, now supports Object Detection. We have the ability to detect objects in an image. I have to see more in depth that we can both exploit this capacity in Custom Vision.
  • Custom Vision, new formats to export models. Until now we had the ability to export Custom Vision models to CoreML and TensorFlow.
    Now we have 2 new options that really are impressive

    • Export to ONNX. About this I wrote about it. Now we can use these models natively as part of our UWP Apps in Windows 10.
    • Export to Docker File. Especially designed for mixed scenarios with Azure Functions and Azure IOT Edge

I1

Speech

The first thing to comment is a big but very necessary change.

We now have a single service that handles: Speech to Text, Text to Speech and Speech Intent Recognition.

The 2nd point to note is that we now have the ability to Create our own Voice Models. This means that we could create Alexa or Cortana style assistants using our own voice. Ideal to give to your partner, your mother or your worst enemy.

And with this I put pause for today. Happy coding!

Greetings @ Toronto

El Bruno

 

Advertisements

#AI – Algunas novedades en Cognitive Services presentadas en #MSBuild 2018

Buenas!

Otra vez apunto el post a lo que mas me ha llamado la atención en las novedades presentadas en Microsoft Build 2018. En este caso solo comentare algunas novedades relacionadas a Vision y Speech.

Vision

  • Computer Vision, ahora soporta Object Detection. Tenemos la capacidad de detectar objetos en una imagen. Tengo que ver mas a fondo que tanto podemos explotar esta capacidad en Custom Vision.
  • Custom Vision, nuevos formatos para exportar modelos. Hasta ahora teníamos la capacidad de exportar modelos de Custom Vision a CoreML y a TensorFlow. Ahora tenemos 2 nuevas opciones que realmente son impresionantes
    • Exportar a ONNX. Sobre esto ya escribí al respecto. Ahora podremos utilizar estos modelos de forma nativa como parte de nuestras UWP Apps en Windows 10.
    • Exportar a Docker File. Especialmente pensado para escenarios mixtos con Azure Functions y Azure IOT Edge

I1

Speech

Lo primero a comentar es un cambio grande pero muy necesario.

Ahora tenemos un único servicio que se encarga de: Speech to Text, Text to Speech y Speech Intent Recognition.

El 2do punto a destacar es que ahora tenemos la capacidad de crear nuestros propios Voice Models. Esto significa que podríamos crear asistentes del estilo Alexa o Cortana utilizando nuestra propia voz. Ideal para regalar a tu pareja, tu madre o a tu peor enemigo.

Y con esto pongo pausa por today. Happy coding!

Saludos @ Toronto

El Bruno

 

#AI – Real-time audio translation using #CognitiveServices

Hi!

I still have some work to do after the Azure Global Bootcamp. After showing the Audio Bot in live mode, one of the classic questions in Canada, is that what happens with French?, is this supported?

Well, Cognitive Services offers us several services that can be useful to create multi cultural apps, mostly if we are working with text or audio. Regardless of the Cognitive Service operation that we use, the process to perform an audio translation is usually always the following

  • Convert audio into text
  • Convert the text from a language A to a language B

In the first step, it is possible to use local services of the device to convert the audio into text, or if you work with a specific business domain, Custom Speech Service is the service to use.

Another option, which is also interesting is to use Translator Speech API. This service uses an audio stream as input and with a single call to an Http Endpoint. It is worth seeing the implementation of the service, since it works with WebSockets sending chunks of data from an audio file.

The best thing as always is to go to the code examples of the Microsoft Translator repository and see how they have been implemented. In the example for WPF we can see that we define options like source and destination language, text in subtitles and more.

capture_001_30042018_190722

At the moment of initial service, the code connects to the EndPoint and starts sending the audio that is recorded from the Input Device

capture_002_30042018_190726

Almost in real time, we can see how the application translates between 2 languages

capture_003_30042018_190735

In addition to the WPF example, in repos we can see examples for iOS, Android, UWP and more.

Happy Coding!

Greetings @ Toronto

El Bruno

References

#AI – Traducción en tiempo real de audio utilizando #CognitiveServices

Buenas!

Sigo con los pendientes después del Azure Global Bootcamp. Después de mostrar el Audio Bot, una de las preguntas clásicas en Canada, ¿es que pasa con el Frances?

Pues bien, Cognitive Services nos ofrece varios servicios que pueden sernos de utilidad. Independientemente de los servicios de CS que utilicemos, el proceso suele ser siempre el siguiente

  • Convertir el audio en texto
  • Convertir el texto de un idioma A a un idioma B.

En el primer paso es posible utilizar servicios locales del dispositivo para convertir el audio en texto, o si trabajas con un dominio de negocios especifico, Custom Speech Service es el servicio a utilizar.

Otra opción, que también es interesante es utilizar Translator Speech API. Este servicio utiliza un stream de audio como input y con una única llamada a un Http Endpoint. Vale la pena ver la implementación del servicio, ya que funciona con WebSockets enviando chunks de datos de un archivo de audio.

Lo mejor como siempre es ir a los ejemplos de código del repositorio de Microsoft Translator y ver como se han implementado los mismos. En el ejemplo para WPF podemos ver que definimos opciones como idioma de origen y destino, texto en subtítulos y más.

capture_001_30042018_190722

Al momento de inicial el servicio, el código se conecta al EndPoint y comienza a enviar el audio que se graba desde el Input Device

capture_002_30042018_190726

Casi en tiempo real, podemos ver como la aplicación traduce entre 2 idiomas

capture_003_30042018_190735

Además del ejemplo WPF, en los repos podemos ver ejemplos para iOS, Android, UWP y mas.

Happy Coding!

Greetings @ Toronto

El Bruno

References

#MicrosoftGarage – #Dictate, Speech recognition for Office for simple users !

Hi!

I’ve been trying to use Windows Speech Recognition features for dictation since Windows Vista, but I never get good results. Let me explain this, the technology to convert audio to text works very good, and for me, is much more faster / comfortable than typing.  However the way that we need to use the default Windows Speech Recognition app never worked for me. I know, this is maybe “an user error”, but hey, I’m the first one to recognize this.

During the past days, the Microsoft Garage team has released an Microsoft Office extension for Word, PowerPoint and Outlook which basically add speech recognition features to this tools in a more natural way. The product name speaks for itself: “Dictate”. It’s based on voice command and works in Emails, word documents PowerPoint slides.

As usual, the best way to understand the product is to watch a quick video

Greetings @ Toronto

El Bruno

References

#MicrosoftGarage – #Dictate, Reconocimiento de voz para Office para usuarios normales!

Hola!

Desde Windows Vista yo he intentado utilizar el Speech Recognition Engine en Windows, nunca he obtenido buenos resultados. La capacidad de hablar frente a escribir en el teclado es algo que es mucho más natural y además que nos permite más velocidad. El proceso de reconocimiento de voz funciona muy bien, sin embargo, lo que no es muy “user friendly” es la interfaz de usuario. No tengo problemas en reconocer que es muy probable que en este caso el problema “sea el usuario”.

El equipo de Microsoft Garage ha pensado en los usuarios que nunca nos hemos acostumbrado a esta funcionalidad, y ha creado un producto bastante interesante: “Dictate”. Se trata de un AddIn para Microsoft Office que nos permite utilizar comandos de voz para introducir texto en emails, documentos de Word, presentaciones de PowerPoint, etc.

Lo mejor es presentarlo con el video de promoción del mismo

Saludos @ Toronto

El Bruno

References

#CognitiveServices – How to create audio files for Custom Speech Service (#CRIS)

Hello!

A few days ago I was asked about an easy way to create audio files to be used as datasets in Custom Speech Service (CRIS). As I mentioned in a previous post, the audio files must have special features, so it is important to create them correctly.

Note: the files are WAVs files, mono and another pair of details makes it not easy to create them in a single step.

Although there are several ways to create these files, this is the one I use and it works.

  • To record the audio I use an app that comes by default in Windows: Voice Recorder

Clipboard02

  • I guess I don’t need to explain how the app works. Just press the microphone button. Nor do we expect many options in the Settings section.

Clipboard03

  • Once we have recorded a session, we can access the list of recordings. If we see the record path of the file we will see that it is recorded with the name “Recording.m4a”

Clipboard04.png

  • Now is the time to find a way to convert M4A files to WAV. In this case I use VLC (link). The software is well known, so I will not write a lot about it. In VLC Select the option “Media // Convert / Save …”

Clipboard06

  • Select a file and press the option “Convert”

Clipboard08

  • In this step we must create a profile with the information needed to create compatible CRIS compatible files.
  • I created a profile called “WAV Cris 02” with the following configurations
  • Encapsulation: WAV

Clipboard09

  • Audio codec with the values required by CRIS

Clipboard10

  • Now we can use this profile to convert our M4A file to WAV

Clipboard11

  • Ready! We have a WAV file which is compatible with CRIS requirements and we can use the file for our data models.

Happy coding ! 😀

Saludos @ Burlington

El Bruno

References

#CognitiveServices – Cómo crear archivos de Audio para utilizar en Custom Speech Service (#CRIS)

Hola !

Hace unos días me preguntaron sobre una forma fácil de crear archivos de audio para usar como DataSets en Custom Speech Service (CRIS). Como ya comenté en un post anterior, los archivos de audio que se utilizan deben tener unas características especiales, con lo que es importante crearlos de forma correcta.

Nota: Que sean WAVs, en mono y otro par de detalles hace que no sea fácil crearlos en un solo paso.

Si bien hay varias formas de crear estos archivos, esta es la que utilizo yo y funciona.

  • Para grabar el audio utilizo una app que viene por defecto en Windows: Voice Recorder

Clipboard02

 

  • Supongo que no hace falta que explique cómo funciona la app. Solo hay que presionar el boton del micrófono. Tampoco esperemos muchas opciones en la sección Settings.

Clipboard03

  • Una vez que hemos grabado, podremos acceder a la lista de grabaciones. Si vemos la ruta de grabación del archivo veremos que el mismo se graba con el nombre “Recording.m4a”

Clipboard04.png

  • Ahora es momento de buscar una forma de convertir arvhivos m4a a wav. En este caso yo uso VLC (link). Cómo el software es bastante conocido, no repasaré los detalles del mismo.
  • En VLC seleccionamos la opción “Media // Convert / Save …”

Clipboard06

  • Seleccionamos un archivo y presionamos la opción “Convert”

Clipboard08

  • En este paso debemos crear un perfil con la información necesaria para crear audios compatibles para CRIS.
  • Yo he creado un perfil llamado “Wav Cris 02” con las siguientes configuraciones
  • Encapsulation: WAV

Clipboard09

  • Audio Codec con los valores que requieren los audios de CRIS

Clipboard10

  • Ahora ya podemos usar este perfil para convertir nuestro archivo m4a a wav

Clipboard11

  • Listo ! ya tenemos un archivo WAV que es compatible con los requerimientos que proponen en CRIS y podemos utilizar el mismo para nuestros modelos de datos.

Happy coding ! 😀

Saludos @ Burlington

El Bruno

References

#CognitiveServices – Sample Console App to perform audio analysis using Custom Speech Service (#CRIS)

Hi !

Yesterday I wrote a post on how to create and publish an Acoustinc Model in Custom Speech Service to perform a text-to-speech process (TTS). The next step is to add some C# code in an App to use this service. For this sample I will use a sample wav file with single sentencente. When I try this file in CRIS test console I get the following result:

Clipboard07

So, it’s working. Let’s create a Console App and add the NuGet package for our platform target.

Clipboard01

Important: By default the platform configuration is set to “Any CPU”, we need to change this to x86 or x64 so we can use the Speech NuGet package without any issues.

Clipboard02

So, big surprise, this package is the same for CRIS and for BING Speech recognition (Thanks to Victor for this tip!). There is a sample WPF implementation in the GitHub repo which uses the Bing keys and architecture, I’ll continue with my CRIS sample.

Let’s work in the sample Console App. There are 3 main sections here

  • Initialize the STT client
  • Process the wav file
  • Get and process CRIS result

The next pieces of code are part sample App.

  • In the Main section I create and init the STT client using the information of my previous post
  • To process the wav file, we open and send the file using small chunks to CRIS
  • Then we need to subscribe to client events
  • In this events me show some of the client received information in the Console App

We get the following result from the running app.

Clipboard04

We can download the source code from GitHub (link)

Greetings @ Toronto (-5!)

El Bruno

References

#CognitiveServices – Console App de ejemplo para analizar audios con Custom Speech Service (#CRIS)

 

Hola !

Ayer publiqué un paso a paso sobre como crear un modelo de reconocimiento de audio a texto con Custom Speech Service. El siguiente paso es un ejemplo de código sobre cómo utilizar el mismo. Para este ejemplo utilizo un archivo wav con un simple párrafo. Desde la consola de prueba de CRIS puedo ver que el mismo se funciona bien.

Clipboard07

Lo siguiente es crear una Console App y agregar el paquete NuGet correspondiente a nuestra arquitectura.

Clipboard01

Importante: Es necesario cambiar la arquitectura de nuestra app a x86 o x64 para poder utilizar el package sin problemas.

Clipboard02

El paquete es el de reconocimiento de texto general utilizando BING (gracias a Victor por el tip!). En caso de querer ver la implementación en WPF, en el repo de GitHub del paquete podemos ver la misma.

Volviendo a la app de Consola, lo siguiente es dar forma a nuestra app. La misma se divide en 3 partes principales

  • Inicialización del cliente de STT (speech-to-text)
  • Proceso del archivo wav
  • Proceso del resultado

El siguiente código es el ejemplo de la App. En el mismo podemos ver

  • Como en el main se inicializa el cliente de STT con la información de CRIS que creamos en el post anterior
  • Nos suscribimos a los eventos de procesamiento
  • En estos eventos mostramos la información en la consola
  • Abrimos un stream desde el archivo wav y enviamos el mismo en chunks para que lo procese CRIS

 

La app en ejecución nos muestra el siguiente resultado.

Clipboard04

El código fuente se puede descargar desde GitHub (link)

Saludos @ Toronto (-5!)

El Bruno

References