文本翻译-词典版
更新时间:2024-10-28
接口描述
在文本翻译-通用版的基础上,提供词典资源和语音合成资源。
词典资源 词典分中英词典,由于每个词属性不同,词典结果不一定包含所有部分。 如源语言为中文,词典数据包括:拼音、词性、中文释义、英文释义、近义词等资源。 如源语言为英文,词典数据包括:英文释义、中文释义、音标、核心词汇类别等。
注:1. 单个 query 需为词、词组或短语,如 query 为句子,则 dict 字段为空。2. 因目前只支持英、中语种,from_lang的参数需等于en或者zh才可以返回 dict 字段。
语音合成资源: 语音合成资源包含 query 原文、译文的发音,支持中文、英文,以 mp3 文件格式提供。
注:单个query内不支持分段,只有1段且字符数量不超过200的query才会返回tts字段。
在线调试
您可以在 示例代码中心 中调试该接口,可进行签名验证、查看在线调用的请求内容和返回结果、示例代码的自动生成。
请求说明
请求示例
HTTP 方法:POST
请求 URL:https://aip.baidubce.com/rpc/2.0/mt/texttrans-with-dict/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-with-dict/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-with-dict/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-with-dict/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-with-dict/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-with-dict/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-with-dict/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中若存在换行符号,翻译结果会分段返回 |
++src_tts | text | 是 | 原文tts | |
++dst_tts | text | 是 | 译文tts | |
++dict | object | 是 | 词典数据详情 | 格式参考百度翻译API词典资源-接入字段说明 |
例如:
{
"result": {
"trans_result": [
{
"dst": "你好",
"dst_tts": "https://fanyi-api.baidu.com/api/trans/api/tts?query=%E4%BD%A0%E5%A5%BD&appid=202105250003&lang=zh&sign=4dff83efd4a0ff36e8806efd2a0421b4",
"src": "hello",
"dict": "{\"lang\":\"1\",\"word_result\":{\"edict\":{\"item\":[{\"tr_group\":[{\"tr\":[\"an expression of greeting\"],\"example\":[\"every morning they exchanged polite hellos\"],\"similar_word\":[\"hullo\",\"hi\",\"howdy\",\"how-do-you-do\"]}],\"pos\":\"noun\"}],\"word\":\"hello\"},\"zdict\":\"\",\"simple_means\":{\"word_name\":\"hello\",\"from\":\"original\",\"word_means\":[\"\\u54c8\\u7f57\\uff0c\\u5582\\uff0c\\u4f60\\u597d\",\"\\u563f\",\"\\u5582\\uff0c\\u563f\"],\"tags\":{\"core\":[\"\\u9ad8\\u8003\",\"CET4\",\"\\u8003\\u7814\"],\"other\":[\"\"]},\"exchange\":{\"word_pl\":[\"hellos\"]},\"symbols\":[{\"ph_en\":\"h\\u0259\\u02c8l\\u0259\\u028a\",\"ph_am\":\"h\\u0259\\u02c8lo\\u028a\",\"parts\":[{\"part\":\"int.\\/n.\",\"means\":[\"(\\u7528\\u4e8e\\u95ee\\u5019\\u3001\\u63a5\\u7535\\u8bdd\\u6216\\u5f15\\u8d77\\u6ce8\\u610f)\\u54c8\\u7f57\\uff0c\\u5582\\uff0c\\u4f60\\u597d\",\"(\\u8868\\u793a\\u60ca\\u8bb6)\\u563f\",\"(\\u8ba4\\u4e3a\\u522b\\u4eba\\u8bf4\\u4e86\\u8822\\u8bdd\\u6216\\u6ca1\\u6709\\u6ce8\\u610f\\u542c)\\u5582\\uff0c\\u563f\"]}],\"ph_other\":\"\"}]}}}",
"src_tts": "https://fanyi-api.baidu.com/api/trans/api/tts?query=hello&appid=202105250003&lang=en&sign=7706a561affdd857a5df5cc277db63f1"
}
],
"from": "en",
"to": "zh"
},
"log_id": 1413396008503877484
- 异常返回
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
log_id | uint64 | 是 | 唯一的log id,用于问题定位 |
error_msg | text | 是 | 错误消息体 |
error_code | text | 是 | 错误码 |
例如:
{
"log_id": 1413409483863477151,
"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 | 是 |