Traductor de idiomas usando la API de Google en Python

API significa Interfaz de programación de aplicaciones . Actúa como intermediario entre dos aplicaciones o software. En términos simples, la API actúa como un mensajero que lleva su solicitud a los destinos y luego le devuelve la respuesta. La API de Google está desarrollada por Google para permitir la comunicación con sus servidores y usar sus claves API para desarrollar proyectos.

En este tutorial, utilizaremos la API de Google para crear un traductor de idiomas que pueda traducir un idioma a otro. En Internet, podemos ver muchos proyectos sobre reconocimientos de voz, voz a texto, texto a voz, etc. pero aquí, en este proyecto, vamos a construir algo más avanzado que eso. 

Supongamos un escenario, estamos viajando en España y no sabemos hablar español o estamos en cualquier otro país y no sabemos su idioma nativo, entonces podemos usar esta herramienta para superar el problema. Podemos traducir entre todos los idiomas que están presentes en el traductor de Google

Instalación

Ahora, para verificar qué idiomas admite, tenemos que usar la biblioteca trans de Google . Podemos usar pip para instalarlo.  

pip install googletrans

Ahora para verificar qué idiomas admite para ejecutar el siguiente código. 

Python3

# To Print all the languages that google
# translator supports
import googletrans
 
 
print(googletrans.LANGUAGES)

Producción:

google-trans-python

Ahora comencemos a construir Language Translator. Para comenzar con la parte de codificación, necesitamos instalar algunas dependencias. Al instalar Pyaudio, es posible que obtenga un error de portaudio. Para obtener detalles sobre la instalación de pyaudio , haga clic aquí

pip install pyaudio
pip install SpeechRecognition
pip install gtts

A continuación se muestra la implementación. 

Python3

# Importing necessary modules required
import speech_recognition as spr
from googletrans import Translator
from gtts import gTTS
import os
 
 
# Creating Recogniser() class object
recog1 = spr.Recognizer()
 
# Creating microphone instance
mc = spr.Microphone()
 
 
# Capture Voice
with mc as source:
    print("Speak 'hello' to initiate the Translation !")
    print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
    recog1.adjust_for_ambient_noise(source, duration=0.2)
    audio = recog1.listen(source)
    MyText = recog1.recognize_google(audio)
    MyText = MyText.lower()
 
# Here initialising the recorder with
# hello, whatever after that hello it
# will recognise it.
if 'hello' in MyText:
     
    # Translator method for translation
    translator = Translator()
     
    # short form of english in which
    # you will speak
    from_lang = 'en'
     
    # In which we want to convert, short
    # form of hindi
    to_lang = 'hi'
     
    with mc as source:
         
        print("Speak a stentence...")
        recog1.adjust_for_ambient_noise(source, duration=0.2)
         
        # Storing the speech into audio variable
        audio = recog1.listen(source)
         
        # Using recognize.google() method to
        # convert audio into text
        get_sentence = recog1.recognize_google(audio)
 
        # Using try and except block to improve
        # its efficiency.
        try:
             
            # Printing Speech which need to
            # be translated.
            print("Phase to be Translated :"+ get_sentence)
 
            # Using translate() method which requires
            # three arguments, 1st the sentence which
            # needs to be translated 2nd source language
            # and 3rd to which we need to translate in
            text_to_translate = translator.translate(get_sentence,
                                                     src= from_lang,
                                                     dest= to_lang)
             
            # Storing the translated text in text
            # variable
            text = text_to_translate.text
 
            # Using Google-Text-to-Speech ie, gTTS() method
            # to speak the translated text into the
            # destination language which is stored in to_lang.
            # Also, we have given 3rd argument as False because
            # by default it speaks very slowly
            speak = gTTS(text=text, lang=to_lang, slow= False)
 
            # Using save() method to save the translated
            # speech in capture_voice.mp3
            speak.save("captured_voice.mp3")    
             
            # Using OS module to run the translated voice.
            os.system("start captured_voice.mp3")
 
        # Here we are using except block for UnknownValue
        # and Request Error and printing the same to
        # provide better service to the user.
        except spr.UnknownValueError:
            print("Unable to Understand the Input")
             
        except spr.RequestError as e:
            print("Unable to provide Required Output".format(e))

Producción:

Speak 'hello' to initiate the Translation !
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Speak a stentence...
Phase to be Translated :what are you doing

Publicación traducida automáticamente

Artículo escrito por abhinav43 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *