Alexa スキルを作成しています。いくつかのカスタム インテントとデフォルト インテントをコーディングしましたが、正常に動作しています。
ここで、Alexa スキルに要求/送信された正確なステートメントを取得するフォールバック インテントを作成したいと考えています。Alexa スキルに要求された質問文字列/テキスト全体を取得する方法はありますか。スロット値とインテント情報を取得できることはわかっていますが、テキスト文全体をスキルに送信する必要があります。
ありがとう
Alexa スキルを作成しています。いくつかのカスタム インテントとデフォルト インテントをコーディングしましたが、正常に動作しています。
ここで、Alexa スキルに要求/送信された正確なステートメントを取得するフォールバック インテントを作成したいと考えています。Alexa スキルに要求された質問文字列/テキスト全体を取得する方法はありますか。スロット値とインテント情報を取得できることはわかっていますが、テキスト文全体をスキルに送信する必要があります。
ありがとう
トップレベルのインテントから直接発話全体を取得する方法はありません。現在、取得できる最も近いのは、AMAZON.SearchQueryタイプのカスタムスロットを使用することです(別の回答で提案されているカスタムタイプではありません)が、スロットの前にある発話でアンカーフレーズを定義する必要があります。たとえば、発話を次のように定義します。
search {query}
query はタイプAMAZON.SearchQueryのスロットです。
発話のアンカー検索は必須です ( SearchQueryタイプの要件)。そのため、ユーザーがsearchと言って発話を開始する限り、その後に続くものはすべて取得され、達成したいものにかなり近いものになります。
AMAZON.SearchQueryを利用して、ユーザーが言っている発話全体を (NLU でフィルター処理して) キャプチャする間接的な方法が実際には 1 つありますが、 Dialog Managementを使用して進行中のダイアログの一部としてのみ使用します。Alexa が定義済みのプロンプトを自動的に使用してスロット情報を要求するこの種のダイアログに参加している場合は、アンカーのないタイプ AMAZON.SearchQuery の単一の分離されたスロットである発話を定義できます。例:
Alexa: Ok, I will create a reminder for you. Please tell me the text of the reminder
User: Pick of the kids from school
Alexa: Ok. I will remind you to Pick up the kids from school
上記の例では、Alexa はユーザーがリマインダーを送信したいことを検出しますが、リマインダー テキストが設定されていないため、スロットを引き出します。開発者として、Alexa が尋ねる必要があるプロンプトを定義するときは、考えられる応答も定義します。この場合、応答発話を次のように定義できます。
{query}
プロンプトに応答してユーザーが言うことをすべてキャプチャします。たとえば、「子供を学校に迎えに行く」などです。
英語 (米国) には、AMAZON.LITERAL
使用されている正確なフレーズまたは文をキャプチャできるスロット タイプと呼ばれるものがあります (発話での使用方法によって異なります)。ただし、このスロット タイプは他の地域では利用できません。
アマゾンはまた、それを使用することをお勧めしません:
AMAZON.LITERAL を使用して新しい英語 (米国) スキルを提出できますが、ほとんどの場合、カスタム スロット タイプは AMAZON.LITERAL よりも精度が高くなります。したがって、可能であれば、カスタム スロット タイプへの移行を検討することをお勧めします。AMAZON.LITERAL は、英語 (米国) 以外の言語ではサポートされていないことに注意してください。
参照: https://developer.amazon.com/docs/custom-skills/literal-slot-type-reference.html