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.
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 🙂 .
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.
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
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)
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)
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.
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.