Every household has arguments about who does more around the house. Wouldn't it be great if someone could keep score and pull out the numbers when you need proof that it is definitely not your turn to change the diaper? Well, Alexa is there, listening all the time - why not teach her to do that?

What it does

Tell Home Score every time you go shopping or take out the trash, and later ask for the numbers to settle an argument.
Home Score saves events and when asked - can answer simple questions like "who was the last one to change a diaper?" or "How many times did Lisa go shopping this week?"

How I built it

As recommended in the Alexa documentation, I used an AWS lambda function to handle Alexa requests.
I used Amazon DynamoDB to store the list of past events as a json value for each user.
I wrote the code in java, using the alexa skills SDK and the aws-lambda SDK. I used gradle to build and JUnit for testing.
For tense and form conversion of the input and output I used two NLP libraries: University of Aberdeen's SimpleNLG for sentence tokenization and part-of-speech tagging, and Apache OpenNLP to convert verb tense and form.

Challenges I ran into

The setup and work with DynamoDB were quite simple.
The voice interface is new to me and I found that many adjustments were required once I started testing using an alexa simulator (
Another challenge was converting sentences to a different tense and form. I'm not very familiar with NLP techniques, and I couldn't find one library to fit my exact needs. Most of the libraries I did find were poorly documented and required a lot of experimentation to use.
I also entered this challenge quite late, so I had very little time to complete the skill. There is definitely room for improvement, and I hope to get to it soon.

Accomplishments that I'm proud of

My first Alexa skill! I think I created a reasonably intuitive skill and covered many edge cases and possible errors.
I created a small and simple component for the tense and form conversion of verbs in simple sentences.

What I learned

This is the first Alexa skill that I have written, and I learned a lot about this new type of interaction (voice), which is likely to take a much more significant role in the future.
This was also the first time I used DynamoDB, and found it very simple and appropriate for what I needed. I will definitely consider using it more in the future.
I also learned a bit about Natural Language Processing and processes of machine learning that enable the analysis and modification of sentences.

What's next for Home Score

The Home Score skill is submitted to the Alexa skills store and waiting certification.

Built With

Share this project: