本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
配合使用 Amazon EventBridge和 Amazon Transcribe
利用 Amazon EventBridge,您可以通过触发其它 AWS 服务中的事件来响应您的 Amazon Transcribe 作业中的状态更改。当转录作业更改状态时,EventBridge 会自动将事件发送到事件流。您可以创建规则来定义希望在事件流中监控的事件以及在这些事件发生时 EventBridge 应采取的操作。例如,将事件路由到其他服务(或目标),然后再采取操作。例如,您可以将规则配置为在成功完成转录作业时将事件路由到 AWS Lambda 函数。要定义 EventBridge 规则,请参阅以下各节。
您可以通过多个渠道接收事件通知,包括电子邮件、聊天应用程序中的 Amazon Q 开发者版聊天通知或 AWS Console Mobile Application 推送通知。还可以在控制台通知中心
定义 EventBridge 规则
要定义 EventBridge 规则,请使用 AWS 管理控制台
在使用 EventBridge 之前,请注意以下定义:
-
事件–事件指示某个转录作业的状态发生更改。例如,当作业的
TranscriptionJobStatus从IN_PROGRESS更改为COMPLETED时。 -
目标–目标是其它处理事件的 AWS 服务。例如,AWS Lambda 或 Amazon Simple Notification Service(Amazon SNS)。目标接收 JSON 格式的事件。
-
规则–规则与您希望 EventBridge 监视的传入事件匹配并将这些事件路由到目标以进行处理。如果规则将一个事件路由到多个目标,则所有目标将并行处理该事件。规则可以自定义发送到目标的 JSON。
Amazon EventBridge 事件是尽力发出的。有关在 EventBridge 中创建和管理事件的更多信息,请参阅《Amazon EventBridge 用户指南》中的 Amazon EventBridge 事件。
以下是转录作业状态变为 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 事件
Amazon EventBridge 记录几个 Amazon Transcribe 事件:
这些事件都包含以下共享字段:
-
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下面。每个事件示例之后会在以下部分中定义这些唯一字段。
-
转录作业事件
当作业的状态从 IN_PROGRESS 更改为 COMPLETED 或 FAILED 时,Amazon Transcribe 会生成事件。要标识已更改状态并在您的目标中发起事件的作业,请使用事件的 TranscriptionJobName 字段。Amazon Transcribe 事件包含以下信息。如果您的转录作业状态为 FAILED,则会在 detail 下添加一个 FailureReason 字段。
请注意,此事件仅适用于 StartTranscriptionJob 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。
语言识别事件
启用自动语言识别时,Amazon Transcribe 会在语言识别状态为 COMPLETED 或 FAILED 时生成一个事件。要标识已更改状态并在您的目标中发起事件的作业,请使用事件的 JobName 字段。Amazon Transcribe 事件包含以下信息。如果您的语言识别状态为 FAILED,则会在 detail 下添加一个 FailureReason 字段。
请注意,此事件仅适用于包含 LanguageIdSettings 参数时的 StartTranscriptionJob 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。
呼叫分析事件
当呼叫分析作业的状态从 IN_PROGRESS 更改为 COMPLETED 或 FAILED 时,Amazon Transcribe 会生成事件。要标识已更改状态并在您的目标中触发事件的呼叫分析作业,请使用事件的 JobName 字段。Amazon Transcribe 事件包含以下信息。如果您的呼叫分析作业状态为 FAILED,则会在 detail 下添加一个 FailureReason 字段。
请注意,此事件仅适用于 StartCallAnalyticsJob 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:通话分析转录作业的详细信息,包括有关跳过的分析功能的信息。
呼叫分析通话后事件
当通话后分析转录的状态从 IN_PROGRESS 变为 COMPLETED 或 FAILED 时,Amazon Transcribe 会生成一个事件。要标识已更改状态并在您的目标中触发事件的呼叫分析通话后作业,请使用事件的 StreamingSessionId 字段。
请注意,此事件仅适用于包含 PostCallAnalyticsSettings 参数时的 StartCallAnalyticsStreamTranscription 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 流后分析事件
当 AWS HealthScribe 流后分析操作的状态发生变化时(如 ClinicalNoteGenerationResult 从 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。
词汇表事件
当自定义词汇表的状态从 PENDING 更改为 READY 或 FAILED 时,Amazon Transcribe 会生成一个事件。要标识已更改状态并在您的目标中发起事件的自定义词汇表,请使用事件的 VocabularyName 字段。Amazon Transcribe 事件包含以下信息。如果您的自定义词汇表状态为 FAILED,则会在 detail 下添加一个 FailureReason 字段。
注意
此事件仅适用于 CreateVocabulary 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。