Python如何免费调用微软Bing翻译API

一、引言

现在免费的机器翻译越来越少了,随着有道翻译开始收费,百度降低用户的免费机器翻译额度(目前只有实名认证过的高级用户才能获得100万字符的免费翻译额度),而亚马逊、腾讯等机器翻译调用相对比较麻烦,需要下载各种插件包,有的如亚马逊还需要绑定信用卡,因此用户体验十分不友好。

相比之下,微软的Bing翻译相对比较大方,考虑到了使用机器翻译中群体中有很多学生党,提供了Azure for Students的免费服务,不用登记信用卡,而是只用教育邮箱(邮箱地址以http://edu.cn结尾),可以免费申请到200万字符的机器翻译量,可以满足用户的基本日常需求。感兴趣的朋友,也可以通过以下地址进行申请试用。

https://azure.microsoft.com/zh-cn/free/students/​azure.microsoft.com/zh-cn/free/students/

根据微软的官方页面显示,对于学生用户提供100美元,免信用卡注册的优惠条件,即使是在校学生,没有信用卡也可以免费使用。目前该项服务优惠期是一年,到期可以续,只要通过了教育邮箱就可以验证成功。

面向学生的Azure

今天我们就带着大家如何白嫖Azure的免费机器翻译额度。

二、如何调用Bing翻译

1. 准备教育邮箱

首先,需要准备一个教育邮箱,以http://edu.cn结尾,然后去上面的官方页面注册。

2. 新建资源

接着,需要进入https://portal.azure.com 新建一个Azure的服务资源。

创建资源

3. 创建资源

进入到新建资源后,点击上方的输入框,输入【翻译工具】,进入翻译工具中,新建一个翻译工具。

查找翻译工具

4. 配置翻译工具

地点最好选全球。名称可以随意起,定价层填写【pay as you go】,一般情况下不会超过个额度。

5. 生成密匙

点左侧菜单栏中的【密匙和终结点】,进入生成密匙页面,点击生成密匙。系统将自动生成两个密匙,我们可以点复制按钮,复制任意一个订阅。如果订阅泄露,可以点击【重新生成密匙】,这样就可以更新订阅了。

6. 获取python调用代码

再次点击左侧菜单栏最上方的【概述】,切换到【示例代码】选项卡,再点击【Python】得到了Python调用Bing翻译的Python代码。

复制Python调用Bing翻译代码

7. 调试python代码

把代码复制到thonny或者其它的IDLE中,把带有尖括号的部分替换。主要是【key】和【location】两处,key就是之前申请的密匙,location这里填写"global",与自己之前申请时填写的一致即可。下面就是官方提供的代码:

import requests, uuid, json# Add your key and endpoint
key = "<your-translator-key>"
endpoint = "https://api.cognitive.microsofttranslator.com"# location, also known as region.
# required if you're using a multi-service or regional (not global) resource. It can be found in the Azure portal on the Keys and Endpoint page.
location = "<YOUR-RESOURCE-LOCATION>"path = '/translate'
constructed_url = endpoint + pathparams = {'api-version': '3.0''from': 'en''to': ['fr', 'zu']
}headers = {'Ocp-Apim-Subscription-Key': key# location required if you're using a multi-service or regional (not global) resource.'Ocp-Apim-Subscription-Region': location'Content-type': 'application/json''X-ClientTraceId': str(uuid.uuid4())
}# You can pass more than one object in body.
body = [{'text': 'I would really like to drive your car around the block a few times!'
}]request = requests.post(constructed_url, params=params, headers=headers, json=body)
response = request.json()print(json.dumps(response, sort_keys=True, ensure_ascii=False, indent=4, separators=(',', ': ')))

从上面的代码可以看出,使用bing翻译的api不需要安装额度的包,只需要有requests, uuid几个包就可以了。

8. 调试Python代码

修改上述代码,代入key和location的值,结果发现程序运行时一直报错,不能运行。报错如下:

代码报错

经过分析,发现是params和headers两个变量中元素没有用逗号分割,经过修改,最终得到以下代码:

import requests, uuid, json# Add your key and endpoint
key = "<Bing- Api-Key>"
endpoint = "https://api.cognitive.microsofttranslator.com"# location, also known as region.
# required if you're using a multi-service or regional (not global) resource. It can be found in the Azure portal on the Keys and Endpoint page.
location = "global"path = '/translate'
constructed_url = endpoint + pathparams = {'api-version':'3.0','from':'zh','to':'ja'
}headers = {'Ocp-Apim-Subscription-Key': key,# location required if you're using a multi-service or regional (not global) resource.'Ocp-Apim-Subscription-Region':location,'Content-type': 'application/json','X-ClientTraceId': str(uuid.uuid4())
}# You can pass more than one object in body.
body = [{'text': '我非常喜欢读书。'
}]request = requests.post(constructed_url, params=params, headers=headers, json=body)response = request.json()#trans = json.dumps(response, sort_keys=True, ensure_ascii=False, indent=4, separators=(',', ': '))print(body[0]['text'],response[0]['translations'][0]["text"],sep="\n")

三、学后反思

  1. Bing翻译免费字符数200万,是目前免费额度较高的机器翻译引擎,其在新闻翻译和日语翻译中表现可圈可点。
  2. 鉴于谷歌翻译的离去,可用的国外机器翻译引擎已经越来越少了,Bing翻译不失为CAT工具进行翻译时不错的备选引擎。
  3. Bing翻译的API现在已经更新到了3.0,相信译文质量在openai的加持下也有很大的提升。同时它还可以支持把原文翻译成多种语言,这或许是其重要的优势之一。
  4. 更多Python调用机器翻译api的教程参见下面的网址:Python调用各大机器翻译API大全_python翻译api-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/345456.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件项目质量保证措施-word

一、 质量保障措施 二、 项目质量管理保障措施 &#xff08;一&#xff09; 资深的质量经理与质保组 &#xff08;二&#xff09; 全程参与的质量经理 &#xff08;三&#xff09; 合理的质量控制流程 1&#xff0e; 质量管理规范&#xff1a; 2&#xff0e; 加强协调管理&…

【python】07.字符串和常用数据结构

字符串和常用数据结构 使用字符串 第二次世界大战促使了现代电子计算机的诞生&#xff0c;最初计算机被应用于导弹弹道的计算&#xff0c;而在计算机诞生后的很多年时间里&#xff0c;计算机处理的信息基本上都是数值型的信息。世界上的第一台电子计算机叫ENIAC&#xff08;电…

【纯CSS特效源码】(一)几款漂亮的文字特效

1.渐变文字 使用background: -webkit-linear-gradient(#d8ecec, #2d888b);定义背景渐变色 并使用-webkit-text-fill-color: transparent;指定了文本字符的填充颜色 <!DOCTYPE html> <html><style>body {background-color: #111;}#content {position: abso…

大小鼠”专项”训练实验跑台—ZL-013小动物实验跑步机

运动疲劳的研究一直备受研究学者的关注&#xff0c;运动性疲劳动物模型也已经成为运动性疲劳研究的重要途径。运动性疲劳与一般的疲劳不同&#xff0c;其是在运动过程中发生的一种疲劳症候&#xff0c;不同的运动方式对疲劳产生的程度不同&#xff0c;对动物机体产生的影响也大…

C++力扣题目617--合并二叉树

给你两棵二叉树&#xff1a; root1 和 root2 。 想象一下&#xff0c;当你将其中一棵覆盖到另一棵之上时&#xff0c;两棵树上的一些节点将会重叠&#xff08;而另一些不会&#xff09;。你需要将这两棵树合并成一棵新二叉树。合并的规则是&#xff1a;如果两个节点重叠&#…

小程序中滚动字幕

需求&#xff1a;在录像时需要在屏幕上提示字幕&#xff0c;整体匀速向上滚动 html部分&#xff1a; <view class"subtitles_main"><view style"font-size:34rpx;color: #fff;line-height: 60rpx;" animation"{{animation}}">人生的…

腾讯云添加SSL证书

一、进入腾讯云SSL证书&#xff1a; ssl证书控制台地址 选择“我的证书”&#xff0c;点击"申请免费证书" 2、填写域名和邮箱&#xff0c;点击“提交申请” 在此页面中会出现主机记录和记录值。 2、进入云解析 DNS&#xff1a;云解析DNS地址 进入我的解析-记录…

步进电机相关知识 以及 TMC2660 步进电机驱动芯片驱动步进电机

步进电机相关知识 以及 TMC2660 步进电机驱动芯片驱动步进电机 前言一、步进电机基础知识1、电机常用概念2、步进电机小知识3、步进电机分类4、步进电机工作原理细分驱动步进电机 5、使用的步进电机型号以及相关参数 二、步进电机驱动芯片 TMC2660 和MCU端步进电机驱动芯片TMC2…

js中try...catch捕捉错误

文章目录 一、前言二、场景2.1、setTimeout2.2、Promise 三、最后 一、前言 说到try...catch都觉得非常熟悉了&#xff0c;不就是用来捕捉代码块中的错误嘛&#xff0c;平时也用得比较多的 二、场景 try...catch只能捕捉到同步执行代码块中的错误 2.1、setTimeout try {setT…

Surface mesh结构学习

CGAL 5.6 - Surface Mesh: User Manual Surface_mesh 类是半边数据结构的实现&#xff0c;可用来表示多面体表面。它是半边数据结构&#xff08;Halfedge Data Structures&#xff09;和三维多面体表面&#xff08;3D Polyhedral Surface&#xff09;这两个 CGAL 软件包的替代品…

Java Web 开发 从入门到实战(课后习题)

第1章 Web 前端基础 1.在以下标记中&#xff0c;用于改置页面标题的是&#xff08;&#xff09;。 A. <title> B. <caption> C. <head> D. <html> 注&#xff1a;caption是表格名称&#xff08;标题&#xff09; 2. 若设计网页的背景图形为bg.png&…

计算机毕业设计----SSH电子相册管理系统

项目介绍 本项目分为普通用户与管理员两个角色&#xff1b; 管理员角色包含以下功能&#xff1a; 管理员登陆,用户信息管理,登陆密码修改等功能。 用户角色包含以下功能&#xff1a; 用户登陆,个人信息管理,相册管理,上传照片等功能。 环境需要 1.运行环境&#xff1a;最好…