# 概览
在通用场景中,AIUI支持技能级语义翻译,在技能商店勾选翻译
技能,交互后可得到对应的翻译结果,如:
用户:苹果用英语怎么说?
AIUI:这我知道,"苹果"的"英语"是"apple"。
本章所描述的翻译模式不同于上述场景,而是直接将听写结果进行翻译,如:
用户:今天天气怎么样?
AIUI:How is the weather today?
# 使用方法
(1) 创建翻译场景。登录后选择欲配置的应用,在应用配置页面添加情景模式,交互方式选择语音翻译
,如下图所示:
(2) 设置翻译参数。翻译参数可在aiui.cfg中固定设置,也可通过代码动态设置,具体视使用场景而定。
① 固定设置。修改aiui.cfg中的scene字段为第一步中设置的情景模式名称
,添加attachparams字段,示例如下:
"global":{
"scene":"trans"
},
"attachparams":{
"iat_params":{
"language":"zh-cn",
"accent":"mandarin",
"domain":"sms",
"isFar":"1"
},
"trs_params":{
"from":"cn",
"to":"en"
}
}
② 动态设置。通过CMD_SET_PARAMS动态切换场景,再动态设置attachparams翻译参数即可。代码示例如下:
//动态切换场景
String setParams = "{\"global\":{\"scene\":\"trans\"}}"
AIUIMessage setMsg = new AIUIMessage(AIUIConstant.CMD_SET_PARAMS, 0 , 0, setParams, null);
mAgent.sendMessage(setMsg)
//生成翻译参数
public String getTransParams(){
try{
JSONObject iatParams = new JSONObject();
iatParams.put("language", "zh-cn");
iatParams.put("accent", "mandarin");
iatParams.put("domain", "sms");
iatParams.put("isFar", "1");
JSONObject trsParams = new JSONObject();
trsParams.put("from", "cn");
trsParams.put("to", "en");
JSONObject attachParams = new JSONObject();
attachParams.put("iat_params", iatParams.toString());
attachParams.put("trs_params", trsParams.toString());
JSONObject transParams = new JSONObject();
transParams.put("attachparams", attachParams);
return transParams.toString();
}catch (JSONException e){
e.printStackTrace();
}
return null;
}
//发送CMD_SET_PARAMS命令使其生效
AIUIMessage msg = new AIUIMessage(AIUIConstant.CMD_SET_PARAMS, 0, 0, getTransParams(), null);
mAIUIAgent.sendMessage(msg);
注:使用动态设置时,需在aiui.cfg中添加空的attachparams字段。
//aiui.cfg中参数
"attachparams":{}
# 参数说明
参数类型 | 字段名称 | 字段含义 | 字段取值 |
iat_params | language | 听写语言 | zh-cn、en-us 当说话者语言为普通话或地方方言时使用zh-cn, 为英文时使用en-us。 |
accent | 口音 | mandarin、lmz、cantonese 当说话者口音为普通话或英文时使用mandarin, 为四川话时使用lmz,为粤语时使用cantonese。 | |
domain | 使用领域 | sms 默认通用使用sms即可。 | |
isFar | 是否远场拾音 | 0、1 麦克风阵列等远场拾音场景使用1, 手机等近场拾音场景使用0即可。 | |
trs_params | from | 源语言 | cn、en 中文为cn,英文为en。 |
to | 目标语言 | cn、en、ug、ja、ko、fr、es、ru
中文为cn,英文为en,维吾尔语为ug,日语为ja、韩语为ko,法语为fr,西班牙语为es,俄语为ru。 暂只支持cn、en。 |
# 结果解析
翻译结果params下的sub字段为"itrans",解析该条语义结果即可。结果示例如下:
{
"from": "cn",
"ret": 0,
"sid": "its00262192@dx21dd0ea7978b6f2300",
"to": "en",
"trans_result": {
"src": "合肥的天气", //源语言结果
"dst": "Weather in Hefei." //翻译结果
}
}
# 支持语种
暂只支持中英互译、粤语翻英语、四川话翻英语几种模式,其他模式正紧锣密鼓开发中。