Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Adrian Catalan - Party_like_it_s_1970 - Convers...
Search
droidcon Berlin
July 17, 2018
Programming
41
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Adrian Catalan - Party_like_it_s_1970 - Conversational_interfaces_are_back__into_your_Android_app
droidcon Berlin
July 17, 2018
More Decks by droidcon Berlin
See All by droidcon Berlin
Jon Markoff - Best practice for apps
droidcon_berlin_2018
0
230
Jon Markoff - Voice in the enterprise
droidcon_berlin_2018
0
83
Michael Jess - Enabling enterprise mobility with SAP
droidcon_berlin_2018
0
130
Ronen Sabag - Lean async code with Kotlin’s coroutines
droidcon_berlin_2018
0
86
Boris Farber & Nikita Kozlov - The_Build_Side_of_Android_App
droidcon_berlin_2018
0
220
Zan Markan - The state of Kotlin
droidcon_berlin_2018
0
87
Miquel Beltran - No More □ (tofu) Mastering Emoji on Android
droidcon_berlin_2018
0
140
Laurent Gasser & Jeremy Rochot - Sharing a success story - A low cost, Customer driven and co-developed Android EMM
droidcon_berlin_2018
0
330
Hoi Lam - Adding ML Kit to Android Things And some TensorFlow things
droidcon_berlin_2018
1
240
Other Decks in Programming
See All in Programming
使用 Meilisearch 建立新聞搜尋工具
johnroyer
0
190
OpenSpecのproposalにbrainstormingを持たせてみた
tigertora7571
1
160
PHP に部分適用が来るぞ!……ところで何それ?おいしいの? #phpcon / phpcon-2026
shogogg
0
440
改善しないと、タスクが回らない。 “てんこ盛りポジション” を引き継いだ情シスの、入社3ヶ月の業務改善録
krm963
0
230
霧の中の代数的エフェクト
funnyycat
1
450
生成AI導入の「期待外れ」を乗り越える ー 開発フロー改革が目指す、真の組織変革
starfish719
0
3k
【やさしく解説 設計編・中級 #6】良いアーキテクチャとは ~ 一本の登り道の、行き先 ~
panda728
PRO
0
200
「寝てても仕事が進む」Claude Codeで組む第二の脳
tomoyafujita2016
0
230
torikago - Ruby::Boxで照らすモジュラモノリスの実行境界
se4weed
1
290
PostgreSQL 18で考えるUUID主キー
kazuhiro1982
0
440
yield再入門 #phpcon
o0h
PRO
0
850
PHPだって関数型したい 〜できること、できないこと〜 / fp-in-php
jsoizo
1
260
Featured
See All Featured
Fashionably flexible responsive web design (full day workshop)
malarkey
408
67k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
260
Paper Plane
katiecoart
PRO
2
52k
Testing 201, or: Great Expectations
jmmastey
46
8.2k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
350
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
230
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
My Coaching Mixtape
mlcsv
0
180
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
The Invisible Side of Design
smashingmag
301
52k
Code Reviewing Like a Champion
maltzj
528
40k
Transcript
PARTY LIKE IT'S 1970: CONVERSATIONAL INTERFACES ARE BACK (INTO YOUR
APP) Adrián Catalán @ykro https://goo.gl/yYoRAs
(very) BRIEF HISTORY LESSON #DCBERLIN18
• 1952 - Audrey(Bell Labs), recognized strings of digits •
1970 – Hidden Markov Model (HMM), which helped speech recognition move away from literal matching to prediction • 70's - DARPA Projects
• 80's - Template based brute-force & HMM become popular
• 1984 – Speechworks, Automated Speech Recognition over IVR • 90's - Industry starts
• 1997 - Dragon NaturallySpeaking, recognition of continuous speech •
2007 - Siri • 2014 - Amazon Echo • 2016 - Google Home
DESIGN PROCESS #DCBERLIN18
https://www.pexels.com/photo/fashion-sunglasses-woman-girl-46244/ CREATE A PERSONA
https://www.pexels.com/photo/red-vintage-shoes-sport-1994/ • Tone • Style • Word and phrase choices
• Technique • Voice • Functional design
https://www.pexels.com/photo/wood-explosion-fire-hot-8504/ DESTROY THE BOX!
TRADITIONAL THINKING WON’T HELP
https://www.flickr.com/photos/81909228@N07/36169378343 WRITE A SCREENPLAY
https://www.pexels.com/photo/ball-close-up-colors-dark-593467/ COOPERATION! Turn-taking Context Threading “Reading between the lines”
https://www.flickr.com/photos/16105375@N00/1764118705 THERE ARE NO ERRORS
REAL LIFE CAN, SOMETIMES, SUCK... http://depts.washington.edu/antiwar/may1970strike.shtml
UNDERSTANDING IS KEY http://depts.washington.edu/antiwar/may1970strike.shtml
USERS RULE!
THEY KNOW HOW TO TALK
THEY KNOW WHAT THEY WANT
THEY WANT TO HELP
CONTEXT MATTERS
BACK UP PLAN
USER GOOGLE ASSISTANT NUMBER GENIE USER NUMBER GENIE USER NUMBER
GENIE Canonical “Happy path” First time experience Tapered experience (Return user) Repair SAMPLE DIALOGS
SAMPLE DIALOGS USER GOOGLE ASSISTANT NUMBER GENIE USER NUMBER GENIE
USER NUMBER GENIE Canonical “Happy path” First time experience Tapered experience (Return user) Repair
SNACKS #DCBERLIN18
• Avoid written language and use spoken one • Kick
off the conversation
• Guide user through the conversation • Keep our TTS
(Text to speech) short and clear
• Avoid data points unrelated to user query • Follow
natural turn taking in the conversation
• Use conversational makers
ADDING MACHINE LEARNING #DCBERLIN18
“ — — @
https://dialogflow.com/docs/agents
INVOKE Say Hello Start the experience with the agent
INTENT
TRAINING PHRASES
ENTITIES
FULLFILLMENT Backend APP
RESPONSE
CONTEXT move between intents achieve more fluid conversations
Integrating with AIService class MainActivity : AppCompatActivity(), AIListener { val
config = AIConfiguration( "ACCESS_TOKEN", ai.api.AIConfiguration.SupportedLanguages.English, AIConfiguration.RecognitionEngine.System ) aiService = AIService.getService(this, config) aiService.setListener(this) btnListen.setOnClickListener { aiService.startListening() } }
override fun onResult(response: AIResponse?) { var strParameters = "" val
result = response?.result result?.parameters?.let { params -> params.forEach { key, value -> strParameters += "($key,$value)" } txtResult.text = "Query: ${result.resolvedQuery}" + "\nAction: ${result.action}" + "\nParameters: $strParameters" } } Integrating with AIService
PARTY LIKE IT'S 1970: CONVERSATIONAL INTERFACES ARE BACK (INTO YOUR
APP) Adrián Catalán @ykro https://goo.gl/yYoRAs