跳转到内容

文本翻译 API 简介

概念解释

文本翻译:将一段源语言文本转换成目标语言文本,可根据语言参数的不同实现多国语言之间的互译。

智云上线了领域化翻译,目前支持领域有计算机、金融、医学和游戏四个领域;支持语种是中英双向

说明

Hi,您好,欢迎使用有道智云文本翻译API接口服务。如果您想快速体验服务,建议您前往翻译体验中心 或者在体验中心右下侧找到小程序二维码,扫描进行体验。

本文档主要针对需要集成HTTP API的技术开发工程师,详细描述文本翻译能力相关的技术内容。

如果您有与我们商务合作的需求,可以通过以下方式联系我们:

商务邮箱: AIcloud_Business@corp.youdao.com

如果您对文档内容有任何疑问,可以通过以下几种方式联系我们:

客服QQ:1906538062

智云翻译技术交流QQ 1群: 652880659

智云翻译技术交流QQ 2群: 669384425

智云翻译技术交流QQ 3群: 807539209

智云翻译技术交流QQ 4群: 936752411

联系邮箱: zhiyun@corp.youdao.com

温馨提示:

  • 本文档主要针对开发人员,接入测试前需要获取 应用ID应用密钥 ,请按照新手指南 获取。
  • 平台向每个账户赠送50元的体验金,供用户集成前测试所用,具体资费规则详见 文本翻译服务报价

接口说明

文本翻译API接口提供有道的翻译服务,包含了中英翻译和小语种翻译功能。您只需要通过调用文本翻译API,传入待翻译的内容,并指定要翻译的源语言(支持源语言语种自动检测)和目标语言种类,就可以得到相应的翻译结果。

文本翻译API HTTPS地址:

https://openapi.youdao.com/api

协议须知

调用方在集成文本翻译API时,请遵循以下规则。

规则描述
传输方式HTTPS
请求方式GET/POST
字符编码统一使用UTF-8 编码
请求格式表单
响应格式JSON

接口调用参数

调用API需要向接口发送以下字段来访问服务。

字段名类型含义必填备注
qtext待翻译文本True必须是UTF-8编码(注:一些http库,例如:libcurl,可能需要显示对此参数进行url编码)
fromtext源语言True参考下方 支持语言 (可设置为auto)
totext目标语言True参考下方 支持语言
appKeytext应用IDTrue可在应用管理 查看
salttext随机字符串,可使用UUID进行生产Trueuuid (可使用uuid生成)
signtext签名Truesha256(应用ID+input+salt+curtime+应用密钥)
signTypetext签名类型Truev3
curtimetext当前UTC时间戳(秒)trueTimeStamp
exttext翻译结果音频格式,支持mp3falsemp3
voicetext翻译结果发音选择false0为女声,1为男声。默认为女声
stricttext是否严格按照指定from和to进行翻译:true/falsefalse如果为false,则会自动中译英,英译中。默认为false
vocabIdtext用户上传的术语表false用户指定的术语表ID: out_id,支持英中互译,更多语种方向请前往控制台查询
domaintext领域化翻译false默认为:general。仅在控制台开通领域化翻译的情况下可传,支持领域见下表
rejectFallbacktext拒绝领域化翻译降级-当领域化翻译失败时改为通用翻译falsetrue或false,默认为:false。仅在控制台开通领域化翻译的情况生效。

签名生成方法如下: signType=v3; sign=sha256(应用ID+input+salt+curtime+应用密钥); 其中,input的计算方式为:input=q前10个字符 + q长度 + q后10个字符(当q长度大于20)或 input=q字符串(当q长度小于等于20);

注意:

  1. voice 没有男声的,会输出女声。
  2. 发音需要在控制台创建tts实例,并绑定应用才能使用,否则点击发音会报110错误。
  3. 接口salt+curtime来防重放(即一个请求不可以被请求2次),所以salt最好为UUID。

不同语言获取时间戳,请参看此链接

如果对签名有疑问,可以参看各语言demo。

用户术语表使用

登录控制台,选择文本翻译服务,点击右侧的术语表,选择新建,填写表名称和语言方向,添加需要的术语表,然后获取对应词表id即可。

领域模型使用

对专业或者学术有要求的翻译场景,开通方式如下: 登录控制台,选择文本翻译服务,勾选下面的领域翻译服务,点击保存即可开通使用。

模型支持的领域

取值含义
general通用(默认取值)
computers计算机
medicine医学
finance金融经济
game游戏
  • 注:目前非通用翻译只支持中英互译

