介绍
alexa-gym 是一个基于 Alexa Skills Kit SDK 的 npm 包,旨在帮助开发者快速开发一款运动健身类的语音交互应用。它支持的功能包括:
- 获取运动健身类知识;
- 获取健身课程推荐;
- 获取饮食健身建议;
- 等等。
如果你想要开发一款类似微信健康、腾讯体育等运动健身类的语音应用,那么 alexa-gym 将是一个不错的选择。
安装
在开始使用 alexa-gym 前,你需要先安装 Node.js 和 npm 包管理器。如果你还不懂的话,可以到 Node.js 官网 下载安装程序,后续的安装过程都会在 Node.js 的环境下进行。
安装 alexa-gym 的方法如下:
npm install alexa-gym
使用
alexa-gym 提供了一系列的 API,以供开发者使用。这些 API 的具体用法可以参考官方文档。本文将以一个基于 alexa-gym 的 BMI 计算器为例,介绍如何使用 alexa-gym。
初始化
在使用 alexa-gym 之前,需要先初始化 Alexa SDK:
const Alexa = require('alexa-sdk'); handlers.BMICalculatorIntent = function () { this.emit(':tell', 'Hello, world!'); };
欢迎语被放到了 BMICalculatorIntent 里,而 emit 是为语音输出结果而设计的。
添加 Intent
然后,我们可以添加 Intent 了,比如 BMI 计算器:
-- -------------------- ---- ------- ---------------------------- - -------- -- - ----- -------------- - --------------------------------------------- ----- -------------- - --------------------------------------------- ----- -------------- - -------------- - ------- ----- ----------------- - -------------- - --------- ----- --- - ----------------- - ------------------------ --- ------------------ ----- --- -- -------------------- --
在 Intent 里面,我们获取用户输入的身高和体重,然后计算 BMI 并输出结果。
创建 Lambda 函数
在将代码上传到 AWS Lambda 之前,需要先安装 Alexa Skills Kit SDK:
npm install --save alexa-sdk
接下来,我们要将代码上传到 AWS Lambda,使用的命令是:
aws lambda create-function --function-name MyLambdaFunction --region us-west-2 --zip-file fileb://MyFunction.zip --role arn:aws:iam::012345678901:role/MyLambdaFunctionRole --handler index.handler --runtime nodejs12.x
其中:
- MyLambdaFunction 是你的 Lambda 函数名;
- us-west-2 是你的 Lambda 函数所在的 region;
- MyFunction.zip 是你的代码压缩包名字(比如 Build.zip);
- arn:aws:iam::012345678901:role/MyLambdaFunctionRole 是你的 IAM 角色 ARN。
添加 Skill
在添加 Skill 前,需要先创建一个新的 Alexa Skill:
- 在 Alexa Developer Console 里点击 Create Skill;
- 输入 Skill 名字和默认语言;
- 选择 Custom;
在配置 Skill 前,你需要把上面 AWS Lambda 发布的 ARN 保存下来。
接下来,修改语音 Skill:
- 点击 Invocation Name;
- 输入一个调用名字(比如 BMI 计算器);
添加 Intent:
- 点击左边的 Add (如下图所示);
- 输入 Intent 名(比如 BMICalculatorIntent);
- 添加语句(比如 what's my BMI);
添加 Slots:
- 点击 Add Slot Type;
- 给这个 Slot 起一个名字(比如 height 和 weight);
- 定义该 Slot 的值类型;
最后,在 Endpoint 中填写 Lambda 的 ARN,Skill 就完成了。
总结
本文介绍了如何使用 npm 包 alexa-gym 来开发一款运动健身类的语音交互应用。通过本文的操作指南,你可以快速上手 alexa-gym,从而为你的语音交互应用开发提供一些思路和指导。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600552c281e8991b448d0273