

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 設定使用 Lex V2 機器人擷取使用者輸入的逾時
<a name="session-attribs-speech"></a>

Amazon Lex V2 串流 API 可讓機器人自動偵測使用者輸入中的表達用語。當您建立意圖或槽時，您可以設定表達用語的面向，例如表達用語的最長持續時間、等待使用者輸入時逾時，或 DTMF 輸入的結束字元。您可以為您的使用案例自訂機器人的行為。例如，您可以將信用卡號碼的位數限制為 16。

您也可以在與機器人開始對話時，透過工作階段屬性設定逾時，並視需要在 Lambda 函數中覆寫逾時。

屬性的組態金鑰使用以下語法：

```
x-amz-lex:<InputType>:<BehaviorName>:<IntentName>:<SlotName>
```

`InputType` 可以是 **audio**、**dtmf** 或 **text**。

您可以將 指定**\$1**為意圖或槽名稱，以設定機器人中所有意圖或槽的預設設定。任何意圖或插槽特定的設定優先於預設設定。

Amazon Lex V2 提供預先定義的工作階段屬性，用於管理 [StartConversation](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_StartConversation.html) 操作對機器人使用文字、語音或 DTMF 輸入的方式。預先定義的屬性全都位於 `x-amz-lex` 命名空間中。

您可以將 指定`*`為意圖或槽名稱，藉此設定機器人中所有意圖、槽或子槽的預設設定。任何意圖或插槽特定設定優先於預設設定。針對以下所有逾時使用這些模式。

對於複合插槽的子插槽，您可以依 分隔`.`。例如：

```
<slotName>.<subSlotName>
```

```
x-amz-lex:allow-interrupt:<intentName>:<slotName>.<subSlotName>
```


| 表達式 | 案例 | 
| --- | --- | 
| Intent：Slot.SubSlot | 僅適用於名為「Slot」的複合槽內名為「SubSlot」的子槽 | 
| Intent：Slot.\$1 | 適用於名為「槽」的複合槽內的任何子槽 | 
| 目的：\$1。SubSlot | 僅適用於任何複合槽內名為「SubSlot」的子槽 | 
| 目的：\$1.\$1 | 適用於任何複合槽內的任何子槽 | 

## 中斷行為如何在 Lex V2 機器人中運作
<a name="allow-interrupt"></a>

您可以設定機器人的中斷行為。屬性是由 Amazon Lex V2 定義。

允許中斷

```
x-amz-lex:allow-interrupt:<intentName>:<slotName>
```

定義使用者是否可以中斷 Amazon Lex V2 機器人播放的提示。您可以選擇性地將其關閉。

**預設：**True

## 設定語音輸入的逾時
<a name="voice-input-time-out"></a>

您可以使用工作階段屬性，為與機器人的語音互動設定逾時值。屬性由 Amazon Lex V2 定義。這些屬性可讓您指定 Amazon Lex V2 在收集輸入語音之前，等待客戶完成說話的時間。

所有這些屬性都位於 `x-amz-lex:audio` 命名空間中。

### 表達用語長度上限
<a name="max-utterance-length"></a>

```
x-amz-lex:audio:max-length-ms:<intentName>:<slotName>
```

定義 Amazon Lex V2 在語音輸入被截斷前等待的時間，並將語音傳回至您的應用程式。當您預期回應時間過長，或想要給客戶更多時間提供資訊時，您可以增加輸入的長度。

**預設：**55，000 毫秒 (55 秒）。最大值為 55，000 毫秒 (55 秒）

如果您將 `max-length-ms` 屬性設定為超過 55，000 毫秒，則值會預設為 55，000 毫秒。

### 語音逾時
<a name="voice-timeout"></a>

```
x-amz-lex:audio:start-timeout-ms:<intentName>:<slotName>
```

機器人在假設客戶不會說話之前等待多久。在客戶可能需要更多時間才能在說話之前尋找或召回資訊的情況下，您可以增加時間。例如，您可能想要讓客戶有時間拿出信用卡，讓他們可以輸入號碼。

**預設：**4，000 毫秒 (4 秒）

### 靜音逾時
<a name="silence-timeout"></a>

```
x-amz-lex:audio:end-timeout-ms:<intentName>:<slotName>
```

機器人在客戶停止說話以假設表達用語完成之後等待多久。您可以在提供輸入時增加預期無聲期間的時間。

**預設：**600 毫秒 (0.6 秒）

### 允許音訊輸入
<a name="allow-audio-input"></a>

```
x-amz-lex:allow-audio-input:<intentName>:<slotName>
```

您可以啟用此屬性，讓機器人僅透過音訊模式接受使用者輸入。如果此旗標設定為 false，則機器人不會接受音訊輸入。值預設為 true。

**預設：**True

## 文字輸入的逾時
<a name="text-input-attribs"></a>

使用以下工作階段屬性來指定機器人在文字對話模式下的行為。

此屬性位於 `x-amz-lex:text` 命名空間中。

### 啟動逾時閾值
<a name="start-timeout-threshold"></a>

```
x-amz-lex:text:start-timeout-ms:<intentName>:<slotName>
```

機器人在重新提示客戶輸入文字之前等待的時間。在您想要讓客戶有更多時間在提供文字輸入之前尋找或召回資訊的情況下，您可以增加時間。例如，您可能想要給客戶更多時間來尋找訂單的詳細資訊。或者，您可以減少閾值，以提早提示客戶。

**預設：**30，000 毫秒 (30 秒）

## 設定 DTMF 輸入的組態
<a name="session-attribs-dtmf"></a>

使用下列工作階段屬性來指定 Amazon Lex V2 機器人在使用音訊對話時如何回應 DTMF 輸入。

所有這些屬性都在 `x-amz-lex:dtmf` 命名空間中。

### 刪除字元
<a name="deletion-character"></a>

```
x-amz-lex:dtmf:deletion-character:<intentName>:<slotName>
```

清除累積 DTMF 數字並立即結束輸入的 DTMF 字元。

**預設：**\$1

### 結束字元
<a name="end-character"></a>

```
x-amz-lex:dtmf:end-character:<intentName>:<slotName>
```

立即結束輸入的 DTMF 字元。如果使用者未按下此字元，輸入會在結束逾時後結束。

**預設：**\$1

### 結束逾時
<a name="end-timeout"></a>

```
x-amz-lex:dtmf:end-timeout-ms:<intentName>:<slotName>
```

假設輸入已結束，機器人應該從最後一個 DTMF 字元輸入等待多久。

**預設：**5000 毫秒 (5 秒）

### 每個表達式的 DTMF 位數上限
<a name="max-length"></a>

```
x-amz-lex:dtmf:max-length:<intentName>:<slotName>
```

表達用語中允許的 DTMF 位數上限。例如，您可以將此值設定為 16，以限制可輸入信用卡號碼的字元數。此值無法增加。

**預設：**1024 個字元

### 允許 DTMF 輸入
<a name="allow-inputdtmf"></a>

您可以使用工作階段屬性設定機器人可以接受的輸入類型。屬性由 Amazon Lex V2 定義。

```
x-amz-lex:allow-dtmf-input:<intentName>:<slotName>
```

您可以啟用此屬性，讓機器人透過 DTMF 模式接受使用者輸入。如果此旗標設定為 false，則機器人不會接受 DTMF 輸入。值預設為 true。

**預設：**True