【Alexaスキル作成】CDをAmazon Echoから音声操作のみで流す方法は?参考ページを初心者向けに解説
こんにちは、ゆゆまい(@yuyumai2022)です。
CDをAmazon Echoから流したい!アレクサに呼びかけるだけで流せる方法はないの?
といった疑問にお答えします。
我が家は中古のDWE(ディズニー英語システム)を購入しまして。「英語のかけ流し」のために、毎日CDを再生しています。
できるだけ楽に再生できるように、我が家のデバイスを駆使して下記の2つの方法を試しました。
方法1:スマホとAmazon Echoを使う
スマホにCDデータを入れ、スマホとAmazon EchoをBluetoothで繋ぎ、スマホの操作でEchoから音楽を流す。
方法2:Fire TV Stickを使う
どちらも簡単操作で実現できますが、スマホやリモコン操作が発生するので、毎日のこととなると面倒くさいんですよね。
そこで行ったのが今回紹介する方法です。
この方法は、音声操作に頼るため、Amazon Echoが必要になります。しかし、スマホやリモコンを触ることなく、音声操作のみでCDを流すことができます。
現状、Amazon Echoのスキルには、CDを音声操作のみで流す方法がありません。そこで、今回新たにその操作を可能にするスキルを作成します。
プログラミング言語等出てきて一見難しく感じますが、プログラミング超初心者の私でもできました。コピペ&手順通りやると快適なCD生活が待っているので、ぜひ挑戦してみてください!
CDをAmazon Echoから音声操作のみで流す手順を参考にしたページ
前述したとおり、Alexaスキルを作成します。
こちらの一連の3ページを全面的に参考にさせていただきました。丁寧な記事をありがとうございます!
Amazon Echo で Google Drive 上の mp3 を 再生する (その1) - Qiita
Amazon Echo で Google Drive 上の mp3 を 再生する (その2) - Qiita
Amazon Echo で Google Drive 上の mp3 を 再生する (その3) - Qiita
リンク先の手順に沿って進めば問題ないですが、プログラミング超初心者の私がつまづいた箇所を補足します。補足には、リンク先の項目番号を記載しているので、参考ページと照らし合わせながら読んでみてくださいね。
参考ページの補足
補足①:JSONファイルの作成方法は?
JSONファイルの作成方法を解説します。
JSONとは、データのやり取りをするときに決められた書き方のルールのことです。JSONファイルは、中身がJSONのルールに従って書かれたテキスト形式のファイルです。テキスト形式なので、メモ帳で中身を見ることができます。
JSONファイルの拡張子は「.json」です。メモ帳で通常作成されるテキストファイルの拡張子は、「.txt」です。
一般的に、JSONファイルはプログラミングを利用して作成しますが、txtファイルをjsonファイルに変換できる便利な変換サイトがあります。私はこちらの変換サイトを利用しました。
変換サイトでは下記の手順でメモ帳→JSONファイルに変換できます。
手順1:Windows11に標準搭載されているメモ帳に必要な情報を記載し、保存する
手順2:変換サイトの「JSONファイルを読み込む」の[ファイルを選択]をクリックし、メモ帳のファイルをアップロードする
手順3:「コードモード」でJSONファイルが作成されたことを確認し、[現在のJSONファイルを保存する]をクリックする。
ここで作成されたJSONファイルを、Google Driveの任意の場所にアップロードしてくださいね。
補足②:favorite.jsonとroot.jsonの違いは?
>>>1.3. プレイリストを管理する root.json を作成してアップロードする
favorite.jsonとroot.jsonの関係がいまいち理解できませんでしたので、解説します。
root.jsonは、プレイリストを取りまとめるJSONァイルです。前項1.2. で作成したfavorite.jsonは、プレイリストのJSONファイルです。
Alexaスキルでは、下記の流れでプレイリスト「favorite」の曲を再生します。
①Amazon Echoに「アレクサ、favoriteのプレイリストを再生して」と呼びかけ
②AlexaスキルからGoogle Drive上のroot.jsonにアクセスする
③root.jsonの内容からhappy.jsonへのリンクを探し、アクセスする
④happy.jsonの内容から各曲へのリンクを探し、アクセスすることで、曲を再生する
補足③:インテント、スロットタイプ、スロット…それぞれの意味は?
用語の理解が難しかったため、補足します。
例えば、y=x+3 という関数があるとします。x=5のとき、y=8になりますよね。この式にインテント、スロットタイプ、スロットを当てはめると下記のようになります。
今回のスキルの場合は下記のようになります。
[{プレイリスト}を再生する]機能 ←インテント
{プレイリスト} ←スロットタイプ
favorite ←スロット
「{プレイリスト}を再生して」 ←サンプル発話①
「{プレイリスト}を流して」 ←サンプル発話②
インテントは、スロットタイプにスロットを代入することで機能します。インテントを実行するには、サンプル発話(実際にEchoに呼びかける言葉)を設定し、サンプル発話のとおりに呼びかけます。1つのインテントを実行するために、複数のサンプル発話を設定できます。
補足④:実際のコードはどこにある?
補足するようなことでもないですが、参考ページをサーっと見ていて、「実際のコードはどこだ?」となったので補足します。
「2.4. 再生機能を実装する」の項目に「index.js の全文(折り畳み)」と記載があり、そこを開くとコードがでてきます(笑)
終わりに
慣れない作業と、意味不明な用語に、地味な設定に苦労しましたが、Echoから再生できた時には感動を覚えました。一度スキルを作り終えればあとは放置できるので、お時間があるときにぜひやってみてださい。