AlexaビルディングブロックAPIを日本でも公開 細かい操作も声で設定、スマートホーム製品開発に拍車
「アレクサ、カーテンを開いて」
「アレクサ、エアコンの風量を最大にして」
「アレクサ、洗濯機をデリケートモードにして」
「アレクサ、台所のレンジの表面温度は何?」
「アレクサ、洗濯機のサイクルは何?」
「アレクサ、芳香剤の香りは何?」
メーカーは簡単に対応製品を開発できるようになり、ユーザーは呼びかけで細かい設定まで操作したり、様々な機器の状態を音声で確認できるようになる。
米国で先行リリース、ダイソンなどが採用
2018年秋、Amazonは様々なタイプのデバイスで多くの機能を声で操作するために、組み合わせて使えるトグル、モード、レンジのビルディングブロックAPIを米国でリリース。それ以降デバイスメーカーは、より多くの機能をAlexaで簡単にコントロールすることのできる新しいデバイスを作成するために、これらのビルディングブロックAPIを活用している。活用した製品にはダイソンの空気清浄機能付きファンPure Hot + Cool HP02などがあげられる。
日本語でトグル、モード、レンジのビルディングブロックAPIが利用可能に
このビルディングブロックAPIが日本語に対応。開発者は、日本向けスキルでトグル、モード、レンジの値を扱うためのビルディングブロックAPIが利用可能になる。また、また関連機能として今年9月25日に発表された操作非対応(読み取り専用)のデバイスステートを定義するためのAPIの利用と、ユーザーが日本語で「開けて」「閉じて」「上げて」「下げて」と言うコマンドを使って、トグル、モード、レンジ設定をコントロールするためのセマンティック拡張も併せて利用可能。
Alexa.Setting.FanSpeedと宣言するだけで「風量」と呼ぶ事ができる。
開発者がビルディングブロックAPIを活用することで、ユーザーは「アレクサ、風量を最大にして」 「アレクサ、洗濯機をデリケートモードにして」などと話しかけられるようになる。Amazonは新しい言語や国へ対応する際、開発者がデバイス設定の用語を各言語向けにローカライズしなくても良いよう、グローバルなAlexaカタログに含まれるアセット名をローカライズ。開発者が、単にfriendlyNameをAlexa.Setting.FanSpeedと宣言するだけで、ユーザーは日本語でこの設定を「風量」と呼ぶ事ができる。
ビルディンブロックAPIを利用しているダイソンは、空気洗浄機付きファンヒーター Dyson Pure Hot + Coolが日本語でも使用できるように対応する予定。
操作非対応デバイスステートを使用することで、「アレクサ、芳香剤の香りは何?」のような問い合わせに対応
ビルディングブロックAPIでnonControllableプロパティーを使うことにより、ユーザーにとっては問い合わせ可能でも、操作はできないデバイスステートを定義することが可能になった。例えば、ユーザーからの「アレクサ、台所レンジの表面温度は何?」「アレクサ、洗濯機のサイクルは何?」「アレクサ、芳香剤の香りは何?」のような問い合わせに対応することができる。
例えばAlexa対応コーヒーメーカーを作るとする。この製品ではモードと操作非対応ステートを活用することで、コーヒーができてからの大まかな経過時間をユーザーに知らせることができる。下記に引用したコードは、あるデバイスに清掃が必要な状態かどうかを表すステートを、簡単に付け足せることを示している。このコード例ではコーヒーマシンはCleaningStateという名前の操作非対応モードの状態を報告することができるという定義を示している。
ユーザーは「アレクサ、コーヒーマシンの清掃状態は何?」と問い合わせることができ、Alexaからは「コーヒーマシンの清掃状態はクリーニングが必要です」という応答を受けることができる。もしユーザーが清掃状態を操作しようとした場合、Alexaはその操作はサポートされていないことを知らせる。開発者側ではこの不必要な操作ディレクティブをハンドルする必要はない。
「開けて・閉じて・上げて・下げて」の音声コマンドでより自然な操作が可能に
Amazonはこれまで、開発者が様々なデバイス機能を簡単にモデリングするためのビルディングブロックとしてトグル、レンジ、モードをリリース。そして今回、開発者がこれらのビルディングブロックAPIを、デバイスの持つ機能によりフィットした音声モデルで使えるようにするため、セマンティック拡張を追加。
今回利用可能になったセマンティック拡張では、「開けて」「閉めて」「上げて」「下げて」という発話を使った「アレクサ、窓を開けて」「アレクサ、プロジェクタースクリーンを下げて」などのコマンドをサポートできるようになる。これらの新しいセマンティック拡張は、プロジェクタースクリーンや窓、シャワーシステム、引き出し、ガレージドア、門、カーテン、シェード、ブラインド、日よけなどのデバイスを、自然にコントロールするために使用できる。
ラトックシステムは「スマート家電コントローラ用スマートホーム」スキルで赤外線リモコンからの電動カーテン・電動ブラインドの操作を実現するためにセマンティック拡張を採用。これにより「アレクサ、カーテンを開けて」「アレクサ、ブラインドを閉めて」などのフレーズをサポートできるようになった。
下のサンプルでは、スマートホームスキルAPIを使って、特定のモード設定とセマンティック拡張をどのように結びつけるかの方法を示している。ユーザーが「アレクサ、ゴミ箱のふたを開けて」と発話することで、手を使わないゴミ捨てを実現させる例だ。ゴミ箱のふたは開ける、もしくは閉める操作なので、ここではAlexa.ModeControllerインターフェイスを指定して、モードケイパビリティを使用している。加えて、セマンティックマッピングをSetModeディレクティブに加えて、Alexa.Actions.OpenとOPENペイロード、Alexa.Actions.CloseをCLOSEペイロードにそれぞれ結びつける。
上記の例ではモードインターフェイスのみを使用しているが、他にも数値やバイナリ値など他の型を使用することもできる。例えば、プロジェクタースクリーンのためにAlexa.Actions.OpenをsetRangeValue=100にマップする事も可能で、「アレクサ、プロジェクタースクリーンを開けて」という発話をサポートできる。またAlexa.Actions.RaiseをAdjustRangeValueにマップすることにより、「アレクサ、スクリーンを上げて」というフレーズもサポートできる。
より詳細な内容は以下のリンクから確認できる。