帮助与文档 > 产品文档 > 自然语言翻译服务 > 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可在 应用管理 查看
salttextUUIDTrueuuid,唯一通用识别码
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用户指定的词典 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金融经济
  • 注:目前非通用翻译只支持中英互译

输出结果

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

字段名类型含义备注
errorCodetext错误返回码一定存在
querytext源语言查询正确时,一定存在
translationArray翻译结果查询正确时,一定存在
basictext词义基本词典,查词时才有
webArray词义网络释义,该结果不一定存在
ltext源语言和目标语言一定存在
dicttext词典deeplink查询语种为支持语言时,存在
webdicttextwebdeeplink查询语种为支持语言时,存在
tSpeakUrltext翻译结果发音地址翻译成功一定存在,需要应用绑定语音合成服务才能正常播放
否则返回110错误码
speakUrltext源语言发音地址翻译成功一定存在,需要应用绑定语音合成服务才能正常播放
否则返回110错误码
returnPhraseArray单词校验后的结果主要校验字母大小写、单词前含符号、中文简繁体

注:

a. 中文查词的basic字段只包含explains字段。

b. 英文查词的basic字段中又包含以下字段。

字段含义
us-phonetic美式音标,英文查词成功,一定存在
phonetic默认音标,默认是英式音标,英文查词成功,一定存在
uk-phonetic英式音标,英文查词成功,一定存在
uk-speech英式发音,英文查词成功,一定存在
us-speech美式发音,英文查词成功,一定存在
explains基本释义

示例

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

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

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

{
  "errorCode":"0",
  "query":"good", //查询正确时,一定存在
  "isDomainSupport":"true", //翻译结果是否为领域翻译(仅开通领域翻译时存在)
  "translation": [ //查询正确时一定存在
      "好"
  ],
  "basic":{ // 有道词典-基本词典,查词时才有
      "phonetic":"gʊd",
      "uk-phonetic":"gʊd", //英式音标
      "us-phonetic":"ɡʊd", //美式音标
      "uk-speech": "XXXX",//英式发音
      "us-speech": "XXXX",//美式发音
      "explains":[
          "好处",
          "好的",
          "好",
      ]
  },
  "web":[ // 有道词典-网络释义,该结果不一定存在
      {
          "key":"good",
          "value":["良好","善","美好"]
      },
      {...}
  ],
  "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"  //查询文本的发音地址
}

支持语言

下表为各语言对应代码:

语言代码
中文zh-CHS
中文繁体zh-CHT
英文en
日文ja
韩文ko
法文fr
西班牙文es
葡萄牙文pt
意大利文it
俄文ru
越南文vi
德文de
阿拉伯文ar
印尼文id
南非荷兰语af
波斯尼亚语bs
保加利亚语bg
粤语yue
加泰隆语ca
克罗地亚语hr
捷克语cs
丹麦语da
荷兰语nl
爱沙尼亚语et
斐济语fj
芬兰语fi
希腊语el
海地克里奥尔语ht
希伯来语he
印地语hi
白苗语mww
匈牙利语hu
斯瓦希里语sw
克林贡语tlh
拉脱维亚语lv
立陶宛语lt
马来语ms
马耳他语mt
挪威语no
波斯语fa
波兰语pl
克雷塔罗奥托米语otq
罗马尼亚语ro
塞尔维亚语(西里尔文)sr-Cyrl
塞尔维亚语(拉丁文)sr-Latn
斯洛伐克语sk
斯洛文尼亚语sl
瑞典语sv
塔希提语ty
泰语th
汤加语to
土耳其语tr
乌克兰语uk
乌尔都语ur
威尔士语cy
尤卡坦玛雅语yua
阿尔巴尼亚语sq
阿姆哈拉语am
亚美尼亚语hy
阿塞拜疆语az
孟加拉语bn
巴斯克语eu
白俄罗斯语be
宿务语ceb
科西嘉语co
世界语eo
菲律宾语tl
弗里西语fy
加利西亚语gl
格鲁吉亚语ka
古吉拉特语gu
豪萨语ha
夏威夷语haw
冰岛语is
伊博语ig
爱尔兰语ga
爪哇语jw
卡纳达语kn
哈萨克语kk
高棉语km
库尔德语ku
柯尔克孜语ky
老挝语lo
拉丁语la
卢森堡语lb
马其顿语mk
马尔加什语mg
马拉雅拉姆语ml
毛利语mi
马拉地语mr
蒙古语mn
缅甸语my
尼泊尔语ne
齐切瓦语ny
普什图语ps
旁遮普语pa
萨摩亚语sm
苏格兰盖尔语gd
塞索托语st
修纳语sn
信德语sd
僧伽罗语si
索马里语so
巽他语su
塔吉克语tg
泰米尔语ta
泰卢固语te
乌兹别克语uz
南非科萨语xh
意第绪语yi
约鲁巴语yo
南非祖鲁语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及下载链接

常用语言 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>