Inspiration

I was challenged by our leadership to build an Alexa app to greet incoming guests for client meetings.

What it does

A webcam on a laptop runs motion detection software and uploads still images to S3. A lambda function is triggered on upload to detect any faces and if a match to a a known guest is found, it puts this information into a DynamoDB table. Step Functions coordinates multiple face detection.
This function also calls a Slack integration to a channel setup on the same laptop. This is configured on the laptop to play a Polly audio utterance of 'Alexa, Greet our guests!' The utterance triggers a nearby Echo Dot with our custom skill installed. This skill calls a lambda function to read the current guests DynamoDB table and plays a custom greeting for each guest.

How I built it

This is built entirely in AWS with many of their managed and server less compute services.

Challenges I ran into

There are no push notifications with Alexa/Echo. This lead me to come up with the rather unconventional workaround of having a Slack bot announce the Alexa command audibly and trigger the Alexa skill to greet guests coming in the door. Also, the motion detection software I used created unnecessary lag in the capture and upload of images.

Accomplishments that I'm proud of

Getting one bot to 'talk' to another in a rather unique way.

What I learned

AWS Step Functions are a useful too, but not particularly performant.
Additionally, after discussing this project with the AWS Rekognition team, Step Functions can be replaced using a Collection to compare all faces at once.

What's next for PollySlackDoorBell

Refactor the code to use a dynamic Known Guests Dynamo DB table, and use Rekognition Collections for multiple face comparison. Also would like to build a front-end to make it simpler for end-users to update faces/greetings.

Built With

Share this project:

Updates