# 概览

在通用场景中,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." //翻译结果
	}
}

# 支持语种

暂只支持中英互译、粤语翻英语、四川话翻英语几种模式,其他模式正紧锣密鼓开发中。