tshimba’s blog

このサイトの掲載内容は私自身の見解であり、所属する組織とは関係ありません

Alexa の MP3 を再生するスキル開発・申請から認定結果・フィードバックの受信まで

Alexa のスキル開発から申請までをやってみました。 簡単に開発ができ、アプリを Alexa スキルストアで配布するための申請ができます。

今回は申請してみたところ拒否されたのですが、一緒に丁寧なフィードバックも返ってきました。

Alexa スキルとは

Amazon Echo のような Alexa 対応デバイス向けのアプリのことを Alexa スキルといいます。
スキルの作成方法としては、【保存版】開発部長が102時間かけてまとめたAlexaの落とし穴と習得方法という記事が一番よくまとめられています。

qiita.com

基本的な開発の流れは上記記事を読むのが一番わかりやすいですが、プログラムを書いたことがある人であれば、以下の記事中にある動画を見るだけでだいたいイメージが掴めると思います。

開発の流れとしては、Amazon 開発者ポータルでアプリの基本的な情報を設定します。そこで呼び出し先の Lambda 関数を設定しておき、呼び出し後は指定した Lambda 関数内ロジックに処理が移ります。

Lambda 関数のコーディングが不要でスキル開発が不要な Storyline などのサービスがあるようですが、本エントリーでは対象外です。

今回開発するスキル

今回開発するスキルは Pelco the cat (猫のペルコ) です。
「アレクサ、猫のペルコを開いて」というと猫の鳴き声が流れるというだけのアプリです。
※ペルコに関しては Instagram 参照。

www.instagram.com

スキルの開発

今回のアプリのポイントとしては、MP3 音声ファイルの再生です。
Alexa SSML などで検索すると日本語記事もあるかも知れませんが、今回は Adding MP3 Sound to Alexa という記事を参考にしました。

www.apcp.biz

音声ファイルの準備

音声ファイルのダウンロード

まずは MP3 の音声ファイルを準備します。制約としては、長さが90秒以下ということくらいです。
ポケットサウンドというサイトから、猫の鳴き声の MP3 を複数ダウンロードしました。

音声ファイルを FFmpeg で変換

Alexa で使用できる MP3 の周波数などが細かく決められているので、FFmpeg で指定されている設定に MP3 を変換します。

ffmpeg -y -i input.mp3 -ar 16000 -ab 48k -codec:a libmp3lame -ac 1 output.mp3

FFmpeg は音声変換などで昔からよく使用されているもので、インストールされていない場合はインストールしてください。

音声ファイルを S3 にアップロード

S3 に Bucket を作成して、FFmpeg で変換した MP3 ファイルをアップロードします。このとき、誰でもファイルが閲覧できるようにバケットポリシーやオブジェクトの設定をしておきます。アップロードした各 MP3 の URL は Lambda 関数のコーディング時に使用するためメモしておきます。

開発から申請まで

後は【保存版】開発部長が102時間かけてまとめたAlexaの落とし穴と習得方法に紹介されている記事などを参考に作成していきます。

大まかな流れとしては、

  • Amazon 開発者ポータルでアプリの基本的な情報を設定
  • スキル呼び出し後の処理は、上記で設定した Lambda 関数に実装する
  • Lambda関数を作成時に生成されたARNを開発者ポータルの設定画面で入力する

具体的な手順は、AlexaのHelloWorldに当たる Alexa 豆知識スキルがとてもわかりやすいです。この手順に従い、入力項目を適宜作成するアプリに合わせて変更し申請まで行います。

今回は、言語は English (U.S.) と Japanese だけ作成し、申請時も対象は U.S. と Japan を選択しました。

github.com

テストには、上記で紹介されている echosim.io というシミュレータを使用しました。

Lambda 関数の実装

今回使用した Lambda 関数の実装は GitHub にアップしています。

github.com

申請結果・フィードバック

