In an attempt to solve a problem using a human centered design approach, I came across a user story from the Perkins School for the Blind. The post voiced that an irritating issue that blind people face from time to time is dialing phone numbers that use words instead of numbers (ex. 1-800-GOT-JUNK). These type of phone numbers are known as phonewords. Unless a blind person has a special braille landline phone with alphanumeric characters, their experience with phonewords can be quite frustrating. Especially from a mobile phone. There are several calculators/convertors online and in app form, but they are not practical as they require opening an app or visiting a webpage. Additionally, for even those who can see, some phones like the Blackberry do not have the letters mapped onto the keypad.
What it does
Uses Amazon Alexa to listen for a sequence of spoken letters and converts them to telephone keypad digits. This capability is simple and practical as it requires no standalone software or hardware. Alexa is making life a lot easier for many disabled people, notably the blind, and this project aimed to contribute to that in a subtle yet impactful way.
How I built it
To solve this problem, I leveraged the power of the Amazon Echo. Amazon allows users to create new capabilities for Alexa known as "skills" that can be downloaded/utilized by other users. I set up the skill interaction model in the developer portal (eg. the infrastructure for Alexa to know what to listen for and what user inputs to store) created the skill logic using AWS Lambda with the Alexa Skills Kit SDK for Node.js (eg. programmed the algorithms that power the skill running on the cloud), added the Lambda function to the skill (connected the algorithms to the Echo's actions using event handlers, and successfully tested the skill on the Amazon developer console.
Challenges I ran into
-lack of debugging support in Amazon developer environment. Required many codes and tests -incorporating multiple slots/variables for intent handler. It's hard for Alexa to take on multiple variable inputs in series. This was a common problem posed on the developer forums.
Accomplishments that I'm proud of
-Was able to address a real problem with a unique practical solution. -Successfully created my very first Amazon Alexa skill, taking it from concept to design in less than a weekend. -The Phoneword Skill will be ready to be publish on the Amazon Alexa after cleaning up some variable declarations App.
What I learned
-ALOT! I now have a complete understanding of the process to design,code, test, and deploy Alexa skills. This includes connecting and leveraging various services like Amazon Web Services , AWS Lambda, the Alexa Skill Kit, and Alexa Voice Services. -Phoneword will be the first of many releases from me!
What's next for Phoneword
-Although Alexa's calling capability is very limited, I would ideally create an IFTTT service (If This Then That) to facilitate the dialing of the requested phone number. -Using the knowledge I gained from creating this skill to tackle more advanced problems using Alexa's voice capabilities.