玩转《天猫精灵技能平台》,搞一个诗词问答小游戏

简介: 看了中国诗词大会,必须要自己搞一个诗词问答小游戏。文章最后还有一个思路,非常简单的思路,大家可以试着去实现一下。

天猫精灵技能平台

家里面一直有一个天猫精灵,也有过一些开发想法。所以趁着本次机会研究了一下。

天猫精灵技能平台是一个技能应用的管理平台。

image.png

在这里平台下,可以创建专属的技能。

我今天特殊要说的是语音技能的开发。

新增技能环节

下面我们来新增一个技能,点击新增技能按钮,进入下图界面:

image.png

这些操作没什么难度,所以不着重说明了。

基本信息填写

技能名称应用名称(随便写都行)

技能属性:

公有应用:将发布到公开市场,审核通过后在所有天猫精灵设备都可使用。

私有应用:不发布到公开市场,只在定制合作设备上使用。

我们平时的开发不会使用到私有应用,除非你是第三方企业等,可以选择私有应用。

技能调用词:进入应用的指令词,这个要注意填写。

收费情况:是否收费

选择后端服务资源的部署方式

image.png

我本次开发使用的是阿里云云开发(FAAS),在线开发与阿里云云开发没什么差别;第三种自建状态是使用自己的服务器。

创建成功

创建成功后,进入到详情页面:

image.png

技能配置环节

技能创建完成后,开始进行技能应用的配置处理。

image.png

整个配置环节,共有六个步骤。

基础信息

在创建技能的时候,我们会填写基础信息。

在这里也可以进行一些修改。

image.png

定义语音交互模型

语音交互模型的配置,是用户进入后端程序的入口。

在这里可以配置一些语音交互逻辑。

介绍一下其中的几个关键词信息:意图、实体、问答。

意图:如果前端要访问后端,需要知道接口是什么?如果天猫精灵访问后端,就需要知道要访问哪个意图。以此来说,意图在概念上相当于接口,也可以说是入口。

实体:就是参数,而且在其中还提供了一系列的内部参数(实体);其中包括时间,位置等等的信息。

问答:一问一答,没什么特别,但是很重要且很好用。

image.png

构建后端服务逻辑

进行到了后端服务逻辑步骤,从名称来看就是关于后端服务的配置。

在开发后端代码时,需要先编辑部署,绑定阿里云账号。

在关联阿里云账号,需要先开通云开发功能,我就在这卡了半天。

image.png

image.png

编辑部署,绑定阿里云账号后,就可以进入到在线开发页面了。

image.png

添加屏显页面(可选)

屏显页面是为智能天猫精灵(触屏版)准备的,主要是维护一些资源。本次开发暂不考虑,我也没过多研究。

测试

提供了两种方式:在线测试、真机测试。没什么好详细说的,操作很简单。

image.png

发布

image.png

发布信息可编辑,自行编辑就可以了。

开发一个诗词问答小游戏

代码实现

