1. 简介
众所周知,智能语音已经成为了现在和未来社会不可缺少的技术,对人类的生活体验有极大的提升。天猫精灵开放平台基于天猫精灵的硬件和生态,提供一站式语音开发能力、IoT设备控制能力、AI集成算法集成能力、数字内容变现能力等。今天,我们就来体验一下天猫精灵开发平台的技能开发功能。
2. Hello World
我们先简单的实现一个快速回复功能看看。我们创建一个语音技能,名称叫:第三纪元机器人。调用词是:编号89757
选择我的最爱:JAVA。使用空白模块进行创建。
在创建意图的时候,我想输入:智能AI免费陪聊,居然不支持英文。。。只能改为人工智能免费陪聊。意图标识是吗。设为默认意图。
提交居然有敏感词,我猜是陪聊。。。
果然,改为人工智能免费聊天后通过。
使用在线开发,服务已经部署好了。
进入后端开发, 根据代码结果我们可以看到后端开发主要是一下代码:
public class GenieEntry extends AbstractEntry { @Override public ResultModel<TaskResult> execute(TaskQuery taskQuery, Context context) { context.getLogger().info("taskQuery: " + JSON.toJSONString(taskQuery)); ResultModel<TaskResult> res = new ResultModel<>(); TaskResult taskResult = new TaskResult(); // 从请求中获取意图参数以及参数值 Map<String, String> paramMap = taskQuery.getSlotEntities().stream().collect(Collectors.toMap(slotItem -> slotItem.getIntentParameterName(), slotItem -> slotItem.getStandardValue())); taskResult.setReply("你的意图是:" + taskQuery.getIntentName() + ",参数是:" + paramMap); taskResult.setExecuteCode(ExecuteCode.SUCCESS); taskResult.setResultType(ResultType.RESULT); res.setReturnCode("0"); res.setReturnValue(taskResult); return res; } }
//价值100亿的人工智能代码 //处理名称为 吗 的意图 if (taskQuery.getIntentName().contains("吗") || taskQuery.getIntentName().contains("?") || taskQuery.getIntentName().contains("你")) { String response = taskQuery.getIntentName().replace("吗","呢").replace("?","!").replace("你","我"); taskResult.setReply(response); //处理其他的意图 }else { taskResult.setReply("我没听懂你在说什么,换个问题试试?"); }
部署到预发环境进行测试:
进入测试,并没有达到效果。
原来是没有创建实体。
我们需要拿到语句,于是用泛实体匹配。
在刚才的意图中,添加参数ask,实体为刚才新增的泛实体匹配。
测试了一下,可以拿到参数了。
修改代码
//价值1000亿的人工智能代码 //处理名称为 吗 的意图
if ("本草纲目".equals(taskQuery.getIntentName())) { String ask = paramMap.get("ask"); if (ask.contains("吗") || ask.contains("?") || ask.contains("你")) { String response =ask.replace("吗","呢").replace("?","!").replace("你","我").replace("?","!").replace("编号8975",""); taskResult.setReply(response); //处理其他的意图 }else {
String response= ask.replace("编号8975",""); taskResult.setReply(response); }else {
taskResult.setReply("我没听懂你在说什么,换个问题试试?");
}
部署后测试,简单实现。
3.小结
当然,本文只是简单的进行一共小的Demo的开发,AliGenie技能应用平台的还有很多很强大的功能。让每个人都可以实现语音的自定义开发。
参考: