Skip to content

Master your spelling with “Spell Master”. A simple Alexa Skill to help you practice for your spelling tests.

Notifications You must be signed in to change notification settings

skezo/spell-master

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Spell Master

Master your spelling with “Spell Master”. A simple Alexa Skill to help you practice for your spelling tests.

Purpose:

To allow 6 year-olds and up to study independently for their school's spelling tests using a device connected to Amazon's Alexa Voice Service (e.g. Amazon Echo).

Features:

  • Recognizes more than 24,000 kid-safe words
  • Edit your spelling list by adding and deleting words
  • Practice your spellings with a spelling test

Published Skill:

To use the published Spell Master skill you need to enable it from the Alexa app/website. If the link does not work you can seach for it with the search term "Spell Master".

Roll It As Your Own Skill:

  1. Create an auth.json file inside the src folder. It should look like the below. Remember to replace the APP_ID value with your own Application Id when you have created one.
{ 
    "SKILL_NAME": "Spell Master",
    "APP_ID": "amzn1.echo-sdk-ams....",
    "TABLE_NAME": "SpellMasterData"
}
  1. Run npm install inside the src folder to download the Alexa Skills Kit SDK for Node.js
  2. Create a Lambda function and Amazon Resource Name (ARN) by following Step 1 on Amazon's Node.js quick start guide for Alexa Skills
    • Note: There is no need to select a blue print as suggested (see Step 1.f), you can press next and configure the trigger with Alexa Skill Kit. Once you have done this you can press next again to configure the function. Here you will have the option to select the Code entry type, select Upload a .ZIP file. You will want to .ZIP up all the files in the src folder. Make sure to .ZIP the files and not the directory.
  3. Add DynamoDB support:
    1. Go to the AWS Console and click on DynamoDB. Make sure you are in the same region as your Lambda
    2. Click on CreateTable and set "SpellMasterData" as the table name and "userId" for the primary key type.
    3. Continue the steps with the default settings to finish the setup.
    4. Note: You can create the table manually as outlined or let the Alexa Skill Kit SDK do it for you by giving your Lambda function DynamoDB create table permissions.
  4. Extending role permissions to allow the skill to use DynamoDB (I am sure there is a better way):
    1. Go to the AWS Console and click on IAM, then:
    2. Click on Roles
    3. Click on the role you created. Mine was named "lambda-dynamodb-execution-role" (see Step 1.i on role creation)
    4. Under Inline Policies click on Create Role Policy
    5. Select Policy Generator then click on the Select button
    6. Effect should be set to Allow
    7. For AWS Service select Amazon DynamoDb
    8. For Actions select GetItem and PutItem
    9. Add your Amazon Resource Name (ARN) - you can find this on settings page of the Lambda function you created
    10. Click on Add Statement
  5. Create an Alexa Skill by following Step 2 on Amazon's Node.js quick start guide for Alexa Skills
    • The Intent Schema is inside the speechAssets folder (speechAssets/IntentSchema.json).
    • Sample Utterances are inside the speechAssets folder (speechAssets/SampleUtterances.txt).
    • This skill has one Custom Slot Type: LIST_OF_SPELLINGS. This is where you can edit the words that Spell Master supports. For example if you wanted to add support for the word shin you would include it as s.h.i.n.. All words in LIST_OF_SPELLINGS can be found here: speechAssets/customSlotTypes/LIST_OF_SPELLINGS
  6. Test out your skill by following Step 3 on Amazon's Node.js quick start guide for Alexa Skills

Extend / Edit Skill

  1. To add extra functionality edit the index.js file in the ./src folder.
    • Spell Master uses state based intent handling (thanks to the Alexa Skills Kit SDK for Node.js). This means you can set intent handlers to only work when the skill is in a specific state. Currently Spell Master supports the following states: MENUMODE, ADDWORDMODE, DELETEWORDMODE, DELETELISTMODE, READLISTMODE, and SPELLTESTMODE. Descriptions of these states can be found in the source code.
  2. To edit the dialog of this skill edit the dialog.json file in the ./src folder.
  3. To support more words edit the LIST_OF_SPELLINGS Custom Slot Type. I created the initial list of 24,000 words by combining a few of the dictionaries compiled by Dr. Phillip M. Feldman.

Dialog Sample:

User: "Alexa, open Spell Master"
Spell Master: "Welcome to Spell Master. You have added 0 words to your spelling list. To get started you will need to add words to it. To do this, say, add word."
User: "Add word"
Spell Master: "Please spell the word you would like to add."
User: "C L I M B I N G"
Spell Master: "Do you want me to add the word, climbing?"
User: "Yes"
Spell Master: "Climbing, has been added. Please spell another word you would like to add or say cancel."
User: "Cancel"
Spell Master: "You have added 1 word to your spelling list. You can say, start spelling test, add word, delete word, read spelling list, or delete spelling list. What would you like to do? 
User: "Start spelling test"
...

Voice User Interface (VUI) Diagram:

VUI: Launch

Setup Requirements:

Alexa and AWS Resources:

Dictionaries / Word Lists:

TODO:

  • Add support for Cards

About

Master your spelling with “Spell Master”. A simple Alexa Skill to help you practice for your spelling tests.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published