This was an introduction of the Morse-Coder skill for Amazon Alexa given to the audience of Berlin's Usergroup for Voice interfaces at Kajak. This skill covers most of the features of ASK - from Appcards to Audio-SSML. It also is a good source to understand working with two new Java SDKs dedicated to Alexa skill development - Tellask SDK and States SDK.
2. • Started as a Hackster-Project in April 2016
• First published in May 2016
• Participated and won 1st prize in Alexa Hackster Contest
• Several user reviews (4 of 5 stars rating)
• Morse code trainer
• Former US coast guard
• Nostalgic people (a.k.a. older people)
• Morse Coder v2.0 is about to be released for English (GB, US) and German locale
• Skill implementation is open sourced at:
https://github.com/KayLerch/alexa-morse-coder
@ KayLerch | VUI UG Berlin
3. • Skill improves your comprehension for Morse-codes
• Morse code exercises (play back codes of random words)
• Encode any given name of your choice
• Let Morse Coders compete all around the globe (highscore game)
• Customize playback settings to fit your personal skill level
• Playback speed (9 to 30 wpm)
• Enable Farnsworth mode (longer pauses)
• Interactive exercises
• Letter cards in Alexa app
• Repeat playback
• Lightbox integration to return Morse codes as light-signals (not part of the public skill)
@ KayLerch | VUI UG Berlin
4. • Users were complaining about not having their correct answer being accepted by Alexa
• The reason for this is a natural lack of accurancy in comprehension
• Example: User says „sad“, Alexa understands „said“
• Morse skill simply checked for equality of the given word:
• whatTheUserSaid.equals(whatIsExpected);
• Double Metaphone for the rescue
• It‘s an algorithm which creates a hash of a word based on its pronunciation
• This results in same hashes for words being phonetic siblings (~ 80% reliability)
• Java‘s commons.codes libary provides this feature
• new DoubleMetaphone().isDoubleMetaphoneEqual(whatTheUserSaid, whatIsExpected);
• Double Metaphone / Metaphone / Soundex algorithms are optimized or English language
• There are similar algorithms for other languages (like Cologne phonetic for German language)
@ KayLerch | VUI UG Berlin
5. • On-the-fly image generation to show a played back code in the Alexa App
• There‘s a bunch of single images which will be composed to the exercise word
@ KayLerch | VUI UG Berlin
6. • For an ongoing exercise letter cards will have their letters hidden
@ KayLerch | VUI UG Berlin
8. @ KayLerch | VUI UG Berlin
• Wooden Lightbox returns light signals representing
a played back Morse code
• This Lightbox consists of:
• 32x32 LED matrix (19 x 19 cm)
• RaspberryPi 3
• Battery for taking the Lightbox with you on your
next lonely-on-an-island adventure ;-)
• Python-script on the Raspberry is subscribed to
an AWS IoT topic and receives MQTT messages
from the Lambda function
11. • This skill gave birth to two new SDKs which simplify things a lot for Java
developers who want to create Alexa skills:
• Alexa States SDK: https://github.com/KayLerch/alexa-skills-kit-states-java
Extends Alexa Skills Kit with an SDK to manage state of POJO models in your Alexa skills
• Alexa Tellask SDK: https://github.com/KayLerch/alexa-skills-kit-tellask-java
This SDK is an extension to the Alexa Skills SDK for Java. It provides a framework for handling
speechlet requests with multi-variant response utterances organized in YAML files that make it easy
to create localized skills. This SDK also lets you build your skill in declarative style and avoids a lot of
boilerplate code.
• Morse Coder skill is a good reference for understanding skill development with
States SDK and Tellask SDK
Check out: https://github.com/KayLerch/alexa-morse-coder
@ KayLerch | VUI UG Berlin