Cómo convertir voz a texto con Python [proceso paso a paso]
Publicado: 2020-08-07Tabla de contenido
Introducción a la voz a texto
Vivimos en una era en la que las formas en que interactuamos con las máquinas se han vuelto variadas y complejas. Hemos evolucionado de botones mecánicos gruesos a la interfaz de pantalla táctil. Pero esta evolución no se limita al hardware. El statu quo para la entrada de computadoras ha sido el texto desde su concepción. Aún así, con los avances en NLP (procesamiento del lenguaje natural) y ML (aprendizaje automático), la ciencia de datos tenemos las herramientas para incorporar el habla como un medio para interactuar con nuestros dispositivos.
Estas herramientas ya nos rodean y nos sirven más comúnmente como asistentes virtuales. Google, Siri, Alexa, etc. son logros históricos al agregar otra dimensión más personal y conveniente de interactuar con el mundo digital.
A diferencia de la mayoría de las innovaciones tecnológicas, la tecnología de voz a texto está disponible para que todos la exploren, tanto para el consumo como para construir sus proyectos.
Python es uno de los lenguajes de programación más comunes en el mundo y tiene herramientas para crear sus aplicaciones de voz a texto.
Historia de voz a texto
Antes de explorar la declaración a texto en Python, vale la pena apreciar cuánto progreso hemos logrado en este campo. La siguiente es la línea de tiempo simplificada de:
- Audrey , 1952: el primer sistema de reconocimiento de voz desarrollado por investigadores de 3 Bells labs. Sólo podía reconocer dígitos.
- IBM Showbox (1962): el primer sistema de reconocimiento de voz de IBM cuyas bobinas reconocen 16 palabras además de los dígitos. Podría resolver dictados aritméticos simples e imprimir el resultado.
- Agencia de Proyectos de Investigación Avanzada de Defensa (DARPA) (1970): DARPA financió la Investigación de Comprensión del Habla, que condujo al desarrollo de Harpy para reconocer 1011 palabras.
- Modelo oculto de Markov (HMM), década de 1980: HMM es un modelo estadístico que modela problemas que requieren información secuencial. Este modelo se aplicó a nuevos avances en el reconocimiento de voz.
- Búsqueda por voz de Google , 2001: Google introdujo la función de búsqueda por voz que permitía a los usuarios realizar búsquedas mediante el habla. Esta fue la primera aplicación habilitada para voz que se hizo muy popular.
- Siri , 2011: Apple presentó Siri que podía realizar una forma conveniente y en tiempo real de interactuar con sus dispositivos.
- Alexa , 2014 y Google Home , 2016: los asistentes virtuales basados en comandos de voz se generalizaron a medida que Google Home y Alexa vendían colectivamente más de 150 millones de unidades.
Lea también: Las 7 mejores bibliotecas de Python NLP

