[Alexa] Flash Briefing Skill でDevelopers.IOの最新情報を読ませてみた
1 はじめに
今回、Amazon Alexa(以下、Alexa)のスキルの一種である、Flash Briefing Skillで、ここDevelopers.IO(ブログ)の最新情報を読み上げるスキルを作成しましたので、その作成方法について紹介させて下さい。
最初に、下記が、公開したスキルです。
https://www.amazon.com/dp/B073W8MPBT/
そして、実行しているようですです。
2 Flash Brifing Skill
Flash Briefing Skillは、Alexaスキルキット(ASK)の一つです。オーディオ、若しくは、テキストをフィードに設定し、AlexaのFlash Briefingに再生させるものです。
Flash Briefingの例としては、人気のある放送局やブログの最新情報、最近の見出しや天気などがあり、ユーザは、それらを自由に選択できるようになっています
https://developer.amazon.com/ja/alexa-skills-kit/flash-briefingより
3 コンテンツ
Flash Briefing Skillで使用するコンテンツは、フィードとして配置します。
(1) フィード
フィードを配置するエンドポイントは、パスワードなしのhttpsである必要があります。 また、フィードのファイルは、UTF-8でエンコードされた、JSON(推奨)若しくは、RSS(XML)であり、Content-TypeヘッダーでMIMEタイプを指定しなければなりません。
コンテンツ自体は、テキスト、あるいはオーディオのどちらかで提供できます。(混合はできません。)
フィードアイテムを提供する場合、一度に1〜5個のユニークなアイテムを提供します。(5つ以上のアイテムは無視されるます) また、日付に基づいて、最新から古い順に使用され、古いアイテムは無視される可能性があります。
(2) フォーマット
フィードのフォーマットは比較的簡単です。
下記は、JSONの場合の例です。
Textコンテンツの場合
Content-Type: application/json ... [ { "uid": "EXAMPLE_CHANNEL_MULTI_ITEM_JSON_TTS_1", "updateDate": "2016-04-10T00:00:00.0Z", "titleText": "Multi Item JSON (TTS)", "mainText": "This channel has multiple TTS JSON items. This is the first item.", "redirectionUrl": "https://www.amazon.com" }, ....略
Audioコンテンツの場合
Content-Type: application/json ... [ { "uid": "urn:uuid:1335c695-cfb8-4ebb-abbd-80da344efa6b", "updateDate": "2016-05-23T22:34:51.0Z", "titleText": "Amazon Developer Blog, week in review May 23rd", "mainText": "", "streamUrl": "https://developer.amazon.com/public/community/blog/myaudiofile.mp3", "redirectionUrl": "https://developer.amazon.com/public/community/blog" }, ....略
mainText / streamUrl
コンテンツをTextで提供する場合、mainTextの部分が、読み上げの対象となり、Audioの場合は、streamUrlで指定されたmp3が再生の対象になります。
なお、titleTextや、mainTextは、カード情報として、Alexaアプリに表示されます。
uid
uidは、コンテンツの識別子です。コンテンツごとにユニークである必要があります。 UUID形式が推奨されていますが、必須ではありません。
updateDate
コンテンツの日付です。最新のアイテムを認識するために使用されます。7日以上経過したアイテムは、再生の対象になりません。 形式は、「yyyy-MM-dd'T'HH:mm:ss'.0Z'」です。
(3) コンテンツの要件
Audio及びTextのコンテンツは、それぞれ、次の要件に従う必要があります。
Audio
- URLは、httpsが必須
- Audio形式は、256kbps モノラル又はステレオMP3
- コンテンツの長さは10分未満
- プログラムのラウドネスは、-14dBのLUFS/LKFS
Text
- 一つのフィードで、4500文字を超えるテキストは切り捨てられる(現時点)
- プレーンテキストで、SSML、HTML、XMLタグなどの特殊文字は使用できない
- 適切な句読点の配置が必要。 カンマとセミコロンは短い休止、ピリオド、疑問符、感嘆符は、より長い休止となる
4 スキルの登録
スキルを登録する手順は、概ね次のとおりです。
(1) Skill Information
Skill Informationでは、SkillタイプにFlash Briefing Skill APIを選択します。
Custom Skillのように、Invocation Nameを指定することはできません。
(2) Interaction Model
Interaction Modelは、あらかじめ決まっており、何も設定することはできません。
ここに記載されている通り、Invocation Name は、次の2種類に固定です。
- What's my Frash Griefing?
- What's in the news?
(3) Configuration
Configrationでは、コンテンツを提供するフィードのURLなどを指定します。
(4) Publishing Information
Publishing Informationは、スキルを公開時に表示される内容です。
5 最後に
今回は、Flash Briefing Skillの作成方法について紹介させて頂きました。カスタムスキルのように、動作をプログラムする必要はなく、コンテンツを用意するだけでできてしまいます。
コンテンツの要件に従わない場合、審査に通らなかったり、再生されなかったりするので注意して下さい。
なお、Developers.IOのRSSは、日本語で提供されておりますので、英語への翻訳は、、Microsoft Translator テキスト APIを使用させて頂きました。
6 参考リンク
Introducing the Flash Briefing Skill API
Understanding the Flash Briefing Skill API
Steps to Create a Flash Briefing Skill
Flash Briefing Skill API Feed Reference
Flash Briefing Skill Certification Checklist
Amazon AlexaのFlash Briefing Skillsを作成する