资讯 社区 文档
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术

文本翻译-通用版

接口描述

文本翻译是百度翻译依托领先的自然语言处理技术推出的在线文本翻译服务,可支持中、英、日、韩等200+语言互译,100+语种自动检测。

在线调试

您可以在 示例代码中心 中调试该接口,可进行签名验证、查看在线调用的请求内容和返回结果、示例代码的自动生成。

请求说明

请求示例

HTTP 方法:POST

请求 URL:https://aip.baidubce.com/rpc/2.0/mt/texttrans/v1

URL 参数:

参数
access_token 通过API Key和Secret Key获取的access_token,参考“Access Token获取”

Header 如下:

参数
Content-Type application/json;charset=utf-8

Body中放置请求参数,参数详情如下:

请求参数

参数 类型 是否必须 描述 备注
from text 翻译源语言 可设置为auto
to text 翻译目标语言 不可设置为auto
q text 请求翻译query 单次请求最大长度为6000字符
termIds text 术语库id 一次请求最多支持10个术语库,中间用英文逗号隔开;若相同的术语出现在多个术语库中,则排在前面的术语库生效优先级高;术语库需在控制台进行编辑

例如body中请求参数:

{"q":"hello","from":"en","to":"zh","termIds":"xx1,xx2"}

请求代码示例

<?php
/**
 * Send post request.
 *
 * @param string $url
 * @param string $q
 * @param string $from
 * @param string $to
 * @return mixed
 */
function sendPostRequest(string $url, string $q, string $from, string $to, string $termIds = '')
{
    $header = [];
    $formData = json_encode([
        'from' => $from,
        'to' => $to,
        'q' => $q,
        'termIds' => $termIds,
    ]);
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $formData);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $res = curl_exec($ch);
    curl_close($ch);
    
    return $res;
}

$token = '[调用鉴权接口获取的token]';// example: xxx
$url = 'https://aip.baidubce.com/rpc/2.0/mt/texttrans/v1?access_token=' . $token;
$q = '输入query'; // example: hello
$from = '源语种方向'; // example: zh
$to = '目标语种方向'; // example: en
$res = sendPostRequest($url, $q, $from, $to);
var_dump($res);
# -*- coding: utf-8 -*-

# This code shows an example of text translation from English to Simplified-Chinese.
# This code runs on Python 2.7.x and Python 3.x.
# You may install `requests` to run this code: pip install requests
# Please refer to `https://api.fanyi.baidu.com/doc/21` for complete api document

import requests
import random
import json

token = '【调用鉴权接口获取的token】'
url = 'https://aip.baidubce.com/rpc/2.0/mt/texttrans/v1?access_token=' + token

q = '输入query' # example: hello
# For list of language codes, please refer to `https://ai.baidu.com/ai-doc/MT/4kqryjku9#语种列表`
from_lang = '源语种方向' # example: en
to_lang = '目标语种方向' # example: zh
term_ids = '' # 术语库id,多个逗号隔开


# Build request
headers = {'Content-Type': 'application/json'}
payload = {'q': q, 'from': from_lang, 'to': to_lang, 'termIds' : term_ids}

# Send request
r = requests.post(url, params=payload, headers=headers)
result = r.json()

# Show response
print(json.dumps(result, indent=4, ensure_ascii=False))
curl -H "Content-Type: application/json" -X POST -d '{"q":"[待翻译文字]","from":"[源语言]","to":"[目标语言]","termIds":"【术语库ID】"}' "https://aip.baidubce.com/rpc/2.0/mt/texttrans/v1?access_token=[调用鉴权接口获取的token]"
package com.baidu.ai.aip;

import com.baidu.ai.aip.utils.HttpUtil;
import com.baidu.ai.aip.utils.GsonUtils;

import java.util.*;


public class Demo {

