Inspiration
My wife is a Speech and Language Therapist who works with developing the speech in children. She loves Alexa and thinks the potential for kids is enormous! So together we developed a fun game to get kids communicating!
What it does
Alexa pretends to be an Animal, then it's up to the player to guess who she's pretending to be! She starts with a rhyming riddle, then moves onto fun fact based clues. Finally, if they haven't got it she gives them a multiple choice. All the while using the Alexa Presentation Language to show stunning habitats and animals.
How I built it
I wrote the app in python using the Alexa Python Skills SDK and deployed with the Alexa SDK CLI. It utilises DynamoDB for the refdata storage (ie animal facts, packs etc). S3 stores the animal pictures and logo media. Each of these are deployed in both US-East and EU-West for better experience across the different markets. I defined synonyms in the slots to facilitate multiple common mispronunciations of the words (ie Munti for Monkey, or Yion for Lion!).
Challenges I ran into
I'd originally attached my developer account to amazon.co.uk. But when it came to testing the ISP, even in the US locale I was blocked from accessing the API - Kid in skill purchasing is blocked outside of the US. I had to reassociate with amazon.com before I could continue. I thought it would be a quick config change to deploy a lambda function in the US and Europe... Little did I realise I had to setup duplication for the S3 bucket across the locations, migrate a set of US DynamoDB tables, set permissions for the lambda, and ensure it was accessing the correct storage location for the region! Works now and worth the effort :)
Accomplishments that I'm proud of
Negotiating the various states of purchase (and various permission toggles) for In Skill Purchasing in Kid Skills. It was tough but I got there and I'm very pleased with the result.
Privacy
I made a concerted effort to store the absolute minimum of user data. All that is stored is the number of times a user has heard an animal clue, so that they won't hear it again before they have listened to them all. This is indexed on the device id.
What I learned
Loads! The Alexa ISP API, the Developer Console, Lambda, DynamoDB, S3. Oh and obviously tons of animal facts :)
What's next for What Animal Am I?
More rhyming riddles! Its great fun to think them up and research the clues. I've created some useful python utilities for adding new Animal riddles. There's huge scope for more packs; farmyard, undersea, dinosaurs, the list goes on!
Built With
- alexa-apl
- amazon-alexa
- amazon-dynamodb
- boto3
- dynamodb
- lambda
- python
- s3
- unsplash


Log in or sign up for Devpost to join the conversation.