今回申請した結果スキルの申請を拒否されましたが、同時に丁寧なフィードバックももらえました。

フィードバック内容

主なフィードバックは説明文と実装に関してです。
今回はスキルは起動するだけで終わりなので、3つ入力しなければいけない Example phrase の2,3個目を適当に書いていたのですが、これが正しくないと指摘を受けました。
以下のように指摘をもらえます。

Second example phrase:
Actual example phrase: Alexa, where is Pelco the cat?
Expected example phrase: Alexa, start pelco the cat

Third example phrase:
Actual example phrase: Alexa, tell me Pelco the cat's voice
Expected example phrase: Alexa, launch pelco the cat

Please see our documentation for more information about the words included in our supported launch phrases.
Please also see our blogpost for more guidance on creating example phrases.

Open の他に、Start や Launch でもいいそうです。
また、スキル呼び出し時にホームカードにコード参照が表示される点を指摘されました。

SessionSpeechlet - Pelco meow

SessionSpeechlet -

想定される動作については、申請チェックリストのテストケース3.3を参照してください。

2018年の抱負 - 毎週Outputを出す

今週のお題「2018年の抱負」

今まで新年に立てた抱負を年末まで覚えていたこともなかったのですが、今年はザッカーバーグを見習い、実現可能なレベルに落とし込んだ抱負を立てることにしました。

newspicks.com

2018年の抱負

2018年の抱負は毎週何かしら Output を出すことです。

個人的な抱負決定時のポイントは以下です。

  • 年の途中で達成して終了とならない
  • 継続して価値のあるもの(途中から価値がなくならないもの)

Output展開先

Outputの種類 展開先
How to 的な記事や他ブログの翻訳など Qiita
自身の意見を含む記事 はてなブログ
スライド形式 SlideShare
プログラム GitHub
経歴の更新 WordPress.com

※また、1ヶ月に1回は技術書のまとめを書くことにします。

抱負達成のために必要な行動

副次的に、以下のような行動が必要になってくるはずです。

  • 毎月1冊技術書を読む
  • 今どのようなスキルが求められているのか、いろいろな人や場所から情報収集する
  • 資格勉強の際、他の人に展開できるようにOutputのための情報整理をしておく

1月の技術書

1月に読む予定の予定の技術書は「ビッグデータを支える技術―刻々とデータが脈打つ自動化の世界」です。

2月に AWS のトレーニングプログラムである Big Data on AWS を受講予定なので、1月にその準備を進めていきます。

その他情報整理場所

情報 場所
書籍 ブクログ
ブックマーク はてなブックマーク
Open Badges Acclaim
適当な情報垂れ流し Twitter
ほしい物 Amazon ほしい物リスト

Amazon Echo を米国設定にして Spotify を使用する

2019/08/04 追記 現在は日本設定でも SpotifyApple Music、うたパスがメニューにあり本手順は不要です。米国向けにしか提供されていないスキルを使用したい場合にご参照ください。

Amazon Echo が日本で発売されて1ヶ月ちょっと使用してみましたが、日本の設定だと不便なことがいくつかあり、米国の設定にして使用するようにしました。

日本の設定でできないこと

Skill が少ない

米国では 25,000以上のSkillがあるそうですが、日本ではまだ300程度だそうです。
米国では Jeopardy など楽しそうな公式アプリもたくさんあります。

Spotify が使えない

日本では現在 Amazon Music と dヒッツ のみです。
Amazon Music でもいいのですが、ランダムに再生したときの選曲が微妙だったりします。発売日から数日洋楽ばかりだったのですが、日が経つにつれて日本向けに調整されてきたのか邦楽が出て来る割合が増えてきたように感じます。

ということで、Amazon Echo を米国設定にして Spotify を使用する方法です。
米国設定にしてしまうと、日本向けの Skill やコンテンツなどが使用できなくなるので注意してください。

準備するもの

不要なもの

手順

