Alexa の MP3 を再生するスキル開発・申請から認定結果・フィードバックの受信まで
Alexa のスキル開発から申請までをやってみました。 簡単に開発ができ、アプリを Alexa スキルストアで配布するための申請ができます。
今回は申請してみたところ拒否されたのですが、一緒に丁寧なフィードバックも返ってきました。
Alexa スキルとは
Amazon Echo のような Alexa 対応デバイス向けのアプリのことを Alexa スキルといいます。
スキルの作成方法としては、【保存版】開発部長が102時間かけてまとめたAlexaの落とし穴と習得方法という記事が一番よくまとめられています。
基本的な開発の流れは上記記事を読むのが一番わかりやすいですが、プログラムを書いたことがある人であれば、以下の記事中にある動画を見るだけでだいたいイメージが掴めると思います。
開発の流れとしては、Amazon 開発者ポータルでアプリの基本的な情報を設定します。そこで呼び出し先の Lambda 関数を設定しておき、呼び出し後は指定した Lambda 関数内ロジックに処理が移ります。
Lambda 関数のコーディングが不要でスキル開発が不要な Storyline などのサービスがあるようですが、本エントリーでは対象外です。
今回開発するスキル
今回開発するスキルは Pelco the cat (猫のペルコ) です。
「アレクサ、猫のペルコを開いて」というと猫の鳴き声が流れるというだけのアプリです。
※ペルコに関しては Instagram 参照。
スキルの開発
今回のアプリのポイントとしては、MP3 音声ファイルの再生です。
Alexa SSML などで検索すると日本語記事もあるかも知れませんが、今回は Adding MP3 Sound to Alexa という記事を参考にしました。
音声ファイルの準備
音声ファイルのダウンロード
まずは 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 を選択しました。
テストには、上記で紹介されている echosim.io というシミュレータを使用しました。
Lambda 関数の実装
今回使用した Lambda 関数の実装は GitHub にアップしています。
申請結果・フィードバック
今回申請した結果スキルの申請を拒否されましたが、同時に丁寧なフィードバックももらえました。
フィードバック内容
主なフィードバックは説明文と実装に関してです。
今回はスキルは起動するだけで終わりなので、3つ入力しなければいけない Example phrase の2,3個目を適当に書いていたのですが、これが正しくないと指摘を受けました。
以下のように指摘をもらえます。
Second example phrase:
Actual example phrase: Alexa, where is Pelco the cat?
Expected example phrase: Alexa,start
pelco the catThird example phrase:
Actual example phrase: Alexa, tell me Pelco the cat's voice
Expected example phrase: Alexa,launch
pelco the catPlease 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年の抱負」
今まで新年に立てた抱負を年末まで覚えていたこともなかったのですが、今年はザッカーバーグを見習い、実現可能なレベルに落とし込んだ抱負を立てることにしました。
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 |
適当な情報垂れ流し | |
ほしい物 | Amazon ほしい物リスト |
Amazon Echo を米国設定にして Spotify を使用する
2019/08/04 追記 現在は日本設定でも Spotify や Apple Music、うたパスがメニューにあり本手順は不要です。米国向けにしか提供されていないスキルを使用したい場合にご参照ください。
Amazon Echo が日本で発売されて1ヶ月ちょっと使用してみましたが、日本の設定だと不便なことがいくつかあり、米国の設定にして使用するようにしました。
日本の設定でできないこと
Skill が少ない
米国では 25,000以上のSkillがあるそうですが、日本ではまだ300程度だそうです。
米国では Jeopardy など楽しそうな公式アプリもたくさんあります。
Spotify が使えない
日本では現在 Amazon Music と dヒッツ のみです。
Amazon Music でもいいのですが、ランダムに再生したときの選曲が微妙だったりします。発売日から数日洋楽ばかりだったのですが、日が経つにつれて日本向けに調整されてきたのか邦楽が出て来る割合が増えてきたように感じます。
ということで、Amazon Echo を米国設定にして Spotify を使用する方法です。
米国設定にしてしまうと、日本向けの Skill やコンテンツなどが使用できなくなるので注意してください。
準備するもの
- Amazon.com (US) のアカウント
- Spotify アカウント
不要なもの
- 米国のApple ID
手順
Spotify アカウントの取得
こちらは作成するのみで何も特別な設定などは不要です。
Amazon.com (US) のアカウントの設定
Amazon.com アカウントで設定している住所を United States にします。 ※既に Amazon.com アカウントを日本住所で使用している方は、住所を変更しても問題ないか気をつけて下さい。
- Amazon.com のアカウントを作成してログインしたら、トップページの一番したの方のフッター部にある
Manage Your Content and Devices
のリンクをクリックします。 Settings
タブを開きます- ここで
Country Settings
で Current Country が United States になっていれば問題ありません。Japan などになっていたら、Change
ボタンを押して米国住所を入力します。
これで Amazon.com アカウントの設定は完了です。
Amazon Echo の設定
Amazon Echo の設定をしていきますが、基本的に日本設定で使用するときと同じです。
- Alexa app のダウンロード&起動。日本の App Store からで問題ありません。
- Alexa app に準備した Amazon.com アカウントでログイン
- 言語設定で
English (US)
を選択
上記以外の設定などはデフォルトやSkipで問題ありません。
Spotify の設定
- Alexa app のメニューを開き、Settings > Music & Media を選択
- Spotify 右の Link account を選択してログイン
- 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 をダウングレードして」と言います。
Amazon Echo で音楽が再生できない場合のトラブルシューティング
いろいろ試した結果一番原因らしかったものは Amazon Music アプリが iOS デバイス上にインストールされていたことです。
Amazon Music アプリと Amazon Alexa アプリが共存していると、Amazon Music アカウントがうまく認識されていない様に見えます。
- Amazon Music アプリをアンインストールします
- Echo と Alexa アプリの登録解除・再登録します
上記で Echo で音楽が再生できるようになりました。
この後、Amazon Music をダウンロードしたところ今度は Amazon Music で音楽が再生できなくなりました。 その為、現時点での不具合で今後改善されると思われます。
ビッグデータ関連技術まとめ
ビッグデータというバズワードを敬遠していて、なかなかHadoop界隈などにも近づいていなかったのですが、無視できそうにもないのでまずはどこから手を付ければいいか考えるためにもまずは用語を整理したいと思います。
以下以外にもまだまだあると思います。また、ビッグデータというワードの境界が曖昧なので少し毛色の違うものも混じっていると思いますが概要をつかむために関連用語を列挙します。随時編集していこうと思います。
用語・製品名一覧
- Apache Spark: Spark
- Apache NiFi: データフローオーケストレーションツール
- Hadoop, MapReduce, YARN, HDFS: MapReduce (実行フレームワーク)、YARN (リソースマネージャー) および HDFS (分散ストレージ) を含む実際の Apache Hadoop プロジェクトを指します
- Hive: Hadoop上のMapReduce(大量のデータを高速に処理するための分散処理フレームワーク)の処理をSQL互換言語で操作を実行できることです。つまり、Hiveの問い合わせ言語である「HiveQL」は、RDBの「SQL」に似ています
- Apache Pig: 「Pigによるデータ操作プログラミング環境」を提供します。またこの際のスクリプト言語には独自に開発されたPig言語が用いられます。Hadoop上でPigが稼動することにより、利用者はプログラマブルにでデータの操作を行う事ができます。
- Ganglia: 拡張可能な分散システムで、パフォーマンスへの影響を最小限に抑えながら、クラスターやグリッドをモニタリングできるように設計されています
- HCatalog
- Apache Mahout: Hadoopの強みを生かし簡単に機械学習を行うためのライブラリ
- Apache Lucene
- Apache Oozie
- Apache HBase: HDFS上に構築する分散データベースです
- Apache Impala: Hadoop上でSQL(正確にはHive Query Language/HiveQL)を高速に処理するために開発された並列データ処理系です
- Solr
- Sqoop
- Apache Storm: オープンソースで耐障害性に優れた高速分散処理型ニアリアルタイムビッグデータ処理フレームワーク
- Kafka: Queue
- Apache Phoenix
- Flink
- Apache Zeppelin
- Apache ZooKeeper
- Cassandra: Google BigtableのデータモデルとAmazon Dynamoのレプリケーションなどの分散システムデザインを融合させてできた分散データベース
- Hue: Hadoopを使いやすくするためのWebUI
- Ambari: こちらもUser viewを提供する
- Asakusa Framework: Hadoop上で大規模な 基幹バッチ処理を行うためのフレームワーク
AWS
- Amazon EMR: Amazon EMR には、Hadoop からストレージレイヤーとして Amazon S3 を使用するためのコネクタである EMRFS も含まれています
- Apache Tez: Hadoop MapReduce の代わりに実行エンジンとして使用できる次世代のフレームワークである Apache Tez をインストールすることもできます
- Amazon EMR を使用することで、Hive、Pig、Hue、Ganglia、Oozie および HBase といったツールを簡単にクラスターにインストールして設定することが可能です
- Hadoop に加えて、インメモリ処理用の Apache Spark や、インタラクティブ SQL 用の Presto といった他のフレームワークも Amazon EMR で実行できます。
- Amazon DynamoDB
GCP
Azure
- Azure HDInsight: Spark、Hive、MapReduce、HBase、Storm、Kafka、Microsoft R Server 向けに最適化されたオープン ソース分析クラスターを備え、99.9% の SLA が保証された唯一の完全マネージド クラウド Apache Hadoop サービスです
- Azure Cosmos DB
- Microsoft R Server
Hortonworks
- HDP (HORTONWORKS DATA PLATFORM)
ハンズオン教材
- Hadoop Tutorial – Getting Started with HDP
参考
AWS 認定デベロッパー – アソシエイトに合格しました
AWS 認定デベロッパー – アソシエイトに合格したので、AWS を初めて触ってからどのような勉強をしたか、合格までの経緯を記しておきます。試験対策の参考にしていただければ幸いです。
受験した経緯
今まで AWS に登録してなんとなく触っていたのですが、しっかり体系的に学びたいと思ったので、わかりやすい勉強の目標として資格取得をセットしました。
勉強のため利用したサービス
Qwiklabs
Qwiklabs は、簡単に言うとAWSのハンズオンができるサービスです。AWSのアカウントが無くてもQwiklabsのアカウントを作成すれば実際と全く同じAWS環境を使用してハンズオンを進めていけるため、初めてでも指示通りに操作していけばつまずくこと無く一通りの実装などが可能です。AWSを触りたいけどどうしたらいいかわからない場合はQwiklabsをやることをおすすめします。
初め方
まず、1ヶ月55ドルで使い放題のサブスクリプションを購入します。その後カタログに Developer - Associate というのがあるので、これをやっておけば試験対策勉強をしているときも実際の操作をイメージし易いです。
Udemy
Udemy は、オンラインでアプリ開発など様々な授業を受けることができるサービスです。こちらで試験対策の勉強をします。
初め方
登録後、該当コースを購入します。どのコースも定価はすごい高いのですが、基本的にいつもすべて9割引くらいの価格になっています。
私の勉強を始める前の事前知識
- The Twelve-Factor Appで述べられているようなクラウドネイティブな考え方に対する理解
- 少し AWS を適当に触ってみた経験
- その他パブリッククラウド Azure, GCP, Bluemix を触ってみた経験
勉強方法
Qwiklabs のハンズオン終了後、ひたすら Udemy の Practice Test をやっていきます。問題でわからないサービスが出てきたときは、そのサービスを Qwiklabs で調べてみるとそのサービスのハンズオンがあるので、実際に触ってみます。自分で AWS を登録して触ってみるのも大事だと思いますが、最初は Qwiklabs からやることで、正しいサービスの使い方を理解できるためおすすめです。
GitHub, Qiita, Hatena ユーザーIDの変更
変更の経緯
それぞれのサービスでユーザー名がバラバラで気になっていたので、思い切って変更した。
変更してみた感想
GitHub や Hatenaブログ は外からたくさんリンクを貼られている人だと困るかもしれない。
GitHub はリポジトリは新しいユーザー名でリダイレクトしてくれましたが、それ以外はリダイレクトしないそうです。
一番気にしていた Qiita は自動でリダイレクトしてくれるようで助かった。
はてなはそもそもユーザー名が変更できない仕様で、変更したければ新しくアカウントを作成するというのが衝撃だった。 ただ、インポート・エクスポート機能があるので、移行がそれほど大変な訳ではない。
移行方法
それぞれの移行方法については以下のサイトが詳しい。
今回は以下を行った。
GitHub ユーザー名変更
dangerous-animal141.hatenablog.com