多言語に対応するスキルを開発する



多言語に対応するスキルを開発する

Alexa Skills Kitを使用して、多言語のカスタムスキルを作成できます。カスタムスキルは、以下のうち、1つの言語だけをサポートすることも複数の言語をサポートすることもできます。

  • 英語(AU)
  • 英語(CA)
  • 英語(IN)
  • 英語(UK)
  • 英語(US)
  • フランス語(CA)
  • フランス語(FR)
  • ドイツ語(DE)
  • ヒンディー語(IN)
  • イタリア語(IT)
  • 日本語(JP)
  • ポルトガル語(BR)
  • スペイン語(ES)
  • スペイン語(MX)
  • スペイン語(US)

特定の言語でAlexaと対話するユーザーは、その言語をサポートしているスキルを使用できます。たとえば、あるユーザーがAlexaデバイスをドイツ語に設定したとします。そのユーザーは自分の国や地域でAlexaスキルストアに公開されたドイツ語をサポートするスキルを有効化し、使用することができます。

多言語に対応するスキルを開発する手順の概要

以下は、多言語対応のカスタムスキルを開発する際の手順です。それぞれの手順の詳細については、以下のセクションを参照してください。

  1. サポートしたい言語の音声ユーザーインターフェースをデザインします。音声ユーザーインターフェースには、次の項目が含まれます。
    • スキルの呼び出し名
    • インテントスキーマ
    • サンプル発話
    • カスタムスロットタイプの値

    詳細については、カスタムスキルがサポートする各言語の音声ユーザーインターフェースをデザインするを参照してください。

  2. 受け取ったリクエスト(IntentRequestLaunchRequest、およびSessionEndedRequest)のユーザー言語をチェックして適切な言語で応答するためのロジックをコードに組み込みます。たとえば、ユーザーがドイツ語でスキルを起動した場合は、Alexaがドイツ語で返答するように読み上げテキストをスキルから返す必要があります。

    詳細については、カスタムスキルに対するコード変更を実装するセクションを参照してください。

  3. 更新したコードを関連するエンドポイントにデプロイします。
    • 北米、ヨーロッパとインド、および極東のうち、 複数のエンドポイントを使用できます。
    • コードを複数のエンドポイントにデプロイする場合は、すべてのエンドポイントで同じコードを維持する必要があります。以前の手順で説明したように、コードは、サポートされているすべての言語を処理する必要があります。

    詳細については、スキルに複数のエンドポイントを指定するセクションを参照してください。

  4. 開発者コンソールで、新しいエンドポイント、新しい音声ユーザーインターフェース、およびその他の言語固有の情報を使用してスキルを設定します。

    詳細については、言語固有の詳細でスキルコンフィギュレーションを更新するセクションを参照してください。

  5. スキルの新しい言語バージョンをテストします。

    詳細については、別途スキルのテストを参照してください。

  6. 関連する場所にいるユーザーが使用できるようにスキルの公開を設定します。

    詳細については、スキルの公開先を決定するセクションを参照してください。

開発者コンソールの言語固有の情報とグローバルな情報

開発者コンソールでスキルを設定すると、以下のアクションの実行に必要な情報がAlexaサービスに提供されます。

  • リクエストとスキルを実装するAWS Lambda関数またはウェブサービスを連携させます。AWS Lambdaは、アマゾンウェブサービスによって提供されるサービスです。
  • Amazon Alexaアプリにスキルに関する情報を表示します。

1つのスキルに複数の言語を追加した場合、コンフィギュレーション内の情報の中には、すべての言語に適用されるものと単一の言語にしか適用されないものがあります。

  • 対話モデルの各要素(インテントや発話など)は、言語に固有のものです。
  • Alexaアプリ内でユーザーにデータ(公開名や説明など)を提示するために使用されるフィールドは言語に固有のものです。
  • コンフィギュレーション設定(インターフェース、エンドポイント、アカウントリンク設定、アクセス権限など)はすべての言語に適用されます。

カスタムスキルがサポートする各言語の音声ユーザーインターフェースをデザインする

