This Alexa Skills Kit microservice combines the AWS Polly and IBM Watson to translate phrases into foreign languages. Skill was built in 10 hours.
Our approach for satisfying the Machine Learning challenge was to:
- Utilize Amazon Alexa's IoT skills to develop a natural language processing (NLP) API
- Utilize IBM Watson to improve translation services using Deep Learning for unknown languages
- Increase scability and availability by utilization of Redis as a caching mechanism
- Render natural voice text-to-speech reponses with Amazon Polly
- @loudest - Spent 2016 traveling to 12 countries.
I made use of:
- Flask python RESTful microservice
- Alexa Skills Kit for interaction with Alexa IoT device
- AWS Polly to generate dynamic natural voice text-to-speech MP3 files
- IBM Watson for language identification and translation services
- AWS Lambda NoOps cloud hosting with horizontal auto-scaling and load-balancing capabilities
- AWS ElastiCache / Redis in-memory noSQL data store to enable low latency look-ups of datasets
Flask service listens to the following REST endpoints:
- /voices - return AWS Polly natural voice text-to-speech synthesis choices
- /read/voiceId/outputFormat - returns English MP3 text of obtained from /voices in outputFormat[mp3,ogg,pcm]. text=string as GET input variable
- /translate/language - returns translated MP3 text of from text=string as GET input variable
- /alexa - Alexa Skill service. Utilizes the following utterance: what is {text} in {language}.
The code is licensed under the MIT License. Pull requests will be accepted to this repo, pending review and approval.