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
AlexaSkillのVUIを改善した話
Search
euledge
April 28, 2021
Technology
0
64
AlexaSkillのVUIを改善した話
JAWS-UG浜松 AWS勉強会 2021#4で話した資料です。
個人開発のAlexaスキルを改善するために行ったことの紹介
euledge
April 28, 2021
Tweet
Share
More Decks by euledge
See All by euledge
初Amplifyデプロイした話.pdf
euledge
0
120
春だから始めようVue.js/2018-spring-hamamatsujs-3-vuejs
euledge
0
510
Other Decks in Technology
See All in Technology
新規事業におけるGORM+SQLx併用アーキテクチャ
hacomono
PRO
0
140
AI時代だからこそ考える、僕らが本当につくりたいスクラムチーム / A Scrum Team we really want to create in this AI era
takaking22
8
4.1k
AI駆動開発を推進するためにサービス開発チームで 取り組んでいること
noayaoshiro
0
250
能登半島地震で見えた災害対応の課題と組織変革の重要性
ditccsugii
0
470
Shirankedo NOCで見えてきたeduroam/OpenRoaming運用ノウハウと課題 - BAKUCHIKU BANBAN #2
marokiki
0
180
定期的な価値提供だけじゃない、スクラムが導くチームの共創化 / 20251004 Naoki Takahashi
shift_evolve
PRO
4
360
AWS Control Tower に学ぶ! IAM Identity Center 権限設計の第一歩 / IAM Identity Center with Control Tower
y___u
0
100
成長自己責任時代のあるきかた/How to navigate the era of personal responsibility for growth
kwappa
4
310
Adminaで実現するISMS/SOC2運用の効率化 〜 アカウント管理編 〜
shonansurvivors
4
440
Performance Insights 廃止から Database Insights 利用へ/transition-from-performance-insights-to-database-insights
emiki
0
200
20251007: What happens when multi-agent systems become larger? (CyberAgent, Inc)
ornew
1
200
AWS 잘하는 개발자 되기 - AWS 시작하기: 클라우드 개념부터 IAM까지
kimjaewook
0
130
Featured
See All Featured
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.6k
YesSQL, Process and Tooling at Scale
rocio
173
14k
GraphQLとの向き合い方2022年版
quramy
49
14k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Java REST API Framework Comparison - PWX 2021
mraible
33
8.9k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.7k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.4k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Git: the NoSQL Database
bkeepers
PRO
431
66k
We Have a Design System, Now What?
morganepeng
53
7.8k
Being A Developer After 40
akosma
91
590k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
Transcript
Alexa SkillのVUIを改善した話 @eulede (kuroyanagi) JAWS-UG浜松 AWS勉強会 2021#4
Kuroyanagi Hitoshi @euledge https://github.com/euledge 黒 柳 仁 自己紹介 普段は SpringBoot(Java)
+ Vue.js でお仕事してます。 開発チームの体制づくりのためのツール導入とか、フレームワークづくりとか 最近はDDDとかAmplify+LINE APIに興味あり
袋井市のオープンデータ活用事例 Alexaスキル「ゴミ出しふくろい」 を掲載していただきました。
Alexa Hosted Skill
今までの変遷 2019/6 最初のバージョン公開 2020/10 袋井市から実証実験に使いたいとの連絡 放置していたので慌てて2020年のデータに対応 2020/12 スキル名称を「ゴミ出しふくろい」に変更 2021/2 街の名前を覚える機能追加
2021/4 リマインド機能 EchoShow対応
https://alexa-skills.amazon.co.jp/apis/custom/skills/amzn1.ask.skill.2a344529-21df-4d41-9d39-cce634cf07ed/launch -
川井はカワイイ? 川井(かわい)をアレクサが ‘かわいい’ と間違える 東通り(ひがしどおり) ? 東同笠(ひがしどうり)
値 同義語 東通り ひがしどおり、ひがしどうり、ひがしどーり、 東通り、東通 東同笠 ひがしどおり、ひがしどうり、ひがしどーり、 東通り、東通 値 同義語
川井東 かわいい、かわい、かわいひがし、かわいいひ がし、川井
えっ、また聞かれるの? 昨日 今日
let persistAttributes = (await attributesManager.getPersistentAttributes()) || {}; persistAttributes.lastAccess = dayjs().toISOString();
persistAttributes.streetName = streetName; attributesManager.setPersistentAttributes(persistAttributes); await attributesManager.savePersistentAttributes(); Alexa Skill KitでDynamoDBに対して attributesManagerでアクセスできる。
町名の発音はAlexaには、むづかしい 見取 初越 西同笠 木原 上新池 みどり はづこし にしどうり きわら
かみにいけ
読み仮名も一緒に渡して読ませる function getPronounceTown(streetName) { const street = area_days.find((item) => item.street
=== streetName); const streetPronunciation = street.streetPronunciation; return `<break time="0.2s" /><say-as interpret-as="address">${streetPronunciation}</say- as><break time="0.1s" />`; } const speechText = `${getPronounceTown(resolutionName)}の次の収集日 は ${collectionDate} です。<break time="0.2s" /> 次のご利用の時にも<break time="0.1s" /> ${getPronounceTown(resolutionName)}<break time="0.1s" />の収集日をお知らせ しますか?`; {"street": "木原", "area": "袋井西", "streetPronunciation": "木原(きわら)", "areaPronunciation": "袋井西", "alias": "", "days": "20210309 20210324 20210408 20210422 }, { "street": "土橋", "area": "袋井西", "streetPronunciation": "土橋(つちはし)", "areaPronunciation" : "袋井西", "alias" : "", "days" : "20210309 20210324 20210408 20210422 }, { "street" : "可睡" , "area" : "袋井北" , "streetPronunciation" : "可睡(かすい)" , "areaPronunciation" : "袋井北", "alias" : "かすい" , "days" : "20210311 20210326 20210413 20210427 }
音声の補助としてディスプレイも使う
いや、この前聞いたけど忘れちゃった Alexaは基本的には自発的には しゃべってくれない。 前の日になったら 教えてほしいな
リマインダーに追加するにはアクセス権の許可が必要 const client = handlerInput.serviceClientFactory.getReminderManagementServiceClient(); const reminderRequest = { trigger:
{ type: "SCHEDULED_ABSOLUTE", // 指定時刻にリマインド scheduledTime: remindAt, }, alertInfo: { spokenInfo: { content: [ { locale: "ja-JP", text: `明日は${streetName}の不燃物収集日です。`, }, ], }, }, pushNotification: { status: "ENABLED", }, }; console.log(JSON.stringify(reminderRequest)); const reminderResponse = await client.createReminder(reminderRequest); console.log(JSON.stringify(reminderResponse));
2. 申請されたスキルは、スキルがリマインダーにアクセスする必要がある理由に関する詳細情報をユーザーに提示していません。 スキルはこちらのドキュメントにリストされているサンプルメッセージに則った音声プロンプトを提供し、 またユーザーがパーミッションを許可する為のカードを提示する必要があります。 カードについての詳細はこちらを参照してください。 補足: スキルの権限について、なんの権限が必要なのかどうして必要なのかという理由をユーザーに提示しておりません。 3. スキルは、各リマインダーまたはリマインダーの一連を設定する際に、ユーザーの許可を取得しませんでした。 スキルとユーザー間の対話の中で、スキルが明確な許可を得ていることを確認してください。
例:毎週のトーナメントのために、リマインダーを週毎に設定しますか? リマインダ―の詳細については、こちら を参照してください。リクエスト例については こちら を参照してください。 リマインダーに関する申請時のフィードバック
Alexa Skill開発の情報ソース • Alexa道場 Alexa Skills Kit: Webinars (amazon.com) •
Alexa Skills Kit (ASK) (日本語) - Forums (amazon.com) • Slack alexa-jp
Alexa Skill開発者にお得な特典! AWS Promotional Credits for Alexa - Amazon Alexa