Desafíos en un discurso a texto
La voz a texto sigue siendo un problema complejo que está lejos de ser un producto verdaderamente terminado. Varias dificultades técnicas hacen de esta una herramienta imperfecta en el mejor de los casos. Los siguientes son los desafíos comunes con la tecnología de reconocimiento de voz:
1. Interpretación imprecisa
El reconocimiento de voz no siempre interpreta correctamente las palabras habladas. Las VUI (interfaz de usuario de voz) no son tan hábiles como los humanos en el contexto de comprensión que cambia la relación entre palabras y oraciones. Por lo tanto, las máquinas pueden tener dificultades para comprender la semántica de una oración.
2. Tiempo
A veces, los sistemas de reconocimiento de voz tardan demasiado en procesar. Esto puede deberse a la diversidad de patrones de voz que poseen los humanos. Esta dificultad en el reconocimiento de voz se puede evitar ralentizando el habla o siendo más precisos en la pronunciación, lo que resta comodidad a la herramienta.
3. Acentos
A los VUI les puede resultar difícil comprender dialectos que difieren del promedio. Dentro del mismo idioma, los hablantes pueden tener formas muy diferentes de hablar las mismas palabras.
4. Ruido de fondo y volumen
En un mundo ideal, esto no sería un problema, pero ese simplemente no es el caso, por lo que las VUI pueden tener dificultades para trabajar en entornos ruidosos (espacios públicos, grandes oficinas, etc.).
Debe leer: Cómo hacer un chatbot en Python
Voz a texto en Python
Si uno no quiere pasar por el arduo proceso de construir una declaración de texto desde cero, use lo siguiente como guía. Esta guía es simplemente una introducción básica para crear su propia aplicación de voz a texto. Asegúrese de tener un micrófono que funcione además de una versión relativamente reciente de Python.
Paso 1 :
Descargue los siguientes paquetes de Python:
- speech_recogntion (pip install SpeechRecogntion): Este es el paquete principal que ejecuta el paso más importante de convertir voz a texto. Otras alternativas tienen pros y contras, como apelación, ensamblaje, google-cloud-search, pocketsphinx, Watson-developer-cloud, ingenio, etc.
- Mi audio (pip instalar Pyaudio)
- Portaudio (pip instalar Portaudio)
Paso 2 :
Crea un proyecto (nómbralo como quieras) e importa el reconocimiento de voz como sr.
Cree tantas instancias de la clase reconocedora.
Paso 3 :
Una vez que haya creado estas instancias, ahora tenemos que definir la fuente de la entrada.
Por ahora, definamos la fuente como el propio micrófono (podría usar un archivo de audio existente)
Paso 4 :
Ahora definiremos una variable para almacenar la entrada. Usamos el método 'escuchar' para tomar información de la fuente. Entonces, en nuestro caso, usaremos como fuente el micrófono que establecimos en la línea de código anterior.
Paso 5 :
Ahora que tenemos la entrada (micrófono como fuente) definida y almacenada en una variable ('audio'), simplemente tenemos que usar el métodoreconocer_google para convertirlo en texto. Podemos almacenar el resultado en una variable o simplemente imprimir el resultado. No tenemos que depender únicamente de reconocer_google, tenemos otros métodos que usan diferentes API que también funcionan. Ejemplos de tales métodos son:

reconocer_bing()
recongize_google_cloud()
recongize_houndify()
recongize_ibm()
recongize_Sphinx() (también funciona sin conexión)
El siguiente método utilizó paquetes existentes que ayudan a reducir el tener que desarrollar su software de reconocimiento de voz a texto desde cero. Estos paquetes tienen más herramientas que pueden ayudarlo a construir sus proyectos que resuelven problemas más específicos. Un ejemplo de una función útil es que puede cambiar el idioma predeterminado de inglés a hindi. Esto cambiará los resultados que se imprimen en hindi (aunque tal como está actualmente, la conversión de voz a texto está más desarrollada para comprender el inglés).
Pero, es un buen ejercicio de pensamiento de desarrolladores severos entender cómo funciona dicho software.
Vamos a desglosarlo.
En su forma más fundamental, el habla es simplemente una onda de sonido. Tales ondas de sonido o señales de audio tienen algunas propiedades características (que pueden parecer familiares para la física de la acústica) como la amplitud, la cresta y el valle, la longitud de onda, el ciclo y la frecuencia.
Estas señales de audio son continuas y, por lo tanto, tienen infinitos puntos de datos. Para convertir una señal de audio de este tipo en una señal digital, de modo que una computadora pueda procesarla, la red debe tomar una distribución discreta de muestras que se asemeje mucho a la continuidad de una señal de audio.
Una vez que tengamos una frecuencia de muestreo adecuada (8000 Hz es un buen estándar, ya que la mayoría de las frecuencias de voz se encuentran en este rango), podemos ahora las bibliotecas de Python como LibROSA y SciPy procesar las señales de audio. Luego, podemos aprovechar estas entradas dividiendo el conjunto de datos en 2, entrenando el modelo y el otro para validar los hallazgos del modelo.
En esta etapa, se puede usar la arquitectura modelo de Conv1d, una red neuronal convolucional que funciona en una sola dimensión. Luego podemos construir un modelo, definir su función de pérdida y usar redes neuronales para evitar que el mejor modelo convierta voz a texto. Usando el aprendizaje profundo y la PNL (procesamiento del lenguaje natural), podemos refinar la declaración al texto para aplicaciones y adopción más amplias.
Aplicaciones del reconocimiento de voz
Como hemos aprendido, las herramientas para ejecutar esta innovación tecnológica son más accesibles porque se trata principalmente de una innovación de software y ninguna empresa es propietaria. Esta accesibilidad ha abierto las puertas para que los desarrolladores de recursos limitados presenten su aplicación de esta tecnología.

