あなたのAlexaダッシュボード 設定

音声インターフェース設計のベストプラクティス


以下のセクションでは、カスタムスキルの音声エクスペリエンスを設計する際に従うべき、一般的なガイドラインを紹介します。ユーザーとカスタムスキルの実際の対話を参考にして、音声インターフェースを継続的に調整することも必要ですが、このドキュメントのガイドラインに従うことで、ユーザーデータがなくても有用性の高い音声インターフェースを設計することができます。

以下のセクションで紹介するベストプラクティスは、音声による対話を主要な機能とするカスタムスキルに特に適用されます。ただし、Echo Showを使用する場合、スキル開発者は、音声、画面、タッチによる対話の組み合わせを考慮に入れる必要があります。とはいえ、カスタムスキルでは引き続き音声が重視されるため、ここで説明する内容が適用されます。このドキュメントに含まれる一般的な原則は、画面による対話にも当てはまります。

このドキュメントで説明するガイドラインは、カスタムスキルのためのカスタム対話モデルに関するものです。スマートホームスキルAPIを使用する場合は、開発者が自分で対話モデルを作成する必要はありません。作成可能なスキルの種類については、スキルの種類についてを参照してください。

ユーザーから情報を引き出す

ユーザーによる応答が必要であることを明確に伝える

選択肢を示すだけでは、ユーザーが応答しなければならないことが明確に伝わりません。ユーザーからの応答が必要なときは、質問形式のプロンプトを使用してください。

ユーザー: Alexa、Trivia Challengeを開始して。

良い例 悪い例
Trivia Challenge:

トリビアチャレンジです。次のカテゴリーがあります。80年代のポップソング、お酒、ヨーロッパの歴史。どのカテゴリーにしますか?
Trivia Challenge:

トリビアチャレンジです。次のカテゴリーから選択できます。80年代のポップソング、お酒、ヨーロッパの歴史。

ユーザーに使い方を紹介する

スキルを初めて使用するユーザーは、Alexaにスキルの起動をリクエストするだけで、具体的なリクエストを言わない場合があります。このような場合は、ユーザーにどのようにスキルと対話すればよいか、ヒントを与える必要があります。

ユーザー: Alexa、Car Fuを起動して。

良い例 悪い例
Car Fu: Car Fuです。配車または料金の見積もりをリクエストできます。どちらにしますか?

ユーザー: 車を手配して

Car Fu: リクエストを送信しています。車が到着したら、モバイルのアラートでお知らせします。Car Fuのご利用、ありがとうございました。
Car Fu: Car Fuを開いています。

ユーザー: (ここでユーザーに選択肢を示さないと、スキルで何ができるのか、ユーザーにとって明確ではない可能性があります)

選択肢を明確に示す

ユーザーに選択肢を提示するときは、選択形式の質問であることが明確に分かる言い回しを使います。そうしないと、AlexaのTTSサービスによって「はい」/「いいえ」形式の質問としてプロンプトが再生される可能性があります。すべてのプロンプトをテスト端末で聞いて、必要な応答をTTSが引き出せることを確認してください。

ユーザー: Alexa、Food Taxiでハンバーガーを注文して。

良い例 悪い例
Food Taxi: Food Taxi:
付け合わせはフライドポテトとサラダのどちらにしますか? フライドポテトまたはサラダはいかがですか?
ユーザー: サラダ ユーザー: はい

プロンプトは簡潔にする

音声コンテンツは、順番に時間をかけて聞く必要があるため、視覚的コンテンツのように全体を目で確認することができません。ユーザーは、すばやく意思決定して質問に答える必要があります。このため、プロンプトは短く簡潔に、分かりやすくする必要があります。

ユーザー: Alexa、Astrology Dailyで星占いをして

良い例 悪い例
Astrology Daily: 何座の星占いですか? Astrology Daily: 星占いができる星座は12星座あります。何座の運勢を知りたいのか教えてください。

選択肢の数を少なくする

選択肢をユーザーに示すときには、1つ1つを明確に示し、選択肢の数を3つ以下に抑えてください。冗長な言い回しは使わないでください。

ユーザー: Alexa、Dairy Shackでミルクシェイクを注文して。

良い例 悪い例
Dairy Shack: どのフレーバーにしますか? チョコレート、バニラ、ストロベリーから選べます。 Dairy Shack: フレーバーは何にしますか? チョコレートの場合は「チョコレート」と言ってください。バニラの場合は「バニラ」と言ってください。ストロベリーの場合は「ストロベリー」と言ってください。

複雑なスキルにはヘルプを用意する

3つ以上の機能を持つAlexaスキルでは、1回のプロンプトですべての選択を提示しないでください。その代わり、最も重要なオプションと、その機能の使い方を最初に示します。ユーザーにヘルプを求められたら、すべての機能のリストを読み上げます。また、選択肢を示した後に、ユーザーに質問することを忘れないでください。

ユーザー: Alexa、Score Keeperを開始して

良い例 悪い例

Score Keeper:Score Keeperです。プレーヤーにポイントを与えたり、スコアを確認したり、「ヘルプ」を参照できます。何をしますか?

ユーザー: ヘルプ

Score Keeper:

次のように話しかけてください。

ジョンを追加、
ジョンに5ポイントを与えて、
スコアを教えて、
新しいゲームを開始して、または
すべてのプレーヤーをリセットして。

終わったら、「ストップ」と言うこともできます。

では、何をしますか?

Score Keeper:Score Keeperです。実行できることは、プレーヤーにポイントを与える、新しいプレーヤーを追加する、

スコアを尋ねる、
新しいゲームを開始する、
すべてのプレーヤーをクリアする、
または、終わったときに「ストップ」と言う。では、どれにしますか?

ユーザー: スコアって何?

注: スキルのヘルプを提供するためには、ヘルプテキストを返す標準AMAZON.HelpIntentのハンドラーを実装します。AMAZON.HelpIntentは、ユーザーが「ヘルプ」、「助けて」などの一般的なフレーズを使ってヘルプをリクエストすると呼び出されます。

必要なことだけ質問する

不要な質問を極力避けてください。無駄な質問によって、使い勝手が悪くなり、ユーザーエクスペリエンスが損なわれます。例:

  • - スキルの機能が1つしかない場合は、その機能を実行するかどうかをユーザーに尋ねない。
  • - 根拠に基づいた推測を適宜取り入れる(ただしユーザーが簡単に修正できるようにする)。
  • - ユーザー(たとえば、ユーザープロフィール)に応じてプロンプトの例を変更する。

ユーザー: Alexa、Joke Bankをスタートして。

良い例 悪い例
Joke Bank: 体中が黒、白、赤。これは何? 恥をかいたスカンク。 Joke Bank: ジョークを聞きたいですか?

ユーザー: はい。

確認は必要な場合にのみ行う

何度も確認を求める対話は避けてください。ただし、以下のような重要なアクションには確認が必要です。

  • - 一般に公開されるアクション(ソーシャルメディアへの投稿など)
  • - 他人に影響を与えるアクション(メッセージの送信など)
  • - 金銭が関係するアクション(ユーザーが何かを購入するときなど)

ユーザー: Alexa、Astrology Dailyで私の星座の運勢をチェックして。

Astrology Daily: どの星座ですか?

ユーザー: 天秤座

良い例 悪い例
Astrology Daily: 天秤座の今日の運勢は… Astrology Daily: 天秤座の星占いですね?

ユーザー: はい

一度に1つの情報を取得する

ユーザーは、一度で必要なすべての情報を提供するとは限りません。必要な情報が推測不可能である場合は、一度に1つずつユーザーに質問します。

ユーザー: Alexa、Date NightでHaymarketに今夜の予約を入れて。

良い例 悪い例
Date Night: Haymarketの予約ですね。今夜の何時にしますか?

ユーザー: 7:30頃。
Date Night: 予約を入れるには、場所、時間、日付、人数を言う必要があります。始めからやり直してください。

Amazon Alexaアプリで機能を紹介する

Alexaアプリのカードを利用してスキルの機能をユーザーに紹介できます。サンプルフレーズをカードに示す場合は、インテントに対応するサンプルフレーズを使用します。スキルを初めて使用するユーザーに、スキルの使い方を口頭で説明するつもりで、サンプルフレーズを選択してください。インテントに対応しないフレーズは使用しないでください。

良い例 悪い例
  • 「Alexa、Score Keeperで新しいゲームを開始して」
  • 「Alexa、Score Keeperでジョンをゲームに追加して」
  • 「Alexa、Score Keeperでジョンに5ポイント追加して」
  • 「Alexa、Score Keeperにスコアを聞いて」
  • 「Alexa、Score Keeperを開いて」
  • 「Alexa、Score Keeperを開始して」
  • 「Alexa、Score Keeperを起動して」

ユーザーに情報を提示する

現在の状況をユーザーに伝える

対話が短い場合は、スキルの起動と終了をユーザーに逐次伝える必要はありません。ただし、現在の状況をユーザーに示す必要はあります(これによって、Alexaが誤ってスキルを起動した場合に、ユーザーがそれに気づくことができます)。音声のみの対話では、ユーザーは視覚的な要素を参考にして操作を進めることができません。landmarkを使用すると、Alexaが言葉を正しく聞き取ったことをユーザーに伝え、対話を適切にガイドし、スキルの信頼性を高めることができます。

ユーザー: Alexa、Astrology Dailyで今日の魚座の運勢を聞いて。

良い例 悪い例
Astrology Daily: 今日の魚座の運勢です。友達のおかげで困難を乗り越えることができます。

[対話終了]
Astrology Daily: 友達のおかげで困難を乗り越えることができます。

[対話終了]

提示する情報量を制限する

人間が聞いて覚えることができる情報量はわずかです。したがって、必要な情報だけを提示して、対話をできる限り短く抑えてください。長いリストを読み上げる場合は、3~5項目ずつのグループに分け、1つのグループを読み上げた後に、次のグループも読み上げるかどうかをユーザーに尋ねます。これによって、スキルとの対話の主導権をユーザーに委ねることにもなります。

ユーザー: Alexa、Savvy Consumerによく売れているガーデニング用品を聞いて。

良い例 悪い例

Savvy Consumer: ガーデニング用品の売れ筋商品は、Repel Lemon Eucalyptus Natural Insect Repellent、4オンス入りポンプスプレーです

残りも聞きたいですか?

ユーザー: 「はい」

Savvy Consumer: 第2位: TERRO Ant Killer Liquid Ant Baits

第3位: Weber 12-Inch 3-Sided Grill Brush

第4位: Black & Decker 30-Feet Line String Trimmer Replacement Spool

さらに聞きたいですか?

ユーザー: 「いいえ」

Savvy Consumer: ガーデニング用品の売れ筋商品をお知らせします。第1位: Repel Lemon Eucalyptus Natural Insect Repellent、4オンス入りポンプスプレー

第2位: TERRO Ant Killer Liquid Ant Baits

第3位: Weber 12-Inch 3-Sided Grill Brush

第4位: Black & Decker 30-Feet Line String Trimmer Replacement Spool

第5位:…

読むためではなく聞くための文章にする

音声ベースのスキルのプロンプトは、聞くためのものであり読むためのものではありません。会話として作成することが重要です。断片的なセンテンスでも、会話の中で自然に聞こえるのであれば許容されます。また、目視で問題のないプロンプトが、音声として再生されたときにも問題がないとは限りません。テスト端末でプロンプトを聞いて、TTSに問題がないことを確認してください。

ユーザー: Alexa、NHL TrackerにSharksの試合の最新情報を聞いて。

良い例 悪い例
NHL Tracker: 第3ピリオド、3対2でSharksがStarsにリードされています。 NHL Tracker: San Jose Sharks(40-33-9): 2ゴール。

Dallas Stars(41-31-10): 3ゴール。

残り時間: 4分35秒、第3ピリオド

難解または不自然な専門用語を使用しないでください。また、法律に関するメッセージは、目で読むことを前提とした長く不自然な言い回しが使われている場合がよくあるため、スキルの使いやすさが損なわれたり、ユーザーの混乱を招く可能性があります。Alexaスキルでは、できる限り法律用語を使わないでください(ただし、各Alexaスキルに必要な法的メッセージについては、法律顧問に相談してください。なお、これは法律専門家としてのアドバイスではありません)。必要な場合はAlexaアプリに免責事項を追加し、ユーザーに一読するよう促すこともできます。

ユーザー: Alexa、Flight Statsにアラスカ航空328便の運行状況を聞いて。

良い例 悪い例
Flight Stats: シアトル発サンノゼ行きのアラスカ航空328便は機器の修理のために出発が遅れており、現在の出発予定時刻は6時25分です。 Flight Stats: シアトル発サンノゼ行きのアラスカ航空328便は現在、DELAY::XFM5341の状態です。再公示された出発時刻は1825です。

ユーザー: Alexa、Taxi Brokerを起動して。

良い例 悪い例
Taxi Broker: Taxi Brokerです。どこに行きますか?

利用条件はユーザーがこのスキルを有効にしたときに提示されました。
Taxi Broker: Taxi Brokerです。Taxi Brokersの利用条件が適用されます。ニューヨーク州にお住まいの場合は、ニューヨーク州の州法が…どこに行きますか?

読み上げ機能を効果的に利用する

Alexaサービスが音声に変換するテキストは、開発者が提供します。以下のベストプラクティスに従うことで、読み上げの品質を向上させることができます。

SSMLタグを使用して韻律を修正する

テキストの韻律を修正したり強調を入れたりするには、SSMLタグを使用します。たとえば、<prosody>タグを使用すると、声の音量、高さ、速さを変更できます。

連続した文字を使用するなどして、リズムや強調を表現しようとしないでください。

良い例 悪い例
  • Great job, you are correct(よくできました。正解です)

  • <prosody rate="x-slow">Great</prosody> job, you are correct.

  • <emphasis level="strong">Great</emphasis> job, you are correct.

  • Grrrrreeeaaat job, you are correct.

専門的な略語や記号の読み方を提示する

Alexaの読み上げ機能は、略語や特殊文字などのテキストのほとんどを自動的に変換できます。例:

  • "Dr.Smith"は、"Doctor Smith"と発音されます。
  • "amazon.com"は、"amazon dot com"と発音されます。
  • "Lake Shore Dr."は、"Lake Shore Drive"と発音されます。

ただし、専門的または非一般的な略語は自動変換できないことがあります。読み上げ機能の変換をテストし、必要に応じて読み方を記述するか、<say-as>または<sub>などのSSMLタグを使用してください。

良い例 悪い例
  • That compound is calcium carbonate(その成分は炭酸カルシウムです)

  • That compound is c.a. c.o. three

  • That compound is <say-as interpret-as="characters">CaCO3</say-as>

  • That compound is <sub alias="calcium carbonate">CaCO3</sub>.

  • That compound is CaCO3

  • Dialing 1-800-123-4567(1-800-123-4567に電話をかけています)

  • Dialing <say-as interpret-as="telephone">18001234567</say-as>

  • Dialing 18001234567

必要に応じてSSMLを使用して正しいバリエーションを指定する

多くの英単語は、意味や品詞に応じて発音が異なります。たとえば、"read"は、次の2つの文で発音が異なります。

  • I read the book yesterday
  • I plan to read the book next week

これらの種類のバリエーションのある単語を使用する場合は、読み上げ機能が単語を正しい発音に変換できるようにするため、使用するバリエーションを指定する必要があります。

良い例 悪い例

The following words rhyme with said: bed, fed, <w role="amazon:VBD">read</w>.

The following words rhyme with said: bed, fed, read.

The following words rhyme with ace: bass, mace, pace.The following words rhyme with pass: <w role="amazon:SENSE_1">bass</w>, lass, mass.

The following words rhyme with ace: bass, mace, pace.The following words rhyme with pass: bass, lass, mass.

ターゲット言語での読み上げテキストの記述とサポートされる音素の使用

読み上げ機能による応答を記述するときには、ネイティブの単語と音声を使用します。Alexa Skills Kitでは、現在、英語(米国)、英語(英国)、ドイツ語がサポートされています。

<phoneme>というSSMLタグを使用すると、サポートされている音素を使用して発音をカスタマイズするか、音素や音声の発音をテキストに追加することができます(たとえば、"pecan"などの単語の発音はさまざまです)。

サポートされる音素が、サポートされる言語(英語(米国)、英語(英国)、ドイツ語)ごとに提供されています。

良い例 悪い例

From the French for red stick, <phoneme alphabet="ipa" ph="b??t?n ??u?">baton rouge</phoneme>.

この例では、英語の音素を使用してフランス語の発音に近づけています。

From the French for red stick, <phoneme alphabet="ipa" ph="b??t?? ??u?">baton rouge</phoneme>.

この例では、Alexaが英語に対してサポートしていない音素(????)を使用しています。

読み上げをテストし、必要に応じて修正する

提供したテキストをAlexaがどのように音声に変換するかをテストし、意図した通りの音声になっていることを確認してください。Alexa搭載端末(Amazon Echoなど)でテストするだけでなく、開発者ポータルのサービスシミュレーターでスキルの応答を聞いたりSSMLを確認したりすることもできます。Alexaスキルのテストの「サービスシミュレーターを使用した基本的なテスト」を参照してください。

