Amazon Alexa Skill Challenge: Kids. I love developing Alexa skills and had published around 5 skills prior to this. When Amazon announced the opportunity to develop skills for kids, I jumped on it. This skill is the most complex and yet most rewarding skill I've published to date.
What it does
Imagine allowing kids to explore the world, one country at a time. While exploring a particular country, they hear all about that country in a fun, somewhat adventurous way. They'll hear about places to stay, famous landmarks, fun things to do, geographical features, etc. in a fun way with accompanying sound effects. Kids will need to answer questions to continue progressing and learn even more about the country they're exploring in this manner.
Once a country is explored, they earn a stamp in their passport, which is created for them when they sign up. The skill is developed in such a way that multiple kids from the same household can have their own adventure. Alexa keeps track of each kids progress and they can always pick up where they left off.
How I built it
This was built using SSML, so that the audio is tons more interesting that hearing Alexa's somewhat monotone voice (no offense Alexa). This also allowed me to use lots of interesting sound effects and really give kids a feeling for the sounds of the country they are exploring. This was also built to be database-driven so that additional content (more countries and questions) can be added without updating the skill. It just requires updating the database. The questions are randomized and I keep track of which questions were asked and which were answered correctly so as to customize the experience for each kid. They won't hear the same question twice unless they answered it incorrectly, then they'll get another chance down the road. Other possible responses are all randomized so as to not be too repetitive.
Voice responses were recorded (my wife's voice) and audio files stored in S3 where the AWS-Lambda, written in Python, grabs it and sends it to Alexa.
Challenges I ran into
I initially had more than 5 audio files sometimes being pulled in a single response which I learned exceeds an SSML limitation. I had to combine audio files and change my DB structure a bit once I realized this to accommodate this.
I wanted to make it easy for kids to respond to questions, so I developed it in such a way that all answers are either a "1" or a "2". I had a bit of trouble creating a catch-all intent if they answered something different. (I think I may have a better way of handling this, but not sure if I can make this update before it is judged or not).
Accomplishments that I'm proud of
I modularized this skill, something I hadn't done in my previous skills. I'm proud of the "engine" I created that can handle kids' responses, figure out their progress, and keep the exploration moving forward.
What I learned
How to be creative when developing a skill within the constraints given you, such as SSML limitations, intents and utterance limitations, etc.
What's next for Travel Quest -- Alexa Kid Skill
1) I hinted above I have a better way of handling unexpected responses. Would like to implement that. 2) Tons more content. Lots of new countries planned. 3) Additional skills related to this . . . (have to keep it a secret for now).