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

news2024/9/27 23:32:53

一、引言

现在免费的机器翻译越来越少了,随着有道翻译开始收费,百度降低用户的免费机器翻译额度(目前只有实名认证过的高级用户才能获得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 + path

params = {
    '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 + path

params = {
    '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.coloradmin.cn/o/1379687.html

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

相关文章

智能小程序能做什么?

一. 自定义Tab页 涂鸦提供了丰富的场景化、个性化的 ToC 智能服务&#xff0c;不仅可以快速低成本的自由搭建出更多智能服务&#xff0c;还为你提供了基于小程序技术方案的可自主可控的自定义开发链路&#xff0c;为拓展更多品牌化、个性化、差异化智能服务提供生态基础。 我…

Unity之角色控制器

PS:公司终于给我派任务了&#xff0c;最近几天都没学Unity&#x1f927;。 一、角色控制器的实现方式 目前小编知道的角色控制器实现方式有三种&#xff1a; 应用商店的角色控制系统Unity自己的角色控制器通过物理系统去做角色控制器 本篇介绍的是第二种Unity自己的角色控制…

【期末不挂科-C++考前速过系列P1】大二C++第1次过程考核(3道简述题&7道代码题)【解析,注释】

前言 大家好吖&#xff0c;欢迎来到 YY 滴C复习系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过C的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; YY的《C》专栏YY的《C11》专栏YY的《Lin…

vi/vim 编辑器 --基本命令

1 vi/vim编辑器介绍 vi 是visual interface 的简称&#xff0c;是Linux中最经典的文本编辑器 vim是vi的加强版。兼容了vi的所有指令&#xff0c;不仅能编辑文本&#xff0c;而且具有shell程序编辑的功能&#xff0c;可以通过不同颜色的字体辨别语法的正确性&#xff0c;极大…

js中try...catch捕捉错误

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

淘宝商家实现批量上货API接口调用接入说明(淘宝开放平台免申请接入)

API接入详细步骤&#xff1a; 第一步&#xff1a;在淘宝开放平台中选择接口塡写应用申报递交给我司&#xff0c;确认接口是否都有。 第二步&#xff1a;确认接口都有&#xff0c;需交1000元进行测试&#xff0c;可以测试三天&#xff0c;测试数据符合淘宝开放平台接口参数说明&…

Java常用的加密技术

项目结构&#xff1a; 总体代码&#xff1a; package VirtualUtils; import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypto.spec.SecretKeySpec; import java.io.UnsupportedEncodingException; import java.security.*; import java.security.sp…

WebServer 跑通/运行/测试(详解版)

&#x1f442; 椿 - 沈以诚 - 单曲 - 网易云音乐 目录 &#x1f382;前言 &#x1f33c;跑通 &#xff08;1&#xff09;系统环境 &#xff08;2&#xff09;克隆源码 &#xff08;3&#xff09;安装和配置 Mysql &#xff08;4&#xff09;写 sql 语句 &#xff08;5&…

文件操作(一)

目录 一.什么是文件 1.程序文件和数据文件 2.文件名 3&#xff0c;文本文件和二进制文件 二.文件的打开和关闭 1.流和标准流 2.文件指针 3.文件的打开与关闭 三.结尾 一.什么是文件 在我们学习文件操作之前我们先了解一下什么是文件&#xff1f;以及文件为什么使用文件…

【Effective Objective - C】—— 熟悉Objective-C

【Effective Objective - C】—— 熟悉Objective-C 熟悉Objective-C1.oc的起源消息和函数的区别运行期组件和内存管理要点&#xff1a; 2.在类的头文件中尽量少引入其他头文件向前声明要点&#xff1a; 3.多使用字面量语法&#xff0c;少用与之等价的方法字符串字面量字面数值字…

小程序基础学习(导航栏组件)

一&#xff0c;创建组件 二&#xff0c;组件传入参数 三&#xff0c;组件接收参数 四&#xff0c;组件渲染参数 五&#xff0c;组件代码 <!--components/daoHangLan/daoHangLan.wxml--> <view class"titles"><block wx:for"{{titles}}"…

第 3 章 Keepalived 双机热备

技能展示&#xff1a; 会构建双机热备系统 会构建 LVSHA 高可用群集 在这个高度信息化的 IT 时代&#xff0c;企业的生产系统、业务运营、销售和支持&#xff0c;以及日常管理等环节越来越依赖于计算机信息和服务&#xff0c;对高可用&#xff08;HA&#xff09;技术的应用需求…

Python3.5如何打包编译

python3.5怎么打包编译 问题&#xff1a;用Python开发的小工具有时需要编译打包为Windows(*.exe)、Mac等操作系统下的可执行性文件以供非程序员使用。 解决方案&#xff1a; 一、py2exe 目前只支持到Python3.4&#xff0c;暂不支持Python3.5 二、PyInstaller 安装&#x…

C#人力资源管理系统源码

C#人力资源管理系统源码 源码描述&#xff1a; 该系统利用asp.net中mvc,linq搭建开发&#xff0c; 分权限管理 权限级别分为&#xff1a;管理员&#xff0c;经理&#xff0c;专员&#xff0c;员工等 管理员可以管理角色、菜单 经理可以管理 组织规划&#xff0c;员工管理&#…

微信商家转账到零钱,既能单笔又能批量,支持多商户管理

大家好&#xff0c;我是小悟 微信商家转账到零钱的功能大家应该都熟悉吧&#xff0c;为了满足商家向用户微信零钱转账的需求&#xff0c;微信支付推出【商家转账到零钱】服务&#xff0c;方便商户可以一次向单个或多个用户的微信零钱转账。 商家转账到零钱为商户提供了简便、…

【Qt 学习之路】关于C++ Vlc视频播放

文章目录 1、简介2、效果2.1、视频2.2、动态图 3、核心代码3.1、判断视频3.2、视频核心类调用3.3、视频核心类3.3.1、头文件3.3.2、源文件 1、简介 最近有童鞋咨询VLC相关的问题&#xff0c;公布一个 5年前 编写的 VLC示例 代码供参考学习。包括正常对视频各种常用的操作&…

ASP.NET进销存系统源码

ASP.NET进销存系统源码 功能介绍&#xff1a; 财务 销售清单&#xff0c;填写销售单&#xff0c;客户管理&#xff0c;添加客户资料 销售 销售清单&#xff0c;填写销售单&#xff0c;客户管理&#xff0c;添加客户资料 仓库 仓库结存&#xff0c;仓库盘点&#xff0c;盘点结…

App在线封装的革命性创新

随着移动互联网的蓬勃发展&#xff0c;App已经成为我们日常生活中不可或缺的一部分。从购物、交通、社交到娱乐&#xff0c;几乎每个人的智能手机都装载着数十个应用程序&#xff0c;以满足各式各样的需求。然而&#xff0c;对于许多非技术背景的企业家和小型企业而言&#xff…

【JAVA基础--计算机网络】--TCP三次握手+四次挥手

三次握手四次挥手 写在前面1. 三次握手1.1 作用&#xff1a; 为了在不可靠的信道上建立起可靠的连接&#xff1b;1.2 建立过程1.3 面试提问 2. 四次挥手2.1 作用&#xff1a;为了在不可靠的网络信道中进行可靠的连接断开确认2.2 断开过程2.3 面试提问 写在前面 三次握手建立连…

2.4G无线遥控器方案开发,稳定性强,可用于多种应用

2.4G遥控器是一种使用2.4GHz频段的无线遥控器&#xff0c;常用于遥控玩具、航模和家电等电子设备上。相比于传统的红外线遥控器&#xff0c;2.4G遥控器具有更强的穿透力和稳定性&#xff0c;可以在较远的距离内实现遥控操作&#xff0c;并且不会受到光线干扰。它由遥控器和接收…