カスタムスキルがサポートしている言語ごとに、音声ユーザーインターフェース(UI)を作成します。この音声UIには、次の項目が含まれます。

  • 呼び出し名 – スキルとの対話を始めるためにユーザーが話すフレーズ。
  • インテントスキーマ – サービスが受け入れ、処理できるインテント一式。言語が違ってもユーザーが同じ体験ができるように、すべての言語でインテントの一貫性を維持することを検討してください。
  • サンプル発話 – インテントとよく使用されるフレーズ間のマッピング。
  • カスタムスロットタイプの値 – インテントスキーマのカスタムスロットタイプごとに定義された代表的な値のリスト。

これらの項目の詳細については、以下のトピックを参照してください。

呼び出し名を選択して、サンプル発話を記述したら、その言語のネイティブスピーカーにとって適切な単語やフレーズを使用していることを確認します。

新しい言語のセットアップと言語固有の音声UIの追加の詳細については、後述する言語固有の詳細でスキルコンフィギュレーションを更新するを参照してください。

カスタムスキルに対するコード変更を実装する

クラウドベースのサービスを作成し、サポートするすべての言語のリクエストをスキルが処理できるようにします。たとえば、スキルがドイツ語と英語(UK)の両方をサポートしている場合、同じコードで次のアクションを実行できるようにしてください。

  • ドイツ語のリクエストを受け取って、ドイツ語の応答を読み上げてユーザーに応答する。
  • 英語(UK)のリクエストを受け取って、英語の応答を読み上げてユーザーに応答する。

サービスに送信されるすべてのリクエストに含まれているlocaleプロパティ(LaunchRequestIntentRequest)をチェックすることで、スキルの呼び出しに使用される言語を決定できます。スキルが受け取ることができるリクエストの種類については、リクエストの形式を参照してください。

以下の例では、requestオブジェクトにlocaleプロパティ、en-USが含まれています。

{
  "request": {
    "type": "LaunchRequest",
    "requestId": "EdwRequestId.00000000-0000-0000-0000-000000000000",
    "timestamp": "2016-06-14T20:59:24Z",
    "locale": "en-US"
  }
}

以下の表は、localeプロパティのロケールコードと言語のオプションです。

ロケールコード 言語

de-DE

ドイツ語(DE)

en-AU

英語(AU)

en-CA

英語(CA)

en-GB

英語(UK)

en-IN

英語(IN)

en-US

英語(US)

es-ES

スペイン語(ES)

es-MX

スペイン語(MX)

es-US

スペイン語(US)

fr-CA

フランス語(CA)

fr-FR

フランス語(FR)

hi-IN

ヒンディー語(IN)

it-IT

イタリア語(IT)

ja-JP

日本語(JP)

pt-BR

ポルトガル語(BR)

Amazonではどの言語にも同一の機能を提供することは必須ではありませんが、ユーザーはデバイスの言語を選択したり、言語を切り替えたりすることができます。つまり、ユーザーは複数の言語でスキルと対話する可能性があるため、言語が変わっても一貫した体験ができることが重要です。

スキルに複数のエンドポイントを指定する

現在のところ、Alexaサービスは、ユーザーの場所と開発者が指定したエンドポイントに基づいて、呼び出すエンドポイントを決定します。スキルに対して以下のエンドポイントを任意に組み合わせて指定できます。

地理的リージョン 対象

北米

北米のユーザー(デバイスが.com.ca.com.brのいずれかのサイトに登録されているユーザー)

ヨーロッパとインド

  • ヨーロッパのユーザー(デバイスが.de.fr.co.ukなどのヨーロッパサイトに登録されているユーザー)
  • インドのユーザー(デバイスがインドのサイト.inに登録されているユーザー)

極東

日本およびオーストラリア/ニュージーランドのユーザー(デバイスが.co.jp.com.auなどに登録されているユーザー)

ユーザーのリージョンに推奨されているエンドポイントが使用できない場合、Alexaはデフォルトエンドポイントを呼び出します。

複数のエンドポイントを使用することにした場合は、各エンドポイントに同じコードをデプロイする必要があります。Alexaサービスは特定の言語のユーザーリクエストをどのエンドポイントにも送信できます。たとえば、スキルが英語(US)とドイツ語の両方をサポートしているとします。amazon.deを使用しているユーザーからの英語のリクエストは、ヨーロッパのエンドポイント(指定された場合)に送信されます。そのエンドポイント上のコードは、英語のリクエストを適切に処理して応答を返せる必要があります。前述のカスタムスキルに対するコード変更を実装するで説明したように、リクエスト内で指定されたlocaleプロパティを使用してユーザーの言語を識別します。

