支持多种语言 本课概述的速写笔记 速写笔记由Nitya Narasimhan绘制。点击图片查看大图。 本视频将介绍Azure语音服务的概览,涵盖从早期课程中学到的语音转文本和文本转语音,以及本课中涉及的语音翻译: 使用几行Python识别语音 - 来自微软Build 2020 点击上面的图像观看视频 预习测验 预习测验 引言 在过去的三节课中,你学习了如何将语音转换为文本、语言理解以及将文本转换为语音,所有这些都是由AI驱动的。AI还可以帮助人类交流的另一个领域是语言翻译——将一种语言转换为另一种语言,例如从英语转换为法语。 在这节课中,你将学习如何使用AI进行文本翻译,以便你的智能计时器能够用多种语言与用户交互。

速写笔记由Nitya Narasimhan绘制。点击图片查看大图。
本视频将介绍Azure语音服务的概览,涵盖从早期课程中学到的语音转文本和文本转语音,以及本课中涉及的语音翻译:
点击上面的图像观看视频
在过去的三节课中,你学习了如何将语音转换为文本、语言理解以及将文本转换为语音,所有这些都是由AI驱动的。AI还可以帮助人类交流的另一个领域是语言翻译——将一种语言转换为另一种语言,例如从英语转换为法语。
在这节课中,你将学习如何使用AI进行文本翻译,以便你的智能计时器能够用多种语言与用户交互。
在这节课中,我们将涵盖以下内容:
这是本项目的最后一课,所以在完成本课和作业后,请记得清理你的云服务。你需要这些服务来完成作业,所以请先完成作业。
如果需要,请参阅清理项目指南以获取相关说明。
文本翻译是一个计算机科学问题,已经研究了70多年,直到现在由于AI和计算机能力的进步,才接近被解决,几乎可以达到与人类翻译相当的水平。
其起源甚至可以追溯得更远,到Al-Kindi,一位9世纪的阿拉伯密码学家,他开发了用于语言翻译的技术
文本翻译最初是一种称为机器翻译(MT)的技术,可以在不同语言对之间进行翻译。MT通过用另一种语言中的单词替换一种语言中的单词,并添加技术来选择在简单的逐字翻译不适用时正确的短语或句子部分的翻译方法。
当翻译工具支持从一种语言翻译到另一种语言时,这些被称为语言对。不同的工具支持不同的语言对,这些可能并不完整。例如,一个翻译工具可能支持从英语到西班牙语的语言对,也支持从西班牙语到意大利语的语言对,但不支持从英语到意大利语。
例如,将“Hello world”从英语翻译成法语可以通过替换完成——“Bonjour”代替“Hello”,“le monde”代替“world”,从而得到正确的翻译“Bonjour le monde”。
当不同语言使用不同的方式表达相同的事物时,替换就不起作用了。例如,英语句子“My name is Jim”在法语中翻译为“Je m'appelle Jim”——字面意思是“我叫自己Jim”。"Je"是法语中的“I”,"moi"是“me”,但由于它以元音开头,因此变成了"m'","appelle"是“call”,而"Jim"没有被翻译,因为它是一个名字,不是一个可以翻译的词。单词顺序也成为一个问题——“Je m'appelle Jim”的简单替换变成了“I myself call Jim”,与英语的单词顺序不同。
有些词永远不会被翻译——无论使用哪种语言介绍我,我的名字都是Jim。当翻译成使用不同字母表或不同声音的不同字母的语言时,单词可以被音译,即选择字母或字符,以给出与给定单词相同的发音。
成语也是翻译的一个问题。这些是具有不同于直接解读单词含义的含义的短语。例如,在英语中,“I've got ants in my pants”这个成语并不是指衣服里有蚂蚁,而是指不安分。如果你将其翻译成德语,听众可能会感到困惑,因为德语版本是“I have bumble bees in the bottom”。
不同地区会增加不同的复杂性。“ants in your pants”这个成语,在美式英语中,“pants”指的是外衣,在英式英语中,“pants”则是内衣。
✅ 如果你会说多种语言,思考一些不能直接翻译的短语。
机器翻译系统依赖于大型规则数据库,这些数据库描述了如何翻译某些短语和成语,以及统计方法来从可能的选项中选择适当的翻译。这些统计方法使用大量由人工翻译成多种语言的作品数据库来挑选最有可能的翻译,这种技术称为统计机器翻译。其中许多方法使用中间语言表示,允许一种语言被翻译成中间语言,然后再从中间语言翻译成另一种语言。这样,添加更多语言只需翻译到和从中间语言,而不是与其他所有语言。
神经翻译涉及使用AI的力量进行翻译,通常使用一个模型翻译整个句子。这些模型是在包含人类翻译的大量数据集上训练的,如网页、书籍和联合国文件。
神经翻译模型通常比机器翻译模型小,因为它们不需要巨大的短语和成语数据库。提供翻译的现代AI服务通常混合使用多种技术,结合统计机器翻译和神经翻译。
任何语言对之间都没有一对一的翻译。不同的翻译模型会根据用于训练模型的数据产生略微不同的结果。翻译并不总是对称的——也就是说,如果你将一句话从一种语言翻译成另一种语言,然后再翻译回第一种语言,你可能会看到略有不同的句子作为结果。
✅ 尝试使用不同的在线翻译器,如Bing Translate、Google Translate或Apple翻译应用。比较几句话的翻译版本。另外尝试在一个翻译器中翻译,然后在另一个中翻译回来。
有许多AI服务可以从你的应用程序中使用,以翻译语音和文本。

