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
- alexa
- amazon-dynamodb
- lambda
- node.js
- polly
- python
- rekognition
- s3
- slack
- step-functions
Log in or sign up for Devpost to join the conversation.