AWS Lambdaを使用してスキルサービスをホストする場合は、スキルのコンフィギュレーションに対してどのAWS Lambdaリージョンが最適であるかを判断します。詳細については、AWS Lambda関数に最適なリージョンを選択するを参照してください。

言語固有の詳細でスキルコンフィギュレーションを更新する

追加の言語のサポートを追加するには、スキルコンフィギュレーションに言語を追加して、新しい音声ユーザーインターフェースなどの言語固有の情報を指定する必要があります。

既存のスキルに言語を追加する

  1. developer.amazon.com/alexaを開きます。
  2. Alexa Skills Kit (ASK)開発者コンソールをクリックします。

    開発者コンソールが開き、作成済みのスキルが表示されます。

  3. リストから言語を追加したいカスタムスキルを探し、編集をクリックします。
  4. 左上の言語ドロップダウンをクリックし、言語設定を選択します。

    言語設定ページには、既にスキルに含まれている言語が一覧表示されます。

  5. 新しい言語を追加をクリックして追加する言語を選択し、保存をクリックします。

スキルに言語を少なくとも1つ追加したら、言語ドロップダウンで言語を切り替えることができます。

言語固有の詳細でスキルを更新する

  1. 言語ドロップダウンメニューで編集する言語を選択します。
  2. ビルドページで、カスタムの下のセクションを完成させます。
    • 対話モデルセクションで言語固有の対話モデルを追加します。
    • 必要に応じて、エンドポイントに追加のエンドポイントを追加します。
  3. 公開ページのスキルのプレビューで言語を選択し、Alexaスキルストアで表示されるスキルの情報をフィールドに入力します。
  4. 公開範囲セクションでスキルの公開先を選択します。

スキルのロケールを複製する

開発をスピーディに進めるため、カスタムスキルの既存のロケールアセットを複製して再利用できます。アセットを複製したら、それをひな形にして同じ言語の新しいロケールを設定します。

たとえば、en-USロケールのカスタムスキルを作成済みの場合、スキルのロケール複製機能を使ってロケールアセットをen-CAなど、同じ言語の別のロケールに展開できます。このプロセスでは、スキルのマニフェストデータ対話モデルのコピーが作成されます。複製では、呼び出し名、Alexa Presentation Language(APL)やアカウントリンクなどのAPIの使用、エンドポイントのURLもコピーします。スキルロケールの複製機能はすべての言語をサポートします。ただし、この機能は言語をまたいだ複製をサポートしていません。たとえば、en-USからes-ESにスキルを複製することはできませんが、en-USからen-GBにロケールを複製することはできます。

また、開発者コンソールで上書きオプションを選択した場合、スキルのロケール複製機能では複製元のロケールを既存の複製先にのみ複製します。デフォルトでは、この機能は既存の複製先ロケールに対して複製を行いません。たとえば、en-USおよびen-CAの両方にカスタムスキルを作成済みの場合、どちらのロケールに対しても複製は行われません。しかし、上書きオプションを使用すると、en-USからen-CAにも、en-CAからen-USにも複製を行うことができます。上書き設定で問題が発生すると、検証エラーが表示されます。このエラーは通常、複製先ロケールが既に存在する場合に発生します。

ロケールアセットの複製は、開発者コンソール(次のセクションを参照)、CLIのclone-localeサブコマンドのいずれかを使って行います。

開発者コンソールでスキルのロケールを複製する

開発者コンソールでスキルロケールを複製する場合、まず複製する既存のカスタムスキルを選択し、複製元のロケールを選択します。

開発者コンソールでスキルのロケールを複製する

  1. developer.amazon.com/alexaを開きます。
  2. Alexa Skills Kit (ASK)開発者コンソールをクリックします。

    開発者コンソールが開き、作成済みのスキルが表示されます。

  3. リストから複製したいカスタムスキルを探し、クリックして選択します。
  4. 左上隅のドロップダウンメニューで、言語設定を選択します。
  5. 複製元のロケールを探し、複製をクリックします。

    セクションが展開され、次の手順で選択する必要のある追加のロケール情報が表示されます。

  6. 複製先ロケールのリストで、複製先のロケールのチェックボックスをオンにします。
  7. 複製をクリックします。

    たとえば、以下のスクリーンショットでは、AUCAINUKのロケールに複製しています。

  8. 複製先に指定したロケールがスキルに既に存在する場合、既存のロケールを上書きしてよいかどうかを確認するポップアップウィンドウが表示されます。
    • 同意する場合は、上書きをクリックします。
    • 同意しない場合は、キャンセルをクリックします。

    クローンの複製ワークフローが始まります。

  9. 複製中の下で、ワークフローの進行状況を確認できます。

    複製プロセスが完了すると、複製に成功メッセージが表示されます。

