文本翻译-通用版
更新时间:2024-10-23
接口描述
文本翻译是百度翻译依托领先的自然语言处理技术推出的在线文本翻译服务,可支持中、英、日、韩等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 | 是 |