Azure AI 服务之文本翻译

 当下人工智能可谓是风头正劲,几乎所有的大厂都有相关的技术栈。微软在 AI 领域自然也是投入了重注,并且以 Azure 认知服务的方式投入了市场:

也就是说作为开发者我们不需要学习太多 AI 的理论知识,直接使用 Azure 提供的认知服务 API 就可以在程序中实现 AI 的功能了!

本文作为介绍 Azure AI 服务系列的第一篇,将通过 demo 介绍 Azure 认识服务中 Language 分类中的文本翻译服务(Translator Text API )。

Microsoft 文本翻译 API 是一种基于云的机器翻译服务, 支持多种语言。使用者可用于构建应用程序、网站、工具或任何需要多语言支持的解决方案。该服务是通过 REST API 提供的,所以我们可以以任何语言来调用它们。本文笔者使用 C# 通过构建一个 WPF 程序来演示如何通过简单的几步就能创建一个像模像样的翻译程序:

本文的完整 demo 请从这里下载

创建 Azure 服务

要使用 Azure 的翻译服务需要先在 Azure 上创建对应的实例,比如我们需要先创建一个 "Translator Text API" 服务实例:

在本文的 demo 程序中我们还会用到拼写检查的服务,所以还需要创建一个 "Bing Spell Check v7 API" 服务的实例:

说明:对于学习和练习来说,你可以创建免费的 Azure 账号并创建免费版的上述实例,详细信息请参考 Azure 官网。

创建 WPF 应用程序

先在 VS 中创建 WPF 程序并简单的布局。

既然是 REST API,那么我们肯定是以 url 的方式访问服务,下面分别是访问文本翻译服务和拼写检查服务的 url:

const string TEXT_TRANSLATION_API_ENDPOINT = "upload/201804161130471204.gif" alt="复制代码" style="margin: 0px; padding: 0px; max-width: 900px; border: none !important;" />
private string[] languageCodes; private void GetLanguagesForTranslate() {     // 获得翻译服务支持的语言    string uri = TEXT_TRANSLATION_API_ENDPOINT + "GetLanguagesForTranslate?scope=text";     WebRequest WebRequest = WebRequest.Create(uri);     // 在 http 请求中添加认证信息    WebRequest.Headers.Add("Ocp-Apim-Subscription-Key", TEXT_TRANSLATION_API_SUBSCRIPTION_KEY);     WebResponse response = null;      // 把返回的 xml 信息抽取到数组中    response = WebRequest.GetResponse();     using (Stream stream = response.GetResponseStream())     {         DataContractSerializer dcs = new DataContractSerializer(typeof(List<string>));         List<string> languagesForTranslate = (List<string>)dcs.ReadObject(stream);         languageCodes = languagesForTranslate.ToArray();     } }
复制代码

执行这个函数后,languageCodes 中的内容如下图所示:

虽然取到了可以翻译的语言列表,但是像图中的内容是无法显示给用户的,还需要把它们转换成对用户友好的名称,因此我们定义 GetLanguageNames 函数完成这个功能:

复制代码
private SortedDictionary<string, string> languageCodesAndTitles =            new SortedDictionary<string, string>(Comparer<string>.Create((a, b) => string.Compare(a, b, true))); private void GetLanguageNames() {     // 获得简体中文的语言名称    string uri = TEXT_TRANSLATION_API_ENDPOINT + "GetLanguageNames?locale=zh-CHS";     HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);     request.H
                    
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信