Post on 15-Apr-2017
transcript
MORSE CODER SKILL
Voice Interfaces User-Group Berlin @KayLerch | 05.10.2016
ABOUT• 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
WHAT IT DOES• 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
DOUBLE METAPHONE• 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
LETTER CARDS• 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
LETTER CARDS• For an ongoing exercise letter cards will have their letters hidden
@ KayLerch | VUI UG Berlin
LETTER CARDS IN ALEXA APP
@ KayLerch | VUI UG Berlin
LIGHTBOX INTEGRATION
@ KayLerch | VUI UG Berlin
• Wooden Lightbox returns light signals representinga 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 toan AWS IoT topic and receives MQTT messagesfrom the Lambda function
SOLUTION ARCHITECTURE
AWSLambda
MorseCoder Skill
AWSS3
S3 BucketAudio-Files
S3 BucketImage-Files
1 2 3689
9
45
AWSDynamoDB
AWSIoT
7
AWSEC2
MQTTTopic
User Data
@ KayLerch | VUI UG Berlin
LIVE DEMO• Be aware that …
@ KayLerch | VUI UG Berlin
NEW SDKS FOR YOUR CONVENIENCE• 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 SDKCheck out: https://github.com/KayLerch/alexa-morse-coder
@ KayLerch | VUI UG Berlin