你在过去几节课中使用的语音服务具有语音识别的翻译功能。当你识别语音时,你可以不仅请求同一语言的文本,还可以请求其他语言的文本。
这仅适用于语音SDK,REST API中没有内置翻译。

翻译服务是一种专用翻译服务,可以从一种语言翻译到一种或多种目标语言。除了翻译之外,它还支持许多额外的功能,包括屏蔽脏话。它还允许你为特定单词或句子提供特定翻译,以处理你不希望翻译的术语,或有特定已知翻译的术语。
例如,当你将句子“I have a Raspberry Pi”(指单板计算机)翻译成另一种语言,如法语时,你希望保留“Raspberry Pi”这个名字,而不翻译它,给出“J’ai un Raspberry Pi”而不是“J’ai une pi aux framboises”。
为了完成这节课,你需要一个翻译资源。你将使用REST API进行文本翻译。
从你的终端或命令提示符运行以下命令,在你的smart-timer资源组中创建一个翻译资源。
az cognitiveservices account create --name smart-timer-translator \ --resource-group smart-timer \ --kind TextTranslation \ --sku F0 \ --yes \ --location <location>
将<location>替换为你创建资源组时使用的地点。
获取翻译服务的密钥:
az cognitiveservices account keys list --name smart-timer-translator \ --resource-group smart-timer \ --output table
复制其中一个密钥。
在理想情况下,你的整个应用程序应该尽可能理解多种不同的语言,从监听语音到语言理解,再到用语音回应。这是一个很大的工作量,因此翻译服务可以加快应用程序的交付时间。

想象一下,你正在构建一个使用端到端英语的智能计时器,理解口语英语并将其转换为文本,用英语运行语言理解,构建英语响应并用英语说话。如果你想添加对日语的支持,你可以从将日语翻译成英语文本开始,然后保持应用程序的核心不变,最后将响应文本翻译成日语再进行回应。这样你就可以快速添加日语支持,并在未来扩展到提供完整的端到端日语支持。
依赖机器翻译的缺点在于,不同的语言和文化有不同的表达方式,因此翻译可能不符合你预期的表达。
机器翻译还为应用程序和设备提供了可能性,可以在用户创建内容时实时翻译。科幻小说经常出现“通用翻译器”,这些设备可以将外星语言翻译成(通常是)美国英语。如果忽略外星部分,这些设备更像是科学事实,而非科幻。已经有应用程序和设备可以实时翻译语音和书面文本,使用语音和翻译服务的组合。
一个例子是Microsoft Translator移动应用,演示如下视频所示:
点击上面的图像观看视频
想象一下,拥有这样的设备对你来说有多方便,尤其是在旅行或与不懂你语言的人互动时。在机场或医院安装自动翻译设备可以大大提升可访问性。
✅ 做一些研究:是否有任何翻译物联网设备在市场上出售?智能设备是否内置了翻译功能?
虽然还没有真正的通用翻译器让我们能与外星人交流,但Microsoft Translator确实支持克林贡语。Qapla’!
你可以使用AI服务为你的智能计时器添加这种翻译功能。
按照相关的指南操作,将文本翻译功能添加到你的物联网设备上:
机器翻译如何惠及物联网应用的其他方面?思考不同的方式,翻译不仅可以帮助口头表达,也可以帮助文本。
声明:
本文件灏天文库团队进行了翻译。尽管我们力求准确,但请注意,翻译可能包含错误或不准确之处。原文档以其原始语言为准。我们不对因使用此翻译而产生的任何误解或误译负责。