输出结果

返回的结果是json格式,包含字段与FROM和TO的值有关,具体说明如下:

字段名类型含义备注
errorCodetext错误返回码一定存在
querytext源语言查询正确时,一定存在
translationArray翻译结果查询正确时,一定存在
ltext源语言和目标语言一定存在
dicttext词典deeplink查询语种为支持语言时,存在
webdicttextwebdeeplink查询语种为支持语言时,存在
tSpeakUrltext翻译结果发音地址翻译成功一定存在,需要应用绑定语音合成服务才能正常播放
否则返回110错误码
speakUrltext源语言发音地址翻译成功一定存在,需要应用绑定语音合成服务才能正常播放
否则返回110错误码

示例

使用good单词查询作为示例进行说明:

输出结果与FROM和TO的值有关:

1. 当FROM和TO的值都在{zh-CHS, EN}范围内时

{
  "errorCode":"0",
  "query":"good", //查询正确时,一定存在
  "isDomainSupport":"true", //翻译结果是否为领域翻译(仅开通领域翻译时存在)
  "translation": [ //查询正确时一定存在
      "好"
  ],
  "dict":{
      "url":"yddict://m.youdao.com/dict?le=eng&q=good"
  },
  "webdict":{
      "url":"http://m.youdao.com/dict?le=eng&q=good"
  },
  "l":"EN2zh-CHS",
  "tSpeakUrl":"XXX",//翻译后的发音地址
  "speakUrl": "XXX" //查询文本的发音地址
}

2. 当FROM和TO的值有在{zh-CHS, EN}范围外的时候

{
   "errorCode": "0",
   "translation": ["大丈夫です"], //小语种翻译,一定存在
   "dict":{
       "url":"yddict://m.youdao.com/dict?le=jap&q=%E6%B2%A1%E5%85%B3%E7%B3%BB%E3%80%82"
   },
   "webdict":{
       "url":"http://m.youdao.com/dict?le=jap&q=%E6%B2%A1%E5%85%B3%E7%B3%BB%E3%80%82"
   },
   "l":"zh-CHS2ja",
   "tSpeakUrl":"XXX", //翻译后的发音地址
   "speakUrl": "XXX"  //查询文本的发音地址
}

支持语言

下表为各语言对应代码:

英文名中文名代码支持自动识别
Arabic阿拉伯语arY
German德语deY
English英语enY
Spanish西班牙语esY
French法语frY
Hindi印地语hiY
Indonesian印度尼西亚语idY
Italian意大利语itY
Japanese日语jaY
Korean韩语koY
Dutch荷兰语nlY
Portuguese葡萄牙语ptY
Russian俄语ruY
Thai泰语thY
Vietnamese越南语viY
Chinese简体中文zh-CHSY
Chinese繁体中文zh-CHTY
Afrikaans南非荷兰语afY
Amharic阿姆哈拉语amN
Azerbaijani阿塞拜疆语azY
Belarusian白俄罗斯语beY
Bulgarian保加利亚语bgY
Bangla孟加拉语bnY
Bosnian (Latin)波斯尼亚语bsY
Catalan加泰隆语caY
Cebuano宿务语cebN
Corsican科西嘉语coN
Czech捷克语csY
Welsh威尔士语cyY
Danish丹麦语daY
Greek希腊语elY
Esperanto世界语eoY
Estonian爱沙尼亚语etY
Basque巴斯克语euY
Persian波斯语faY
Finnish芬兰语fiY
Fijian斐济语fjN
Frisian弗里西语fyY
Irish爱尔兰语gaY
Scots苏格兰盖尔语gdN
Galician加利西亚语glY
Gujarati古吉拉特语guY
Hausa豪萨语haN
Hawaiian夏威夷语hawN
Hebrew希伯来语heY
Hindi印地语hiY
Croatian克罗地亚语hrY
Haitian海地克里奥尔语htY
Hungarian匈牙利语huY
Armenian亚美尼亚语hyN
Igbo伊博语igN
Icelandic冰岛语isY
Javanese爪哇语jwN
Georgian格鲁吉亚语kaN
Kazakh哈萨克语kkY
Khmer高棉语kmY
Kannada卡纳达语knY
Kurdish库尔德语kuN
Kyrgyz柯尔克孜语kyY
Latin拉丁语laY
Luxembourgish卢森堡语lbY
Lao老挝语loY
Lithuanian立陶宛语ltY
Latvian拉脱维亚语lvY
Malagasy马尔加什语mgN
Maori毛利语miN
Macedonian马其顿语mkY
Malayalam马拉雅拉姆语mlY
Mongolian蒙古语mnY
Marathi马拉地语mrY
Malay马来语msY
Maltese马耳他语mtY
Hmong白苗语mwwN
Myanmar (Burmese)缅甸语myY
Nepali尼泊尔语neY
Dutch荷兰语nlY
Norwegian挪威语noY
Nyanja (Chichewa)齐切瓦语nyN
Querétaro Otomi克雷塔罗奥托米语otqN
Punjabi旁遮普语paY
Polish波兰语plY
Pashto普什图语psY
Romanian罗马尼亚语roY
Sindhi信德语sdY
Sinhala (Sinhalese)僧伽罗语siN
Slovak斯洛伐克语skY
Slovenian斯洛文尼亚语slY
Samoan萨摩亚语smN
Shona修纳语snN
Somali索马里语soY
Albanian阿尔巴尼亚语sqY
Serbian (Cyrillic)塞尔维亚语(西里尔文)sr-CyrlY
Serbian (Latin)塞尔维亚语(拉丁文)sr-LatnY
Sesotho塞索托语stN
Sundanese巽他语suY
Swedish瑞典语svY
Kiswahili斯瓦希里语swY
Tamil泰米尔语taY
Telugu泰卢固语teY
Tajik塔吉克语tgY
Filipino菲律宾语tlY
Klingon克林贡语tlhN
Tongan汤加语toN
Turkish土耳其语trY
Tahitian塔希提语tyN
Ukrainian乌克兰语ukY
Urdu乌尔都语urN
Uzbek乌兹别克语uzY
Xhosa南非科萨语xhN
Yiddish意第绪语yiY
Yoruba约鲁巴语yoY
Yucatec尤卡坦玛雅语yuaN
Cantonese (Traditional)粤语yueN
Zulu南非祖鲁语zuN
自动识别auto-

