帮助与文档 > 产品文档 > 自然语言翻译服务 > 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需要向接口发送以下字段来访问服务。

字段名 类型 含义 必填 备注
q text 待翻译文本 True 必须是UTF-8编码
from text 源语言 True 参考下方 支持语言 (可设置为auto)
to text 目标语言 True 参考下方 支持语言
appKey text 应用ID True 可在应用管理 查看
salt text 随机字符串,可使用UUID进行生产 True uuid (可使用uuid生成)
sign text 签名 True sha256(应用ID+input+salt+curtime+应用密钥)
signType text 签名类型 True v3
curtime text 当前UTC时间戳(秒) true TimeStamp
ext text 翻译结果音频格式,支持mp3 false mp3
voice text 翻译结果发音选择 false 0为女声,1为男声。默认为女声
strict text 是否严格按照指定from和to进行翻译:true/false false 如果为false,则会自动中译英,英译中。默认为false
vocabId text 用户上传的术语表 false 用户指定的术语表ID: out_id,支持英中互译,更多语种方向请前往控制台查询
domain text 领域化翻译 false 默认为:general。仅在控制台开通领域化翻译的情况下可传,支持领域见下表
rejectFallback text 拒绝领域化翻译降级-当领域化翻译失败时改为通用翻译 false true或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的值有关,具体说明如下:

字段名 类型 含义 备注
errorCode text 错误返回码 一定存在
query text 源语言 查询正确时,一定存在
translation Array 翻译结果 查询正确时,一定存在
l text 源语言和目标语言 一定存在
dict text 词典deeplink 查询语种为支持语言时,存在
webdict text webdeeplink 查询语种为支持语言时,存在
tSpeakUrl text 翻译结果发音地址 翻译成功一定存在,需要应用绑定语音合成服务才能正常播放
否则返回110错误码
speakUrl text 源语言发音地址 翻译成功一定存在,需要应用绑定语音合成服务才能正常播放
否则返回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可以识别中文、英文、日文、韩文、法文、西班牙文、葡萄牙文、俄文、越南文、德文、阿拉伯文、印尼文、意大利文,其他语种无法识别,为提高准确率,请指定语种。 若列表语言出现不支持的问题,请参考产品定价列表语种互译的限制

服务配置

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

错误代码列表

错误码 含义
101 缺少必填的参数,首先确保必填参数齐全,然后确认参数书写是否正确。
102 不支持的语言类型
103 翻译文本过长
104 不支持的API类型
105 不支持的签名类型
106 不支持的响应类型
107 不支持的传输加密类型
108 应用ID无效,注册账号,登录后台创建应用并完成绑定,可获得应用ID和应用密钥等信息
109 batchLog格式不正确
110 无相关服务的有效应用,应用没有绑定服务应用,可以新建服务应用。注:某些服务的翻译结果发音需要tts服务,需要在控制台创建语音合成服务绑定应用后方能使用。
111 开发者账号无效
112 请求服务无效
113 q不能为空
114 不支持的图片传输方式
116 strict字段取值无效,请参考文档填写正确参数值
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 翻译失败,请联系技术同学
308 rejectFallback参数错误
309 domain参数错误
310 未开通领域翻译服务
401 账户已经欠费,请进行账户充值
402 offlinesdk不可用
411 访问频率受限,请稍后访问
412 长请求过于频繁,请稍后访问
1001 无效的OCR类型
1002 不支持的OCR image类型
1003 不支持的OCR Language类型
1004 识别图片过大
1201 图片base64解密失败
1301 OCR段落识别失败
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解密失败
5301 OCR段落识别失败
5411 访问频率受限
5412 超过最大识别流量
9001 不支持的语音格式
9002 不支持的语音采样率
9003 不支持的语音声道
9004 不支持的语音上传类型
9005 不支持的语音识别 Language类型
9301 ASR识别失败
9303 服务器内部错误
9411 访问频率受限(超过最大调用次数)
9412 超过最大处理语音长度
10001 无效的OCR类型
10002 不支持的OCR image类型
10004 识别图片过大
10201 图片base64解密失败
10301 OCR段落识别失败
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.22 v1.0.0 新增中文与意大利文、英文与日文互译;新增单词校验逻辑,对于输入单词大小写混合返回小写单词、单词前面存在符号时返回去符号单词、中文繁体返回纯简体内容。
2023.05.11 v2.0.0 更新多语言示例 demo及下载链接
2024.04.22 v3.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>