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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
euledge
April 28, 2021
Technology
67
0
Share
AlexaSkillのVUIを改善した話
JAWS-UG浜松 AWS勉強会 2021#4で話した資料です。
個人開発のAlexaスキルを改善するために行ったことの紹介
euledge
April 28, 2021
More Decks by euledge
See All by euledge
初Amplifyデプロイした話.pdf
euledge
0
120
春だから始めようVue.js/2018-spring-hamamatsujs-3-vuejs
euledge
0
520
Other Decks in Technology
See All in Technology
障害対応のRunbookは作った、でも本当に動くの? AWS FIS で EKS の AZ 障害を再現してみた
tk3fftk
0
120
[みん強]AIの価値を最大化するデータ基盤戦略:Self-Service型Data Meshへの転換とAgentic AI Meshに向けた取り組み with Snowflake他
y_matsubara
1
170
Copilot CLI・IDE・Web・スマホで途切れない開発フローを目指して / One Copilot flow - CLI IDE Web Mobile
aeonpeople
1
520
AI全盛の今だからこそ、あえてもう一度振り返るAPIの基礎
smt7174
3
150
最新技術を"今は選ばない"という技術選定
leveragestech
PRO
0
380
Python開発環境にハーネス適用を検討する
yuuka51
0
400
checker.tsにチキンレースを仕掛けてみた:型エラー(TS2589)が発生する境界線を求めて
hal_spidernight
1
130
自作エディターをOSSにして分かった、一人に刺さる開発が世界を動かす理由
shinyasaita
1
260
ラズパイ & Picoで入門:Zephyr(RTOS)の環境構築からビルドまでの紹介
iotengineer22
0
200
DI コンテナ自動生成ツールを実装してみた / intro-autodi
uhzz
0
820
CloudFront VPCオリジンとVPC Latticeサービスの内部ALBをマルチアカウントで一元利用しよう
duelist2020jp
4
110
SDDで⾒える、AIコーディングの"内訳"
lycorptech_jp
PRO
0
290
Featured
See All Featured
30 Presentation Tips
portentint
PRO
1
300
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Six Lessons from altMBA
skipperchong
29
4.2k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
370
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Typedesign – Prime Four
hannesfritz
42
3k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
Facilitating Awesome Meetings
lara
57
6.9k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.4k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
The Cult of Friendly URLs
andyhume
79
6.9k
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