本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon Sumerian 對話元件
對話元件指派Amazon Lex
若要在播放時使用 Amazon Lex,場景需要來自 Amazon Cognito 身分的 AWS 登入資料。為您的場景建立一個身分集區並在場景設定中的 AWS 組態下設定它。

Properties
-
名稱— Amazon Lex 機器人的名稱。
-
別名— 發佈機器人時選擇的別名。
若要在播放時觸發對話,請在相同實體上使用狀態機器行為或指令碼元件。
State Machine (狀態機器)
要使用 Amazon Lex 機器人,請添加狀態機器與對話的實體和語音元件。使用動作來擷取音訊或文字、傳送到 Amazon Lex 進行處理、播放遊戲並等待額外的輸入。
範例 文字輸入狀態
-
Start
–AWS 開發套件等待 AWS 開發套件以從您的 Amazon Cognito 識身分集區擷取登入資料。 -
Wait for Input
–DOM 事件偵聽程式在一或多個元素上的 DOM 事件接聽程式新增 (由查詢選擇器所指定),以及對指定事件執行轉換。 -
Get Text Input
— 一個取得 HTML 文字動作,以擷取input
在一個 HTML 組件元素。-
實體— 含有
input
元素。 -
HTML 元素選擇器—
input
元素。例如,#LexInput
。
-
-
Process with Lex
–發送文本輸入到對話機器人可從之前的狀態傳送文字到 Amazon Lex bot (傳送文字到您的 Amazon Lex 機器人) 並傳遞回應到下一個狀態。傳換 On response ready (在回應備妥時) 到
Play response
、以及 On processing error (在處理錯誤時) 到Collect text
。 -
Play Response
–語音開始行動扮演來自 Amazon Lex 的回應。轉換為Wait for Input
。-
使用 Lex 回應— Enabled.
-

範例 音訊輸入狀態
-
Start
–AWS 開發套件等待 AWS 開發套件以從您的 Amazon Cognito 識身分集區擷取登入資料。 -
Wait for Input
–按下等待使用者按下按鍵 (空格鍵)。 -
Start Recording
–開始麥克風錄製動作會開始錄製,直到向上按鍵動作會在釋放空格鍵時觸發,轉換到下一個狀態。 -
Stop Recording
–停止麥克風錄製動作完成音訊錄製並傳遞到下一個狀態。 -
Process with Lex
–發送音頻輸入到對話機器人將從以前狀態錄製的音頻發送到 Amazon Lex 機器人。 -
Play Response
–語音開始使用 Amazon Lex response (使用 Amazon Lex 回應) 播放之前的狀態的音訊回應。轉換回Wait for input
狀態。-
使用 Lex 回應— Enabled.
-

如需詳細資訊,請參閱 亞 Amazon Sumerian 中的 AWS 特色狀態機器動作。有關構建上面的海域的更詳細的教程,請參閱使用對話元件和 Amazon Lex 建置 Chatbot 教學課程
Script
您可以使用指令碼來更新實體對話元件的組態,以回應使用者輸入。以下範例新增接聽程式到兩個按鈕,以變更按下按鈕時的作用中機器人。
範例 腳本-將事件偵聽器添加到按鈕
-
實體— 主機或其他具有對話元件的實體。
'use strict'; function setup(args, ctx) { ctx.entityData.changeBot = function(event){ var name = event.target.getAttribute("botname"); var alias = event.target.getAttribute("botalias"); ctx.entity.dialogueComponent.updateConfig({name: name, alias: alias}) }; document.getElementById("bot1button").addEventListener('click', ctx.entityData.changeBot); document.getElementById("bot2button").addEventListener('click', ctx.entityData.changeBot); }
範例 HTML 3D 元件 — 按鈕
<style> button { background-color: #4CAF50; border: none; color: white; padding: 15px 25px; text-align: center; font-size: 16px; cursor: pointer; } button:hover { background-color: green; } </style> <button id="bot1button" botname="OrderFlowers" botalias="latest" type="button">Order Flowers</button> <button id="bot2button" botname="BookTrip" botalias="latest" type="button">Book Trip</button>