Abrir en Google Colab
|
Descargar notebook
|
Servicios cognitivos de Speech Recognition
¿Que son los servicios cognitivos?
Crear modelos de Computer Vision que tengan gran precisión y funcionen en una variedad de contextos importante no es una tarea sencilla. Requiren grandes cantidades de datos y experencia en la creación de modelos básados en Deep Learning. A medida que el procesamiento de imagenes se vuelve mas robusto, muchas organizaciones de tecnología han optado por empaquetar estos modelos de alta performance y ofrecerlos como servicios que las organizaciones pueden consumir directamente como un servicio web.
Azure Cognitive Services es uno de estos servicios, el cual cuenta con una API y librerias que se pueden utilizar en multiples lenguajes para ayudarnos a construir aplicaciones inteligentes sin necesidad de tener habilidades de ciencia de datos ni grandes volumenes de información.
Creación de una cuenta en Azure
Hay varias alternativas para utilizar los servicios cognitivos de Azure, pero en nuestro caso crearemos una cuenta de pruebas que tendrá una duracción de 7 días para probar los servicios cognitivos. Esta metodología no requiere de una tarjeta de crédito. Si necesitaran disponer de una cuenta por mayor cantidad de tiempo, es posible crear una cuenta gratuita de Azure que dispone de acceso a los servicios en un Tier Free por 12 meses, sin embargo, este procedimiento requiere la validación del usuario por medio de una tarjeta de crédito.
Para crear una cuenta, utilicen el siguiente link: https://azure.microsoft.com/es-es/try/cognitive-services/
Luego debemos indicar que tipo de cuenta utilizaremos. en nuestro caso, especificaremos una cuente de tipo Trial que durará por 7 dias desde el momento de creación:

Luego deberemos aceptar los terminos y condiciones para utilizar el servicio y finalmente iniciar sesión utilizando alguna de las opciones que están disponibles. Si no disponen de una cuenta Microsoft, pueden crearse una desde https://signup.microsoft.com y eligiendo la opción Crear una Cuenta Microsoft.
Obtener las claves de acceso a los servicios
Una vez que activamos nuestra cuenta trial, obtendremos 2 puntos de información importante:
Puntos de conexión: Es la URL que deberemos de indicar para acceder al servicio
Claves: Estas claves son el mecanismo de autenticación que utilizaremos.
Necesitaremos ambas piezas de información para continuar. Si no pueden encontrar sus claves, pueden acceder a https://azure.microsoft.com/es-es/try/cognitive-services/my-apis y debería llevarlos a una pagina similar a la siguiente donde están especificados ambos valores:

Creación de un cliente para la utilización de la API de speech
Instalación del SDK
Instalamos las librerias del SDK junto con algunas otras que necesitaremos
[ ]:
!pip install azure-cognitiveservices-speech librosa
Importamos las clases con las que vamos a trabajar
[ ]:
import os
import librosa
import azure.cognitiveservices.speech as speechsdk
Especificación de las credenciales para operar el servicio. Aquí deberemos utilizar las credenciales que generaron desde la página del portal de Microsoft Azure
[ ]:
subscription_key = ""
endpoint = "https://westus.api.cognitive.microsoft.com"
region='westus'
Indiquemos el directorio en donde están nuestros archivos de ejemplo
[ ]:
rootdir='./Samples'
Descarguemos un archivo de ejemplo:
[ ]:
!wget -N https://raw.githubusercontent.com/santiagxf/M72109/master/Audio/Samples/Back_To_The_Future_3648_3658_6.wav --directory-prefix ./Samples/
Especificamos un archivo puntual para analizar
[ ]:
wave_file_name='Back_To_The_Future_3648_3658_6.wav'
wave_file=os.path.join(rootdir, wave_file_name)
Reproduzcamos el archivo:
[ ]:
sample_rate = 44100
wave = librosa.load(wave_file, sr=sample_rate)
[ ]:
from IPython.display import Audio
import numpy as np
Audio(wave[0].astype(np.float32), rate=sample_rate)
Creamos una configuración para ejecutar el reconocimiento de audio. Esta API tiene varios modos de operar y puede trabajar tanto con archivos de audio e incluso hacer
[ ]:
speech_config = speechsdk.SpeechConfig(subscription=subscription_key, region=region)
audio_config = speechsdk.AudioConfig(filename=wave_file)
Cofiguramos como el servicio debe manejar palabras que son inapropiadas para el lenguaje. En este caso los enmascaremos (asteriscos)
[ ]:
speech_config.set_profanity(speechsdk.ProfanityOption.Masked)
[ ]:
speech_recognizer = speechsdk.SpeechRecognizer(speech_config=speech_config, audio_config=audio_config)
[ ]:
result = speech_recognizer.recognize_once()
[ ]:
if result.reason == speechsdk.ResultReason.RecognizedSpeech:
print("Resultado del reconocimiento: {}".format(result.text))
elif result.reason == speechsdk.ResultReason.NoMatch:
print("No se pudo reconocer el texto: {}".format(result.no_match_details))
elif result.reason == speechsdk.ResultReason.Canceled:
cancellation_details = result.cancellation_details
print("Reconocimiento cancelado por la siguiente razón: {}".format(cancellation_details.reason))
if cancellation_details.reason == speechsdk.CancellationReason.Error:
print("Errores: {}".format(cancellation_details.error_details))
Abrir en Google Colab
Descargar notebook