帮助与文档 > 产品文档 > 自然语言翻译服务 > API文档 > 文本翻译
文本翻译

文本翻译 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编码
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阿拉伯语ar
German德语de
English英语en
Spanish西班牙语es
French法语fr
Hindi印地语hi
Indonesian印度尼西亚语id
Italian意大利语it
Japanese日语ja
Korean韩语ko
Dutch荷兰语nl
Portuguese葡萄牙语pt
Russian俄语ru
hai泰语th
Vietnamese越南语vi
Chinese简体中文zh-CHS
Chinese繁体中文zh-CHT
Afrikaans南非荷兰语af
Amharic阿姆哈拉语am
Azeerbaijani阿塞拜疆语az
Belarusian白俄罗斯语be
Bulgarian保加利亚语bg
Bangla孟加拉语bn
Bosnian (Latin)波斯尼亚语bs
Catalan加泰隆语ca
Cebuano宿务语ceb
Corsican科西嘉语co
Czech捷克语cs
Welsh威尔士语cy
Danish丹麦语da
Greek希腊语el
Esperanto世界语eo
Estonian爱沙尼亚语et
Basque巴斯克语eu
Persian波斯语fa
Finnish芬兰语fi
Fijian斐济语fj
Frisian弗里西语fy
Irish爱尔兰语ga
Scots苏格兰盖尔语gd
Galician加利西亚语gl
Gujarati古吉拉特语gu
Hausa豪萨语ha
Hawaiian夏威夷语haw
Hebrew希伯来语he
Hindi印地语hi
Croatian克罗地亚语hr
Haitian海地克里奥尔语ht
Hungarian匈牙利语hu
Armenian亚美尼亚语hy
Igbo伊博语ig
Icelandic冰岛语is
Javanese爪哇语jw
Georgian格鲁吉亚语ka
Kazakh哈萨克语kk
Khmer高棉语km
Kannada卡纳达语kn
Kurdish库尔德语ku
Kyrgyz柯尔克孜语ky
Latin拉丁语la
Luxembourgish卢森堡语lb
Lao老挝语lo
Lithuanian立陶宛语lt
Latvian拉脱维亚语lv
Malagasy马尔加什语mg
Maori毛利语mi
Macedonian马其顿语mk
Malayalam马拉雅拉姆语ml
Mongolian蒙古语mn
Marathi马拉地语mr
Malay马来语ms
Maltese马耳他语mt
Hmong白苗语mww
Myanmar (Burmese)缅甸语my
Nepali尼泊尔语ne
Dutch荷兰语nl
Norwegian挪威语no
Nyanja (Chichewa)齐切瓦语ny
Querétaro Otomi克雷塔罗奥托米语otq
Punjabi旁遮普语pa
Polish波兰语pl
Pashto普什图语ps
Romanian罗马尼亚语ro
Sindhi信德语sd
Sinhala (Sinhalese)僧伽罗语si
Slovak斯洛伐克语sk
Slovenian斯洛文尼亚语sl
Samoan萨摩亚语sm
Shona修纳语sn
Somali索马里语so
Albanian阿尔巴尼亚语sq
Serbian (Cyrillic)塞尔维亚语(西里尔文)sr-Cyrl
Serbian (Latin)塞尔维亚语(拉丁文)sr-Latn
Sesotho塞索托语st
Sundanese巽他语su
Swedish瑞典语sv
Kiswahili斯瓦希里语sw
Tamil泰米尔语ta
Telugu泰卢固语te
Tajik塔吉克语tg
Filipino菲律宾语tl
Klingon克林贡语tlh
Tongan汤加语to
Turkish土耳其语tr
Tahitian塔希提语ty
Ukrainian乌克兰语uk
Urdu乌尔都语ur
Uzbek乌兹别克语uz
Xhosa南非科萨语xh
Yiddish意第绪语yi
Yoruba约鲁巴语yo
Yucatec尤卡坦玛雅语yua
Cantonese (Traditional)粤语yue
Zulu南非祖鲁语zu
自动识别auto

注意:
其中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重放请求
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


<!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>