

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

# 配合使用 Amazon EventBridge和 Amazon Transcribe
<a name="monitoring-events"></a>

利用 Amazon EventBridge，您可以通过触发其它 AWS 服务中的事件来响应您的 Amazon Transcribe 作业中的状态更改。当转录作业更改状态时，EventBridge 会自动将事件发送到事件流。您可以创建规则来定义希望在事件流中监控的事件以及在这些事件发生时 EventBridge 应采取的操作。例如，将事件路由到其他服务（或目标），然后再采取操作。例如，您可以将规则配置为在成功完成转录作业时将事件路由到 AWS Lambda 函数。要定义 [EventBridge 规则](#defining-rules)，请参阅以下各节。

您可以通过多个渠道接收事件通知，包括电子邮件、[聊天应用程序中的 Amazon Q 开发者版](https://docs.aws.amazon.com/chatbot/latest/adminguide/what-is.html)聊天通知或 [AWS Console Mobile Application](https://docs.aws.amazon.com/consolemobileapp/latest/userguide/what-is-consolemobileapp.html) 推送通知。还可以在[控制台通知中心](https://console.aws.amazon.com/notifications/)中查看通知。如果要设置通知，您可以使用 [AWS 用户通知服务](https://docs.aws.amazon.com/notifications/latest/userguide/what-is.html)。AWS 用户通知服务 支持聚合，这可以减少您在特定事件期间收到的通知数量。

## 定义 EventBridge 规则
<a name="defining-rules"></a>

要定义 EventBridge 规则，请使用 [AWS 管理控制台](https://console.aws.amazon.com/events)。在定义规则时，将 Amazon Transcribe 用作服务名称。有关如何创建 EventBridge 规则的示例，请参阅 [Amazon EventBridge 规则](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rules.html)。

在使用 EventBridge 之前，请注意以下定义：
+ **事件**–事件指示某个转录作业的状态发生更改。例如，当作业的 `TranscriptionJobStatus` 从 `IN_PROGRESS` 更改为 `COMPLETED` 时。
+ **目标**–目标是其它处理事件的 AWS 服务。例如，AWS Lambda 或 Amazon Simple Notification Service（Amazon SNS）。目标接收 JSON 格式的事件。
+ **规则**–规则与您希望 EventBridge 监视的传入事件匹配并将这些事件路由到目标以进行处理。如果规则将一个事件路由到多个目标，则所有目标将并行处理该事件。规则可以自定义发送到目标的 JSON。

Amazon EventBridge 事件是尽力发出的。有关在 EventBridge 中创建和管理事件的更多信息，请参阅**《Amazon EventBridge 用户指南》中的 [Amazon EventBridge 事件](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html)。

以下是转录作业状态变为 `COMPLETED` 或 `FAILED` 时启动的 Amazon Transcribe 的 EventBridge 规则示例。

```
{
    "source": [
        "aws.transcribe"
    ],
    "detail-type": [
        "Transcribe Job State Change"
    ],
    "detail": {
        "TranscriptionJobStatus": [
            "COMPLETED",
            "FAILED"
        ]
    }
}
```

规则包含以下字段：
+ `source`–事件的来源。对于 Amazon Transcribe，这始终为 `aws.transcribe`。
+ `detail-type`–事件的详细信息的标识符。对于 Amazon Transcribe，这始终为 `Transcribe Job State Change`。
+ `detail`–转录作业的新作业状态。在此示例中，规则将在作业状态变为 `COMPLETED` 或 `FAILED` 时触发事件。

## Amazon Transcribe 事件
<a name="events"></a>

Amazon EventBridge 记录几个 Amazon Transcribe 事件：
+ [转录作业事件](#job-event)
+ [语言识别事件](#lang-id-event)
+ [呼叫分析事件](#analytics-event)
+ [呼叫分析通话后事件](#analytics-stream-event)
+ [词汇表事件](#vocab-event)

这些事件都包含以下共享字段：
+ `version`：事件数据的版本。此值始终为 `0`。
+ `id`：由 EventBridge 生成的事件的唯一标识符。
+ `detail-type`：事件的详细信息的标识符。例如 `Transcribe Job State Change`。
+ `source`：事件的来源。对于 Amazon Transcribe，这始终为 `aws.transcribe`。
+ `account`：生成了 API 调用的账户的 AWS 账户 ID。
+ `time`：事件的交付日期和时间。
+ `region`：在其中发出请求的 AWS 区域。
+ `resources`：API 调用使用的资源。对于 Amazon Transcribe，此字段始终为空。
+ `detail`：有关事件的其它详细信息。
  + `FailureReason`：如果状态更改为 `FAILED`，则会显示此字段，并描述 `FAILED` 状态的原因。
  + 每种事件类型都有额外的唯一字段，显示在 `detail` 下面。每个事件示例之后会在以下部分中定义这些唯一字段。

### 转录作业事件
<a name="job-event"></a>

当作业的状态从 `IN_PROGRESS` 更改为 `COMPLETED` 或 `FAILED` 时，Amazon Transcribe 会生成事件。要标识已更改状态并在您的目标中发起事件的作业，请使用事件的 `TranscriptionJobName` 字段。Amazon Transcribe 事件包含以下信息。如果您的转录作业状态为 `FAILED`，则会在 `detail` 下添加一个 `FailureReason` 字段。

请注意，此事件仅适用于 [https://docs.aws.amazon.com/transcribe/latest/APIReference/API_StartTranscriptionJob.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_StartTranscriptionJob.html) API 操作。

```
{
    "version": "0",
    "id": "event ID",
    "detail-type":"Transcribe Job State Change",
    "source": "aws.transcribe",
    "account": "111122223333",
    "time": "timestamp",
    "region": "us-west-2",
    "resources": [],
    "detail": {
          "TranscriptionJobName": "my-first-transcription-job",
          "TranscriptionJobStatus": "COMPLETED" (or "FAILED")
    }   
}
```
+ `TranscriptionJobName`：您为转录作业选择的唯一名称。
+ `TranscriptionJobStatus `：转录作业的状态。可以是 `COMPLETED` 或 `FAILED`。

### 语言识别事件
<a name="lang-id-event"></a>

启用[自动语言识别](lang-id.md)时，Amazon Transcribe 会在语言识别状态为 `COMPLETED` 或 `FAILED` 时生成一个事件。要标识已更改状态并在您的目标中发起事件的作业，请使用事件的 `JobName` 字段。Amazon Transcribe 事件包含以下信息。如果您的语言识别状态为 `FAILED`，则会在 `detail` 下添加一个 `FailureReason` 字段。

请注意，此事件仅适用于包含 [https://docs.aws.amazon.com/transcribe/latest/APIReference/API_LanguageIdSettings.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_LanguageIdSettings.html) 参数时的 [https://docs.aws.amazon.com/transcribe/latest/APIReference/API_StartTranscriptionJob.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_StartTranscriptionJob.html) API 操作。

```
{
    "version": "0",
    "id": "event ID",
    "detail-type": "Language Identification State Change",
    "source": "aws.transcribe",
    "account": "111122223333",
    "time": "timestamp",
    "region": "us-west-2",
    "resources": [],
    "detail": {
        "JobType": "TranscriptionJob",
        "JobName": "my-first-lang-id-job",
        "LanguageIdentificationStatus": "COMPLETED" (or "FAILED")
    }
}
```
+ `JobType`：对于转录作业，此值必须为 `TranscriptionJob`。
+ `JobName`: 您的转录作业的唯一名称。
+ `LanguageIdentificationStatus`：转录作业中语言识别的状态。可以是 `COMPLETED` 或 `FAILED`。

### 呼叫分析事件
<a name="analytics-event"></a>

当[呼叫分析](call-analytics.md)作业的状态从 `IN_PROGRESS` 更改为 `COMPLETED` 或 `FAILED` 时，Amazon Transcribe 会生成事件。要标识已更改状态并在您的目标中触发事件的呼叫分析作业，请使用事件的 `JobName` 字段。Amazon Transcribe 事件包含以下信息。如果您的呼叫分析作业状态为 `FAILED`，则会在 `detail` 下添加一个 `FailureReason` 字段。

请注意，此事件仅适用于 [https://docs.aws.amazon.com/transcribe/latest/APIReference/API_StartCallAnalyticsJob.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_StartCallAnalyticsJob.html) API 操作。

```
{
    "version": "0",
    "id": "event ID",
    "detail-type": "Call Analytics Job State Change",
    "source": "aws.transcribe",
    "account": "111122223333",
    "time": "timestamp",
    "region": "us-west-2",
    "resources": [],
    "detail": {
        "JobName": "my-first-analytics-job",
        "JobStatus": "COMPLETED" (or "FAILED"),
        "FailureReason": "failure reason", // only present when JobStatus is FAILED
        "AnalyticsJobDetails": { // only when you enable optional features such as Generative Call Summarization
            "Skipped": []
        }
    }
}
```
+ `JobName`：您的呼叫分析转录作业的唯一名称。
+ `JobStatus`：您的呼叫分析转录作业的状态。此值可以是 `COMPLETED` 或 `FAILED`。
+ `FailureReason`：此字段仅在 `JobStatus` 为 `FAILED` 时才会出现，用于描述失败的原因。
+ `AnalyticsJobDetails`：通话分析转录作业的详细信息，包括有关跳过的分析功能的信息。

### 呼叫分析通话后事件
<a name="analytics-stream-event"></a>

当[通话后分析](tca-post-call.md)转录的状态从 `IN_PROGRESS` 变为 `COMPLETED` 或 `FAILED` 时，Amazon Transcribe 会生成一个事件。要标识已更改状态并在您的目标中触发事件的呼叫分析通话后作业，请使用事件的 `StreamingSessionId` 字段。

请注意，此事件仅适用于包含 [https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_PostCallAnalyticsSettings.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_PostCallAnalyticsSettings.html) 参数时的 [https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_StartCallAnalyticsStreamTranscription.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_StartCallAnalyticsStreamTranscription.html) API 操作。

`COMPLETED` 事件包含以下信息：

```
{
    "version": "0",
    "id": "event ID",
    "detail-type": "Call Analytics Post Call Job State Change",
    "source": "aws.transcribe",
    "account": "111122223333",
    "time": "timestamp",
    "region": "us-west-2",
    "resources": [],
    "detail": {
        "StreamingSessionId": "session-id",
        "PostCallStatus": "COMPLETED",
        "Transcript": {
            "RedactedTranscriptFileUri": "s3://amzn-s3-demo-bucket/my-output-files/my-redacted-file.JSON",
            "TranscriptFileUri": "s3://amzn-s3-demo-bucket/my-output-files/my-file.JSON"
        },
        "Media": {
            "MediaFileUri": "s3://amzn-s3-demo-bucket/my-output-files/my-redacted-file.WAV",
            "RedactedMediaFileUri": "s3://amzn-s3-demo-bucket/my-output-files/my-redacted-file.WAV"
        }
    }
}
```

`FAILED` 事件包含以下信息：

```
{
    "version": "0",
    "id": "event ID",
    "detail-type": "Call Analytics Post Call Job State Change",
    "source": "aws.transcribe",
    "account": "111122223333",
    "time": "timestamp",
    "region": "us-west-2",
    "resources": [],
    "detail": {
        "StreamingSessionId": "session-id",
        "PostCallStatus": "FAILED"
    }
}
```
+ `StreamingSessionId`：分配给您的实时呼叫分析转录请求的识别码。
+ `PostCallStatus`：您的通话后呼叫分析转录的状态。此值可以是 `COMPLETED` 或 `FAILED`。
+ `Transcript`: 您已编辑和未编辑的转录的 URI。
+ `Media`: 您已编辑和未编辑的音频文件的 URI。

### AWS HealthScribe 流后分析事件
<a name="health-scribe-analytics-stream-event"></a>

当 AWS HealthScribe 流后分析操作的状态发生变化时（如 [ClinicalNoteGenerationResult](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_ClinicalNoteGenerationResult.html) 从 `IN_PROGRESS` 变为 `COMPLETED`），AWS HealthScribe 会生成一个包含以下信息的事件：

```
{
   "version":"0",
   "id":"event ID",
   "detail-type":"MedicalScribe Post Stream Analytics Update",
   "source":"aws.transcribe",
   "account":"111122223333",
   "time":"timestamp",
   "region":"us-east-1",
   "resources":[],
   "detail":{
      "SessionId": <SessionID>,
      "UpdateType": "ClinicalNoteGenerationResult",
      "ClinicalNoteGenerationResult": {
          "ClinicalNoteOutputLocation": s3://amzn-s3-demo-bucket/clinical-note-output-files/clinical-notes.JSON,
          "TranscriptOutputLocation": s3://amzn-s3-demo-bucket/my-output-files/my-file.JSON,
          "Status": <IN_PROGRESS | COMPLETED | FAILED>,
          "FailureReason": <failure_reason>
    }
   }
}
```
+ `UpdateType`：生成该事件的流后分析操作的类型。结果对象的内容因 `UpdateType` 而异。
+ `SessionId`：AWS HealthScribe 流的识别号。使用此 ID 可识别发起事件的流会话，进而找到生成该事件的流后分析。
+ `Status`：流后分析操作的状态。这可以是 `IN_PROGRESS`、`COMPLETED` 或 `FAILED`。
+ `ClinicalNoteOutputLocation`：用于 `ClinicalNoteGenerationResult` 的输出 Amazon S3 存储桶的 URI。
+ `TranscriptOutputLocation`：转录文本的 URI。

### 词汇表事件
<a name="vocab-event"></a>

当[自定义词汇表](custom-vocabulary.md)的状态从 `PENDING` 更改为 `READY` 或 `FAILED` 时，Amazon Transcribe 会生成一个事件。要标识已更改状态并在您的目标中发起事件的自定义词汇表，请使用事件的 `VocabularyName` 字段。Amazon Transcribe 事件包含以下信息。如果您的自定义词汇表状态为 `FAILED`，则会在 `detail` 下添加一个 `FailureReason` 字段。

**注意**  
此事件仅适用于 [https://docs.aws.amazon.com/transcribe/latest/APIReference/API_CreateVocabulary.html](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_CreateVocabulary.html) API 操作。

```
{
    "version": "0",
    "id": "event ID",
    "detail-type": "Vocabulary State Change",
    "source": "aws.transcribe",
    "account": "111122223333",
    "time": "timestamp",
    "region": "us-west-2",
    "resources": [],
    "detail": {
        "VocabularyName": "unique-vocabulary-name",
        "VocabularyState": "READY" (or "FAILED")
    }
}
```
+ `VocabularyName`: 您的自定义词汇表的唯一名称。
+ `VocabularyState`: 您的自定义词汇表的处理状态。可以是 `READY` 或 `FAILED`。