Image for post
Image for post

やっていきFMのalexaスキルを公開しました

soramugi
soramugi
Mar 4, 2018 · 8 min read

やっていきFMのpodcastを再生するalexaスキルを公開しました。

Amazon Alexaのアプリで「やっていき」で検索すれば出てくるのでスキルを有効にすることで使うことができます。

Image for post
Image for post

alexaスキルとは

alexaとはスマートスピーカー(Amazon echo)の中のos、alexaスキルとはiPhoneで言うアプリです。個人や企業が開発して自由に公開できるアプリケーションです。

Amazon echo = iPhone

alexa = iOS,siri

alexaスキル = アプリ

の認識で概ね問題はないかと。

今回作成したのは、Alexa Skills Kitのカスタム対話モデルなので、正確に言うと、iPhoneアプリの場合はネットワークの通信を行わないものが公開できますが、alexaスキルは通信が必須。

これは端末向けのアプリケーション作成をするのではなく、alexaから届くjsonを受け取ってjsonを返すAPIを作成するだけでalexaスキルを作成、公開することができます。

公開してどうなったか

2月の中旬、半月前に公開したのですが結構使われてるようです。

公開したスキルはamazon alexaアプリ上からしか検索と閲覧ができないのと、Twitterなどでの宣伝もなにもしていなかったんですが3~4件補足されているツイートを見たので、割と公開しただけでも見ている人がいるんだなという認識です。

あとSmartHacksさんは人力でalexaスキル試してるの文字起こしして動画撮って公開してるのがすごい。

データベース化されると機能追加したときに開発者のハンドリングが出来なくなるけど、勝手に宣伝してくれるのはありがたい。

alexaスキルの作り方

alexaスキルでのpodcastの再生、音声ファイルの再生スキルを作るには以下のパターンがあります。

podcastはすでにRSSで配信されているので、フラッシュブリーフィングスキルで設定してしまえばいいのですが、10分間の音声ファイルの制約があるのと、毎日更新されるものが推奨されているので今回の要件には合わず。

対話モデルでAudioPlayerを使用するAPIを作成します。

簡単に言うとjsonを返却するAPIの作成。

今回作ったpodcast再生スキルで言うと、公式ではlambdaを使うのが推奨されてるのでlambdaで。nodeプラグインのalexa-sdkが公開されているのでそれを使う。

作成したものがこれ

awsでlambdaの設定と、Amazon開発者コンソールで設定、READMEに書いた設定方法と対話時の文言とpodcastのfeed urlを変更してデプロイする事で実際に機能するスキルが公開できる。

公開時の流れはこことか見るとわかりやすい

公式でも開発トレーニングページが公開されているので見ておくと雰囲気が掴みやすい。

営業職向けのような作り込みなので力入ってるのが分かる。

余談

podcast全般の再生アプリケーション、どんなpodcastでも音声の対話で再生出来るものを作るのもよかったんですが、複雑度が増すのと、公式のalexaスキルサンプルで単体のpodcastを再生するスキルがあったので作って見た次第。

公式でのpodcast再生サンプルがこれで

試して見たけどなんか動かない。

DynamoDBを使用しての再生状態の管理もして「こんな使い方できるよ」がわかるのだが見づらいし動かないし対話文が英語固定で変更しづらいので書き直し。DynamoDBは使わないで再生だけでいいし、との判断。

完璧ではなく、限られた時間内での完成優先なのでTODO多めになっております。

苦労したところ

zipで固めてブラウザからアップロードの手間が必。lambdaをコマンドラインからいい感じに使うapexコマンドを使用して解消。

ブラウザでcloud watchでのログを見るしかデバッグできない。lambdaをコマンドラインからいい感じに使うapexコマンドを使用して解消。

声で起動してデバッグする必要がある。返却されるjsonをデバッグすればいいのだが、jsonの解釈のされ方を端末で確認する必要もあるので、結局は毎回声で起動してデバッグした。

起動時や再生中の状態をalexaが送信してくれる。その状態変更がalexa-sdkで変更できるはずなのだが何故かできない。stateは使わないで対応

AudioPlayerを使ったalexaスキルは対話以外にバックグラウンドで終了間際などの状態の通知が飛んでくる。使わないようにした

例外が飛んでくる。Playback〇〇 を適切に使えば飛ばないはず、今は握りつぶしてる

これしたかった

そこまで時間割けなそうだし需要も少なそうなのが現状。

なんで作ったのか

そもそもなんで作ろうとしたのか、という行動原理の部分。

スマートスピーカーに興味があったわけではなくて、音を使ったエンターテイメントや音とインターネットの組み合わせに興味があった。その興味関心と流行りのスマートスピーカーを使って見たのが行動原理。

スマートスピーカーが絶対に流行るとは思ってないけど、音はもうちょっと有効活用できるブルーオーシャンじゃないかなとは思ってる。みんなゲームとかSNSやってて目と画面が埋まっていても、耳は空いてる。

もっと面白いことできそう。

alexaスキル開発の参考資料

ここら辺読み込めばできる。そんなに難しく無い。

宣伝

alexaスキルを公開した話をpodcastでしています。よければこちらも聞いて見てください。

技術書典に出る事になったので、今回の件をもう少し詳しく書く予定です。

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch

Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore

Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store