通話後分析出力 - Amazon Transcribe

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

通話後分析出力

通話後分析のトランスクリプトは、セグメントごとに turn-by-turn フォーマットで表示されます。これらには、通話の分類、コールの特性 (ラウドネススコア、中断、非通話時間、通話速度)、コールサマリー (問題、結果、アクションアイテム)、リダクション、感情が含まれます。さらに、会話の特徴の概要はトランスクリプトの最後に記載されています。

精度を高め、業界固有の用語など、ユースケースに合わせてトランスクリプトをさらにカスタマイズするには、コール分析リクエストにカスタム語彙またはカスタム言語モデルを使用します。冒涜的な言葉など、文字起こし結果に表示したくない言葉をマスキング、削除、またはタグ付けするには、語彙フィルタリングを追加します。メディアファイルに渡す言語コードがわからない場合は、バッチ言語識別を有効にして、メディアファイルの言語を自動的に識別できます。

以下のセクションでは、インサイトレベルでの JSON 出力の例を示します。コンパイルされた出力については、「コンパイル済み通話後分析出力」を参照してください。

通話の分類

カテゴリマッチは、次のように文字起こし出力で表示されます。この例は、40040 ミリ秒のタイムスタンプから 42460 ミリ秒のタイムスタンプまでの音声が「ポジティブ解決」カテゴリと一致していることを示しています。この場合、カスタムの「ポジティブ解決」カテゴリでは、音声の最後の数秒間はポジティブな感情が必要でした。

"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." } } }

次の場合、分析ジョブはサマリー生成なしで完了します。

  • 会話コンテンツが不十分: 会話には、エージェントと顧客の両方からのターンが少なくとも 1 回含まれている必要があります。会話コンテンツが不十分な場合、サービスはエラーコード INSUFFICIENT_CONVERSATION_CONTENT を返します。

  • 安全ガードレール: 会話は、適切な概要が生成されるように、所定の安全ガードレールを満たす必要があります。これらのガードレールが満たされない場合、サービスはエラーコード FAILED_"TY_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": [] }, ... }