Cómo montar un traductor de voz en Python

Traducción de un texto original de Behic Guven, publicado el 8/6/2020 en su blog https://sonsuzdesign.blog, donde explica cómo crear un traductor de voz en Python, un proyecto sencillo para traducir de forma automática lo que dices sin necesidad de escribir nada.

google apiPythontraducción automáticatraductor texto voz
6 diciembre, 2021 Traducción aotomática de voz en Python
6 diciembre, 2021 Traducción aotomática de voz en Python

Texto original escrito por Behic Guven

En este post te mostraré una técnica para traducir a otro idioma cualquier cosa que digas, usando Python. El traductor de Python grabará tu voz, entenderá lo que estás diciendo, y lo traducirá al idioma que prefieras. Una vez completado el proceso de traducción, puedes personalizar tu código para que lea el texto traducido. Este es un proyecto técnico sencillo, que te hará disfrutar y quizás incluso impresionar a familia y amigos.

Imagina que cuando quieres comunicarte con alguien de otro país, tienes que contratar un traductor que sepa hablar los dos idiomas y hacer todas las traducciones. Eso era lo que ocurría antiguamente, pero con el desarrollo de Internet y la tecnología, la comunicación se ha vuelto mucho más fácil. Ahora, podemos utilizar Google Translate para traducir lo que queramos en un par de segundos, aunque sea una traducción técnica o especializada… ¿no es alucinante? YouTube también lo hace: ofrece servicios integrados de transcripción y traducción de vídeos que convierten el audio a texto en tiempo real utilizando inteligencia artificial y luego lo traducen al idioma que quieras. Esta tecnología de traducción es increíble y vale la pena compartirla. Así que quiero mostrarte cómo puedes hacer esto usando Python. Así tendrás un traductor para hacer todas las traducciones que quieras! 🙂 .

Disclaimer: Traducción de Inglés a Español realizada por Eric, estudiante de traducción de la agencia de traducción Ibidem Group. Al ser un mero ejercicio de traducción, podría contener imprecisiones a nivel estilístico. Si lo que necesitas son servicios de traducción profesional, contacta con nuestra agencia de traducciones en Barcelona. Ahora también agencia de traducciones en Madrid.

Comencemos

Me gustaría mencionar que en este proyecto practicaremos varias cosas al mismo tiempo. Es una gran manera de combinar tus habilidades y crear algo mejor. En primer lugar, utilizaremos un reconocedor de voz para enseñar a nuestro programa a entender nuestro discurso, y luego lo convertiremos en texto. En segundo lugar, definiremos un traductor que convertirá ese texto a nuestro idioma preferido. Por último, utilizaremos un modelo de texto a voz para que nuestro programa pueda hablar y decir las palabras en voz alta.

Importación de bibliotecas

En primer lugar instalaremos los módulos que vamos a utilizar en este proyecto: SpeechRecognition, Pyttsx3 y Googletrans. Los módulos SpeechRecognition y Googletrans son de nuestros amigos de Google. Todos estos módulos son de libre instalación y libre uso, una de las grandes razones por las que la industria de la programación ha ido evolucionando cada vez más. Aquí está el código pip para instalar varios módulos al mismo tiempo:

pip install reconocimiento de voz pyttsx3 googletrans

Vale, eso era fácil. Es súper fácil instalar módulos usando pip. Si quieres saber más sobre estos módulos, aquí tienes los enlaces a sus páginas de documentación.

1. Reconocimiento del habla

Definir el reconocedor de voz

r = sr.Recognizer()

Definir el micrófono

Antes de definir nuestra instancia de micrófono, elegiremos nuestro dispositivo de entrada. Puede que haya varios dispositivos de entrada conectados a tu ordenador y tenemos que elegir cuál vamos a utilizar. Como sabes que las máquinas son tontas, ¡tienes que decirles exactamente lo que tienen que hacer! Usando el siguiente código podrás ver tus dispositivos de entrada.

print(sr.Microphone.list_microphone_names())

