

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 配置超时以使用 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>
```


| Expression | 场景 | 
| --- | --- | 
| 意图：老虎机。 SubSlot | 仅适用于名为 “SlotSubSlot” 的复合插槽中名为 “” 的子插槽 | 
| Intent:Slot.\$1 | 适用于名为“Slot”的复合槽位中的任何子槽位 | 
| 意图：\$1。 SubSlot | 仅适用于任何复合插槽内名为 SubSlot “” 的子插槽 | 
| Intent:\$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 秒）。最大值为 55000 毫秒（55 秒）

如果您将 `max-length-ms` 属性设置为超过 55000 毫秒，则该值将默认为 55000 毫秒。

### 语音超时
<a name="voice-timeout"></a>

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

假设客户停止说话之前机器人要等多长时间。如果您希望让客户在发言前有更多时间查找或回想信息，则可以增加该时间。例如，您可能希望为客户提供时间取出信用卡，以便输入该信用卡号码。

**默认值**：4000 毫秒（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>
```

机器人要等多长时间才会重新提示客户输入文本。如果您希望让客户在提供文本输入前有更多时间查找或回想信息，则可以增加该时间。例如，您可能希望为客户提供更多时间查找订单详情。或者，您可以降低阈值以更早地提示客户。

**默认值**：30000 毫秒（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