Algunos de los campos en los que el reconocimiento de voz está creciendo son los siguientes:
- Evolución en los motores de búsqueda: el reconocimiento de voz ayudará a mejorar la precisión de la búsqueda al llenar el vacío entre la comunicación verbal y escrita.
- Impacto en la industria de la salud: el reconocimiento de voz se está convirtiendo en una característica común en el sector médico al ayudar a completar los informes médicos. A medida que las VUI comprendan mejor la jerga médica, la adopción de esta tecnología liberará tiempo del trabajo administrativo para los médicos.
- Industria de servicios: en las tendencias crecientes de automatización, puede darse el caso de que un cliente no pueda lograr que un ser humano responda a una consulta y, por lo tanto, los sistemas de reconocimiento de voz pueden llenar este vacío. Veremos el rápido crecimiento de esta función en aeropuertos, transporte público, etc.
- Proveedores de servicios: los proveedores de telecomunicaciones pueden depender aún más de los sistemas basados en voz a texto que pueden reducir los tiempos de espera al ayudar a establecer las demandas de las personas que llaman y dirigirlas a la asistencia adecuada.
Lea también: Tecnología de búsqueda por voz: datos interesantes
Conclusión
La voz a texto es una tecnología poderosa que pronto será omnipresente. Su usabilidad razonablemente sencilla junto con Python (uno de los lenguajes de programación más populares del mundo) facilita la creación de sus aplicaciones. A medida que avanzamos en este campo, estamos allanando el camino hacia un mundo en el que el acceso al mundo digital no está solo al alcance de la mano, sino también con la palabra hablada.
Si está interesado en obtener más información sobre el procesamiento del lenguaje natural, consulte nuestro programa Executive PG en Machine Learning e IA, diseñado para profesionales que trabajan y más de 450 horas de capacitación rigurosa.
Si tiene curiosidad por aprender sobre ciencia de datos, consulte el Programa ejecutivo PG en ciencia de datos de IIIT-B y upGrad, creado para profesionales que trabajan y ofrece más de 10 estudios de casos y proyectos, talleres prácticos, tutoría con expertos de la industria, 1 -on-1 con mentores de la industria, más de 400 horas de aprendizaje y asistencia laboral con las mejores empresas.
¿Qué es la conversión de voz a texto?
En los primeros días del reconocimiento de voz, un transcriptor se sentaba con unos auriculares y grababa el habla. El proceso tomó mucho tiempo y produjo transcripciones de baja calidad. Hoy en día, los sistemas de reconocimiento de voz utilizan computadoras para convertir la voz en texto. Esto se llama conversión de voz a texto. El reconocimiento de voz (también conocido como conversión de voz a texto) es el proceso de convertir palabras habladas en datos legibles por máquina. El propósito es permitir que las personas se comuniquen con las máquinas mediante la voz y permitir que las máquinas se comuniquen con las personas mediante la producción de voz. El software de voz a texto se utiliza para realizar esta conversión.
¿Cuáles son los desafíos en la conversión de voz a texto?
Hay muchos desafíos en la conversión de voz a texto. Los principales desafíos son: Precisión, donde el sistema tiene que pronunciar correctamente las palabras para extraer la intención del usuario. Velocidad, el sistema debe poder realizar lo anterior lo suficientemente rápido como para ser aceptable para el usuario. Naturalidad, el sistema debe sonar lo más natural posible, para que el usuario no sienta que tiene que hablar de una manera poco natural. Robustez, el sistema debe ser capaz de manejar una gran cantidad de ruido de fondo, otras voces y cualquier otro efecto que pueda interferir con el proceso de conversión.
¿Cuáles son las aplicaciones del procesamiento de voz al texto?
La razón por la que necesita convertir el habla en texto es porque es una forma muy rápida y conveniente de comunicarse. El procesamiento de voz a texto se puede usar en muchas aplicaciones diferentes, por ejemplo, se puede usar en un dispositivo de comunicación móvil, donde el usuario puede usar su voz para enviar mensajes y hacer llamadas en lugar de escribir en el teclado. Otra aplicación del procesamiento de voz a texto es el control de máquinas. Es una forma de controlar un motor u otra máquina industrial hablándole.
