[日本語Alexa] 新しいビルトインスロットが、日本語でも利用可能(パブリックベータ)になりました。

2018.10.03

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

1 はじめに

以前は米国英語のスキルのみで利用であった、以下の7つのビルトインスロットが、日本語でも利用可能(パブリックベータ)になりました。

  • AMAZON.Color
  • AMAZON.Country
  • AMAZON.DayOfWeek
  • AMAZON.Genre
  • AMAZON.Language
  • AMAZON.Month
  • AMAZON.Room

Additional Built-in Slot Types Now Available in All Alexa Locales (Beta)

ビルトインスロットがない場合、カスタムスロットで対応するしかありませんが、それを定義することは、結句厄介な作業です。 言葉の揺れや、表現の揺れなどを、シノニムを駆使して定義する作業は、結構工数のかかる作業です。ビルトインスロットがあれば、そのような作業から開放され、より一貫したユーザー体験を簡単に提供することが可能になります。

2 新しいスロット

まだ、(2018年10月2日現在)日本語のドキュメントが無かったのですが、英語のドキュメントを参考にすると、以下のような利用が可能なようです。

昼には、更新されてました。 早い! ってことで、https://developer.amazon.com/ja/docs/custom-skills/slot-type-reference.html#list-slot-typesから一部を紹介させて頂きました。

AMAZON.Color

  • 黄色

AMAZON.Country

世界の国の名前

  • アメリカ
  • 米国
  • 中国
  • 韓国
  • イギリス
  • フランス

AMAZON.DayOfWeek

  • 月曜日
  • 火曜日
  • 土日
  • 週末
  • 平日
  • 土曜
  • 日曜

AMAZON.Genre

音楽、本、テレビ番組、その他のメディアを表す各種ジャンルの名前

  • J-pop
  • ロック
  • 洋楽
  • ビジネス
  • エッセイ
  • ドラマ
  • バラエティ
  • アニメ
  • アクション
  • コメディ

AMAZON.Language

スペイン語、タミール語、ヒンディー語、英語などの自然言語

  • 日本語
  • 英語
  • 中国語
  • 韓国語
  • フランス語
  • ドイツ語

AMAZON.Month

  • 1月
  • 2月
  • 3月
  • 六月
  • 七月
  • 八月

AMAZON.Room

住宅やその他の建物に典型的な部屋の名前

  • キッチン
  • 台所
  • リビング
  • ダイニングルーム
  • 茶の間
  • 座敷
  • 風呂
  • 洗面所
  • 和室

3 ちょっと使ってみました

簡単なサンプルスキルで試してみました。

TestIntentを定義して、AMAZON.MonthAMAZON.DayOfWeekをスロットに定義してみました。

テストしている様子です。

きっちり、スロットに収まっていることが確認できます。

あまり直接関係ないですが・・・参考のために、コードも載せておきます。

const Alexa = require('ask-sdk');

let skill;
exports.handler = async function (event, context) {
    if (!skill) {
      skill = Alexa.SkillBuilders.standard()
        .addRequestHandlers(
            TestIntentHandler
         )
        .create();
    }
    return skill.invoke(event);
}

const TestIntentHandler = {
    canHandle(h) {
        return isMatch(h, "TestIntent", "LaunchRequest");
    },
    async handle(h) {
        const speechText = '月と曜日を指定して下さい';
        return h.responseBuilder
           .speak(speechText)
           .reprompt(speechText)
           .getResponse();
    }
}

isMatch = function(h, ...intents) {
    return intents.some ( intent => {
        if (intent == 'SessionEndedRequest' || intent == 'LaunchRequest') {
            return h.requestEnvelope.request.type == intent;
        }
        if (h.requestEnvelope.request.type == 'IntentRequest') {
            return h.requestEnvelope.request.intent.name === intent
        }
        return false;
    })
}

4 最後に

ほんと、ビルトインスロットって超便利です。

英語では利用できるのに、日本語で、まだ利用できないビルトインスロットが、かなり沢山あります。一日も早く、多くのビルトインスロットが日本語で使えるようになってほしいです。

5 参考リンク


Slot Type Reference