如何使用Python构建翻译器
当今世界使用的语言超过 7,000 种。 有了这样的多样性,我们就需要学习它们,这样我们才能相互理解。 由于语言数量众多,我们无疑错过了分享想法、知识和个人表达的机会。
幸运的是,您可以在翻译的帮助下进行交流,包括机器翻译。 输入或说出您的句子,程序可以将其转换成您想要的语言。 使用 Googletrans Python 模块,您只需几行代码就可以构建自己的基本翻译器。
推荐:9个适合顾问的最佳PowerPoint插件
什么是谷歌翻译?
Googletrans 是一个使用 Google Translate API 检测句子并将其从一种语言翻译成另一种语言的模块。 该模块的几个特点是:
- 免费:您无需支付任何费用即可使用此模块。
- 无限制:与大多数 API 不同,Googletrans 没有速率限制,您可以使用它进行无限制的翻译。
- 可靠:谷歌是互联网上最值得信赖的来源之一。 Googletrans 使用与 Google 翻译相同的服务器。
- 自动语言检测:与其他翻译器不同,您无需指定源语言。 这个模块可以自动检测语言并工作,即使你不知道句子来自什么语言或方言。
- 批量翻译:您无需逐个翻译句子或段落,而是可以输入多个列表。
如果您正在寻找替代方案,或者只是想探索翻译技术的当前状态,您可以使用这些浏览器工具来翻译网页。
查找 Googletrans 支持的语言列表
首先使用您喜欢的方法安装模块; Pip 安装程序是最直接的方法。
您可能会遇到与您安装的 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 自动检测并翻译成所需的语言
进口 翻译器 来自 谷歌翻译 模块并传递一些要转换的文本行。 创建一个实例 翻译器. 获取两个参数,作为源和目标的文本,要转换成的语言,并将其传递给 翻译() 方法。
这 翻译() 方法会自动检测您的文本并将其翻译成您想要的语言。 显示翻译后的文本。 这会显示源语言、目标语言和翻译后的文本。 您可以使用 text 函数只显示翻译后的文本。
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 Assistant 实时翻译。 为此,导入 语音识别 别名为 as 的模块 spr. 导入 谷歌翻译 翻译图书馆和 gTTS (Google Text-to-Speech) 将翻译后的文本转换为您可以听到的音频文件。 进口 操作系统 保存音频文件。
import speech_recognition as spr\nfrom googletrans import Translator\nfrom gtts import gTTS\nimport os
创建一个类对象 识别器 用于将用户说出的单词识别为输入,另一个对象用于初始化麦克风以捕获语音。
recog1 = spr.Recognizer()\nmc = spr.Microphone()
使用 和 语句作为异常处理的一部分。 使用麦克风对象作为源,执行这些操作。 初始化翻译器对象进行翻译。 设置源语言和所需的目标语言。 使用 print 语句通知用户说些什么。
使用 adjust_for_ambient_noise() 方法来校准它第一次开始收听。 您这样做是因为实例的阈值属性可能设置为更高的值,然后根据听到的声音进行调整。 校准它会自动将此阈值设置为较低的值。
使用 listen 属性录制单个短语。 该程序记录语音,直到有几秒钟的静音或不再有音频输入。 利用 recognize_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)
最后,使用 gTTS 将文本转换为语音。 传递文本、要读入的语言,并可选择将 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 上,您可以使用 玩玩 命令。
使用音频从一种语言翻译成另一种语言的输出是:
谷歌翻译的替代品
以上是为你介绍的如何使用Python构建翻译器虽然谷歌翻译是最受欢迎的翻译网站,但它的定制功能有限,因此可能不适合某些用例。
如果谷歌翻译不能满足您的需求,您可以探索 iTranslate、百度翻译、Liguee 和 DeepL 等替代方案。 这些都是免费的,支持许多平台,并且可能更适合您的使用。