기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
통화 후 분석 출력
통화 후 분석 트랜스크립트는 세그먼트별로 형식으로 표시됩니다 turn-by-turn. 여기에는 통화 분류, 통화 특성(음량 점수, 중단, 침묵 시간, 발언 속도), 통화 요약(문제, 결과 및 조치 항목), 수정 및 감정이 포함됩니다. 또한 대화 특성 요약 정보는 트랜스크립트 끝부분에 있습니다.
정확도를 높이고 산업별 용어 포함 등 사용 사례에 맞게 트랜스크립트를 추가로 사용자 지정하려면 Call Analytics 요청에 사용자 지정 어휘 또는 사용자 지정 언어 모델을 추가하세요. 트랜스크립션 결과에서 원하지 않는 욕설 등의 단어를 마스킹하거나 삭제하거나 태그를 지정하려면 어휘 필터링을 추가하세요. 미디어 파일에 전달할 언어 코드를 잘 모르는 경우 배치 언어 식별을 활성화하여 미디어 파일의 언어를 자동으로 식별할 수 있습니다.
다음 섹션에서는 인사이트 수준의 JSON 출력 예제를 보여줍니다. 컴파일된 출력은 컴파일된 통화 후 분석 출력 섹션을 참조하세요.
통화 분류
트랜스크립션 출력에서 범주 일치가 어떻게 보이는지는 다음과 같습니다. 이 예시는 40,040밀리초 타임스탬프에서 42,460밀리초 타임스탬프까지의 오디오가 '포지티브 해상도' 범주와 일치한다는 것을 보여줍니다. 이 경우 사용자 지정 '포지티브 해상도' 범주에서는 마지막 몇 초 동안 긍정적인 감정이 필요했습니다.
"Categories": { "MatchedDetails": { "
positive-resolution
": { "PointsOfInterest": [ { "BeginOffsetMillis":40040
, "EndOffsetMillis":42460
} ] } }, "MatchedCategories": [ "positive-resolution
" ] },
통화 특성
트랜스크립션 출력의 통화 특성은 다음과 같습니다. 음량 점수는 각 대화 턴에 대해 제공되지만 다른 모든 특성은 자막 끝에 제공됩니다.
"LoudnessScores": [
87.54
,88.74
,90.16
,86.36
,85.56
,85.52
,81.79
,87.74
,89.82
],...
"ConversationCharacteristics": { "NonTalkTime": { "Instances": [], "TotalTimeMillis":0
}, "Interruptions": { "TotalCount":2
, "TotalTimeMillis":10700
, "InterruptionsByInterrupter": { "AGENT": [ { "BeginOffsetMillis":26040
, "DurationMillis":5510
, "EndOffsetMillis":31550
} ], "CUSTOMER": [ { "BeginOffsetMillis":770
, "DurationMillis":5190
, "EndOffsetMillis":5960
} ] } }, "TotalConversationDurationMillis":42460
,...
"TalkSpeed": { "DetailsByParticipant": { "AGENT": { "AverageWordsPerMinute":150
}, "CUSTOMER": { "AverageWordsPerMinute":167
} } }, "TalkTime": { "DetailsByParticipant": { "AGENT": { "TotalTimeMillis":32750
}, "CUSTOMER": { "TotalTimeMillis":18010
} }, "TotalTimeMillis":50760
} },
문제, 조치 항목 및 다음 단계
-
다음 예시에서 문제는 문자 7에서 시작하여 문자 51에서 끝나는 것으로 식별되며, 이는 "레시피 구독을 취소하고 싶습니다"라는 텍스트의 이 부분을 나타냅니다.
"Content": "
Well, I would like to cancel my recipe subscription.
", "IssuesDetected": [ { "CharacterOffsets": { "Begin":7
, "End":51
} } ], -
다음 예시에서 결과는 문자 12에서 시작하여 문자 78에서 끝나는 것으로 식별되며, 이는 텍스트에서 "계정을 모두 변경했으며 이제 할인이 적용됩니다" 부분을 나타냅니다.
"Content": "
Wonderful. I made all changes to your account and now this discount is applied, please check.
", "OutcomesDetected": [ { "CharacterOffsets": { "Begin":12
, "End":78
} } ], -
다음 예시에서 작업 항목은 문자 0에서 시작하여 문자 103에서 끝나는 것으로 식별되며, 이는 텍스트에서 "오늘 모든 세부 정보가 포함된 이메일을 보내고 다음 주에 다시 전화하여 후속 조치를 취하겠습니다" 부분을 나타냅니다.
"Content": "
I will send an email with all the details to you today, and I will call you back next week to follow up. Have a wonderful evening.
", "ActionItemsDetected": [ { "CharacterOffsets": { "Begin":0
, "End":103
} } ],
생성형 통화 요약
트랜스크립션 출력에서 생성형 통화 요약은 다음과 같이 표시됩니다.
"ContactSummary": { "AutoGenerated": { "OverallSummary": { "Content": "A customer wanted to check to see if we had a bag allowance. We told them that we didn't have it, but we could add the bag from Canada to Calgary and then do the one coming back as well." } } }
다음과 같은 경우 요약 생성 없이 분석 작업이 완료됩니다.
-
대화 내용 부족: 대화에는 에이전트와 고객 모두의 턴이 하나 이상 포함되어야 합니다. 대화 콘텐츠가 충분하지 않으면 서비스가 오류 코드 INSUFFICIENT_CONVERSATION_를 반환합니다CONTENT.
-
안전 가드레일: 대화는 적절한 요약이 생성되도록 안전 가드레일을 충족해야 합니다. 이러한 가드레일이 충족되지 않으면 서비스는 오류 코드 FAILED_SAFETY_를 반환합니다GUIDELINES.
오류 코드는 출력 내 Skipped
섹션에서 찾을 수 AnalyticsJobDetails
있습니다. GetCallAnalyticsJob
API 응답CallAnalyticsJobDetails
에서 오류 이유를 찾을 수도 있습니다.
샘플 오류 출력
{ "JobStatus": "COMPLETED", "AnalyticsJobDetails": { "Skipped": [ { "Feature": "GENERATIVE_SUMMARIZATION", "ReasonCode": "INSUFFICIENT_CONVERSATION_CONTENT", "Message": "The conversation needs to have at least one turn from both the participants to generate summary" } ] }, "LanguageCode": "en-US", "AccountId": "***************", "JobName": "Test2-copy",
...
}
감정 분석
트랜스크립션 출력의 감정 분석은 다음과 같습니다.
-
정성적 turn-by-turn 감정 값:
"Content": "
That's very sad to hear. Can I offer you a 50% discount to have you stay with us?
",...
"BeginOffsetMillis":12180
, "EndOffsetMillis":16960
, "Sentiment": "NEGATIVE
", "ParticipantRole": "AGENT
"...
"Content": "That is a very generous offer. And I accept.
",...
"BeginOffsetMillis":17140
, "EndOffsetMillis":19860
, "Sentiment": "POSITIVE
", "ParticipantRole": "CUSTOMER
" -
전체 통화의 질적 감정 값:
"Sentiment": { "OverallSentiment": { "AGENT":
2.5
, "CUSTOMER":2.1
}, -
참가자별 및 통화 분기별 질적 감정 값:
"SentimentByPeriod": { "QUARTER": { "AGENT": [ { "Score":
0.0
, "BeginOffsetMillis":0
, "EndOffsetMillis":9862
}, { "Score":-5.0
, "BeginOffsetMillis":9862
, "EndOffsetMillis":19725
}, { "Score":5.0
, "BeginOffsetMillis":19725
, "EndOffsetMillis":29587
}, { "Score":5.0
, "BeginOffsetMillis":29587
, "EndOffsetMillis":39450
} ], "CUSTOMER": [ { "Score":-2.5
, "BeginOffsetMillis":0
, "EndOffsetMillis":10615
}, { "Score":5.0
, "BeginOffsetMillis":10615
, "EndOffsetMillis":21230
}, { "Score":2.5
, "BeginOffsetMillis":21230
, "EndOffsetMillis":31845
}, { "Score":5.0
, "BeginOffsetMillis":31845
, "EndOffsetMillis":42460
} ] } }
PII 수정
다음은 트랜스크립션 출력에서 PII 편집된 내용입니다.
"Content": "[PII], my name is [PII], how can I help?", "Redaction": [{ "Confidence": "0.9998", "Type": "NAME", "Category": "PII" }]
자세한 내용은 배치 작업PII에서 수정을 참조하세요.
언어 식별
이 기능이 활성화된 경우 트랜스크립션 출력의 언어 식별은 다음과 같습니다.
"LanguageIdentification": [{ "Code": "en-US", "Score": "0.8299" }, { "Code": "en-NZ", "Score": "0.0728" }, { "Code": "zh-TW", "Score": "0.0695" }, { "Code": "th-TH", "Score": "0.0156" }, { "Code": "en-ZA", "Score": "0.0121" }]
위 출력 예시에서 언어 식별은 언어 코드에 신뢰도 점수를 부여합니다. 점수가 가장 높은 결과가 트랜스크립션 언어 코드로 선택됩니다. 모드 세부 정보는 미디어에서 미디어의 지배적 언어 식별을 참조하세요.
컴파일된 통화 후 분석 출력
다음 트랜스크립션 출력에서는 일부 내용을 간결하게 줄임표로 대체했습니다.
이 샘플에는 선택적 기능 - 생성형 통화 요약이 포함되어 있습니다.
{ "JobStatus": "COMPLETED", "LanguageCode": "en-US", "Transcript": [ { "LoudnessScores": [ 78.63, 78.37, 77.98, 74.18 ], "Content": "[PII], my name is [PII], how can I help?",
...
"Content": "Well, I would like to cancel my recipe subscription.", "IssuesDetected": [ { "CharacterOffsets": { "Begin": 7, "End": 51 } } ],...
"Content": "That's very sad to hear. Can I offer you a 50% discount to have you stay with us?", "Items": [...
], "Id": "649afe93-1e59-4ae9-a3ba-a0a613868f5d", "BeginOffsetMillis": 12180, "EndOffsetMillis": 16960, "Sentiment": "NEGATIVE", "ParticipantRole": "AGENT" }, { "LoudnessScores": [ 80.22, 79.48, 82.81 ], "Content": "That is a very generous offer. And I accept.", "Items": [...
], "Id": "f9266cba-34df-4ca8-9cea-4f62a52a7981", "BeginOffsetMillis": 17140, "EndOffsetMillis": 19860, "Sentiment": "POSITIVE", "ParticipantRole": "CUSTOMER" }, {...
"Content": "Wonderful. I made all changes to your account and now this discount is applied, please check.", "OutcomesDetected": [ { "CharacterOffsets": { "Begin": 12, "End": 78 } } ],...
"Content": "I will send an email with all the details to you today, and I will call you back next week to follow up. Have a wonderful evening.", "Items": [...
], "Id": "78cd0923-cafd-44a5-a66e-09515796572f", "BeginOffsetMillis": 31800, "EndOffsetMillis": 39450, "Sentiment": "POSITIVE", "ParticipantRole": "AGENT" }, { "LoudnessScores": [ 78.54, 68.76, 67.76 ], "Content": "Thank you very much, sir. Goodbye.", "Items": [...
], "Id": "5c5e6be0-8349-4767-8447-986f995af7c3", "BeginOffsetMillis": 40040, "EndOffsetMillis": 42460, "Sentiment": "POSITIVE", "ParticipantRole": "CUSTOMER" } ],...
"Categories": { "MatchedDetails": { "positive-resolution": { "PointsOfInterest": [ { "BeginOffsetMillis": 40040, "EndOffsetMillis": 42460 } ] } }, "MatchedCategories": [ "positive-resolution" ] },...
"ConversationCharacteristics": { "NonTalkTime": { "Instances": [], "TotalTimeMillis": 0 }, "Interruptions": { "TotalCount": 2, "TotalTimeMillis": 10700, "InterruptionsByInterrupter": { "AGENT": [ { "BeginOffsetMillis": 26040, "DurationMillis": 5510, "EndOffsetMillis": 31550 } ], "CUSTOMER": [ { "BeginOffsetMillis": 770, "DurationMillis": 5190, "EndOffsetMillis": 5960 } ] } }, "TotalConversationDurationMillis": 42460, "Sentiment": { "OverallSentiment": { "AGENT": 2.5, "CUSTOMER": 2.1 }, "SentimentByPeriod": { "QUARTER": { "AGENT": [ { "Score": 0.0, "BeginOffsetMillis": 0, "EndOffsetMillis": 9862 }, { "Score": -5.0, "BeginOffsetMillis": 9862, "EndOffsetMillis": 19725 }, { "Score": 5.0, "BeginOffsetMillis": 19725, "EndOffsetMillis": 29587 }, { "Score": 5.0, "BeginOffsetMillis": 29587, "EndOffsetMillis": 39450 } ], "CUSTOMER": [ { "Score": -2.5, "BeginOffsetMillis": 0, "EndOffsetMillis": 10615 }, { "Score": 5.0, "BeginOffsetMillis": 10615, "EndOffsetMillis": 21230 }, { "Score": 2.5, "BeginOffsetMillis": 21230, "EndOffsetMillis": 31845 }, { "Score": 5.0, "BeginOffsetMillis": 31845, "EndOffsetMillis": 42460 } ] } } }, "TalkSpeed": { "DetailsByParticipant": { "AGENT": { "AverageWordsPerMinute": 150 }, "CUSTOMER": { "AverageWordsPerMinute": 167 } } }, "TalkTime": { "DetailsByParticipant": { "AGENT": { "TotalTimeMillis": 32750 }, "CUSTOMER": { "TotalTimeMillis": 18010 } }, "TotalTimeMillis": 50760 }, "ContactSummary": { // Optional feature - Generative call summarization "AutoGenerated": { "OverallSummary": { "Content": "The customer initially wanted to cancel but the agent convinced them to stay by offering a 50% discount, which the customer accepted after reconsidering cancelling given the significant savings. The agent ensured the discount was applied and said they would follow up to ensure the customer remained happy with the revised subscription." } } } }, "AnalyticsJobDetails": { "Skipped": [] },...
}