Our family loves the song "Down by the Bay". For the past several road trips, we've sung the song in the car to pass time. Aside from the catchy melody, we love thinking up silly rhymes about different animals. This Alexa skill turns our favorite song into an interactive, Alexa-powered, sing-along.

What it does

Alexa starts singing the song "Down by the Bay":

Down by the bay,
Where the watermelons grow,
Back to my home,
I dare not go,
For if I did,
My mother would say,
Have you ever seen a...

When the song goes "have you ever seen a...", the user can suggest an animal, and hear a song verse with that animal and silly rhyme. For example, if the user says "lizard", Alexa will play the verse:

Have you ever seen a lizard,
casting spells like a wizard,
down by the bay...

If the user says "cat", Alexa will play the verse:

Have you ever seen a cat,
swing a baseball bat,
down by the bay...

Etc. Then, the chorus repeats.

There are 70 different animals that this skill will recognize and sing about.

If the user can't think of an animal and says "I'm not sure", or the user says the name of an animal that isn't in the database, Alexa will suggest a random animal. For example, Alexa might say: "How about a hippo?" to which the user can respond "yes" or "no".

How I built it

I used AWS Lambda w/ a node.js runtime.

I started by thinking about how I could make the interactive sing-along experience fun for children of all ages... including younger children who may have trouble thinking of (or pronouncing) an animal that's in our database.

I created a custom intent to listen for the various animal names I had good rhymes for, including synonyms (ie. hippo and hippopotamus). All-in-all, 70 animals. I recorded 2 audio files for each animal slot item in the intent. One file was the verse itself (with me singing and playing ukulele), the other was a "How about a {animalName}?" suggestion. It was important to me that the suggestions be in the singer's voice, not Alexa's default voice, so that there would be no jarring interruptions to the interactive sing-along. The audio plays using SSML.

Challenges I ran into

I have not heard other skills that use recorded audio instead Alexa's default voice. I definitely have not heard other skills that use a recorded singing voice, so I didn't know if this was going to be successful.

One challenge that I encountered was clipping the ends of the audio files in a way that didn't let the music trail off, so that Alexa would start listening for audio input as soon as possible. Early experiments with this skill resulted in awkward interactions, where the user would try to respond with an animal name before Alexa was actually listening.

Accomplishments that I'm proud of

I proud that my kids think this app is fun/funny.

What I learned

This was a good opportunity to learn about Alexa skill development and about AWS Lambda. I'm especially excited about Lambda now, and look forward to using it in future projects.

What's next for Down by the Bay (Alexa Skill)

I would like to record more rhymes, add illustrations for each rhyme (for Echo Show), and use a list template for Echo Show, to allow users to see multiple animal name suggestions, and click on the one they want to select.

Built With

Share this project: