多言語に対応するスキルを開発する
Alexa Skills Kitを使用して、多言語のスキルを作成できます。スキルは、以下の1つの言語だけをサポートすることも、以下のうち複数の言語をサポートすることもできます。
- 日本語(日本)
- 英語(オーストラリア)
- 英語(カナダ)
- 英語(インド)
- 英語(英国)
- 英語(米国)
- フランス語(カナダ)
- フランス語(フランス)
- ドイツ語(ドイツ)
- ヒンディー語(インド)
- イタリア語(イタリア)
- ポルトガル語(ブラジル)
- スペイン語(スペイン)
- スペイン語(メキシコ)
- スペイン語(米国)
特定の言語でAlexaと対話するユーザーは、その言語をサポートしているスキルを使用できます。たとえば、Alexaデバイスをドイツ語に設定したユーザーは、住んでいる地域で公開されたドイツ語をサポートしているスキルを有効にして使うことができます。
- 手順の概要
- 開発者コンソールの言語固有の情報とグローバルな情報
- カスタムスキルがサポートする各言語の音声ユーザーインターフェースをデザインする
- カスタムスキルに対するコード変更を実装する
- スキルに複数のエンドポイントを指定する
- 言語固有の詳細でスキルコンフィギュレーションを更新する
- スキルの配信場所を決定する
- 関連トピック
手順の概要
このドキュメントでは、複数言語のカスタムスキルついて説明します。手順の詳細については、以下のセクションを参照してください。
- サポートしたい言語の音声ユーザーインターフェースをデザインします。音声ユーザーインターフェースには以下が含まれます。
- スキルの呼び出し名
- インテントスキーマ
- サンプル発話
- カスタムスロットタイプの値
詳細は、スキルがサポートする言語の音声ユーザーインターフェースをデザインするを参照してください。
-
受け取ったリクエスト(
IntentRequest
、LaunchRequest
、およびSessionEndedRequest
)のユーザー言語をチェックして適切な言語で応答するためのロジックをコード中に組み込みます。たとえば、ユーザーがドイツ語でスキルを起動した場合は、Alexaがドイツ語で返答するように読み上げテキストをスキルから返す必要があります。詳細は、コード変更を実装するを参照してください。
- 更新したコードを関連するエンドポイントにデプロイします。
- 北米、ヨーロッパとインド、および極東のうち、 複数のエンドポイントを使用できます。
- コードを複数のエンドポイントにデプロイする場合は、すべてのエンドポイントで同じコードを維持する必要があります。以前の手順で説明したように、コードは、サポートされているすべての言語を処理する必要があります。
ヒント: レイテンシーを低減するには、コードを複数のエンドポイントにデプロイすることをお勧めします。詳細については、スキルに複数のエンドポイントを指定するを参照してください。
-
開発者コンソールで、新しいエンドポイント、新しい音声ユーザーインターフェース、およびその他の言語固有の情報を使用してスキルを設定します。
言語固有の詳細でスキルコンフィギュレーションを更新するを参照してください。
-
スキルの新しい言語バージョンをテストします。
-
関連する場所にいるユーザーが使用できるようにスキルの配信を構成します。
スキルの配信場所を決定するを参照してください。
開発者コンソールの言語固有の情報とグローバルな情報
開発者コンソールでスキルを構成すると、以下の処理に必要な情報がAlexaサービスに提供されます。
- リクエストとスキルを実装するAWS Lambda関数またはウェブサービスを連携させます。AWS Lambdaは、アマゾンウェブサービスによって提供されるサービスです。
- Amazon Alexaアプリにスキルに関する情報を表示します。
1つのスキルに複数の言語を追加した場合、コンフィギュレーション内の情報の中には、すべての言語に適用されるものと単一の言語にしか適用されないものがあります。
- 対話モデルの各要素(インテントや発話など)は、言語に固有のものです。
- Alexaアプリ内でユーザーにデータ(公開名や説明など)を提示するために使用されるフィールドは言語に固有のものです。
- コンフィギュレーション設定(インターフェース、エンドポイント、アカウントリンク設定、アクセス権限など)はすべての言語に適用されます。
カスタムスキルがサポートする各言語の音声ユーザーインターフェースをデザインする
カスタムスキルがサポートしている各言語ごとに音声ユーザーインターフェースを作成します。たとえば以下のような情報があります。
- 呼び出し名: スキルとの対話を始めるためにユーザーが話すフレーズ。
- インテントスキーマ: サービスが受け入れ、処理できるインテント一式。言語が違ってもユーザーが同じ体験ができるように、すべての言語でインテントの一貫性を維持することをお勧めします。
- サンプル発話: インテントとよく使用されるフレーズ間のマッピング。
- カスタムスロットタイプの値: インテントスキーマで定義されたカスタムスロットタイプごとに定義された値の代表的なリスト。
これらの項目の詳細については、以下を参照してください。
呼び出し名を選択して、サンプル発話を記述したら、使用されている単語やフレーズが言語のネイティブスピーカーに適切かどうかを確認します。
新しい言語のセットアップと言語固有の音声ユーザーインターフェースの追加の詳細については、後述する言語固有の詳細でスキルコンフィギュレーションを更新するを参照してください。
カスタムスキルに対するコード変更を実装する
カスタムスキル用に作成したクラウドベースのサービスは、サポートされているすべての言語からのリクエストを処理できる必要があります。たとえば、スキルがドイツ語と英語(英国)の両方をサポートしている場合、同じコードで次の要件を満たす必要があります。
- ドイツ語リクエストを取得して、ドイツ語読み上げ機能でユーザーに応答する。
- 英語(英国)リクエストを取得して、英語読み上げ機能でユーザーに応答する。
サービスに送信されるすべてのリクエストに含まれているlocale
プロパティ(LaunchRequest
やIntentRequest
)をチェックすることにより、スキルの呼び出しに使用される言語を決定できます。スキルが受け取ることができるリクエストの種類については、リクエストの形式を参照してください。サービスに送信されるリストイベントおよびスキルイベントにはlocale
プロパティが含まれていません。
locale
プロパティは、request
オブジェクトの一部です。
{
"request": {
"type": "LaunchRequest",
"requestId": "EdwRequestId.00000000-0000-0000-0000-000000000000",
"timestamp": "2016-06-14T20:59:24Z",
"locale": "en-US"
}
}
locale
プロパティは次のいずれかにすることができます。
ロケールコード | 言語 |
---|---|
|
ドイツ語(ドイツ) |
|
英語(オーストラリア) |
|
英語(カナダ) |
|
英語(英国) |
|
英語(インド) |
|
英語(米国) |
|
スペイン語(スペイン) |
|
スペイン語(メキシコ) |
|
スペイン語(米国) |
|
フランス語(カナダ) |
|
フランス語(フランス) |
|
ヒンディー語(インド) |
|
イタリア語(イタリア) |
|
日本語(日本) |
|
ポルトガル語(ブラジル) |
どの言語でも機能が同一であることは必須ではありませんが、ユーザーがデバイスの言語を選択したり、言語を切り替えたりできることに注意してください。ユーザーは複数の言語でスキルと対話する可能性があるため、言語全体で一貫した体験ができることが重要です。
スキルに複数のエンドポイントを指定する
現在のところ、Alexaサービスは、ユーザーの場所と開発者が指定したエンドポイントに基づいて、呼び出すエンドポイントを決定します。スキルに対して以下のエンドポイントを任意に組み合わせて指定できます。
地理的リージョン | 対象 |
---|---|
北米 |
北米のユーザー(デバイスが |
ヨーロッパとインド |
|
極東 |
日本およびオーストラリア/ニュージーランドのユーザー(デバイスが |
ユーザーの地域に推奨されているエンドポイントが使用できない場合、Alexaはデフォルトエンドポイントを呼び出します。
複数のエンドポイントを使用することにした場合は、各エンドポイントに同じコードをデプロイする必要があります。特定の言語のユーザーリクエストはどちらのエンドポイントにも送信される可能性があります。たとえば、スキルが英語(米国)とドイツ語の両方をサポートしているとします。amazon.de
を使用しているユーザーからの英語リクエストは、ヨーロッパエンドポイント(指定された場合)に送信されます。そのエンドポイント上のコードは、英語のリクエストを適切に処理して応答を返すことができる必要があります。カスタムスキルに対するコード変更を実装するで説明したように、リクエスト内で指定されたlocaleプロパティを使用してユーザーの言語を識別します。
AWS Lambdaを使用してスキルサービスをホストする場合は、どのAWS Lambdaリージョンが最適であるかを判断します。詳細については、 カスタムスキルをAWS Lambda関数としてホスティングするを参照してください。
言語固有の詳細でスキルコンフィギュレーションを更新する
追加の言語のサポートを追加するには、スキルコンフィギュレーションに言語を追加して、新しい音声ユーザーインターフェースなどの言語固有の情報を指定する必要があります。
既存のスキルに言語を追加する
- developer.amazon.com/ja/alexaに移動します。
- あなたのAlexaダッシュボード>Skillsをクリックします。開発者コンソールが開き、すでに作成したスキルがすべて表示されます。
- リストから変更するスキルの編集をクリックします。
- 左上隅の言語ドロップダウンをクリックし、言語設定を選択します。このページでは、既にスキルに含まれている言語が一覧表示されます。
- 新しい言語を追加をクリックして、追加する言語を選択します。完了したら保存をクリックします。
言語固有の詳細でスキルを更新する
スキルに追加言語を少なくとも1つ追加したら、言語ドロップダウンで言語を切り替えることができます。
- 言語ドロップダウンリストで編集する言語を選択します。
- ビルドページのカスタム内のセクションに入力します。
- 対話モデルセクションで言語固有の対話モデルを追加します。
- 必要に応じて、エンドポイントに追加エンドポイントを追加します。
- 公開ページのスキルのプレビューで言語を選択し、ストアでスキルを表示するためのフィールドに入力します。
- 公開範囲セクションでスキルの配信場所を選択します。
スキルの配信場所を決定する
このスキルを利用できる国を選択してくださいオプションを選択して、ユーザーがスキルを有効にして使用できる国と地域を決めます。ユーザーは、以下のうちすべてを満たすすべてのスキルにアクセスできます。
- スキルがユーザーの国と地域で配信されている。
- スキルがユーザーのAlexa搭載デバイスで選択された言語をサポートしている。
- スキルがユーザーのデバイスを登録している国または地域の主要言語をサポートしている。これにより、スキルがスキルストアで入手可能かどうかが決まります。例:
- .comサイトでデバイスを登録したユーザーに公開するには、スキルの英語(米国)バージョンが必要になります。
- .co.jpサイトでデバイスを登録したユーザーに公開するには、スキルの日本語バージョンが必要になります。
配信は、個別の言語ではなく、スキルに適用されます。コンテンツポリシー制限がある場合を除き、指定された国と地域のユーザーは、スキルのすべての言語バージョンを使用できるようになります。
ユーザーはデバイスでどの言語を使用するかを選択でき、どの言語を選択するかはユーザーのいる場所と関係ないことを覚えておくことが重要です。たとえば、.co.jp
アカウントを使うユーザーが、自分のAlexa搭載デバイスで英語(英国)などの別の言語を選択することもできます。ただし、言語を変更しても、.co.jp
アカウントで入手できるスキルストアのスキルカタログには影響しません。つまり、スキルを.co.jp
を使うユーザーにも使えるようにするには、スキルストアに日本語バージョンを追加する必要があります。
例: 1つの言語のワールドワイド配信
Amazonがスキルを配信しているすべての国と地域でスキルを配信することにします。英語(英国)のみを使用してスキルを構成し、他の言語は構成しません。結果:
- 英語(英国)を第一言語とするすべての国と地域のスキルストアでスキルを使用できます。
- 英語(英国)を使用するようにデバイスを設定したこれらの国と地域のユーザーがスキルを使用できます。
- デバイスでドイツ語、英語(米国)、その他の言語を選択した世界中のユーザーはスキルを使用できません。
例: 複数言語の限定配信
スキルをドイツでのみ配信することにします。スキルの機能が地域固有のためです。スキルをドイツ語と英語(英国)の言語で構成します。このケースでは:
- スキルはドイツのスキルストアでのみ利用できます。選択された国での配信であるためです。
- ドイツ語を使用するようにデバイスを設定したドイツ国内のユーザーはスキルを使用できます。
- 英語(英国)を使用するようにデバイスを設定したドイツ国内のユーザーはスキルを使用できます。
- 英語(米国)を使用するようにデバイスを設定したドイツ国内のユーザーはスキルを使用できません。
- デバイスに対して選択した言語に関係なく、他の国または地域のユーザーはスキルを使用できません。
スキルの提供地域の判断について
Amazonがサービスを提供しているすべての国や地域にスキルを配信することは、潜在顧客やユーザー数の拡大につながります。スキルの公開範囲を制限する明確な理由がない限り、Amazonがスキルを配布するすべての国と地域を選択することをおすすめします。
- スキルをすべての国に配信すると、デバイスでスキルがサポートする言語を使用するよう設定した世界中のユーザーがスキルを使用できるようになります。
- 特定の国や地域でのみ利用できるよう制限すると、デバイスでスキルがサポートする言語を使用するよう設定したユーザーのうち、指定した国や地域にいるユーザーしかスキルを使用できません。
スキルの公開範囲を決定するときには、他の国のユーザーにとっても有効なスキルかどうかを考慮します。たとえば、トリビアゲームスキルはユーザーが住んでいる場所に関係なく楽しめるものです。言語を追加できるのであれば、なおさら場所は関係ないと言えるでしょう。逆に、特定の地域でのみ有効なスキルもあります。米国の主要都市で食べ物を配達するスキルが、ヨーロッパではこのサービスを提供していないとします。この場合、米国以外の国や地域では有効なスキルとは言えません。