    /**
    * 重要提示代码中所需工具类
    * FileUtil,Base64Util,HttpUtil,GsonUtils请从
    * https://ai.baidu.com/file/658A35ABAB2D404FBF903F64D47C1F72
    * https://ai.baidu.com/file/C8D81F3301E24D2892968F09AE1AD6E2
    * https://ai.baidu.com/file/544D677F5D4E4F17B4122FBD60DB82B3
    * https://ai.baidu.com/file/470B3ACCA3FE43788B5A963BF0B625F3
    * 下载
    */
    public static String textTrans(String from, String to, String q, String termIds) {
        // 请求url
        String url = "https://aip.baidubce.com/rpc/2.0/mt/texttrans/v1";
        try {
            Map<String, Object> map = new HashMap<>();
            map.put("from", from);
            map.put("to", to);
            map.put("q", q);
            map.put("termIds", termIds);

            String param = GsonUtils.toJson(map);

            // 注意这里仅为了简化编码每一次请求都去获取access_token,线上环境access_token有过期时间, 客户端可自行缓存,过期后重新获取。
            String accessToken = "[调用鉴权接口获取的token]";

            String result = HttpUtil.post(url, accessToken, "application/json", param);
            System.out.println(result);
            return result;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    public static void main(String[] args) {
        FaceDetect.faceDetect();
    }
}
#include <iostream>
#include <curl/curl.h>

// libcurl库下载链接:https://curl.haxx.se/download.html
// jsoncpp库下载链接:https://github.com/open-source-parsers/jsoncpp/
const static std::string request_url = "https://aip.baidubce.com/rpc/2.0/mt/texttrans/v1";

int textTrans(std::string &json_result, const std::string &access_token) {
    std::string url = request_url + "?access_token=" + access_token;
    CURL *curl = NULL;
    CURLcode result_code;
    int is_success;
    curl = curl_easy_init();
    if (curl) {
        curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
        curl_easy_setopt(curl, CURLOPT_URL, url.data());
        curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
        curl_easy_setopt(curl, CURLOPT_DEFAULT_PROTOCOL, "https");
        struct curl_slist *headers = NULL;
        headers = curl_slist_append(headers, "Content-Type: application/json");
        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
        const char *data = "{\"from\":\"auto\",\"to\":\"zh\",\"q\":\"hello\",\"termIds\":\"\"}";
        curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data);
        json_result = curl_easy_perform(curl);
        curl_easy_cleanup(curl);
        is_success = 0;
    } else {
        fprintf(stderr, "curl_easy_init() failed.");
        is_success = 1;
    }
    return is_success;
}
using System;
using System.IO;
using System.Net;
using System.Text;
using System.Web;

namespace com.baidu.ai
{
    public class Demo
    {
        public static string textTrans()
        {
            string token = "[调用鉴权接口获取的token]";
            string host = "https://aip.baidubce.com/rpc/2.0/mt/texttrans/v1?access_token=" + token;
            Encoding encoding = Encoding.Default;
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(host);
            request.Method = "post";
            request.KeepAlive = true;
            String str = "{\"from\":\"auto\",\"to\":\"zh\",\"q\":\"hello\",\"termIds\":\"\"}";
            byte[] buffer = encoding.GetBytes(str);
            request.ContentLength = buffer.Length;
            request.GetRequestStream().Write(buffer, 0, buffer.Length);
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.Default);
            string result = reader.ReadToEnd();
            Console.WriteLine(result);
            return result;
        }
    }
}

返回说明

返回参数

  • 正常返回
参数 类型 是否必须 描述 备注
log_id uint64 唯一的log id,用于问题定位
result object 返回结果json串,其内包含要调用的各个模型服务的返回结果
+from text 源语种方向
+to text 目标语种方向
+trans_result array 翻译结果
++src text 翻译原文 源query中若存在换行符号,翻译结果会分段返回
++dst text 译文 源query中若存在换行符号,翻译结果会分段返回

例如:

{
"result": {
    "trans_result": [
        {
            "dst": "你好",
            "src": "hello"
        }
    ],
    "from": "en",
    "to": "zh"
},
"log_id": 1413395986911332328
}
  • 异常返回
