[Alexa] Flash Briefing Skill でDevelopers.IOの最新情報を読ませてみた

alexa-eyecatch

1 はじめに

今回、Amazon Alexa(以下、Alexa)のスキルの一種である、Flash Briefing Skillで、ここDevelopers.IO(ブログ)の最新情報を読み上げるスキルを作成しましたので、その作成方法について紹介させて下さい。

最初に、下記が、公開したスキルです。

https://www.amazon.com/dp/B073W8MPBT/
001

そして、実行しているようですです。

2 Flash Brifing Skill

Flash Briefing Skillは、Alexaスキルキット(ASK)の一つです。オーディオ、若しくは、テキストをフィードに設定し、AlexaのFlash Briefingに再生させるものです。

Flash Briefingの例としては、人気のある放送局やブログの最新情報、最近の見出しや天気などがあり、ユーザは、それらを自由に選択できるようになっています

003 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を指定することはできません。

002

(2) Interaction Model

Interaction Modelは、あらかじめ決まっており、何も設定することはできません。

ここに記載されている通り、Invocation Name は、次の2種類に固定です。

  • What's my Frash Griefing?
  • What's in the news?

004

(3) Configuration

Configrationでは、コンテンツを提供するフィードのURLなどを指定します。

005

(4) Publishing Information

Publishing Informationは、スキルを公開時に表示される内容です。

006

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を作成する