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.mzph.cn/news/620242.shtml

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

相关文章

【IDEA】瑞_IDEA模版注释设置_IDEA自动生成注释模版(详细图文步骤)

文章目录 1 概要2 类的自定义模版注释3 自定义模版注释3.1 方法的自定义模版注释3.2 属性的自定义模版注释 &#x1f64a; 前言&#xff1a;在Java开发中&#xff0c;注释具有不可或缺的重要性&#xff0c;注释负责解释代码&#xff0c;能帮助开发人员深入理解代码的逻辑和功能…

关联规则分析(Apriori算法2

目录 1.核心术语&#xff1a;2.强关联规则&#xff1a;小结&#xff1a; 1.核心术语&#xff1a; 支持度&#xff08;Support&#xff09;&#xff1a;指项集出现的频繁程度&#xff08;相当于项集出现的概率&#xff09; 最小支持度有绝对值和占比两种表示方式 置信度&#…

Xtuner大模型微调

Xtuner大模型微调 一、课程笔记 文档链接&#xff1a;https://github.com/InternLM/tutorial/blob/main/xtuner/README.md 视频链接&#xff1a; https://www.bilibili.com/video/BV1yK4y1B75J/ 大模型微调 大模型的训练利用了各类数据&#xff0c;可以说是一个通才&#xff…

数据仓库(2)-认识数仓

1、数据仓库是什么 数据仓库 &#xff0c;由数据仓库之父比尔恩门&#xff08;Bill Inmon&#xff09;于1990年提出&#xff0c;主要功能仍是将组织透过资讯系统之联机事务处理(OLTP)经年累月所累积的大量资料&#xff0c;透过数据仓库理论所特有的资料储存架构&#xff0c;做…

高级路由技术案例

文章目录 案例项目一&#xff1a;1、静态ECMP和浮动静态路由配置实验2、浮动静态路由配置 案例项目二&#xff1a;使用filter-policy过滤路由案例项目三&#xff1a;IS-IS基本配置案例项目四&#xff1a;OSPF基本配置案例任务一&#xff1a;OSPF单区域配置案例任务二&#xff1…

开源 UI 组件库和开发工具库概览 | 开源专题 No.59

ant-design/ant-design Stars: 87.9k License: MIT Ant Design 是一个企业级 UI 设计语言和 React UI 库。 为 Web 应用程序设计的企业级 UI。提供一套高质量的开箱即用的 React 组件。使用可预测静态类型编写 TypeScript 代码。包含完整的设计资源和开发工具包。支持数十种语…

小程序基础学习(组件传参)

原理&#xff1a;通知在组件标签中传递参数已达到传参的目的 在组件的js的 properties中接受传递来的参数 然后在页面是展示这些数据 源码&#xff1a; <!--components/my-info/my-info.wxml--> <view class"title"> <text class"texts"&g…

Java--RSA非对称加密的实现(使用java.security.KeyPair)

文章目录 前言实现步骤测试结果 前言 非对称加密是指使用不同的两个密钥进行加密和解密的一种加密算法&#xff0c;调用方用使用服务方提供的公钥进行加密&#xff0c;服务方使用自己的私钥进行解密。RSA算法是目前使用最广泛的公钥密码算法。Java提供了KeyPairGenerator类要生…

BikeDNA(七)外在分析:OSM 与参考数据的比较1

BikeDNA&#xff08;七&#xff09;外在分析&#xff1a;OSM 与参考数据的比较1 该笔记本将提供的参考自行车基础设施数据集与同一区域的 OSM 数据进行所谓的外部质量评估进行比较。 为了运行这部分分析&#xff0c;必须有一个参考数据集可用于比较。 该分析基于将参考数据集…

01.neuvector防护平台功能实现设计

本篇文章主要讲neuvector大概的设计与实现&#xff0c;功能实现细节可查看后续文章&#xff0c;原文链接,欢迎大家关注我的github账号 一、整体架构 相关主要业务容器运行结构如下&#xff1a; 主要容器为以下几个&#xff1a; Controller容器负责规则的收集与下发&#xff0…

Open3D AABB包围盒计算与使用(19)

Open3D AABB包围盒计算与使用(19) 一、算法速览二、算法实现1.代码2.结果少年听雨歌楼上。红烛昏罗帐。壮年听雨客舟中。江阔云低、断雁叫西风。 而今听雨僧庐下。鬓已星星也。悲欢离合总无情。一任阶前、点滴到天明。 一、算法速览 AABB包围盒就是将点云用一个各条边沿着坐…

OceanBase架构概览

了解一个系统或软件&#xff0c;比较好的一种方式是了解其架构&#xff0c;下图是官网上的架构图&#xff0c;基于V 4.2.1版本 OceanBase 使用通用服务器硬件&#xff0c;依赖本地存储&#xff0c;分布式部署在多个服务器上&#xff0c;每个服务器都是对等的&#xff0c;数据库…

翻译: Streamlit从入门到精通 基础控件 一

这个关于Streamlit的教程旨在帮助数据科学家或机器学习工程师&#xff0c;他们不是网络开发者&#xff0c;也不想花费数周时间学习使用这些框架来构建网络应用程序。 1. 什么是Streamlit&#xff1f; Streamlit是一个免费且开源的框架&#xff0c;用于快速构建和共享美观的机器…

[小程序]定位功能实现

第一步:首先要认识三个小程序的 api wx.chooseLocation 和 wx.getLocation 和 wx.openLocation (1).wx.chooseLocation 用于在小程序中选择地理位置。当用户点击选择位置按钮时&#xff0c;小程序会调起地图选择界面&#xff0c;用户可以在地图上选择一个位置&#xff0c;并可以…

ubuntu连接xshell怎么连接

在网上找了好多办法都不行 例如 太久没打开Ubuntu可能输入命令查不到IP地址&#xff0c;解决办法也比较简单&#xff0c;首先第一步 确定自己能不能进入管理员root权限&#xff08;输入命令su&#xff09;&#xff0c;如果没有的话得重新配置&#xff0c;如下图 这是因为当前Ub…

LINUX基础第十一章:文件系统与日志服务管理

目录 一.LINUX文件系统 1.inode表和block &#xff08;1&#xff09;inode &#xff08;2&#xff09;block 2.查看inode号命令 3.Linux系统文件三种主要时间属性 4.磁盘空间还剩余很多但无法继续创建文件 5.inode大小 二.日志 1.日志保存位置 2.日志文件的分类 &am…

Java设计模式-备忘录模式

备忘录模式 一、概述二、结构三、案例实现&#xff08;一&#xff09;“白箱”备忘录模式&#xff08;二&#xff09;“黑箱”备忘录模式 四、优缺点五、使用场景 一、概述 备忘录模式提供了一种状态恢复的实现机制&#xff0c;使得用户可以方便地回到一个特定的历史步骤&…

超越GPU:TPU能成为接班人吗?

在计算机的世界里&#xff0c;硬件技术的发展一直在快速推进。今天&#xff0c;我们要谈论的就是一种特殊的处理器&#xff1a;TPU&#xff0c;全称是Tensor Processing Unit。在我们开始深入探讨TPU之前&#xff0c;先了解一下两个重要的芯片技术&#xff0c;FPGA和ASIC。 FP…

计算机网络 —— 数据链路层

数据链路层 3.1 数据链路层概述 数据链路层把网络层交下来的数据构成帧发送到链路上&#xff0c;以及把收到的帧数据取出并上交给网络层。链路层属于计算机网络的底层。数据链路层使用的信道主要由以下两种类型&#xff1a; 点对点通信。广播通信。 数据链路和帧 链路&…

DHCP详解(配置小实验)

目录 一、DHCP 1、了解DHCP 2、使用DHCP的好处 3、HDCP的分配方式 4、DHCP协议中的报文 5、DHCP的租约过程 6、安装和配置DHCP服务 一、DHCP 1、了解DHCP DHCP(Dynamic Host Configuration Protocol&#xff0c;动态主机配置协议)由Internet工作任务小组设计开发专门用…