通用翻译API技术文档
通用翻译API通过HTTP接口对外提供多语种互译服务。您只需要通过调用通用翻译API,传入待翻译的内容,并指定要翻译的源语言(支持源语言语种自动检测)和目标语言种类,就可以得到相应的翻译结果。
通用翻译API HTTP地址:
http://api.fanyi.baidu.com/api/trans/vip/translate
通用翻译API HTTPS地址:
https://fanyi-api.baidu.com/api/trans/vip/translate
您需要向该地址通过POST或GET方法发送下列字段来访问服务
字段名 | 类型 | 必填参数 | 描述 | 备注 |
---|---|---|---|---|
q | TEXT | Y | 请求翻译query | UTF-8编码 |
from | TEXT | Y | 翻译源语言 | 语言列表(可设置为auto) |
to | TEXT | Y | 译文语言 | 语言列表(不可设置为auto) |
appid | INT | Y | APP ID | 可在管理控制台查看 |
salt | INT | Y | 随机数 | |
sign | TEXT | Y | 签名 | appid+q+salt+密钥 的MD5值 |
签名是为了保证调用安全,使用MD5算法生成的一段字符串,生成的签名长度为 32位,签名中的英文字符均为小写格式
为保证翻译质量,请将单次请求长度控制在 6000 bytes以内。(汉字约为2000个)
签名生成方法如下:
1、将请求参数中的 APPID(appid), 翻译query(q, 注意为UTF-8编码), 随机数(salt), 以及平台分配的密钥(可在管理控制台查看)
按照 appid+q+salt+密钥 的顺序拼接得到字符串1。
2、对字符串1做md5,得到32位小写的sign。
注意:
1、请先将需要翻译的文本转换为UTF-8编码
2、在发送HTTP请求之前需要对各字段做URL encode。
3、在生成签名拼接 appid+q+salt+密钥 字符串时,q不需要做URL encode,
在生成签名之后,发送HTTP请求之前才需要对要发送的待翻译文本字段q做URL encode。
返回结果是json格式,包含以下字段:
字段名 | 类型 | 描述 |
---|---|---|
from | TEXT | 翻译源语言 |
to | TEXT | 译文语言 |
trans_result | MIXED LIST | 翻译结果 |
src | TEXT | 原文 |
dst | TEXT | 译文 |
其中 trans_result 包含了 src 和 dst 字段。
例:将apple从英文翻译成中文:
q=apple
from=en
to=zh
appid=2018101400000001
salt=1435660288
平台分配的密钥: 12345678
生成sign:
>拼接字符串1
拼接appid=2015063000000001+q=apple+salt=1435660288+密钥=12345678
得到字符串1 =2015063000000001apple143566028812345678
>计算签名sign(对字符串1做md5加密,注意计算md5之前,串1必须为UTF-8编码)
sign=md5(2015063000000001apple143566028812345678)
sign=f89f9594663708c1605f3d736d01d2d4
完整请求为:
也可以使用POST方法传送需要的参数。
语言列表
源语言语种不确定时可设置为 auto,
目标语言语种不可设置为 auto。
语言简写 | 名称 |
---|---|
auto | 自动检测 |
zh | 中文 |
en | 英语 |
yue | 粤语 |
wyw | 文言文 |
jp | 日语 |
kor | 韩语 |
fra | 法语 |
spa | 西班牙语 |
th | 泰语 |
ara | 阿拉伯语 |
ru | 俄语 |
pt | 葡萄牙语 |
de | 德语 |
it | 意大利语 |
el | 希腊语 |
nl | 荷兰语 |
pl | 波兰语 |
bul | 保加利亚语 |
est | 爱沙尼亚语 |
dan | 丹麦语 |
fin | 芬兰语 |
cs | 捷克语 |
rom | 罗马尼亚语 |
slo | 斯洛文尼亚语 |
swe | 瑞典语 |
hu | 匈牙利语 |
cht | 繁体中文 |
vie | 越南语 |
错误码列表
当翻译结果无法正常返回时,请参考下表处理:
错误码 | 含义 | 解决方法 |
---|---|---|
52000 | 成功 | |
52001 | 请求超时 | 重试 |
52002 | 系统错误 | 重试 |
52003 | 未授权用户 | 检查您的 appid 是否正确,或者服务是否开通 |
54000 | 必填参数为空 | 检查是否少传参数 |
54001 | 签名错误 | 请检查您的签名生成方法 |
54003 | 访问频率受限 | 请降低您的调用频率 |
54004 | 账户余额不足 | 请前往管理控制平台为账户充值 |
54005 | 长query请求频繁 | 请降低长query的发送频率,3s后再试 |
58000 | 客户端IP非法 | 检查个人资料里填写的 IP地址 是否正确 可前往管理控制平台修改 IP限制,IP可留空 |
58001 | 译文语言方向不支持 | 检查译文语言是否在语言列表里 |
各语言DEMO
常见问题
1. 如何在一次请求中翻译多个单词或者多段文本?
您可以在发送的字段q中用换行符(在多数编程语言中为转义符号 \n )来分隔要翻译的多个单词或者多段文本,这样您就能得到多个单词或多段文本独立的翻译结果了。
注意在发送请求之前对q字段做URL encode!
2. 什么是URL encode?
网络标准RFC 1738规定了URL中只能使用英文字母、阿拉伯数字和某些标点符号,不能使用其他文字和符号。如果您需要翻译的文本里面出现了不在该规定范围内的字符(比如中文),需要通过URL encode将需要翻译的文本做URL编码才能发送HTTP请求。大部分编程语言都有现成的URL encode函数,具体使用方法可以针对您使用的编程语言自行搜索。
3. 为什么我的请求总是返回错误码54001?
54001表示签名错误,请检查您的签名生成方法是否正确。
应该对 appid+q+salt+密钥 拼接成的字符串做MD5得到32位小写的sign。
确保要翻译的文本q为UTF-8编码。
注意: 在生成签名拼接 appid+q+salt+密钥 字符串时,q不需要做URL encode,
在生成签名之后,发送HTTP请求之前才需要对要发送的待翻译文本字段q做URL encode。
如果您无法确认自己生成签名的结果是否正确,可以将您生成的签名结果和在https://md5jiami.51240.com/中生成的常规md5加密-32位小写签名结果对比。
帮助与支持
一、 服务概述
1. 百度翻译开放平台支持哪些服务?
百度翻译开放平台是百度翻译针对广大开发者提供的开放服务平台。目前提供两项服务:通用翻译API和定制化翻译API。
2. 什么是通用翻译API?
通用翻译API支持28种语言互译,覆盖中、英、日、韩、西、法、泰、阿、俄、葡、德、意、荷、芬、丹等;支持28种语言的语言检测。您只需要通过调用通用翻译API,传入待翻译的内容,并指定要翻译的源语言(支持源语言语种自动检测)和目标语言,即可得到相应的翻译结果。任何第三方应用或网站都可以通过使用通用翻译API为用户提供实时优质的多语言翻译服务,提升产品体验。
3. 什么是定制化翻译API?
定制化翻译API是指在通用翻译模型基础上,基于开发者提供的领域数据,通过自适应技术,快速构建的定制化训练模型。定制化翻译API目前支持中英、英中方向,后续逐步支持其他语言方向。开发者使用定制化翻译API可以更好地与您的应用场景相匹配,获得更好的翻译效果。
4. 百度翻译是否提供词典、TTS发音或网页翻译API?
目前平台暂不提供上述服务。
二、 服务申请
1. 如何申请翻译API服务?
已登录百度账号的用户,点击“立即使用”,注册成为开发者,即可获得APPID和密钥信息;同一个账户或手机号码仅能申请一组APPID和密钥信息,该APPID和密钥信息可用于多项服务调用。
已注册开发者的用户,可通过点击“立即使用”或者在管理控制台开通相应服务;
已开通某项服务的用户,可在管理控制台开通其他服务。
2. 申请API时,如果没有IP地址,或IP地址众多无法填写该怎么办?
IP地址并非必填项,可留空。百度翻译建议各位开发者填写,是为了更好的保护开发者账户隐私和安全。
3. 是否支持国外服务器请求或国外手机注册?
支持。
4. 申请定制化翻译API时,语料样例填写有什么要求?
每行一个中英文对照句对,中英文间用三条竖线分割,例如:
这是一个测试。 ||| This is a test.
百度翻译可提供基本的格式转换服务。
5. 申请定制化翻译API时,语料数量怎么选择?
语料数量是申请必填项。为了更好地提供服务,百度翻译建议开发者根据实际情况进行选择。一般情况,语料量级达到百万以上,定制化效果会较为显著。
6. 定制化翻译API的申请周期大概多长时间?
定制化翻译API申请流程包括线上提交申请、审核开发者资质、线下提交全量语料数据、模型优化、模型上线等。其中审核语料预计约3个工作日,模型优化预计约10个工作日,搭建服务预计约2个工作日,实际周期视语料量级及语料质量等因素而定。开发者可以通过管理控制台实时了解申请进度。
三、 隐私保护
1. 申请定制化API,能否保证开发者语料数据的隐私性和安全性?
百度尊重您提供的语料数据,不会向第三方提供语料数据(除以百度翻译API的形式),仅限百度使用。
四、 服务计费
1. 通用翻译API计费规则是什么?
通用翻译API每月提供200万字符免费额度,超出后需要按照字符数收费。
当月翻译字符数≤200万,当月免费。
超过200万字符,按照49元人民币/百万字符,支付当月全部翻译字符数费用。
2. 定制化翻译API计费规则是什么?
定制化翻译API目前处于免费公测期,暂不收费。
3. 百度翻译通用API字符数统计规则是什么?
字符数以翻译的源语言字符长度为标准计算。一个汉字,英文字母,标点符号等,均计为一个字符。注:空格、html标签等均计入在内。
4. 如何对账户进行充值?
登录百度账户后,点击“管理控制台”-“充值”,即可通过百度钱包为账户充值。如该充值方式无法满足您的需求,可与百度翻译签订合同,进行对公账户打款。在提供打款凭证后,我们将后台为您充值。可发送邮件至translate_api@baidu.com咨询。
5. 如果账户未充值或余额不足会有什么影响?
若超过当月免费使用额度(200万字符),并且当前账户余额不足时,将影响翻译通用API的正常使用。调用时会返回报错信息,错误代码为54004。账户欠费后,需补缴欠费金额方可使用。定制化API的服务不受影响。
更多问题可参考技术文档。
五、 服务调用
1. 通用翻译API是否有配额限制?
百度翻译通用API无访问频次限制,服务稳定性SLA高达99.99%。
2. 定制化翻译API是否有配额限制?
百度翻译定制化API目前处于免费公测期,支持默认配额为5 QPS,不保障并发。当调用频次超过默认配额时,会返回错误代码为54003的报错信息,您需降低调用频率后重新发起请求。
六、 发票相关
1. 如何开具发票?
以在线方式充值,百度提供普通发票。
充值完毕后,请将百度账户名、百度翻译APPID、充值金额、发票抬头、企业纳税人识别号或统一社会信用代码、收件人联系方式和收件地址发送至translate_api@baidu.com。确认无误后,百度将开具相应金额发票并寄送。
2. 是否可开具增值税专用发票?
开具增值税专用发票,需与百度签订《百度翻译API企业合作合同》,进行对公付款,提供打款凭证及一般纳税人资质相关材料《一般纳税人六要素信息表》。可联系translate_api@baidu.com获取合同。
3. 发票申请提交后多久能收到发票?
我们将在1-2个工作日内处理您的发票申请,记录后我们会尽快帮您申请发票,发票申请提交后7个工作日内开出,并免费邮寄至您提供的联系地址。注:每月初1-10日不能开具发票。
服务协议
使用百度翻译开放平台服务(以下简称“服务”)即表示您同意接受百度翻译开放平台服务协议(以下简称“本协议”)和相关法律法规的约束。
一、定义
百度翻译数据指通过百度翻译的开放服务获得的任何数据,包括不限于翻译结果数据、语音识别数据等。
二、API或SDK访问
1. 您可以通过使用百度翻译提供的API或SDK来开发服务或应用,以实现百度翻译服务。
2. 使用百度翻译API或SDK时,如果应用服务包括一个客户端程序,此客户端程序不能缓存百度翻译数据。
3. 使用百度翻译开放服务时,以下损害百度公司利益的行为是不被允许的。
3.1 向任何第三方销售、分发、再授权、重新分配、提供或传送任何百度翻译数据。
3.2 使用包含“百度”、“百度词典”或“百度翻译”等字样来命名自己的产品。
4. 百度可能会监控您对百度翻译API或者SDK的使用,以改善服务,并确保您遵守本条款。百度公司保留随时要求删除特定或者全部百度翻译数据的权利。
5. 如果有超出以上访问规则的其他需要,请您联系我们,如双方协商一致,百度可出具相应书面许可。
三、使用限制
1. 您通过API或者SDK来使用百度翻译服务时,需保持百度翻译数据的完整性。
2. 任何技术滥用或用户滥用(如制造垃圾广告信息等)或违反国家法律规定或可能损害百度利益的行为,都会导致您的账户被百度直接地永久地封禁。
四、服务费用
1. 百度翻译开放平台服务的收费方式及价格信息以网页公布的计费方式和支付方式为准。
2. 您登录百度翻译开放平台后,可通过管理控制台查看账户信息、接入服务项目、充值及查看账单等操作。
3. 若账户余额不足,您应及时充值,否则百度公司有权暂停为您提供付费服务。
4. 百度公司有权根据需要对收费服务的收费标准、计费及支付方式进行修改及变更,亦有权对免费服务进行收费。涉及服务费用的调整,百度将提前90天通知您(百度有权选择以线下或者线上的形式进行通知)。如您不同意相关调整,应立即停止使用百度翻译开放平台服务,如您在百度调整收费标准7日内,仍继续使用服务,视为您已接受新的收费标准,并将按此标准向百度公司支付费用。
五、隐私保护
1. 百度尊重您的个人隐私,不会公开或者透露您的注册信息及保存在百度开放平台中的非公开内容,除非遇到如下情况:
1.1 事先获取您的明确授权;
1.2 根据法律、法规、法律程序的要求或政府主管部门的强制性要求;
1.3 以学术研究或公共利益为目的;
1.4 保护维持百度的知识产权和其他重要权利;
1.5 符合相关服务条款或使用协议的规定;
2. 百度尊重您提供的语料数据,不会向第三方提供语料数据(除以百度翻译API或者SDK的形式),仅限百度使用。
3. 您和百度翻译开放平台因使用百度翻译开放平台服务而了解或者接触到的信息,服务条款内容及使用服务过程中产生的相关信息及往来文件均为保密文件;非经书面同意不得向第三方泄露,给予或者转让该保密信息,该保密义务不因本协议的终止而终止。
4. 您使用百度服务向第三方提供任何收费或者免费的服务时,应充分尊重第三方的隐私,不得利用百度翻译开放平台服务进行任何侵害第三方隐私的行为。
六、责任限制
1. 在适用法律允许的最大范围内,百度公司明确表示不对通过百度翻译开放平台提供翻译数据提供任何类型的保证,不论是明示的或默示的,包括但不限于适销性、适用性、可靠性、准确性、完整性、不侵权、无病毒以及无错误的任何默示保证和责任。
2. 您对百度翻译API或SDK的使用是根据您自己的判断作出的,并自己承担所带来的风险,对于因使用百度翻译API或者SDK服务而产生的一切损失将由个人承担。
七、知识产权
1. 您承认百度公司拥有对百度翻译API或者SDK服务的所有权利,包括但不限于所有知识产权。“知识产权”指在专利法、版权法、商业机密法、商标法、反不正当竞争法等法中规定的所有权利以及其中的所有应用、更新、扩展和恢复,无论在现在还是以后在全球范围内实施和生效。
2. 您不能储存、更改、反编译、反向工程或者反汇编百度翻译API或者SDK。
八、服务终止
1. 百度有权在任意时间以任何理由终止API或SDK服务。当您出现对本协议的任何违反,或者百度向您发出了终止服务的通知,您将无权使用百度翻译API或者SDK服务。
2. 百度公司可随时对本协议作出变更并通过适当方式向您提示变更内容。您理解并同意,如果您在本协议作出变更后继续使用服务,则视为接受该变更。
上述条款将受中华人民共和国法律的约束并依据其解释。如出现纠纷,您和百度公司一致同意将纠纷交由北京市海淀区人民法院管辖。
如您对本协议内容有任何疑问,可发邮件至百度公司客服邮箱:
translate_api@baidu.com
在法律允许的范围内,本协议的最终解释权归百度公司享有。