Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Alexa Audio Player @Deep Diving

Alexa Audio Player @Deep Diving

haruharuharuby

October 21, 2020
Tweet

More Decks by haruharuharuby

Other Decks in Technology

Transcript

  1. はじめに
 本日のプレゼンテーションは、JAWS SONIC 2020 で行った JAWS-UG KOBE のセッショ ンと重複する部分があります。JAWS SONIC

    で セッションに参加されたかたには被る内 容がありますがご了承ください。
 
 m(_ _)m

  2. Alexa AudioPlayer interface
 Echo で作る音楽再生機能つきの 
 アレクサスキル を作るときに実装する 
 インターフェース。


    
 再生、停止、一時停止、プレイリストなど、 
 一般の音楽再生プレイヤーが持つ機能は 
 ひととおり実装が必要。 

  3. Alexa Audio Player のしくみ
 スキル Alexa Skill Kit モノ Alexa

    Voice Service (Amazon Echo な ど) Event Directive
  4. Alexa Audio Player のしくみ
 スキル Alexa Skill Kit モノ Alexa

    Voice Service (Amazon Echo な ど) Event Directive 何を再生中なのかは覚えておかないと。。 Play: 紅蓮華 ♫ 紅蓮華 Started: 紅蓮華 紅蓮華を 再生して 再生中: 「紅蓮華」
  5. 曲を管理する上で覚えておく
 必要があるもの
 - 状態
 - 今どの曲を再生しているか 
 - 曲の経過時間(いまどのあたりを再生しているか) 


    - 再生中の曲があるか 
 - 次に曲を自動でかけるか(プレイリスト) 
 - 曲は再生中か一時停止中かシャッフル再生中か 
 
 - ユーザー操作
 - 再生して
 - 止めて
 - シャッフルして
 - 次の曲
 - 前の曲
 - 二つ先
 

  6. まとめ
 - 再生中の状態はスキル側で覚える 
 
 - 状態管理はDynamoDBがいいぞ 
 
 -

    管理しないといけない状態は、Audio Player Requests をトリガーに更新 

  7. 別にDisりたいわけではないですが、、
 https://github.com/alexa/skill-samp le-nodejs-audio-player https://github.com/alexa/skill-samp le-nodejs-audio-player/blob/mainli ne/multiple-streams/lambda/src/in dex.js Audio Player は、スキルの中で、インテント

    とイベントを両方管理しないといけないの で、必須のコード量と実装しないといけない ハンドラの量は多くなっちゃいます。 一つのファイルにダーッと書いてあると ちょっと ちょっと読みづらいです。 (※ 個人の感想です)
  8. Talkyjs
 Alexa Champion で AWS Samurai な 
 hide okamoto

    謹製の Alexa Skill のためのフレームワーク。 
 
 railsライクな設計思想+CLIあり。 
 ハンドラのRouting、豊富なUtility、SSMLをJ(or T)SX で書けたり。 
 
 https://talkyjs.dev/