参数 类型 是否必须 描述
log_id uint64 唯一的log id,用于问题定位
error_msg text 错误消息体
error_code text 错误码

例如:

{
    "log_id": 1413409052597883633,
    "error_msg": "translate internal error",
    "error_code": 31102
}

错误码列表

接口流控及鉴权错误码

错误码 错误信息 描述 解决方法
1 Unknown error 未知错误 请重试
2 Service temporarily unavailable 服务处理超时 请重试
4 Open api request limit reached 集群超限额 请重试
6 no permission to access data 没有接口权限 请确认您调用的接口已经被赋权。企业认证生效时间为1小时左右,使用需要企业认证的服务,请等待生效后重试
18 Open api qps request limit reached QPS超限额 请降低您的调用频率
19 Open api total request limit reached 请求总量超限额 请检查当前可用字符/次数包额度
100 Invalid parameter 请求参数不合法 请检查请求参数是否正确,可能的原因是token拉取失败,无效的access token参数等
110 Access token invalid or no longer valid Access Token失效 token有效期为30天,注意需要定期更换,也可以每次请求都拉取新token
111 Access token expired Access token过期 token有效期为30天,注意需要定期更换,也可以每次请求都拉取新token

通用及业务错误码

错误码 错误信息 描述 解决方法
20003 Hit sensitive word 请求内容存在安全风险 请检查请求内容
31001 auth unknown error 其他错误 请重试
31005 auth open api usage limit reached 用户用量超限 请检查当前可用字符/次数包额度
31006 auth internal error 内部错误 请重试
31101 translate request timeout 请求超时 请重试
31102 translate internal error 系统错误 请重试
31103 translate parameter error 必填参数为空或固定参数有误 请检查参数是否为空或误传
31104 translate frequency limited 访问频率受限 请降低您的调用频率
31105 translate target language not supported 译文语言方向不支持 请检查译文语言是否在语言列表里
31106 translate query string too long query字符超过最大长度 请减少翻译原文的长度(最长不得超过6000字节)
31201 engine-biz query string too long 请求翻译的原文太长 请减少翻译原文的长度(最长不得超过6000字节)
31202 engine-biz query string is empty 请求翻译的原文为空 请检查翻译原文内容是否为空
31203 engine-biz parameter invalid 请求翻译的参数有误(目前校验header/param中鉴权必要参数不能为空) 请检查参数是否为空或误传
282000 internal error 内部错误 请重试
282003 missing required parameter(s) 请求翻译时存在必填参数为空 请检查必填参数(比如q、from、to等)是否为空
282004 invalid parameter(s) 请求翻译时请求体无法解析 请检查请求体格式等是否正确

语种列表

