알림에 대한 이해 - Amazon Chime SDK

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

알림에 대한 이해

음성 분석은 화자 검색 또는 음성 톤 분석 작업이 시작될 때, 실행 중일 때, 완료될 때 자동으로 이벤트를 대상으로 전송합니다. 알림 대상을 사용하여 이러한 이벤트를 수신합니다. 워크플로 또는 애플리케이션에 고가용성이 필요한 경우 여러 알림 대상을 사용하는 것이 좋습니다.

또한 알림 대상에 액세스하는 데 필요한 정책이 포함된 IAM 역할을 사용해야 합니다. 자세한 정보는 통화 분석 리소스 액세스 역할 사용을 참조하세요.

참고

Amazon SQS 및 Amazon SNS의 경우 대기열을 지원하지 first-in-first-out 않습니다. 따라서 메시지가 잘못된 순서로 도착할 수 있습니다. 타임스탬프를 확인하여 필요에 따라 메시지를 정렬하고 Amazon DynamoDB와 같은 데이터 스토어에 메시지를 보관하는 것이 좋습니다. 작업 결과를 위한 설문조사에 설명된 Get API를 사용하여 최신 결과를 받을 수도 있습니다.

다음 표에는 이벤트와 해당 세부 정보 유형이 나와 있습니다.

알림 이벤트

세부 정보 유형

음성 분석 메타데이터

VoiceAnalyticsStatus

화자 검색

SpeakerSearchStatus

음성 톤 분석

VoiceToneAnalysisStatus

화자 검색 이벤트

화자 검색 이벤트에는 SpeakerSearchStatus 세부 유형이 있습니다.

Amazon Chime SDK 음성 커넥터는 다음과 같은 화자 검색 이벤트를 전송합니다.

  • 식별 일치

  • 음성 임베딩 생성

이벤트에는 다음과 같은 상태가 있을 수 있습니다:

  • IdentificationSuccessful – 주어진 음성 프로필 도메인에서 높은 신뢰도 점수로 일치하는 음성 프로필 ID를 하나 이상 식별하는 데 성공했습니다.

  • IdentificationFailure – 식별을 수행하지 못했습니다. 원인: 발신자가 10초 이상 말을 하지 않았으며, 음질이 좋지 않습니다.

  • IdentificationNoMatchesFound – 해당 음성 프로필 도메인에서 신뢰도가 높은 일치 항목을 찾을 수 없습니다. 전화를 건 사람이 처음이거나 목소리가 바뀌었을 수 있습니다.

  • VoiceprintGenerationSuccessful – 시스템이 20초 분량의 무음이 아닌 오디오를 사용하여 음성 임베딩을 생성했습니다.

  • VoiceprintGenerationFailure – 시스템에서 음성 임베딩을 생성하지 못했습니다. 원인: 발신자가 20초 이상 말을 하지 않았으며, 음질이 좋지 않습니다.

식별 일치

특정 transactionId 항목에 대해 StartSpeakerSearchTaskAPI가 호출되면 Voice Connector 서비스는 10초 동안 무음 음성이 지속되면 ID 일치 알림을 반환합니다. 이 서비스는 음성 프로필 ID와 [0, 1] 범위의 신뢰도 점수와 함께 상위 10개의 매칭을 반환합니다. 신뢰도 점수가 높을수록 통화 중인 화자가 음성 프로필 ID와 일치할 가능성이 높아집니다. 기계 학습 모델에서 일치하는 항목이 없는 경우 알림의 detailStatus 필드에 IdentificationNoMatchesFound가 포함됩니다.

다음 예제는 매칭 성공 알림을 보여줍니다.

{ "version": "0", "id": "12345678-1234-1234-1234-111122223333", "detail-type": "SpeakerSearchStatus", "service-type": "VoiceAnalytics", "source": "aws.chime", "account": "111122223333", "time": "yyyy-mm-ddThh:mm:ssZ", "region": "us-east-1", "resources": [], "detail": { "taskId": "uuid", "detailStatus": "IdentificationSuccessful", "speakerSearchDetails" : { "results": [ { "voiceProfileId": "vp-505e0992-82da-49eb-9d4a-4b34772b96b6", "confidenceScore": "0.94567856", }, { "voiceProfileId": "vp-fba9cbfa-4b8d-4f10-9e41-9dfdd66545ab", "confidenceScore": "0.82783350", }, { "voiceProfileId": "vp-746995fd-16dc-45b9-8965-89569d1cf787", "confidenceScore": "0.77136436", } ] }, "mediaInsightsPipelineId": "87654321-33ca-4dc6-9cdf-abcde6612345", "sourceArn": "arn:aws:chime:us-east-1:111122223333:media-pipeline/87654321-33ca-4dc6-9cdf-abcde6612345", "streamArn": "arn:aws:kinesisvideo:us-east-1:111122223333:stream/my-stream/0123456789012", "channelId": 0 } }

음성 임베딩 생성

추가로 10초 동안 무음이 아닌 발화가 지속되면 음성 커넥터는 알림 대상에 음성 임베딩 생성 알림을 보냅니다. 음성 프로필에 새 음성 임베딩을 등록하거나 이미 음성 프로필에 있는 성문을 업데이트할 수 있습니다.

다음 예제는 매칭에 성공하면 관련 음성 프로필을 업데이트할 수 있다는 의미의 알림을 보여줍니다.

