Gadget based coding !
Amazon’s ‘Alexa’ the latest innovation of this gadget era is a useful and excellent gadget as a home assistant, if used effectively. I got really excited when I watched about it and its feature in youtube two years ago. Got super delighted when I recently received an invitation from Amazon, to buy a Alexa product. Ordered an ‘Echo’ version and got delivered by next day. In India, though it would take some time to make it to serve on connected home skills, it is really exciting to make it to play our favourite music, current weather, ask for some facts, make mathematical calculations, explore scientific facts and much more.
When my hubby’ first ask was to play his favorite S.Janaki song, my daughter’s first request was to ask, Alexa, play ‘Shape of You’ by Ed Sheeran, my neighbour’s son asked for ‘Newton’s III Law of Motion’ and me asked for ‘Kandha Shashti Kavasam’ played by my favorite singer. So Alexa has the capability to cater to all kinds of generation and can effectively balance between generation gaps. It cannot have any bias towards any one’s likes or dislikes, since after all it is just a gadget. Am I right?
Ok. It can sing, it can calculate, it can tell facts, what else? What technologies are behind it? How this text to speech happens? How simple or complex it is? My programmer brain jumped to the next level and suggested me what if, if I try to build my own skill and see how easy or tough to make it to publish. Curiosity pushed me to search for ‘Alexa Skill Development’. Got so many urls, suggestions and recommendations from Alexa Skill Developer Kit(ASK). Read through many blogs and Alexa forum support which is still evolving though.
After a proper research and having a decent knowledge on the various steps involved, I moved from “Ideation” to ‘Ready’ to ‘Execution’ state. Then everything happened in super fast mode. Created an ASK account. ASK suggests the developer to provide the skill execution link either from AWS or a certified deployed code. I wanted to explore this server less computing for long time. So used this opportunity to create a Amazon Web Services (AWS) account and choose ‘Lambda’ as my skill execution platform. Got the relevant security authentication keys and administrator privileges. Next what, I need a resource store. Got a domain registered from wordpress.
In Lambda, I started to code initially in Java and switched to Python, since Python also was in my kitty long time to be practiced. So much of hiccups in between, to switch from Java syntax to Python syntax. I found Semicolon ‘;’ which played a major role in Java is an acute allergy for Python. Instead Python likes Colon- ‘:’ more. My roller coaster drive started towards developing a basic skill of playing a famous South Indian verse, which is not available in Saavn Music at present.
Explored on the ‘Audio Player’ skill option in Alexa. Systematically read through their excellent guide provided by Amazon. Learnt how to gracefully stop, cancel and use other ‘intents’. Yes i learnt new terminologies such as ‘Directives, ‘Utterance’, ‘Intents’, ‘Slots’ , Invocation Name’, ‘Speechlets’ etc. Enjoyed thoroughly to explore the usage of these new terms in ASK. Played with English on utterances, speechlets responses while deciding on the intent slots and intents using ‘SSML’. Struggled hard to try different dimensions while coding for pause and resume intents by missing out some important parameters to handle with. When I made it to work, the amount of happiness cannot be explained in simple English.
Learnt many concepts from mistakes by submitting the skill for certification with the Alexa certification team, and they sent excellent detailed review of my skill, explaining where I went wrong and how to correct them with respect to invocation of the skill. Alexa’s Beta Test ground is very much helpful to test the developed skill before submitting it for certification. The excitement earned from testing my own skill in my own gadget and playing it, motivated me to move on further in improving the skill.
One would ask, why struggle when you can go for a small training or workshops to learn them. IMHO it is a great fun to try these on our own and swim to explore various options available, get stuck at some juncture and search for the solution and make it to work. I swam through Python, Lambda, server less computing, ASK and it’s new terminologies, and my own hosting server. if there are no milestones or deadlines to meet with, it is a great hobby to pursue with. I started to enjoy this hobby and planning to release as many skills as possible and enjoy coding in this automation era. Gadget based coding is fun! Yes coding is fun beyond Enterprise Architecture!
If you need help in developing an Alexa skill or stuck at some place during skill development, please reach out to me : firstname.lastname@example.org