中文首字母 名称 代码 语种检测 名称 代码 语种检测 名称 代码 语种检测
A 阿拉伯语 ara 爱尔兰语 gle 奥克语 oci
阿尔巴尼亚语 alb 阿尔及利亚阿拉伯语 arq 阿肯语 aka
阿拉贡语 arg 阿姆哈拉语 amh 阿萨姆语 asm
艾马拉语 aym 阿塞拜疆语 aze 阿斯图里亚斯语 ast
奥塞梯语 oss 爱沙尼亚语 est 奥杰布瓦语 oji
奥里亚语 ori 奥罗莫语 orm
B
波兰语 pl 波斯语 per 布列塔尼语 bre
巴什基尔语 bak 巴斯克语 baq 巴西葡萄牙语 pot
白俄罗斯语 bel 柏柏尔语 ber 邦板牙语 pam
保加利亚语 bul 北方萨米语 sme 北索托语 ped
本巴语 bem 比林语 bli 比斯拉马语 bis
俾路支语 bal 冰岛语 ice 波斯尼亚语 bos
博杰普尔语 bho
C 楚瓦什语 chv 聪加语 tso
D 丹麦语 dan 德语 de 鞑靼语 tat
掸语 sha 德顿语 tet 迪维希语 div
低地德语 log
E 俄语 ru
F 法语 fra 菲律宾语 fil 芬兰语 fin
梵语 san 弗留利语 fri 富拉尼语 ful
法罗语 fao
G 盖尔语 gla 刚果语 kon 高地索布语 ups
高棉语 hkm 格陵兰语 kal 格鲁吉亚语 geo
古吉拉特语 guj 古希腊语 gra 古英语 eno
瓜拉尼语 grn
H 韩语 kor 荷兰语 nl 胡帕语 hup
哈卡钦语 hak 海地语 ht 黑山语 mot
豪萨语 hau
J 吉尔吉斯语 kir 加利西亚语 glg 加拿大法语 frn
加泰罗尼亚语 cat 捷克语 cs
K 卡拜尔语 kab 卡纳达语 kan 卡努里语 kau
卡舒比语 kah 康瓦尔语 cor 科萨语 xho
科西嘉语 cos 克里克语 cre 克里米亚鞑靼语 cri
克林贡语 kli 克罗地亚语 hrv 克丘亚语 que
克什米尔语 kas 孔卡尼语 kok 库尔德语 kur
L 拉丁语 lat 老挝语 lao 罗马尼亚语 rom
拉特加莱语 lag 拉脱维亚语 lav 林堡语 lim
林加拉语 lin 卢干达语 lug 卢森堡语 ltz
卢森尼亚语 ruy 卢旺达语 kin 立陶宛语 lit
罗曼什语 roh 罗姆语 ro 逻辑语 loj
M 马来语 may 缅甸语 bur 马拉地语 mar
马拉加斯语 mg 马拉雅拉姆语 mal 马其顿语 mac
马绍尔语 mah 迈蒂利语 mai 曼克斯语 glv
毛里求斯克里奥尔语 mau 毛利语 mao 孟加拉语 ben
马耳他语 mlt 苗语 hmn
N 挪威语 nor 那不勒斯语 nea 南恩德贝莱语 nbl
南非荷兰语 afr 南索托语 sot 尼泊尔语 nep
P 葡萄牙语 pt 旁遮普语 pan 帕皮阿门托语 pap
普什图语 pus
Q 齐切瓦语 nya 契维语 twi 切罗基语 chr
R 日语 jp 瑞典语 swe
S 萨丁尼亚语 srd 萨摩亚语 sm 塞尔维亚-克罗地亚语 sec
塞尔维亚语 srp 桑海语 sol 僧伽罗语 sin
世界语 epo 书面挪威语 nob 斯洛伐克语 sk
斯洛文尼亚语 slo 斯瓦希里语 swa 塞尔维亚语(西里尔) src
索马里语 som 苏格兰语 sco
T 泰语 th 土耳其语 tr 塔吉克语 tgk
泰米尔语 tam 他加禄语 tgl 提格利尼亚语 tir
泰卢固语 tel 突尼斯阿拉伯语 tua 土库曼语 tuk
W 乌克兰语 ukr 瓦隆语 wln 威尔士语 wel
文达语 ven 沃洛夫语 wol 乌尔都语 urd
X 西班牙语 spa 希伯来语 heb 希腊语 el
匈牙利语 hu 西弗里斯语 fry 西里西亚语 sil
希利盖农语 hil 下索布语 los 夏威夷语 haw
新挪威语 nno 西非书面语 nqo 信德语 snd
修纳语 sna 宿务语 ceb 叙利亚语 syr
巽他语 sun
Y 英语 en 印地语 hi 印尼语 id
意大利语 it 越南语 vie 意第绪语 yid
因特语 ina 亚齐语 ach 印古什语 ing
伊博语 ibo 伊多语 ido 约鲁巴语 yor
亚美尼亚语 arm 伊努克提图特语 iku
Z 中文(简体) zh 中文(繁体) cht 中文(文言文) wyw
中文(粤语) yue 扎扎其语 zaz 中古法语 frm
祖鲁语 zul 爪哇语 jav 自动检测 auto
上一篇
新手指南
下一篇
文本翻译-词典版