当今世界有 7,000 多种语言。语言如此多样化,我们需要学习这些语言才能相互理解。由于语言数量众多,我们无疑错失了分享想法、知识和个人表达的机会。
幸运的是,你可以借助翻译器(包括机器翻译器)进行交流。输入或说出你的句子,程序就可以将其转换成你想要的语言。使用 Googletrans Python 模块,你只需几行代码就可以构建自己的基本翻译器。
什么是 Googletrans?
Googletrans 是一个使用 Google Translate API 来检测句子并将其从一种语言翻译成另一种语言的模块。该模块的一些功能如下:
- 免费:您无需支付任何费用即可使用此模块。
- 无限制:与大多数 API 不同,Googletrans 没有速率限制,您可以使用它进行无限制的翻译。
- 可靠:Google 是互联网上最值得信赖的来源之一。Googletrans 使用与 Google Translate 相同的服务器。
- 自动语言检测:与其他翻译器不同,您无需指定源语言。此模块可以自动检测语言,即使您不知道句子来自哪种语言或方言,它也能正常工作。
- 批量翻译:您不必逐个翻译一个句子或一个段落,而是可以输入多个句子或段落的列表。
如果你正在寻找替代方案,或者只是想探索翻译技术的现状,你可以使用这些。
查找 Googletrans 支持的语言列表
首先使用您喜欢的方法安装模块;是最直接的方法。
您可能会遇到与您安装的 googletrans 版本有关的问题。如果您在运行这些示例时看到错误,请尝试安装版本 3.1.0a0,即pip 安装 googletrans==3.1.0a0。
Googletrans 支持多种语言转换。要查找其支持的语言列表,请运行以下 Python 代码片段:
import googletrans\nprint(googletrans.LANGUAGES)
将 Googletrans 库导入到你的环境中并使用语言获取语言及其首字母缩略词的列表。
该程序的输出将类似于此屏幕截图:
使用 Googletrans 检测语言
Googletrans 的一大优点是它会自动检测输入语言,因此您无需自行提供。要检测语言,请导入翻译者存在于谷歌翻译模块并创建其实例。使用探测()方法并传递任意所需语言的字符串。使用打印()陈述。
from googletrans import Translator\ntranslator = Translator()\nprint(translator.detect('이 문장은 한글로 쓰여졌습니다.'))\nprint(translator.detect('この文章は日本語で書かれました。'))\nprint(translator.detect('This sentence is written in English.'))
此 Python 代码片段产生以下输出:
它显示检测到的语言的缩写,例如在为了英语并显示其检测语言的准确度。
使用 Googletrans 自动检测并翻译成所需语言
进口翻译者来自谷歌翻译模块并传递一些要转换的文本行。创建一个实例翻译者. 接受两个参数,即作为源的文本和目标,以及要转换的语言,并将其传递给翻译()方法。
这翻译()方法会自动检测并将您的文本翻译成您想要的语言。显示翻译后的文本。这将显示源语言、目标语言和翻译后的文本。您可以使用文本功能仅显示翻译后的文本。
from googletrans import Translator\ntest = ''' आयरन मैन मार्वल कॉमिक्स का सुपर हीरो है। चरित्र लेखक और संपादक स्टैन ली द्वारा बनाया गया था,\nऔर इसकी स्क्रिप्ट लारी लिबियर द्वारा विकसित की गई थी,\nऔर डिजाइन कलाकार डॉन हैक और जैक किर्बी द्वारा बनाया गया था।\nचरित्र ने अपनी पहली उपस्थिति टेल्स ऑफ सस्पेंस #३९ (कवर मार्च १९६३) में दर्ज की। '''\ntranslator = Translator()\ntranslated = translator.translate(test, dest = 'en')\nprint(translated.text)
自动检测和翻译语言的输出是:
使用Googletrans进行批量翻译
您可以执行语言的批量翻译。要执行此操作,请导入所需的模块并创建翻译者。 使用翻译方法并传递文本字符串列表以及要将语言转换为的所需语言缩写。
遍历返回的对象并使用 origin 函数显示原始文本和 text 参数显示翻译后的文本。
from googletrans import Translator\ntranslator = Translator()\ntranslations = translator.translate(['What do you know?', 'Is this true?', 'We will eat a burger tomorrow'], dest='hi')\nfor translation in translations:\n print(translation.origin, ' -> ', translation.text)
Googletrans 执行批量翻译的输出是:
如何使用音频将一种语言翻译成另一种语言
您还可以使用语音与翻译器进行交互,并构建一个简单的。为此,请导入语音识别模块别名为斯普尔. 导入谷歌翻译翻译图书馆和语音合成(Google 文本转语音)将翻译的文本转换为您可以听到的音频文件。导入操作系统保存音频文件。
import speech_recognition as spr\nfrom googletrans import Translator\nfrom gtts import gTTS\nimport os
创建一个类对象识别器用于识别用户所说的单词作为输入,另一个对象用于初始化麦克风以捕获语音。
recog1 = spr.Recognizer()\nmc = spr.Microphone()
使用和语句作为异常处理的一部分。使用麦克风对象作为源,执行以下操作。初始化翻译器对象以进行翻译。设置源语言和所需的目标语言。使用打印语句通知用户说些什么。
使用调整环境噪声()方法在第一次开始监听时进行校准。这样做是因为实例的阈值属性可能设置为较高的值,然后根据听到的声音进行调整。校准此方法会自动将此阈值设置为较低的值。
使用 listen 属性录制单个短语。程序会一直录制语音,直到出现几秒钟的静音或没有更多音频输入。使用识别_google()使用 Google Web API 并识别音频源中的语音。或者,您也可以使用 Bing、IBM、Sphinx 和 Wit。
with mc as source:\n translator = Translator()\n from_lang = 'en'\n to_lang = 'hi'\n print("Speak something...")\n recog1.adjust_for_ambient_noise(source, duration=0.2)\n audio = recog1.listen(source)\n get_sentence = recog1.recognize_google(audio)
显示从音频中识别出的短语。将句子、源语言和目标语言传递给翻译()函数。通过调用text参数显示翻译后的文本,并使用打印陈述。
print("Phrase to be Translated :" + get_sentence)\n text_to_translate = translator.translate(get_sentence,\n src=from_lang,\n dest=to_lang)\n text = text_to_translate.text\n print("The translated text is: ", text)
最后,使用语音合成将文本转换为语音。传递文本、要读取的语言,并可选地将 slow 参数设置为 false。将语音保存为 mp3 文件并使用操作系统模块来运行已保存的音频文件。
speak = gTTS(text=text, lang=to_lang, slow=False)\n speak.save("captured_voice.mp3")\n os.system("start captured_voice.mp3")
该程序的最后一行需要开始命令来播放 mp3 文件。您可能需要用不同的命令替换此命令,具体取决于您的本地环境。例如,在 macOS 上,您可以使用播放命令。
使用音频将一种语言翻译成另一种语言所获得的输出是:
谷歌翻译的替代品
虽然谷歌翻译是最受欢迎的翻译网站,但其定制功能有限,因此可能不适合某些用例。
如果 Google 翻译不能满足您的需求,您可以探索 iTranslate、百度翻译、Liguee 和 DeepL 等替代方案。这些翻译都是免费的,支持许多平台,可能更适合您使用。