11
MORSE CODER SKILL Voice Interfaces User-Group Berlin @KayLerch | 05.10.2016

Voice Interfaces Usergroup Berlin - 05-10-2016 : Kay Lerch on Morse-Coder skill

Embed Size (px)

Citation preview

Page 1: Voice Interfaces Usergroup Berlin - 05-10-2016 : Kay Lerch on Morse-Coder skill

MORSE CODER SKILL

Voice Interfaces User-Group Berlin @KayLerch | 05.10.2016

Page 2: Voice Interfaces Usergroup Berlin - 05-10-2016 : Kay Lerch on Morse-Coder skill

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

Page 3: Voice Interfaces Usergroup Berlin - 05-10-2016 : Kay Lerch on Morse-Coder skill

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

Page 4: Voice Interfaces Usergroup Berlin - 05-10-2016 : Kay Lerch on Morse-Coder skill

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

Page 5: Voice Interfaces Usergroup Berlin - 05-10-2016 : Kay Lerch on Morse-Coder skill

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

Page 6: Voice Interfaces Usergroup Berlin - 05-10-2016 : Kay Lerch on Morse-Coder skill

LETTER CARDS• For an ongoing exercise letter cards will have their letters hidden

@ KayLerch | VUI UG Berlin

Page 7: Voice Interfaces Usergroup Berlin - 05-10-2016 : Kay Lerch on Morse-Coder skill

LETTER CARDS IN ALEXA APP

@ KayLerch | VUI UG Berlin

Page 8: Voice Interfaces Usergroup Berlin - 05-10-2016 : Kay Lerch on Morse-Coder skill

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

Page 9: Voice Interfaces Usergroup Berlin - 05-10-2016 : Kay Lerch on Morse-Coder skill

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

Page 10: Voice Interfaces Usergroup Berlin - 05-10-2016 : Kay Lerch on Morse-Coder skill

LIVE DEMO• Be aware that …

@ KayLerch | VUI UG Berlin

Page 11: Voice Interfaces Usergroup Berlin - 05-10-2016 : Kay Lerch on Morse-Coder skill

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