【Hour of AI】教程:Alexa Space Fact Generator
https://www.bilibili.com/video/BV1tW4y1p7HL/
1. [【Hour of AI】教程:Alexa Hello Moon](https://mc.dfrobot.com.cn/thread-314771-1-1.html?fromuid=818739)
2. [【Hour of AI】教程:Alexa Space Fact Generator 随机太空小知识](https://mc.dfrobot.com.cn/thread-314788-1-1.html?fromuid=818739)
3. [【Hour of AI】教程:Alexa Calculator 计算器](https://mc.dfrobot.com.cn/thread-314797-1-1.html?fromuid=818739)
4. [【Hour of AI】教程:Alexa Number Guessing Game 猜数字游戏](https://mc.dfrobot.com.cn/thread-315113-1-1.html?fromuid=818739)
5. [【Hour of AI】教程:Alexa Messenger 信使](https://mc.dfrobot.com.cn/thread-315213-1-1.html?fromuid=818739)
## 【Hour of AI】教程:Space Fact Generator
**难度:** 初级
**课程类型:** 教程
**学科:** 计算机科学
**年级:**
- 6~12年级
在这个 50 分钟的教程中,学生将了解语音人工智能的基础知识,并学习编写自己的以太空为主题的 Alexa 技能! 学生在自己的设备上听取自己使用 MIT App Inventor 培养的各种亚马逊专家的意见。本教程无需亚马逊帐户或设备。
## 1. 账号登录
本教程使用教师生成的学生账号(见上一篇教程)登录
- 在浏览器输入地址(https://hourofai.appinventor.mit.edu/login)
- 输入用户名和密码

## 2. 加载内置教程
- 新账号登录后会有三个内置的教程:

- 上面的界面关闭后不会再出现,为了让三个教程全部加载到自己的账号中,可以按下图中的步骤进行操作。

具体步骤可参考动图:

- 操作完成后,三个教程全部加载到本账号中:

- 点击HourofAI,我们从最简单的任务开始
## 3. 启动界面说明

- 左侧边是教程栏,本教程包含两个任务,可以参照教程一步步做
- 在项目名下面常见的App Inventor组件全部被精简,只留下内置的Amazon AI组件,方便学生聚焦学习
- 最右边是Amazon AI的调试窗口,当所有编辑完成后,点击Send Updates,更新完成可即可进行AI体验
## 4. 任务说明
欢迎来到人工智能一小时:太空中的 Alexa
今天,你将使用语音 AI 构建两个 Alexa 技能:Hello Moon! 和 太空知识生成器。
你的第二个任务:编写一个太空知识生成器,告诉我们有趣的太空事实。
## 任务2:Space Fact Generator
在开始之前,请准备好你的太空事实。 这里有一些你可以使用的太空知识(也可以添加你自己的!)
- Sunsets on Mars are blue.
- Space is completely silent.
- Mars has water too.
- One million Earths can fit inside the sun.
现在,让我们开始吧。
意图Intent是对语音 AI 发出的问题或命令的期望响应。本例中我们的意图是让 Alexa 向月亮问好。
a) 单击**Add**,然后单击**Skill**。

b) 将skill命名为 **space expert**
### 1. 添加意图Intent
意图Intent是对语音 AI 发出的问题或命令的期望响应。本例中我们的意图是让 Alexa 告诉我们一个随机的太空知识。
a) 首先从页面左侧拖动意图符号并将其释放到 Echo Dot 的图像上。

b) 重命名intent为 **TellFactIntent**

### 2. 编写utterrance话语(意图语句)
接下来,我们需要编写话语utterrance,话语是我们可能对 Alexa 说的命令。
宇航员可以用多少种不同的方式向 Alexa **询问太空事实**? 这里有些例子:
- Tell me something about space
- Tell me a fact about space
- Give me some space trivia
继续找找看!
**编写尽可能多的话语,至少三个。**

### 3. 编写程序
现在我们需要编写代码,告诉 Alexa 要做什么。
1) 首先,切换到blocks逻辑视图。

2)单击 **TellFactIntent** 代码块
3)将**TellFactIntent**代码块拖到工作面板

4)选择绿色的Voice抽屉
5)从中将 Say 代码块拖到intent代码块内拼接好。

现在让我们考虑一下:我们想让 Alexa 说什么? 每次都是同样的事实?
不! 我们希望事实每次都不同。 软件工程师称之为**变量**。 **变量**是可以改变的值。
6)找到橙色的 **Variable** 块并将 **initialize global name** 块拖到代码编辑器

7)将变量名重命名为 **space fact**

8)单击蓝色的 **Lists** 块并将 make a list 块拖到初始化全局 **Space_Fact** 块中。

现在,我们需要建立一份太空事实列表。
9)你会注意到有两个插槽你可以添加另一个块。 通过单击齿轮图标并将 **item** 拖到列表中,**将数量增加到至少 4个 或 5个**。

10)然后,单击 **text** 文本块并向每一行添加一个 **空字符串块**。

11)继续添加太空事实。 使用教程提供的太空事实,或添加你自己的!

最后,我们需要告诉 Alexa 在每次函数运行时获取一个随机事实。
12)转到蓝色列表块并拖动**pick a random item**块并将其连接到 **say** 块。

13)然后单击橙色变量块并将 **get** 块拖动到 **say** 块中。

14)最后将变量**Space_Fact**放到 **get**中。

现在,当 Alexa 听到 “tell fact intent” 时,它会从列表中随机选择一个事实并说出来。
### 4. 尝试你的技能
太棒了!现在你完成了另一个任务,一个更加复杂的技能。下面我们来试一下!
1) 点击 **Send Updates**
2)点击麦克风图标使用语音输入,或在文本框中输入内容。
请记住,必须先调用技能,然后再发出命令。 例如:

在你用名字调用一次技能后,就不必再调用了。 Alexa 会记住你使用的是什么技能。
在附件中下载源文件。
页:
[1]