読み上げ機能による変換で問題が発生した場合は、次の方法を試してください。

  • テキストを修正する。テキストをわずかに変更するだけで、音声合成の問題が解決する場合があります。イントネーションの問題には、この方法が最も役立ちます。
  • サポートされているSSMLタグを使用してテキストにマークアップを追加する。
  • 開発者フォーラムに問題を報告する。発音の問題には、この方法が最も有効です。

対話のエラーを処理する

再プロンプトでガイドラインを提示する

ユーザーが言ったことをAlexaが理解できない場合や、ユーザーが応答しない場合のために、Alexa Skills Kitには再プロンプト(エラーの後に再生されるプロンプト)を指定するオプションが用意されています。低信頼度エラーとタイムアウトエラーの両方の対話エラーに対して1つのプロンプトしか使用できないため、そのプロンプトによって、スキルがどのような応答を必要としているかをユーザーに伝える必要があります。2回目のプロンプトは、最初のプロンプトより少々詳しい内容にすることができますが、その場合でも、ユーザーが何を言わなくてはならないかを明確に示すことが最も重要です。

ユーザー: Alexa、Tide Poolerに満潮時を聞いて。

Tide Pooler: どの都市の満潮時ですか?

ユーザー: ラスベガス

良い例 悪い例
Tide Pooler: 満潮時の情報を提供できるのは、サンディエゴやボストンなどの沿海都市についてだけです。どの都市にしますか?

ユーザー: バージニアビーチ。
Tide Pooler: 別の都市を指定してください。

ユーザー: ええと…

ユーザーが行き詰った場合には終了オプションを示す

Alexaが、ユーザーの言葉を正しく理解せずに、誤った情報で対話を続けることを、誤認と呼びます。Alexaが誤ってスキルを起動したり、ユーザーが対話に行き詰ったりした場合は、ユーザーが「ストップ」コマンドを知らない場合のために、ヘルププロンプトで終了オプションを示します。

ユーザー: Alexa、Store Finderを開始して

Alexa: [このリクエストを「Score Keeperを開始して」と誤って解釈]

良い例 悪い例

Score Keeper: Score Keeperです。プレーヤーにポイントを与えたり、スコアを確認したり、「ヘルプ」を参照できます。何をしますか?

ユーザー: ヘルプ

Score Keeper: 次のように話しかけてください。

(いくつかのオプションを挙げる)

終わったら、「ストップ」と言うこともできます。

では、何をしますか?

ユーザー: ストップ。

Score Keeper: Score Keeperです。プレーヤーにポイントを与えたり、スコアを確認したり、「ヘルプ」を参照できます。何をしますか?

ユーザー: ヘルプ

Score Keeper: 次のように話しかけてください。

(いくつかのオプションを挙げる)

では、何をしますか?

スキルを終了する方法を示していません。

ユーザーの責任にしない

エラーは発生するものです。エラーの発生を想定し、適切に処理してください。エラーが発生しても、ユーザーを責めるような言い回しは避けてください。また、大げさに謝罪しないでください(不確かなカスタムスキルと受け取られ、信頼性が低下します)。

ユーザー: Hotel Hubでホテルを見つけて

Hotel Hub: どの都市のホテルを予約しますか?

ユーザー: [背後の雑音]

良い例 悪い例
Hotel Hub: どの都市と言いましたか? Hotel Hub: 有効な都市名ではありません。ホテルを予約したい都市を言ってください。

不測の事態に備える

画面に表示される情報だけを使用して対話する視覚的インターフェースとは異なり、音声による対話では、ユーザーが発する言葉を制限できません。そのため、ユーザーの発話が想定外であっても、妥当な内容であれば、スマートに対応できなければなりません。

ユーザー: Date NightでHaymarketに明日の予約を入れて。

Date Night: Haymarketの予約ですね。明日の何時にしますか?

ユーザー: 午後10時半

良い例 悪い例
Date Night: Haymarketの予約受付時間は、午後5時から午後9時半までです。何時に予約しますか?

ユーザー: 9時

Date Night: 何名の予約ですか?
Date Night: すみません。何時に予約しますか?

ユーザー: 10時半

Date Night: 理解できません。<エラーイアコン> [ストリームがクローズし、対話が終了する]

その他のリソース

音声インターフェースの設計については、次の書籍も参照してください。