Aquí puedes ver los resultados de mi comprobación de los dispositivos de entrada. Te recomiendo que ejecutes este script antes de definir tu micrófono, porque puedes obtener un resultado diferente. El script devuelve una lista de array con los nombres de las entradas, para mí quiero usar el «Built-in Microphone», por lo que el primer elemento de la lista de array. Definiendo el código del micrófono se verá de la siguiente manera:

mic = sr.Microphone(device_index=0)

Reconocer el habla

Como ya hemos mencionado, utilizaremos el método recognize_google, que es un modelo de reconocimiento de voz creado por nuestros amigos de Google. ¡Gracias a ellos!

con mic como fuente: r.adjust_for_ambient_noise(fuente)
audio = r.listen(fuente) result = r.recognize_google(audio)

Si quieres comprobar el resultado antes de hacer la traducción, puedes añadir la siguiente línea a tu código.

print(resultado)

Creación de un reconocedor de voz en Python

Convierte tus archivos de audio en texto con la API de Google Cloud Speech

haciadatascience.com

2. Construir el traductor

Definir traductor

Esta es la parte divertida de este proyecto. Tendrás un montón de opciones para elegir. Si quieres, puedes hacer como yo, cerrar los ojos y pensar en un país que te gustaría visitar, y comprobar qué idioma hablan allí. Sí, esa es una forma de elegir entre un montón de idiomas diferentes 🙂 .

Ahora puede poner ese idioma en el atributo de destino, como se muestra a continuación.

p = Traductor()
k = p.translate(result, dest=’french’)

En el código siguiente, convertiremos el resultado traducido en un formato de texto, esto ayudará a que nuestro módulo de texto a voz funcione correctamente. Debido a que el código anterior, el resultado se almacena como un objeto.

traducido = str(k.text)
print(traducido)

3. Motor de traducción: texto – voz

Definir el motor de texto a voz

motor = pyttsx3.init()

Acabamos de definir el módulo como un motor. Ahora es el momento de decirle a nuestro programa que hable el texto traducido, pero antes tenemos que definir el idioma. Aquí está el código para ver la lista de idiomas y sus IDs, que necesitaremos cuando estemos definiendo el traductor. Te recomiendo que ejecutes este código en tu terminal antes de pasar al siguiente paso.

engine = pyttsx3.init()
voices = engine.getProperty(‘voices’)
for voice in voices: print(«Voz:») print(» – ID: %s» % voice.id) print(» – Nombre: %s» % voice.name) print(» – Idiomas: %s» % voice.languages)
  print(» – Género: %s» % voz.género) print(» – Edad: %s» % voz.edad)voices = engine.getProperty(‘voices’)
for voice in voices: print(«Voz:») print(» – ID: %s» % voice.id) print(» – Nombre: %s» % voice.name) print(» – Idiomas: %s» % voice.languages)
  print(» – Género: %s» % voz.género) print(» – Edad: %s» % voz.edad)

Voces

Definir la lengua del interlocutor

Copiamos el ID del idioma que queremos utilizar, y lo pegamos en nuestro programa. Estamos utilizando el método setProperty para definir el idioma del orador.

fr_voice_id = «com.apple.speech.synthesis.voice.thomas» engine.setProperty(‘voice’, fr_voice_id)

Paso final: abracadabra!

engine.say(traducido)engine.runAndWait()

¡Felicidades! Has creado tu propio traductor de voz usando Python. Espero que hayas disfrutado de este tutorial y hayas aprendido algo nuevo hoy. La mejor manera de practicar tus habilidades de programación es haciendo proyectos divertidos.

Sigue mi blog y TowardsDataScience para mantenerte inspirado.

Publicado originalmente en https://sonsuzdesign.blog el 8 de junio de 2020.

Rate this post

Articulos relacionados


Traducción de un interesantísimo artículo de Jordan Kalebu explicando cómo utilizar Python para realizar traducción automática de idiomas, usando 3 bibliotecas alternativas: Goslate, Googletrans y TextBlob. Una forma super sencilla y gratuita de traducir de forma automática todos...

Texto original de Jack McKew, publicado en su blog jackmckew.dev, donde nos explica cómo generar una traducción automática usando Python y la API de Google Translate o la API de DeepL, los 2 mejores motores de Traducción Automática (Machine Translation) del momento.