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:
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