多言語に対応するスキルを開発する

このスキルを利用できる国を選択してくださいオプションを選択して、ユーザーがカスタムスキルを有効にして使用できる国と地域を決めます。ユーザーは、以下の条件をすべて満たすスキルにアクセスできます。

  • ユーザーの国や地域にスキルを配布している。
  • スキルがユーザーのAlexa搭載デバイスで選択された言語をサポートしている。
  • スキルがユーザーのデバイスを登録している国または地域の主要言語をサポートしている。これにより、スキルがスキルストアで入手可能かどうかが決まります。たとえば次のようになります。
    • .comサイトでデバイスを登録したユーザーに公開するには、スキルの英語(US)バージョンが必要になります。
    • .co.jpサイトでデバイスを登録したユーザーに公開するには、スキルの日本語バージョンが必要になります。

公開は、個別の言語ではなく、スキルに適用されます。Amazonでは、コンテンツポリシー制限がある場合を除き、指定された国と地域のユーザーがスキルのすべての言語バージョンを使用できるようにします。

例: 1つの言語のワールドワイド公開

Amazonがカスタムスキルを配布しているすべての国と地域でスキルを公開することにします。英語(UK)のみでスキルを設定し、他の言語は設定しません。このコンフィギュレーションを選択すると、次のような結果になります。

  • 英語(UK)を第一言語とするすべての国と地域のスキルストアでスキルを使用できます。
  • 英語(UK)を使用するようにデバイスを設定したこれらの国と地域のユーザーがスキルを使用できます。
  • デバイスでドイツ語、英語(US)、その他の言語を選択した世界中のユーザーはスキルを使用できません。

例: 複数言語の限定公開

カスタムスキルをドイツでのみ公開することにします。スキルの機能が地域固有のためです。スキルにドイツ語と英語(UK)の言語を設定します。このコンフィギュレーションを選択すると、次のような結果になります。

  • スキルはドイツのスキルストアでのみ利用できます。選択された国での公開であるためです。
  • ドイツ語を使用するようにデバイスを設定したドイツ国内のユーザーはスキルを使用できます。
  • 英語(UK)を使用するようにデバイスを設定したドイツ国内のユーザーはスキルを使用できます。
  • 英語(US)を使用するようにデバイスを設定したドイツ国内のユーザーはスキルを使用できません。
  • デバイスに対して選択した言語に関係なく、ほかの国や地域のユーザーはスキルを使用できません。

スキルの提供地域の判断について

ユーザーがカスタムスキルを利用できる地理的な範囲を決定する必要があります。これは、Amazonがスキルを配布するすべての国と地域を選択するかどうかによって決定できます。決定を行う際には、2つのオプションを検討してください。

  • 次の要因が重要な場合は、Amazonがスキルを配布するすべての国と地域を選択します。

    • スキルがサポートする言語を使用するようデバイスを設定した全世界のユーザーがスキルを使用できるようにしたい場合。
    • 可能な限り多くのユーザーを獲得したい場合。
    • スキルがほかの国や地域のユーザーにとっても役立つと考える場合。たとえば、トリビアゲームスキルはユーザーが住んでいる場所に関係なく楽しめるものです。言語を追加できるのであれば、なおさら場所は関係ないと言えるでしょう。
  • 次の要因が重要な場合は、Amazonがスキルを配布するすべての国と地域を選択しないでください。

    • 特定の国や地域のユーザーのみがスキルを使用できるようにしたい場合。
    • スキルがサポートする言語を使用するようデバイスを設定した特定の国や地域のユーザーのみがスキルを使用できるようにしたい場合。
    • スキルが特定の地域にいるユーザーにとってのみ便利だと考える場合。たとえば、米国の主要都市で食べ物を配達するスキルが、ヨーロッパではこのサービスを提供していないとします。この場合、米国以外の国や地域では有効なスキルとは言えません。