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",与自己之前申请时填写的一致即可。下面就是官方提供的代码:

python 复制代码
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两个变量中元素没有用逗号分割,经过修改,最终得到以下代码:

python 复制代码
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博客
相关推荐
青 春 记 忆7 小时前
Dify Docker Compose 通用无损升级指南:从备份、双版本预演到切换与回滚
运维·人工智能·python·docker·容器
GlueNa2SiO37 小时前
03-Flask模板引擎Jinja2详解
笔记·python·flask
临沂GEO10 小时前
GEO搜索优化科普|正规地理位置流量运营入门指南
大数据·人工智能·python·流量运营
大模型码小白10 小时前
Spring AI Tool 实现自然语言操作 MySQL 数据库详解
服务器·开发语言·数据库·人工智能·python·mysql·spring
荷蒲11 小时前
【小白量化Qbuddy】利用AI学习中文Python
人工智能·python·学习
数据狐(Datafox)13 小时前
京东商品列表API技术解析与落地应用(含标准 JSON 示例)
java·大数据·前端·人工智能·python·数据分析·json
量化吞吐机13 小时前
2026年下半年手工交易规则走向量化表达,产品该先接住哪一步
人工智能·python
Metaphor69213 小时前
使用 Python 读取和删除 Excel 文件属性
python·excel
迷迭香yy14 小时前
Python构建转融券多空识别系统从接口到因子的全流程 IG50免费开源股票数据API接口
开发语言·python·开源
月光船幽幽15 小时前
真实即粗糙,光滑是伪造
人工智能·python