Language Translator Using Google API in Python

24 Sep, 2021
API stands for Application Programming Interface. It acts as an intermediate between two applications or software. In simple terms, API acts as a messenger that takes your request to destinations and then brings back its response for you. Google API is developed by Google to allow communications with their servers and use their API keys to develop projects.
In this tutorial, we are going to use Google API to build a Language Translator which can translate one language to another language. On the internet, we can see lots of projects on Speech Recognitions, Speech to text, text to speech, etc. but here in this project we are going to build something more advance than that. 
Let’s assume a scenario, we are traveling in Spain and we don’t know how to speak Spanish or we are in any other country and we don’t know their native language, then we can use this tool to overcome the problem. We can translate between all those languages which are present in google translator. 
Now to Check what languages it supports we have to use google trans library. We can use pip to install it.  
pip install googletrans
Now to check which languages it supports to run the following code. 
Python3
# To Print all the languages that google# translator supportsimport googletrans  print(googletrans.LANGUAGES)
Output:
Now let’s start building Language Translator. To begin with the coding part, we need to install some dependencies. While installing Pyaudio you might get an error of portaudio. For details of installation of pyaudio click here. 
pip install pyaudio
pip install SpeechRecognition
pip install gtts
Below is the implementation. 
Python3
# Importing necessary modules requiredimport speech_recognition as sprfrom googletrans import Translatorfrom gtts import gTTSimport os  # Creating Recogniser() class objectrecog1 = spr.Recognizer() # Creating microphone instancemc = spr.Microphone()  # Capture Voicewith 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))
Output:
Speak 'hello' to initiate the Translation !
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Speak a stentence...
Phase to be Translated :what are you doing
 
sweetyty
Python-projects
python-utility
Python
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.