2020年も残すところわずかとなりました。このブログでは2020年にAlexa Skill Kitで新たに追加され、日本語のスキルで利用可能となった機能についてまとめてご紹介します。既に一般公開(GA)されている機能をまとめていますので、ベータでリリースされている機能についても知りたい方はこちら(英語)を参照して下さい。
Alexa Web API for Gamesを利用すると、JavaScript、HTML5、CSS、ウェブオーディオなどで、リッチで没入感のある音声対応ゲームを作成することができます。カスタムアニメーションを利用したAlexaゲームを開発したり、既存のHTMLゲームをAlexa搭載デバイス(Echo ShowやFire TVなど)で動作するマルチモーダルゲームエクスペリエンスに変えたりすることができます。
現在Alexa Presentation Language(APL)の最新バージョンは1.5です。2020年はAPL1.3とAPL1.4のリリースもあり、APL for Audio(ベータ)などの新機能が追加されました。
最新のEcho Show 10(本稿執筆時点では近日発売予定)は第2世代から大きく進化し、Alexaと対話しているユーザーの移動に合わせてスクリーンが自動的に回転するようになりました。新しいモーションAPIとセンシングAPIを使用すると、Echo Show 10のモーションをスキルに追加し、これまで不可能だったユーザーエクスペリエンスを実現できます。
Person Profile APIによって、ユーザーの音声プロファイルに関連付けられた連絡先情報(姓名または名前と、携帯電話番号)を取得することが可能です。ユーザープロフィールAPIはアカウントレベルで連絡先情報が取得できるのに対し、Person Profile APIはユーザーの音声プロファイルに基づいた連絡先情報が取得できるため、より高度なパーソナライズ機能を提供することができます。
スキルをMCSにアップグレードすることで、スマートホームスキルとカスタムスキルを1つのスキルに組み合わせることができます。例えば、既存のカスタムスキルにスマートホームの機能を追加すると、呼び出し名なしでデバイスをコントロールすることが可能です。なお、公開中の2つのスキルをマージすることはできませんのでご注意ください。
アカウントリンクは、従来Alexaアプリでアカウント認証情報を入力する必要がありました。アプリ間アカウントリンクによって、モバイルデバイスでアプリとAlexaアプリの両方にログインしている場合、どちらのアプリにもアカウント認証情報を入力せずにアカウントをリンクできます。
AlexaタイマーAPIで、スキルにタイマー機能を追加することができます。AlexaタイマーAPIでは、タイマーのトリガー方法をカスタマイズすることにより、ユーザーとスキルのセッションが終了しても、一貫したユーザーエクスペリエンスを継続させることができます。例えば、タイマーにセットした時間が経過した時点でユーザーからAlexaに話しかけてもらい、カスタマイズしたプロンプトを発行してスキルに戻り、ユーザーエクスペリエンスを継続することができます。
スロットタイプAPIによって、同じ開発者アカウントの複数スキルで使用する独自のスロットタイプを作成することができます。スロットタイプAPIを使って作成したスロットタイプは、参照ベースのカタログ管理、エンティティ解決の同義語とIDをサポートします。スキルの対話モデルで、ビルトインスロットタイプと同じ方法でスロットタイプを拡張できます。
参照ベースのカタログを自動更新するジョブの作成と管理ができるようになりました。CatalogAutoRefreshとReferencedResourceVersionUpdateの2種類のジョブ定義を作成することができます。CatalogAutoRefreshはカタログの更新、ReferencedResourceVersionUpdateはスロットタイプと対話モデルの更新に使用します。
音声合成マークアップ言語(SSML)を応答に使用することで、Alexaの音声を生成する方法を制御できます。既存のSSMLタグに加えて、新たに会話型の発話スタイル(conversational)と感情表現(emotion)が追加されました。会話型の発話スタイルを使用すると、友達や家族に話しかけるように、くだけたトーンでAlexaに発話させることができます。感情表現を使用すると、エンドユーザーが雑学クイズに正解したりゲームに勝ったりしたときなどに、Alexaに幸福/高揚のトーンで応答させることができます。
今年の7月、Alexa開発者のための半日間のオンラインエデュケーションイベントAlexa Liveが開催されました。このイベントでは31の新機能が紹介されました。一部日本語スキルに対応していないものもありますが、どのような機能が発表されたのか振り返ってみましょう。
Alexa-hostedスキルのエンドポイントは米国東部(バージニア北部)us-east-1のみでしたが、複数のAWSリージョンにデプロイすることができるようになりました。新たに作成するAlexa-hostedスキルで使用できるAWSリージョンは次の3つとなります。
デフォルトエンドポイントを選択することができますので、日本語のスキルではus-west-2をおすすめします。また、リージョンの追加にともなってAlexa開発者コンソールのUIが更新されました。CloudWatchログは、「コードエディタ」の「Logs」からそれぞれのリージョンを選択することができます。
Alexa-hostedスキルではデータ永続性にS3を使用していましたが、DynamoDBも利用できるようになりました。Alexa-hostedスキルからアクセスできるDynamoDBのテーブルが用意され、アトリビュートを保存、取得が可能です。新規のAlexa-hostedスキルだけではなく、既存のスキルでもDynamoDBを使用することができます。
パブリックGitリポジトリからスキルプロジェクトをインポートして、新しいAlexa-hostedスキルを作成するができるようになりました。スキルをパブリックGitリポジトリからインポートすることで、GitHub、GitLab、BitbucketなどのプラットフォームでAlexaコミュニティが共有するさまざまなオープンソーステンプレートを使用してスキル開発を始めることができます。
公開中のスキルに以下の更新をする場合、審査に申請することなくAlexa開発者コンソールから即時に更新を反映させることができるようになりました。
Alexa Skills Kitコマンドラインインターフェース(ASK CLI)v2.0では、AWS CloudFormationのサポートが追加され、CloudFormationテンプレートからスキルのインフラストラクチャを管理できるようになりました。また、 ask api がask smapi へ、ask init が ask configure へなど、一部のコマンド名が変更されました。
スマートホームデバッガーを使用することで、Alexa開発者コンソールからスマートホームスキルをテストすることができます。スキルからAlexaに送信されたChangeReport、AddOrUpdateReport、DeleteReportイベントのJSONやエラーを確認し、デバッグに利用することができます。
自動音声認識(ASR)評価ツールを使うと、音声ファイルをバッチテストし、開発したスキルのASRの精度を測定できます。ASR評価ツールにより、テストサンプルのオーディオ発話をASRモデルに対して一括でテストし、期待される文字起こしを実際の文字起こしと比較することができます。ツールが生成する評価レポートには、各テスト発話の精度指標と合否結果が出力されるため、レポートをもとに精度の問題を解決できます。
ASK Toolkitは、Visual Studio Code(VS Code)の拡張機能です。ASK Toolkitにより、Alexaスキルの作成、更新、デプロイ、APLドキュメントの作成とプレビュー、Alexaシミュレーターを使用したローカルスキルのテストとデバッグを行うことができます。デプロイすることなくスキルのテストができるので、開発がより便利になりました。