在Python中使用Google API的语言转换器



我使用了来自极客的这段代码(https://www.geeksforgeeks.org/language-translator-using-google-api-in-python/),我正在尝试运行它,它运行时没有任何错误,它打印出来:

Speak 'hello' to initiate the Translation !
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

但当我说";你好";它不认识它,也不开始听翻译。

我已经导入了所有的模块,尝试更新它们中的每一个,而且我使用的是macbook m1 pro。

代码在这里:

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))
from gtts import gTTS
from io import BytesIO
from pygame import mixer
import time
def speak():
mp3_fp = BytesIO()
tts = gTTS('KGF is a Great movie to watch', lang='en')
tts.write_to_fp(mp3_fp)
tts.save("Audio.mp3")
return mp3_fp
mixer.init()
sound = speak()
sound.seek(0)
mixer.music.load(sound, "mp3")
mixer.music.play()

最新更新