Spotify アカウントの取得

こちらは作成するのみで何も特別な設定などは不要です。

Amazon.com (US) のアカウントの設定

Amazon.com アカウントで設定している住所を United States にします。 ※既に Amazon.com アカウントを日本住所で使用している方は、住所を変更しても問題ないか気をつけて下さい。

  1. Amazon.com のアカウントを作成してログインしたら、トップページの一番したの方のフッター部にある Manage Your Content and Devices のリンクをクリックします。
  2. Settings タブを開きます
  3. ここで Country Settings で Current Country が United States になっていれば問題ありません。Japan などになっていたら、Change ボタンを押して米国住所を入力します。

これで Amazon.com アカウントの設定は完了です。

Amazon Echo の設定

Amazon Echo の設定をしていきますが、基本的に日本設定で使用するときと同じです。

  1. Alexa app のダウンロード&起動。日本の App Store からで問題ありません。
  2. Alexa app に準備した Amazon.com アカウントでログイン
  3. 言語設定で English (US) を選択

上記以外の設定などはデフォルトやSkipで問題ありません。

Spotify の設定

  1. Alexa app のメニューを開き、Settings > Music & Media を選択
  2. Spotify 右の Link account を選択してログイン
  3. CHOOSE DEFAULT MUSIC SERVICES で Spotify を選択

以上で完了になります。
また、メニューから Skills を選択すると多数のスキルがあることがわかります。

Alexa で Spotify のプレイリストを再生するときは、"Alexa, (on Spotify) play the playlist name playlist." といいます。デフォルトに設定されていれば on Spotify は省略可です。
また、単に "Alexa, play on Spotify" などと言うと、直前に中断したところから続きを再生してくれます。

米国設定にすると、"Alexa, what's in the news?" と言ったときも NHK ではなく Reuters になってくれました。

Amazon Echo で曲が聞けないときに確認すること

Amazon Echo を購入しました。 なぜか Amazon Music のアカウントがうまく認識されず設定が大変だったので、聞けるようになるまでの備忘録です。 アプリの不具合的なところもあるような気がするので、以下の内容は今後改善されると思われます。

Amazon Echo で曲が聞ける Amazon Music のプラン

Amazon Music Unlimited が勧められていますが、Amazon Prime 会員であれば、Prime Music 分の楽曲は Echo からでも聞くことができます。 現時点では Prime Music は 100万曲以上、Amazon Music Unlimited は 4000万曲以上と記載されています。

Amazon Music Unlimited のプランの登録

Amazon Music Unlimited Echo プランに登録

「Alexa, Amazon Music Unlimited に登録」と Echo に向かって言うと、Amazon Music Unlimited に登録されます。
事前に Echo と連携したiOSなどの Alexa アプリから、Voice Purchase をオンにしておく必要があります。
Echo プランでは、Echo 1台のみで音楽の再生ができます。

Amazon Music Unlimited Prime プランに登録

PC などから Amazon Music Unlimited のサイトへアクセスし登録できます。
すでに Echo プランに登録している場合は、Prime プランにアップグレードされます。
Echo プランにダウングレードしたい場合は、Echoに「Alexa、Amazon Music をダウングレードして」と言います。

www.amazon.co.jp

Amazon Echo で音楽が再生できない場合のトラブルシューティング

いろいろ試した結果一番原因らしかったものは Amazon Music アプリが iOSバイス上にインストールされていたことです。
Amazon Music アプリと Amazon Alexa アプリが共存していると、Amazon Music アカウントがうまく認識されていない様に見えます。

  1. Amazon Music アプリをアンインストールします
  2. Echo と Alexa アプリの登録解除・再登録します

qiita.com

上記で Echo で音楽が再生できるようになりました。

この後、Amazon Music  をダウンロードしたところ今度は Amazon Music で音楽が再生できなくなりました。 その為、現時点での不具合で今後改善されると思われます。

