Weitere ähnliche Inhalte Ähnlich wie Azureのサーバーレスで限界を超えよう~スマートスピーカースキル開発を題材に~ (20) Kürzlich hochgeladen (10) Azureのサーバーレスで限界を超えよう~スマートスピーカースキル開発を題材に~2. 自己紹介
• Name
• 平林 拓将(ひらりん)
• Work
• テクニカルトレーナー/アーキテクト
• Grails/Xamarin/Azure/LINE Bot
• Like
• C# & Microsoft Azure
• LINE関連API
• Social
• Twitter:@himarin269
• GitHub:himanago
• Blog:http://himanago.hatenablog.com/
プロフィール画像迷走中
(Linux使いではありません)
7. スマートスピーカーでできること
• 「声」による対話形式での操作
• VUI(Voice User Interface)が中心となるデバイス
• インターネット経由でAIアシスタントを呼び出す
• AIアシスタントにさまざまなことを依頼できる
(天気、アラーム、ラジオ、音楽再生、調べもの、家電操作 など)
• 必要に応じて追加スキルを使用できる
(世界中の開発者が開発しストアに公開している)
7
アレクサ、
いま何時?
18時50分です。
8. スマートスピーカーとAIアシスタント
メーカー AIアシスタント スマートスピーカー
Alexa Amazon Echo
Amazon Echo Dot
Amazon Echo Plus
Amazon Echo Spot
Amazon Echo Show
Googleアシスタント Google Home
Google Home mini
Google Home Hub(日本未発売)
Clova Clova Wave
Clova Friends
Clova Friends mini
Clova Desk
Apple Siri Apple HomePod(日本未発売)
Cortana Harman Kardon Invoke(日本未発売)
8
9. ウェイクワード(ホットワード)の違い
• Alexa
• Alexa / Amazon / Echo / コンピューター
• Googleアシスタント
• OK, Google / ねぇGoogle
• Clova
• Clova / ねぇClova / Clovaさん / Clovaちゃん / Jessica
9
これらの言葉を聞き取ると、スマートスピーカーは
それに続く言葉を指示と認識して動いてくれる
37. Logic App Function App
<ゲートウェイ> <プログラム本体>
①起動リクエスト
②定型レスポンス
③起こす
起動リクエスト
コールドスタートが速い
Logic Appを間に配置!
ねぇClova、
“適当星占い”
を開いて
星座を教えて
ください
定型文の返却と同時に
Function Appの
空関数へのリクエスト
38. Logic App Function App
<ゲートウェイ> <プログラム本体>
①インテントリクエスト
②動的なレスポンス
インテントリクエスト
Functionsに動いて
ほしいときはスルー
みずがめ座
今日は絶好調!
とてもよい1日
になりますよ!
③リクエストを
そのまま渡す
⑤レスポンスを返す
④処理を実施
すでに起きているので速い
53. 各関数で使用する代表的なメソッド
• 関数同士を連携させて"Durable"な処理を作る部品が揃っている!
関数 メソッド名 処理内容
OrchestrationClient StartNewAsync Orchestratorを開始する。
TerminateAsync Orchestratorを終了する。
GetStatusAsync Orchestratorの状態を取得する。
RaiseEventAsync 任意の名前のイベントを起こす。
Orchestrator関数 CallActivityAsync Activityを呼び出して実行する。パラメータで好きな値を
渡せる(タプルやコレクションも使えるのでかなり自由)。
CallActivityWithRetryAsync 失敗した場合にリトライするCallActivityAsync。
CallSubOrchestratorAsync 別のOrchestratorを実行する。
CallSubOrchestratorWithRetryAsync 失敗した場合にリトライするCallSubOrchestratorAsync。
ContinueAsNew 今回実行した際の情報をパラメータとして渡して状態を
維持し、自身を再実行する。
WaitForExternalEvent 指定した名前のイベントが起きるまで待機する。
GetInput 呼び出し元から渡されたパラメータを取得する。
Activity関数 GetInput 呼び出し元から渡されたパラメータを取得する。
57. しくみ解説~ Botで操る腹話術
OrchestrationClient Orchestrator
起動時 or 読み上げ終了時
WaitForExternalEvent
RaiseEventAsync
LINE Botとの連携も自在な"Durable Session"
• 状態を確認し、完了するまで
無音無限ループで待機させる
OrchestrationClient
GetStatusAsync
無音mp3のPlayFinished時
無音mp3の再生指示
• 完了していたらセリフをしゃべらせ、
Orchestratorを再実行
64. 過去のアワードにて(LINE BOOT AWARDS 2018)
• 「Clova&LINEで絵本読み聞かせ」でファイナル進出!
ClovaとLINEが同期して
絵と読み聞かせ音声が
同時に楽しめるスキル
10月の3連休で一気に作って入賞できた!
この10連休でアワードにチャレンジしよう!!