Inspiration
Wanted to build a fun educational game based on voice for the echo dot. Thought vocabulary and math are a bit boring and overused, so decided to go with rhyming as the core game mechanic. Rhyming allows the game to be very simple, yet complex. For example, the game gets harder on its own because the user slowly runs out of words to say, which forces users to learn more vocabulary if they want to get a higher score, and it's simple enough to allow younger kids to play.
What it does
The skill asks users to say a word that rhymes with a given word. If the words rhyme the user gets a point, if the word doesn't rhyme the game ends. This keeps the rules extremely simple and easy to learn. As mentioned above the game gets progressively harder as users cannot repeat already mentioned words.
How I built it
Built the skill through AWS Lambda for simplicity. The skill is coded in Python and interfaces with an open source dictionary containing over a million pronunciations to see if two strings rhyme regardless of spelling variations, for example the skill knows "care" and "fair" rhyme, while "care" and "are" do not. This is how the words are represented in the dictionary for the program to parse.
CARE K EH1 R
FAIR F EH1 R
ARE AA1 R
The dictionary is provided by Carnegie Mellon University and can be found here
Challenges I ran into
One big issue I ran into was parsing the pronunciation dictionary. I initially used an external library with an algorithm written in C to parse the data stream. AWS Lambda doesn't play well with C code, so had to rewrite parts of it to compile in the Lambda Python environment while simultaneously maintaining efficiency of the original code (had to parse over one million lines of text). In the end, was able to build a working Python port of the original code with a very marginal slowdown in processing time, which was great.
Accomplishments that I'm proud of
Built a useful and fun Alexa skill from scratch that people can actually download. It's a great feeling seeing other people enjoy an application or project that you have built.
What I learned
Coming to this project I had some previous experience building an Alexa skill that my team used in another hackathon. Nevertheless, my ability to build and deploy Alexa skills has dramatically improved. I learned how to better setup AWS Lambda environments and deal with dynamic requests coming in to handle the flow of the game.
What's next for Rhymer
It's currently being evaluated for the official Alexa store, and will be publicly available soon.
Github
As the app is publicly downloadable, the GitHub repo is private and code, but can be viewed upon request if needed.
Demonstration
You can see a video demonstration here


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