プライベートAlexaジュークボックススキルを構築して、個人のMP3とインターネットラジオを再生する
フリーのプロンプト百科事典 Wikiprompt より
プライベートAlexaジュークボックススキルを構築して、個人のMP3とインターネットラジオを再生する プライベートAlexaスキルを構築するための包括的なプロンプトで、クラウドバケットから個人用MP3を再生し、インターネットラジオも再生できるようにします。詳細なセットアップ、ビルド、デプロイ手順を含みます。
プロンプト内容保存
🌐
プライベートなAlexaスキルを構築して、自分のクラウドバケットから音楽を再生し、インターネットラジオも再生できるようにします
Amazon EchoでAmazon MusicやSpotifyを使わずに、自分のMP3を再生したいです。このためのプライベートなAlexaスキルを構築してください。できるだけ自分で行います:CLIやAPIを使用し、デプロイとテストも自分で行います。人にしかできないこと(ログイン、Allowのクリック、Echoでのテスト)だけをあなたに依頼します。
セットアップ
- 私の音楽はS3互換バケット(AWS S3またはCloudflare R2)のmusic/プレフィックスの下にあります。その下の各フォルダはジャンル/プレイリスト(music/Coffee Jazz/)またはアーティスト/アルバム(music/Artist/Album/)です。
- バケット用のアクセスキーを作成し、あなたに渡します。設定ファイルに保存し、決して印刷しないでください。スキルは読み取りアクセスのみが必要です。アップロードツールは書き込みアクセスが必要です。
- 私のEchoとAmazon開発者アカウントは同じAmazonログインを使用します。
構築
1. Alexaホスト(Node.js)のカスタムスキルで、インボケーション名は「jukebox」(Amazonが1語を拒否する場合は2語を使用)とし、AudioPlayerインターフェースを有効にします。
2. 音声モデル:PlayIntent(AMAZON.SearchQueryスロット付き:「play {query}」、「put on {query}」、「tune in to {query}」、「shuffle {query}」)、ShuffleAllIntent、WhatsPlayingIntent、ListStationsIntent、およびすべての組み込みAudioPlayerインテント(一時停止、再開、次へ、前へ、ループオン/オフ、シャッフルオン/オフ、最初から再生)を含めます。
3. ライブラリ:ListObjectsV2でmusic/の下のすべてをリストし(継続トークンに従う)、キープレフィックスからフォルダを構築し、.mp3/.m4a/.aacファイルのみを保持し、結果を5分間キャッシュします。音声フレーズをフォルダ名とファイル名に緩くマッチさせます:トラック番号とスペースを無視(「ama piano」= amapiano)、数字の単語を数字に変換(「thirteen beaches」= 13 Beaches)、ジャンルのエイリアスを処理(dnb、drum n bass、hiphop、lo fi)。
4. 再生:各ファイルに事前署名付きHTTPS GET URLをAlexaに提供します。少なくとも12時間有効にして、長いミックスや一時停止/再開が再生中に期限切れにならないようにします。バケットはプライベートに保ちます。再生キューをAudioPlayerトークンに保存(フォルダ、シャッフルシード、位置)してデータベースを不要にし、PlaybackNearlyFinishedで次のトラックをエンキューします。フォルダはシャッフルとループを行います。ファイル名がすべてトラック番号で始まるフォルダはアルバムとして順番に再生されます。単一の曲はそのフォルダの残りと続けて再生されます。
5. ラジオ:HTTPS MP3/AAC/HLSストリームのステーションリストで、優れたアンダーグラウンドエレクトロニックステーション(Rinse FM、NTS、Bassdrive、Intergalactic FM、Kiosk Radio、Refuge Worldwideなど)に加えてニュース(BBC World Service、NPR)を含めます。すべてのURLをcurlで事前にテストし、プレーンHTTPのものはドロップします。Alexaが拒否するためです。「play rinse fm」、「drum and bass radio」、「techno radio」、「the news」をサポートし、次へ/前へでステーションを切り替えます。ライブストリームはドロップし、Alexaはドロップを終了として扱うため、PlaybackNearlyFinishedで同じストリームを新しいトークンで再エンキューし、PlaybackFailedで一度再試行します。
6. リクエストごとに1行ログ(タイプ、インテント、トークン、オフセット、エラー)を記録して、再生の問題がCloudWatchに表示されるようにします。
ウェブコンソールなしでデプロイ
- ASK CLIをインストールします(npm i -g ask-cli)。ask configureがシェルで動作しない場合は、ask util generate-lwa-tokens --no-browserを実行し、ワンタイムコードを貼り付けてもらい、~/.ask/cli_configを自分で作成します。ベンダーIDはGET https://t.co/8eS787CaBtから取得します。
- ホストされたスキルのコードはgitリポジトリです(ask smapi get-alexa-hosted-skill-metadataで見つけます)。masterにプッシュしてデプロイし、ask util git-credentials-helperをgit資格情報ヘルパーとして使用します。ヘルパーはリポジトリの隣にask-resources.jsonと.ask/ask-states.jsonが必要です。プッシュが403で失敗し始めたら、キャッシュされたmacOSキーチェーン資格情報をクリアします。
- ホストされたランタイムは古いNodeバージョンを実行している可能性があるため、それをサポートするS3 SDKバージョンを固定するか、小さなSigV4ライブラリでURLに署名します。
- 音声モデルをask smapi set-interaction-modelでアップロードし、スキルマニフェストにAUDIO_PLAYERがリストされているか確認し、ask smapi simulate-skillでテストします。ウェブコンソールのシミュレータはオーディオを再生できないため、そこでの「問題が発生しました」エラーは予想通りです。
動作したら、Alexaアプリのルーチンを追加する方法を教えてください(When: 音声「coffee jazz」→ Action: Customized「ask jukebox to play coffee jazz」)これで「Alexa、coffee jazz」と言うだけで再生できます。また、好きなインターネットラジオステーションを再生する方法も教えてください。
ログインして完全なプロンプトを表示
次で続行:
ログインすると、次に同意したことになります: 利用規約 と プライバシーポリシー
使い方
このプロンプトは coding 向けに設計されています。上の内容をコピーして、お好みの AI ツールに貼り付けてください。
最良の結果を得るには、プレースホルダー(角括弧や大文字で示された部分)を具体的な要件に置き換えてください。
ノート
0 件のコメント