publicclassGenieEntryextendsAbstractEntry {
privatestaticfinalMap<String, Integer>USER_SORT=newConcurrentHashMap<>();
privatestaticList<String>KNOWLEDGE=newArrayList<>();
privatestaticList<String>ANSWER=newArrayList<>();
privatestaticRandomrandom=newRandom();
static {
KNOWLEDGE.add("但愿人长久,千里共婵娟。其中婵娟指的是什么? A、月亮 B、姻缘");
ANSWER.add("A");
KNOWLEDGE.add("以下提到菊花的诗词中,哪个肯定是在重阳节写的?A、待到重阳日,还来就菊花 B、莫道不消魂,帘卷西风,人比黄花瘦 C、丛菊两开他日泪,孤舟一系故园心");
ANSWER.add("A");
KNOWLEDGE.add("成语“出水芙蓉”最早用来形容什么?A、美女 B、诗歌 C、绘画");
ANSWER.add("A");
KNOWLEDGE.add("“君看一叶舟,出没风波里”请问这“一叶舟”在干什么?A、比赛 B、摆渡 C、捕鱼");
ANSWER.add("B");
KNOWLEDGE.add("名句“七月流火,九月授衣”中“流火”的含义是?A、天气炎热 B、天气转凉 C、天气寒冷");
ANSWER.add("A");
KNOWLEDGE.add("9、重阳节亲友开心相聚,一起登高赏景时,最适合引用以下哪项诗句?A、夕阳无限好,只是近黄昏 B、万里悲秋常作客,百年多病独登台 C、尘世难逢开口笑,菊花须插满头归");
ANSWER.add("C");
KNOWLEDGE.add("苏轼“老夫聊发少年狂,左牵黄,右擎苍”中的“黄”和“苍”分别指?A、黄马、苍鹰 B、黄犬、苍鹰 C、黄犬、黑犬");
ANSWER.add("B");
KNOWLEDGE.add("“只恐双溪舴艋舟,载不动,许多愁”中“舴艋舟”是什么舟?A、蚱蜢纹饰的小舟 B、形似蚱蜢的小舟 C、雄伟坚固的战船");
ANSWER.add("B");
    }
@OverridepublicResultModel<TaskResult>execute(TaskQuerytaskQuery, Contextcontext) {
context.getLogger().info("taskQuery: "+JSON.toJSONString(taskQuery));
// 从请求中获取意图参数以及参数值Map<String, String>paramMap=taskQuery.getSlotEntities().stream().collect(Collectors.toMap(slotItem->slotItem.getIntentParameterName(), slotItem->slotItem.getStandardValue()));
StringuserId=taskQuery.getRequestData().get("userOpenId");
Stringanswer=paramMap.get("answer");
userId=userId==null?"testUser" : userId;
if ("exit".equals(taskQuery.getIntentName())) {
returnreply("已为您退出,再见。");
        }
if ("start".equals(taskQuery.getIntentName()) &&answer==null) {
intrandomIndex=random.nextInt(KNOWLEDGE.size());
USER_SORT.put(userId, randomIndex);
returnintentChangeReply(KNOWLEDGE.get(randomIndex));
        }
if(answer!=null){
if(answer.equals(ANSWER.get(USER_SORT.get(userId)))){
returnintentChangeReply("恭喜你!答对了。");
            }else{
returnintentChangeReply("很遗憾!答错了。");
            }
        }
returnreply("请检查意图名称是否正确,或者新增的意图没有在代码里添加对应的处理分支。");
    }
/*** 结束对话的回复,回复后音箱闭麦*/privateResultModel<TaskResult>reply(Stringreply) {
returngetResult(reply, ResultType.RESULT);
    }
/*** 未指定追问参数,音箱自动开麦,用户的回答可跳转到其它意图*/privateResultModel<TaskResult>intentChangeReply(Stringreply) {
returngetResult(reply, ResultType.ASK_INF);
    }
privateResultModel<TaskResult>getResult(Stringreply, ResultTypeaskInf) {
ResultModel<TaskResult>res=newResultModel<>();
TaskResulttaskResult=newTaskResult();
taskResult.setReply(reply);
taskResult.setExecuteCode(ExecuteCode.SUCCESS);
taskResult.setResultType(askInf);
res.setReturnCode("0");
res.setReturnValue(taskResult);
returnres;
    }
}

待完善

  1. 数据库如何连接没有研究明白,只能使用JDBC连接,没有找到相关的配置。
  2. 循环问答还没有实现完成。
  3. 逻辑还不太完善(有bug)。

成果演示

image.png

image.png

拍视频太费劲,大家就这样看吧,嘿嘿嘿。

提供一个想法

天猫精灵技能平台中提供了一个问答的语音交互方式。

我们完全可以使用这个问答功能,构建一个问答百科全书。

在家里可以随意问答,录入一些小知识。

看哪位有兴趣可以试着构建一下。





