本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon Connect Voice ID 事件架构
Voice ID 会为每个事务生成事件:注册、身份验证或在监视列表中检测欺诈者。事件被发送到 EventBridge 默认事件总线。
您可以使用监控语音 ID 事件,为语音 ID 身份验证结果和监视列表中欺诈者的检测创建分析管道。 EventBridge 使用本主题中提供的架构,您可以配置 EventBridge 规则来侦听和筛选相关的语音 ID 事件,然后通过 Amazon Data Firehose 处理这些事件,将其存储在您选择的数据仓库中。
例如,您可能需要近乎实时地跟踪 Voice ID 分析。为此,您可以提取所有 Evaluate-Session
事件,并获取 authenticationResult
和 fraudDetectionResult
。
尽最大努力发出事件。
事件中的常用字段
-
version
- 事件数据的版本。 -
id
-由生成的事件的唯一标识符 EventBridge -
detail-type
- 事件的详细信息标识符。 -
source
- 事件的源。这始终为aws.voiceid
。 -
account
- AWS 账号。 -
timestamp
- 事件以 UTC 格式发布的日期和时间。 -
region
-发出 API 调用的 AWS 区域。 -
resources
- API 调用使用的资源。 -
detail
- 有关事件的详细信息:-
detail.sourceId
- 由 Voice ID 生成的唯一 ID,可用于重复数据删除。 -
detail.action
- 类似于正在调用的 API。 -
detail.status
- 指定操作的状态:成功或失败。 -
detail.errorInfo
- 在 Voice ID 中出现指定操作错误时填充。
-
以下是发出事件的架构。
开启会话操作
在流开始(设置后)、流结束和失败时发出事件。
{...commonfields "detail-type": "VoiceId Start Session Action", "detail": { "sourceId": String, "action": "START_SESSION", "status": String, "domainId": String, "session": { "sessionId": String, "sessionName": String, "authenticationConfiguration": { "acceptanceThreshold":Integer }, "fraudDetectionConfiguration": { "riskThreshold":Integer, "watchlistId": String }, "streamingConfiguration": { "authenticationMinimumSpeechInSeconds": Integer }, "enrollmentAudioProgress": { "audioAggregationStatus": String, "audioAggregationStartedAt": "Timestamp", "audioAggregationEndedAt": "Timestamp" }, "authenticationAudioProgress": { "audioAggregationStartedAt": "Timestamp", "audioAggregationEndedAt": "Timestamp" }, "fraudDetectionAudioProgress": { "audioAggregationStartedAt": "Timestamp", "audioAggregationEndedAt": "Timestamp" }, "generatedSpeakerId": String }, "errorInfo": { "errorMessage": String, "errorType": String, "errorCode": Integer } } }
更新会话操作
内部会话更新成功或失败时发出事件。
{...commonfields "detail-type": "VoiceId Update Session Action", "detail": { "sourceId": String, "action": "UPDATE_SESSION", "status": String, "domainId": String, "session": { "sessionId": String, "sessionName": String, "authenticationConfiguration": { "acceptanceThreshold": Integer }, "fraudDetectionConfiguration": { "riskThreshold": Integer, "watchlistId": String }, "streamingConfiguration": { "authenticationMinimumSpeechInSeconds": Integer }, "generatedSpeakerId": String }, "errorInfo": { "errorMessage": String, "errorType": String, "errorCode": Integer } } }
评估会话操作
会话评估成功或失败时发出事件。原因可能是 KNOWN_FRAUDSTER 或 VOICE_SPOOFING。
{...commonfields "detail-type": "VoiceId Evaluate Session Action", "detail": { "sourceId": String, "action": "EVALUATE_SESSION", "status": String, "domainId": String, "session": { "sessionId": String, "sessionName": String, "generatedSpeakerId": String, "streamingStatus": String, "authenticationResult": { "authenticationResultId": String, "decision": String, "score": Integer, "audioAggregationStartedAt": "Timestamp", "audioAggregationEndedAt": "Timestamp", "configuration": { "acceptanceThreshold": Integer } }, "fraudDetectionResult": { "fraudDetectionResultId": String, "decision": String, "reasons": [String], "audioAggregationStartedAt": "Timestamp", "audioAggregationEndedAt": "Timestamp", "configuration": { "riskThreshold": Integer }, "riskDetails": { "knownFraudsterRisk": { "generatedFraudsterId": String, "riskScore": Integer, "watchlistId": String }, "voiceSpoofingRisk": { "riskScore": Integer } } } }, "errorInfo": { "errorMessage": String, "errorType": String, "errorCode": Integer } } }
呼叫方操作
在选择退出呼叫方、删除呼叫方或注册呼叫方成功或失败时发出事件。
{...commonfields "detail-type": "VoiceId Speaker Action", "detail": { "sourceId": String, "domainID": String, "action": String, "status": String, "generatedSpeakerId": String, "data": { "enrollmentSource": String, "enrollmentSourceId": String, "enrollmentStatus": String }, "errorInfo": { "errorMessage": String, "errorType": String, "errorCode": Integer } } }
欺诈者操作
成功注册或删除欺诈者时发出事件。
当欺诈者与监视列表关联或取消关联时,不会发出事件。
{...commonfields "detail-type": "VoiceId Fraudster Action", "detail": { "sourceId": String, "domainID": String, "action": String, "status": String, "generatedFraudsterId": String, "watchlistIds": [String], "data": { "registrationSource": String, "registrationSourceId": String, "registrationStatus": String }, "errorInfo": { "errorMessage": String, "errorType": String, "errorCode": Integer } } }
EnrollBySession
提交注册请求时发出此事件。当实际注册成功或失败时,会发出 Speaker
事件。
{...commonfields "detail-type": "VoiceId Session Speaker Enrollment Action", "detail": { "sourceId": String, "domainId": String, "action": "SESSION_ENROLLMENT_REQUEST", "status": String, "sessionId": String, "sessionName": String, "errorInfo": { "errorMessage": String, "errorType": String, "errorCode": Integer } } }
StartSpeakerEnrollmentJob
在批量注册请求提交、成功或失败时发出此事件。将为每位发言者发出一个 Speaker
事件,以指示相应的注册是成功还是失败。
{...commonfields "detail-type": "VoiceID Batch Speaker Enrollment Action", "detail": { "sourceId": String, "domainId": String, "action": "BATCH_ENROLLMENT_REQUEST", "status": String, "batchJobId": String, "data": { "dataAccessRoleArn": String, "enrollmentConfig": { "existingEnrollmentAction": String, "fraudDetectionConfig": { "fraudDetectionAction": String, "riskThreshold": Integer, "watchlistIds": [String], } }, "inputDataConfig": { "s3Uri": String }, "outputDataConfig": { "s3Uri": String, "kmsKeyId": String } }, "errorInfo": { "errorMessage": String, "errorType": String, "errorCode": Integer } } }
StartFraudsterRegistrationJob
在批量注册请求提交、成功或失败时发出此事件。将为每位欺诈者发出一个 Fraudster
事件,以指示相应的注册是成功还是失败。
{...commonfields "detail-type": "VoiceId Batch Fraudster Registration Action", "detail": { "sourceId": String, "domainId": String, "action": "BATCH_REGISTRATION_REQUEST", "status": String, "batchJobId": String, "data": { "dataAccessRoleArn": String, "registrationConfig": { "duplicateRegistrationAction": String, "fraudsterSimilarityThreshold": Integer, "watchlistIds": [String], } "inputDataConfig": { "s3Uri": String }, "outputDataConfig": { "s3Uri": String, "kmsKeyId": String } }, "errorInfo": { "errorMessage": String, "errorType": String, "errorCode": Integer } } }