https://github.com/s12v/eslbot
Example Lex/Polly/Facebook bot
https://github.com/s12v/eslbot
aws-lambda-node aws-lex aws-polly facebook-messenger-bot serverless
Last synced: 3 months ago
JSON representation
Example Lex/Polly/Facebook bot
- Host: GitHub
- URL: https://github.com/s12v/eslbot
- Owner: s12v
- Created: 2017-07-11T20:34:42.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2017-09-10T20:53:04.000Z (almost 8 years ago)
- Last Synced: 2025-03-11T00:05:38.461Z (4 months ago)
- Topics: aws-lambda-node, aws-lex, aws-polly, facebook-messenger-bot, serverless
- Language: JavaScript
- Homepage: https://www.facebook.com/WordsBot/
- Size: 36.1 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ESL bot
This bot helps you to learn new English words.
## Architecture

ESLBot is based on the following components:
* Amazon Lex for voice recognition and conversational interface
* AWS Lambda for application logic and Facebook integration
* Amazon API Gateway for providing a REST API for Facebook integration
* FFmpeg to prepare audio for Lex
* Amazon Polly to generate audio from text
* Amazon S3 to cache generated speech
* Azure SQL database to store user profiles and progress
* Skyeng API as the data source
* AWS CloudFormation and Serverless framework to orchestrate provisioning of AWS environment## Usage
You can use **text or voice** input via Facebook messenger.
### Learn intentThe bot offers a new word with definition, audio, picture, and examples.
earning progress is stored in database.### Test intent
Bot offers audio definition, you need to guess a word. You have 3 attempts, after each failed attempt
bot gives you a hint. Audio is created on-demand using AWS Polly (text-to-speech) and saved to S3.### Definition intent
You can ask the bot to define a word.
### Deployment* Download [ffmpeg static x64 binaries](https://www.johnvansickle.com/ffmpeg/), put `ffmpeg` to `bin`
* You will need database (see `ddl/*`) and Facebook access details (`see .env.yml.dist`).
* Deploy `cloudformation/*`
* Deploy all functions with `serverless deploy`