相关实践学习
达摩院智能语音交互 - 声纹识别技术
声纹识别是基于每个发音人的发音器官构造不同,识别当前发音人的身份。按照任务具体分为两种: 声纹辨认:从说话人集合中判别出测试语音所属的说话人,为多选一的问题 声纹确认:判断测试语音是否由目标说话人所说,是二选一的问题(是或者不是) 按照应用具体分为两种: 文本相关:要求使用者重复指定的话语,通常包含与训练信息相同的文本(精度较高,适合当前应用模式) 文本无关:对使用者发音内容和语言没有要求,受信道环境影响比较大,精度不高 本课程主要介绍声纹识别的原型技术、系统架构及应用案例等。 讲师介绍: 郑斯奇,达摩院算法专家,毕业于美国哈佛大学,研究方向包括声纹识别、性别、年龄、语种识别等。致力于推动端侧声纹与个性化技术的研究和大规模应用。
目录
相关文章
|
Web App开发 编解码 安全
视频会议技术 入门探究:WebRTC、Qt与FFmpeg在视频编解码中的应用
视频会议技术 入门探究:WebRTC、Qt与FFmpeg在视频编解码中的应用
1183 4
|
存储 资源调度 分布式计算
LC3|视角 开源大数据生态下的高性能分布式文件系统
## 背景介绍 盘古是阿里云自主研发的高可靠、高可用、高性能分布式文件系统,距今已经有将近10年的历史。盘古1.0作为阿里云的统一存储核心,稳定高效的支撑着阿里云ECS、NAS、OSS、OTS、ODPS、ADS等多条业务线的迅猛发展。但最近几年,基于如下两方面的原因,盘古还是重新设计实现了第二代存储引擎盘古2.0,其不只为阿里云,也为集团、蚂蚁金服的多种业务提供了更佳优异的存储服务 #
3096 0
|
9月前
|
人工智能 Serverless API
尽享红利,Serverless构建企业AI应用方案与实践
本次课程由阿里云云原生架构师计缘分享,主题为“尽享红利,Serverless构建企业AI应用方案与实践”。课程分为四个部分:1) Serverless技术价值,介绍其发展趋势及优势;2) Serverless函数计算与AI的结合,探讨两者融合的应用场景;3) Serverless函数计算AIGC应用方案,展示具体的技术实现和客户案例;4) 业务初期如何降低使用门槛,提供新用户权益和免费资源。通过这些内容,帮助企业和开发者快速构建高效、低成本的AI应用。
296 12
|
10月前
|
安全 数据安全/隐私保护 Android开发
深入探索iOS系统安全机制:从基础到高级
本文旨在全面解析iOS操作系统的安全特性,从基础的权限管理到高级的加密技术,揭示苹果如何构建一个既开放又安全的移动平台。我们将通过实例和分析,探讨iOS系统如何保护用户数据免受恶意软件、网络攻击的威胁,并对比Android系统在安全性方面的差异。
|
机器学习/深度学习 数据采集 人工智能
什么是AI?如何使用AI?本文告诉你
人工智能(AI)是借助计算机技术来模拟与实现人类智慧的一项科技。它涵盖了从感知到语言理解等多方面的能力。AI可划分为弱AI、强AI及超AI三类,当前主要集中在弱AI的应用上,如语音助手和图像识别。为了高效运用AI,首先需清晰目标,再选取合适的工具,同时保证数据质量,不断优化模型,并注重伦理考量,最终实现人机协同作业,充分发挥各自优势。
4116 2
|
12月前
|
机器学习/深度学习 算法 量子技术
未来软件开发:量子计算的革命性影响
量子计算技术正引领我们进入一个新时代,其潜力将彻底改变软件开发和计算机科学。本文介绍了量子计算的基本概念,如量子比特、叠加和纠缠,并探讨了其对软件开发的影响,包括新算法、加密安全、机器学习及药物发现等领域。为了应对这一变革,开发者需掌握量子计算原理,学习量子编程语言,并积极参与相关项目。量子计算不仅带来了巨大的机遇,也提出了新的挑战。
|
弹性计算 人工智能 运维
60分钟深度测评阿里云基于大模型构建的操作系统智能助手
OS Copilot 概要 OS Copilot 是阿里巴巴云针对Linux操作系统开发的智能助手,集成在Alibaba Cloud Linux中,利用大模型技术提供自然语言问答、命令行辅助、阿里云CLI调用和系统运维功能。它尤其适合新手,直观的交互方式提升效率。此外,OS Copilot支持在操作系统内直接管理阿里云资源,简化运维任务。目前,该助手仅在特定版本的Alibaba Cloud Linux上可用。体验者可以通过提供的链接和指南进行实操,体验其功能,如命令行的自然语言交互和环境变量配置。OS Copilot在提高用户体验和工作流集成方面的创新,预示着未来AI在操作系统中的广泛应用。
|
监控 数据库 数据安全/隐私保护
第三方授权的应用苹果审核被驳回解决方案和app版本更新
第三方授权的应用苹果审核被驳回解决方案和app版本更新
226 0
|
自然语言处理 开发者
天猫精灵技能测评实践
天猫精灵技能测评实践
11343 1
天猫精灵技能测评实践
|
移动开发 小程序 安全
几步教您绑定阿里云账号
教您绑定阿里云账号
1821 0
几步教您绑定阿里云账号