5.6 KiB
Conversión de voz a texto - Dispositivo IoT virtual
En esta parte de la lección, escribirás código para convertir el habla capturada desde tu micrófono en texto utilizando el servicio de voz.
Convertir voz a texto
En Windows, Linux y macOS, el SDK de Python para los servicios de voz puede usarse para escuchar tu micrófono y convertir cualquier habla detectada en texto. Escuchará de forma continua, detectando los niveles de audio y enviando el habla para su conversión a texto cuando el nivel de audio disminuya, como al final de un bloque de habla.
Tarea - convertir voz a texto
-
Crea una nueva aplicación de Python en tu computadora en una carpeta llamada
smart-timer
con un único archivo llamadoapp.py
y un entorno virtual de Python. -
Instala el paquete Pip para los servicios de voz. Asegúrate de instalarlo desde una terminal con el entorno virtual activado.
pip install azure-cognitiveservices-speech
⚠️ Si obtienes el siguiente error:
ERROR: Could not find a version that satisfies the requirement azure-cognitiveservices-speech (from versions: none) ERROR: No matching distribution found for azure-cognitiveservices-speech
Necesitarás actualizar Pip. Hazlo con el siguiente comando y luego intenta instalar el paquete nuevamente:
pip install --upgrade pip
-
Agrega las siguientes importaciones al archivo
app.py
:import requests import time from azure.cognitiveservices.speech import SpeechConfig, SpeechRecognizer
Esto importa algunas clases utilizadas para reconocer voz.
-
Agrega el siguiente código para declarar algunas configuraciones:
speech_api_key = '<key>' location = '<location>' language = '<language>' recognizer_config = SpeechConfig(subscription=speech_api_key, region=location, speech_recognition_language=language)
Sustituye
<key>
con la clave API de tu servicio de voz. Sustituye<location>
con la ubicación que usaste al crear el recurso del servicio de voz.Sustituye
<language>
con el nombre de la configuración regional del idioma en el que hablarás, por ejemplo,en-GB
para inglés ozn-HK
para cantonés. Puedes encontrar una lista de los idiomas admitidos y sus nombres de configuración regional en la documentación de soporte de idiomas y voces en Microsoft Docs.Esta configuración se utiliza para crear un objeto
SpeechConfig
que configurará los servicios de voz. -
Agrega el siguiente código para crear un reconocedor de voz:
recognizer = SpeechRecognizer(speech_config=recognizer_config)
-
El reconocedor de voz se ejecuta en un hilo en segundo plano, escuchando el audio y convirtiendo cualquier habla en texto. Puedes obtener el texto utilizando una función de callback: una función que defines y pasas al reconocedor. Cada vez que se detecta habla, se llama al callback. Agrega el siguiente código para definir un callback y pásalo al reconocedor, además de definir una función para procesar el texto, escribiéndolo en la consola:
def process_text(text): print(text) def recognized(args): process_text(args.result.text) recognizer.recognized.connect(recognized)
-
El reconocedor solo comienza a escuchar cuando lo inicias explícitamente. Agrega el siguiente código para iniciar el reconocimiento. Esto se ejecuta en segundo plano, por lo que tu aplicación también necesitará un bucle infinito que duerma para mantener la aplicación en ejecución.
recognizer.start_continuous_recognition() while True: time.sleep(1)
-
Ejecuta esta aplicación. Habla en tu micrófono y el audio convertido a texto se mostrará en la consola.
(.venv) ➜ smart-timer python3 app.py Hello world. Welcome to IoT for beginners.
Prueba diferentes tipos de oraciones, junto con oraciones donde las palabras suenen igual pero tengan significados diferentes. Por ejemplo, si estás hablando en inglés, di "I want to buy two bananas and an apple too" y observa cómo utiliza correctamente "to", "two" y "too" según el contexto de la palabra, no solo su sonido.
💁 Puedes encontrar este código en la carpeta code-speech-to-text/virtual-iot-device.
😀 ¡Tu programa de conversión de voz a texto fue un éxito!
Descargo de responsabilidad:
Este documento ha sido traducido utilizando el servicio de traducción automática Co-op Translator. Aunque nos esforzamos por garantizar la precisión, tenga en cuenta que las traducciones automatizadas pueden contener errores o imprecisiones. El documento original en su idioma nativo debe considerarse la fuente autorizada. Para información crítica, se recomienda una traducción profesional realizada por humanos. No nos hacemos responsables de malentendidos o interpretaciones erróneas que puedan surgir del uso de esta traducción.