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

Traducción de Inglés a Español realizada por Chema, traductor de software, y amante de la traducción automática, motores de traducción neuronal (NMT), pyhton, etc.

Texto original escrito por Behic Guven

En este post, te mostraré cómo traducir a otro idioma cualquier cosa que digas, usando Python. El traductor de voz 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 gran proyecto 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 a alguien 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, ¿no es alucinante? YouTube también lo hace para algunos vídeos. Convierten los discursos del vídeo a diferentes idiomas en tiempo real utilizando la inteligencia artificial. Esto es increíble y vale la pena compartirlo. Así que quiero mostrar cómo puedes hacer esto usando Python. Así tendrás tu traductor personal que habla muchos idiomas 🙂 .

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.