ビッグデータ関連技術まとめ

ビッグデータというバズワードを敬遠していて、なかなかHadoop界隈などにも近づいていなかったのですが、無視できそうにもないのでまずはどこから手を付ければいいか考えるためにもまずは用語を整理したいと思います。

以下以外にもまだまだあると思います。また、ビッグデータというワードの境界が曖昧なので少し毛色の違うものも混じっていると思いますが概要をつかむために関連用語を列挙します。随時編集していこうと思います。

用語・製品名一覧

AWS

GCP

Azure

Hortonworks

  • HDP (HORTONWORKS DATA PLATFORM)

ハンズオン教材

  • Hadoop Tutorial – Getting Started with HDP

github.com

参考

AWS 認定デベロッパー – アソシエイトに合格しました

AWS 認定デベロッパー – アソシエイトに合格したので、AWS を初めて触ってからどのような勉強をしたか、合格までの経緯を記しておきます。試験対策の参考にしていただければ幸いです。

受験した経緯

今まで AWS に登録してなんとなく触っていたのですが、しっかり体系的に学びたいと思ったので、わかりやすい勉強の目標として資格取得をセットしました。

勉強のため利用したサービス

Qwiklabs

Qwiklabs は、簡単に言うとAWSのハンズオンができるサービスです。AWSのアカウントが無くてもQwiklabsのアカウントを作成すれば実際と全く同じAWS環境を使用してハンズオンを進めていけるため、初めてでも指示通りに操作していけばつまずくこと無く一通りの実装などが可能です。AWSを触りたいけどどうしたらいいかわからない場合はQwiklabsをやることをおすすめします。

初め方

まず、1ヶ月55ドルで使い放題のサブスクリプションを購入します。その後カタログに Developer - Associate というのがあるので、これをやっておけば試験対策勉強をしているときも実際の操作をイメージし易いです。

Udemy

Udemy は、オンラインでアプリ開発など様々な授業を受けることができるサービスです。こちらで試験対策の勉強をします。

初め方

登録後、該当コースを購入します。どのコースも定価はすごい高いのですが、基本的にいつもすべて9割引くらいの価格になっています。

私の勉強を始める前の事前知識

勉強方法

Qwiklabs のハンズオン終了後、ひたすら Udemy の Practice Test をやっていきます。問題でわからないサービスが出てきたときは、そのサービスを Qwiklabs で調べてみるとそのサービスのハンズオンがあるので、実際に触ってみます。自分で AWS を登録して触ってみるのも大事だと思いますが、最初は Qwiklabs からやることで、正しいサービスの使い方を理解できるためおすすめです。

GitHub, Qiita, Hatena ユーザーIDの変更

変更の経緯

それぞれのサービスでユーザー名がバラバラで気になっていたので、思い切って変更した。

変更してみた感想

GitHub や Hatenaブログ は外からたくさんリンクを貼られている人だと困るかもしれない。

GitHubリポジトリは新しいユーザー名でリダイレクトしてくれましたが、それ以外はリダイレクトしないそうです。

一番気にしていた Qiita は自動でリダイレクトしてくれるようで助かった。

はてなはそもそもユーザー名が変更できない仕様で、変更したければ新しくアカウントを作成するというのが衝撃だった。 ただ、インポート・エクスポート機能があるので、移行がそれほど大変な訳ではない。

移行方法

それぞれの移行方法については以下のサイトが詳しい。

今回は以下を行った。

  • GitHub ユーザーID変更
  • はてなアカウントの新規作成とインポート・エクスポート
  • Qiita のユーザーIDの変更

GitHub ユーザー名変更

dangerous-animal141.hatenablog.com

はてなブックマークの移行

morishitter.hatenablog.com

はてなブログのエクスポート

yumasty.hatenablog.com

はてなブログのインポート

ログイン - はてな

Qiita のユーザーID変更

ID名の変更 - Qiita:Support