{ "version": "0", "id": "12345678-1234-1234-1234-111122223333", "detail-type": "SpeakerSearchStatus", "service-type": "VoiceAnalytics", "source": "aws.chime", "account": "111122223333", "time": "yyyy-mm-ddThh:mm:ssZ", "region": "us-east-1", "resources": [], "detail": { "taskId": "guid", "detailStatus": "VoiceprintGenerationSuccess", "mediaInsightsPipelineId": "87654321-33ca-4dc6-9cdf-abcde6612345", "sourceArn": "arn:aws:chime:us-east-1:111122223333:media-pipeline/87654321-33ca-4dc6-9cdf-abcde6612345", "streamArn": "arn:aws:kinesisvideo:us-east-1:111122223333:stream/my-stream/0123456789012", "channelId": 0 } }

음성 톤 분석 이벤트

음성 톤 분석 이벤트에는 VoiceToneAnalysisStatus 세부 유형이 있습니다. 분석 결과 다음과 같은 상태가 반환될 수 있습니다.

  • VoiceToneAnalysisSuccessful – 발신자와 상담원의 음성을 긍정, 부정, 중립 등 감정의 확률로 분석하는 데 성공했습니다.

  • VoiceToneAnalysisFailure – 톤 분석을 수행하지 못했습니다. 발신자가 10초 동안 말을 하지 않고 전화를 끊거나 오디오 품질이 너무 나빠지면 이런 일이 발생할 수 있습니다.

  • VoiceToneAnalysisCompleted – 사용자와 상담원의 음성을 전체 통화에 대한 감정 확률로 분석하는 데 성공했습니다. 음성 톤 분석이 완료될 때 전송되는 마지막 이벤트입니다.

다음 예제에서는 일반적인 음성 톤 분석 이벤트를 보여줍니다.

{ "detail-type": "VoiceToneAnalysisStatus", "service-type": "VoiceAnalytics", "source": "aws.chime", "account": "216539279014", "time": "2022-08-26T17:55:15.563441Z", "region": "us-east-1", "detail": { "taskId": "uuid", "detailStatus": "VoiceToneAnalysisSuccessful", "voiceToneAnalysisDetails": { "currentAverageVoiceTone": { "startTime": "2022-08-26T17:55:15.563Z", "endTime": "2022-08-26T17:55:45.720Z", "voiceToneLabel": "neutral", "voiceToneScore": { "neutral": "0.83", "positive": "0.13", "negative": "0.04" } }, "overallAverageVoiceTone": { "startTime": "2022-08-26T16:23:13.344Z", "endTime": "2022-08-26T17:55:45.720Z", "voiceToneLabel": "positive", "voiceToneScore": { "neutral": "0.25", "positive": "0.65", "negative": "0.1" } } }, "startFragmentNumber": "01234567890123456789", "mediaInsightsPipelineId": "87654321-33ca-4dc6-9cdf-abcde6612345", "sourceArn": "arn:aws:chime:us-east-1:111122223333:media-pipeline/87654321-33ca-4dc6-9cdf-abcde6612345", "streamArn": "arn:aws:kinesisvideo:us-east-1:111122223333:stream/my-stream/0123456789012", "channelId": 0 }, "version": "0", "id": "Id-f928dfe3-f44b-4965-8a17-612f9fb92d59" }

통화 후 요약 이벤트

통화 종료 후 5분 후에 통화 요약 이벤트가 전송됩니다. 이 요약은 통화 중에 발생한 화자 검색 작업에 대한 개요를 제공합니다.

다음 예에서는 가장 일치하는 음성 프로필, 확인된 화자 ID, 통화 중에 이루어진 CreateVoiceProfileUpdateVoiceProfile API 호출을 통해 생성되거나 업데이트된 음성 프로필 목록을 포함한 통화 후 요약 정보를 보여줍니다.

{ "version": "0", "id": "12345678-1234-1234-1234-111122223333", "detail-type": "VoiceAnalyticsStatus", "service-type": "VoiceAnalytics", "source": "aws.chime", "account": "111122223333", "time": "yyyy-mm-ddThh:mm:ssZ", "region": "us-east-1", "resources": [], "detail": { "detailStatus": "PostCallVoiceAnalytics", "callId": "22e8dee8-bbd7-4f94-927b-2d0ebaeddc1c", "transactionId": "daaeb6bf-2fe2-4e51-984e-d0fbf2f09436", "voiceConnectorId": "abcdef1ghij2klmno3pqr4", "isCaller": true | false, "speakerSearchResults": { "bestMatchedVoiceProfileId": "vp-04c25ba1-a059-4fd3-8495-4ac91b55e2bf", "customerValidatedCallerIdentity": "vp-04c25ba1-a059-4fd3-8495-4ac91b55e2bf", "createVoiceProfileTransactions": [ { "voiceProfileId": "vp-04c25ba1-a059-4fd3-8495-4ac91b55e2bf", "requestTimestamp": "2022-12-14T18:38:38.796Z" }, { "voiceProfileId": "vp-04c25ba1-a059-4fd3-8495-4ac91b55e2bf", "requestTimestamp": "2022-12-14T18:38:38.796Z", } ], "updateVoiceProfileTransactions": [ { "voiceProfileId": "vp-04c25ba1-a059-4fd3-8495-4ac91b55e2bf", "requestTimestamp": "2022-12-14T18:38:38.796Z", }, { "voiceProfileId": "vp-04c25ba1-a059-4fd3-8495-4ac91b55e2bf", "requestTimestamp": "2022-12-14T18:38:38.796Z", } ] } } }