← Unity APP 实例
← Xvisio SDK 文档主页
Talk.unity
通过AR眼镜中的麦克风可以实现语音识别功能。
如下图所示,我们一个基于手势Demo场景的场景
Step 1:
新建一个GameObject,修改名字Aitalk,将AitalkEventInterface.cs挂载到这个gameobject上。创建一个TextMesh添加到AitalkEventInterface.cs下的StatusText中,用来显示提示文字。
Step 2:
修改AitalkEventInterface.cs代码中的识别文字,请注意下列代码中的识别文字和文字的ID格式。
private const string LOCAL_BNF = "#BNF+IAT 1.0 UTF-8;\n"
+ "!grammar word;\n"
+ "!slot <words>;\n"
+ "!start <words>;\n"
+ "<words>:圣诞树!id(999)|茶杯!id(1000)|奶酪!id(1001)|放大!id(1002)|缩小!id(1003)|旋转!id(1004);\n";
在下面代码中我们将看到接收到识别后的返回数据出来过程。
public void onResult(string result)
{
Debug.Log("aitak_log:unity:LogInfo:onResult:" + result);
string[] strArray = result.Split('|');
if (strArray.Length > 1)
{
if ("true" == strArray[1])
{
try
{
AitalkModels.result data = SimpleJson.SimpleJson.DeserializeObject<AitalkModels.result>(result, new JsonSerializerStrategy());
if (data != null)
{
if (data.sc > 20)
{
if (data.ws[0].cw[0].id == 999)
{
this.GetComponent<TalkControl>().talkAction(3);
}
if (data.ws[0].cw[0].id == 1000)
{
this.GetComponent<TalkControl>().talkAction(4);
}
if (data.ws[0].cw[0].id == 1001)
{
this.GetComponent<TalkControl>().talkAction(5);
}
}
UpdateText("onResult:true" + data.sc + "," + data.ws[0].cw[0].w + "," + data.ws[0].cw[0].id);
}
}
catch (Exception e)
{
UpdateText("onResult:false");
}
}
else
{
UpdateText("onResult:false");
}
}
else
{
UpdateText("onResult:false");
}
}
Step 3:
打包apk后我们将看到通过语音输入:茶杯、奶酪、圣诞树 场景中的物体将会根据语音输入的内容显示对应的物体。