服务配置

单次查询最大字符数每小时最大查询次数每小时最大查询字符数支持语言
5000100万120万详见语种表

错误代码列表

错误码含义
101缺少必填的参数,首先确保必填参数齐全,然后确认参数书写是否正确。
102不支持的语言类型
103翻译文本过长
104不支持的API类型
105不支持的签名类型
106不支持的响应类型
107不支持的传输加密类型
108应用ID无效,注册账号,登录后台创建应用并完成绑定,可获得应用ID和应用密钥等信息
109batchLog格式不正确
110无相关服务的有效应用,应用没有绑定服务应用,可以新建服务应用。注:某些服务的翻译结果发音需要tts服务,需要在控制台创建语音合成服务绑定应用后方能使用。
111开发者账号无效
112请求服务无效
113q不能为空
114不支持的图片传输方式
116strict字段取值无效,请参考文档填写正确参数值
201解密失败,可能为DES,BASE64,URLDecode的错误
202签名检验失败,如果确认应用ID和应用密钥的正确性,仍返回202,一般是编码问题。请确保翻译文本 q 为UTF-8编码.
203访问IP地址不在可访问IP列表
205请求的接口与应用的平台类型不一致,确保接入方式(Android SDK、IOS SDK、API)与创建的应用平台类型一致。如有疑问请参考入门指南
206因为时间戳无效导致签名校验失败
207重放请求 (接口salt+curtime来防重放(即一个请求不可以被请求2次),所以salt最好为UUID。)
301辞典查询失败
302翻译查询失败
303服务端的其它异常
304翻译失败,请联系技术同学
308rejectFallback参数错误
309domain参数错误
310未开通领域翻译服务
401账户已经欠费,请进行账户充值
402offlinesdk不可用
411访问频率受限,请稍后访问
412长请求过于频繁,请稍后访问
1001无效的OCR类型
1002不支持的OCR image类型
1003不支持的OCR Language类型
1004识别图片过大
1201图片base64解密失败
1301OCR段落识别失败
1411访问频率受限
1412超过最大识别字节数
2003不支持的语言识别Language类型
2004合成字符过长
2005不支持的音频文件类型
2006不支持的发音类型
2201解密失败
2301服务的异常
2411访问频率受限,请稍后访问
2412超过最大请求字符数
3001不支持的语音格式
3002不支持的语音采样率
3003不支持的语音声道
3004不支持的语音上传类型
3005不支持的语言类型
3006不支持的识别类型
3007识别音频文件过大
3008识别音频时长过长
3009不支持的音频文件类型
3010不支持的发音类型
3201解密失败
3301语音识别失败
3302语音翻译失败
3303服务的异常
3411访问频率受限,请稍后访问
3412超过最大请求字符数
4001不支持的语音识别格式
4002不支持的语音识别采样率
4003不支持的语音识别声道
4004不支持的语音上传类型
4005不支持的语言类型
4006识别音频文件过大
4007识别音频时长过长
4201解密失败
4301语音识别失败
4303服务的异常
4411访问频率受限,请稍后访问
4412超过最大请求时长
5001无效的OCR类型
5002不支持的OCR image类型
5003不支持的语言类型
5004识别图片过大
5005不支持的图片类型
5006文件为空
5201解密错误,图片base64解密失败
5301OCR段落识别失败
5411访问频率受限
5412超过最大识别流量
9001不支持的语音格式
9002不支持的语音采样率
9003不支持的语音声道
9004不支持的语音上传类型
9005不支持的语音识别 Language类型
9301ASR识别失败
9303服务器内部错误
9411访问频率受限(超过最大调用次数)
9412超过最大处理语音长度
10001无效的OCR类型
10002不支持的OCR image类型
10004识别图片过大
10201图片base64解密失败
10301OCR段落识别失败
10411访问频率受限
10412超过最大识别流量
11001不支持的语音识别格式
11002不支持的语音识别采样率
11003不支持的语音识别声道
11004不支持的语音上传类型
11005不支持的语言类型
11006识别音频文件过大
11007识别音频时长过长,最大支持30s
11201解密失败
11301语音识别失败
11303服务的异常
11411访问频率受限,请稍后访问
11412超过最大请求时长
12001图片尺寸过大
12002图片base64解密失败
12003引擎服务器返回错误
12004图片为空
12005不支持的识别图片类型
12006图片无匹配结果
13001不支持的角度类型
13002不支持的文件类型
13003表格识别图片过大
13004文件为空
13301表格识别失败
15001需要图片
15002图片过大(1M)
15003服务调用失败
17001需要图片
17002图片过大(1M)
17003识别类型未找到
17004不支持的识别类型
17005服务调用失败

