当前位置: 代码网 > it编程>前端脚本>Python > Python如何免费调用微软Bing翻译API

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

2024年08月01日 Python 我要评论
现在免费的机器翻译越来越少了,随着有道翻译开始收费,百度降低用户的免费机器翻译额度(目前只有实名认证过的高级用户才能获得100万字符的免费翻译额度),而亚马逊、腾讯等机器翻译调用相对比较麻烦,需要下载各种插件包,有的如亚马逊还需要绑定信用卡,因此用户体验十分不友好。相比之下,微软的Bing翻译相对比较大方,考虑到了使用机器翻译中群体中有很多学生党,提供了Azure for Students的免费服务,不用登记信用卡,感兴趣的朋友,也可以通过以下地址进行申请试用。

一、引言

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

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com