版本更新记录

上线日期版本号更新内容
2019.04.22v1.0.0新增中文与意大利文、英文与日文互译;新增单词校验逻辑,对于输入单词大小写混合返回小写单词、单词前面存在符号时返回去符号单词、中文繁体返回纯简体内容。
2023.05.11v2.0.0更新多语言示例 demo及下载链接
2024.04.22v3.0.0下线接口内相关的词典数据内容

常用语言 Demo

Java 示例

文本翻译 Java demo

Python3 示例

文本翻译 python3 demo

C#示例

文本翻译 c# demo

PHP 示例

文本翻译 php demo

go 示例

文本翻译 go demo

注:其他开发语言请参照 接口API文档 进行开发,也欢迎企业咨询来提出你们需要的demo。

JS demo

javascript

<!doctype html>
<head>
    <meta charset="utf-8"/>
</head>
<body>
<div>可打开浏览器控制台查看结果</div>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/crypto-js/4.0.0/crypto-js.js"></script>
<script type="text/javascript">
var appKey = '';
var key = '';//注意:暴露appSecret,有被盗用造成损失的风险
var salt = (new Date).getTime();
var curtime = Math.round(new Date().getTime()/1000);
var query = '您好,欢迎再次使用有道智云文本翻译API接口服务';
// 多个query可以用\n连接  如 query='apple\norange\nbanana\npear'
var from = 'zh-CHS';
var to = 'en';
var str1 = appKey + truncate(query) + salt + curtime + key;
var vocabId =  '您的用户词表ID';
//console.log('---',str1);

var sign = CryptoJS.SHA256(str1).toString(CryptoJS.enc.Hex);
$.ajax({
    url: 'https://openapi.youdao.com/api',
    type: 'post',
    dataType: 'jsonp',
    data: {
        q: query,
        appKey: appKey,
        salt: salt,
        from: from,
        to: to,
        sign: sign,
        signType: "v3",
        curtime: curtime,
        vocabId: vocabId,
    },
    success: function (data) {
        console.log(data);
    } 
});

function truncate(q){
    var len = q.length;
    if(len<=20) return q;
    return q.substring(0, 10) + len + q.substring(len-10, len);
}
</script>
</body>