

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 呼叫 Amazon Chime SDK 的分析處理器和輸出目的地
<a name="call-analytics-processor-and-output-destinations"></a>

 每個媒體洞見管道組態只能指定唯一元素一次。所有處理器和接收器都必須位於相同的 AWS 帳戶中，而且您必須在與您呼叫的端點相同的 AWS 區域中建立它們。例如，如果您使用 Amazon Chime SDK 媒體管道的`us-east-1`端點，則無法從 `us-west-2`區域傳遞 Kinesis Data Stream。

展開每個區段以取得每個目的地的相關資訊。

## Amazon Transcribe Call Analytics 處理器目的地
<a name="amazon-transcribe-call-analytics-processor"></a>

支援的接收器：`KinesisDataStreamSink`。

您無法將此處理器與 Amazon Transcribe 處理器結合。如需 Amazon Transcribe Call Analytics 的詳細資訊，請參閱《*Amazon Transcribe 開發人員指南*》中的[即時通話分析](https://docs.aws.amazon.com/transcribe/latest/dg/call-analytics-streaming.html)。如果您在 `AmazonTranscribeCallAnalyticsProcessorConfiguration` API 呼叫`PostCallAnalyticsSettings`中包含 來啟用[通話後分析](https://docs.aws.amazon.com/transcribe/latest/dg/tca-post-call.html)，當媒體洞察管道停止且處理完成時，您會在指定的 Amazon S3 位置收到成品。

**注意**  
如果您暫停管道超過 35 秒，然後繼續，通話後成品會在 Amazon S3 儲存貯體中具有不同工作階段 IDs 的個別檔案中產生。

通話後成品包括分析 JSON 檔案和錄音 WAV 或 Opus 檔案。在中繼資料區段`onetimeMetadata`中，每個 Amazon Transcribe 呼叫分析通話後工作階段的修訂後 （如果您啟用內容修訂） 和非編輯記錄檔案的 Amazon S3 儲存貯體 URL 會傳送至 Kinesis Data Stream 一次。 Amazon Transcribe 

使用 Amazon Transcribe 呼叫分析的呼叫分析會從 Kinesis Video Stream 取得音訊資料輸入。
+ 支援的媒體編碼：PCM 簽署的 16 位元小端音訊。
+ 支援的媒體取樣率：介於 8，000 Hz 和 48，000 Hz 之間。

`StreamConfiguration` Amazon Transcribe Analytics 程序的 輸入：
+ 您必須`KinesisVideoStreamArn`為每個串流指定 。
+ （選用） KVS 會在指定片段之後使用 區塊`FragmentNumber`啟動呼叫分析任務。如果未提供，則會在 Kinesis 影片串流上使用最新的區塊。
+ `StreamChannelDefinition` 定義誰在說話。Amazon Transcribe 呼叫分析需要雙聲道音訊。當您呼叫 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaInsightsPipeline.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaInsightsPipeline.html) API 時，必須指定哪個發言者位於哪個頻道上。例如，如果您的客服人員先說話，您可以將 `ChannelId` 設定為 `0` 以表示第一個頻道，並將 `ParticipantRole` 設定為 `AGENT` 以表示客服人員正在說話。

**注意**  
當您使用 Voice Connector 建立`MediaInsightsPipeline`具有 Amazon Transcribe 呼叫分析處理器的 時，語音連接器帳戶腿部音訊是 ，`AGENT`而 PSTN 腿部音訊是 `CUSTOMER` `ParticipantRole`。  
對於語音連接器 SIPREC，我們依賴 SIPREC 中繼資料。在大多數情況下，具有最低語義值的串流標籤會被視為 `AGENT`。

下列範例顯示一個雙聲道音訊串流的 Kinesis Video Stream 輸入。

```
"StreamChannelDefinition" : {
    "NumberOfChannels" : 2
    "ChannelDefinitions": [
        {
            "ChannelId": 0,
            "ParticipantRole": "AGENT"
        },
        {
            "ChannelId": 1,
            "ParticipantRole": "CUSTOMER"
        }
    ]
}
```

 相反地，以下範例顯示來自兩個不同 Kinesis Video 串流的兩個單輸入。

```
KVS-1:
    "StreamChannelDefinition" : {
        "NumberOfChannels"  : 1
        "ChannelDefinitions": [
            {
                "ChannelId": 0,
               "ParticipantRole": "AGENT"
            }
        ]
    }
KVS-2:
    "StreamChannelDefinition" : {
        "NumberOfChannels"  : 1
        "ChannelDefinitions": [
            {
                "ChannelId": 1,
               "ParticipantRole": "CUSTOMER"
            }
        ]
    }
```

## Amazon Transcribe 呼叫分析輸出
<a name="amazon-transcribe-call-analytics-output"></a>

 每個 Amazon Transcribe 記錄都包含 `UtteranceEvent`或 `CategoryEvent`，但不能同時包含兩者。 `CategoryEvents` 具有 `detail-type`的 `TranscribeCallAnalyticsCategoryEvent`。

下列範例顯示 Amazon Transcribe 的一次性中繼資料輸出格式。

```
{
    "time": "{{string}}", // ISO8601 format
    "service-type": "CallAnalytics",
    "detail-type": "CallAnalyticsMetadata",
    "mediaInsightsPipelineId": "{{string}}",
    "metadata": "{{string}}" // JSON encoded string of the metadata object
}

// metadata object
{
    "voiceConnectorId": "{{string}}",
    "callId": "{{string}}",
    "transactionId": "{{string}}",
    "fromNumber": "{{string}}",
    "toNumber": "{{string}}",
    "direction": "{{string}}",
    "oneTimeMetadata": "{{string}}" // JSON encoded string of oneTimeMetadata object
}
 
// onetimeMetadata object
{
    "inviteHeaders": "{{string}}", // JSON encoded string of SIP Invite headers key-value pair
    "siprecMetadata": "{{string}}", // siprec metadata in XML 
    "siprecMetadataJson": "{{string}}", // siprec metadata in JSON (converted from above XML) 
    
    // If PostcallSettings are enabled for Amazon Transcribe Call Analytics
    "s3RecordingUrl": "{{string}}", 
    "s3RecordingUrlRedacted": "{{string}}"
}
 
// inviteHeaders object
{
    "{{string}}": "{{string}}"
}
```

 下列範例顯示 Amazon Transcribe Call Analytics 輸出格式。

```
{
    "time": "{{string}}", // ISO8601 format
    "service-type": "CallAnalytics",
    "detail-type": "TranscribeCallAnalytics",
    "mediaInsightsPipelineId": "{{string}}",
    "metadata": {
        "voiceConnectorId": "{{string}}",
        "callId": "{{string}}",
        "transactionId": "{{string}}",
        "fromNumber": "{{string}}",
        "toNumber": "{{string}}",
        "direction": "{{string}}"
    },
    "UtteranceEvent": {
        "UtteranceId": "{{string}}",
        "ParticipantRole": "{{string}}",
        "IsPartial": {{boolean}},
        "BeginOffsetMillis": {{number}},
        "EndOffsetMillis": {{number}},
        "Transcript": "{{string}}",
        "Sentiment": "{{string}}",
        "Items": [{
            "Content": "{{string}}",
            "Confidence": {{number}},
            "VocabularyFilterMatch": {{boolean}},
            "Stable": {{boolean}},
            "ItemType": "{{string}}",
            "BeginOffsetMillis": {{number}},
            "EndOffsetMillis": {{number}},
        }, ]
        "Entities": [{
            "Content": "{{string}}",
            "Confidence": {{number}},
            "Category": "{{string}}", // Only PII is supported currently
            "Type": "{{string}}",
            "BeginOffset": {{number}},
            "EndOffset": {{number}},
        }, ],
        "IssuesDetected": [{
            "CharacterOffsets": {
                "Begin": {{number}},
                "End": {{number}}
            }
        }]
    },
    "CategoryEvent": {
        "MatchedCategories": ["{{string}}"],
        "MatchedDetails": {
            "{{string}}": {
                "TimestampRanges": [{
                    "BeginOffsetMillis": {{number}},
                    "EndOffsetMillis": {{number}}
                }]
            }
        }
    }
}
```

## Amazon Chime SDK Voice Connector 串流更新中繼資料
<a name="cvc-stream-update-metadata"></a>

如果呼叫分析組態與 Amazon Chime SDK Voice Connector 相關聯，則在有 Voice Connector [串流更新時，將會傳送下列 Voice Connector](https://docs.aws.amazon.com/chime-sdk/latest/ag/automating-chime-with-cloudwatch-events.html) Update 承載。

下列範例顯示 Amazon Transcribe 處理器和 Transcribe Call Analytics 處理器的更新中繼資料格式。

```
{
    "time": "{{string}}", // ISO8601 format
    "service-type": "CallAnalytics",
    "detail-type": "CallAnalyticsMetadata",
    "callevent-type": "Update",
    "metadata": "{{string}}" // JSON encoded string of the metadata object
}

// metadata object
{
    "voiceConnectorId": "{{string}}",
    "callId": "{{string}}",
    "transactionId": "{{string}}",
    "fromNumber": "{{string}}",
    "toNumber": "{{string}}",
    "direction": "{{string}}",
    "oneTimeMetadata": "{{string}}" // JSON encoded string of oneTimeMetadata object
}
 
// onetimeMetadata object
{
    "sipHeaders": "{{string}}", // JSON encoded string of SIP Invite headers key-value pair
    "siprecMetadata": "{{string}}", // siprec metadata in XML 
    "siprecMetadataJson": "{{string}}" // siprec metadata in JSON (converted from above XML) 
}
 
// sipHeaders object
{
    "string": "{{string}}"
}
```

下列範例顯示 Call Analytics Amazon S3 錄製的更新中繼資料格式。

```
{
    "time": "{{string}}", // ISO8601 format
    "service-type": "CallAnalytics",
    "detail-type": "Recording",
    "callevent-type": "Update",
    "metadata": "string" // JSON encoded string of the metadata object
}

// metadata object
{
    "voiceConnectorId": "{{string}}",
    "callId": "{{string}}",
    "transactionId": "{{string}}",
    "fromNumber": "{{string}}",
    "toNumber": "{{string}}",
    "direction": "{{string}}",
    "oneTimeMetadata": "{{string}}" // JSON encoded in string of oneTimeMetadata object
}

// onetimeMetadata object
{
    "sipHeaders": "{{string}}", // JSON encoded string of SIP Invite headers key-value pair
    "siprecMetadata": "{{string}}", // siprec metadata in XML 
    "siprecMetadataJson": "{{string}}" // siprec metadata in JSON (converted from above XML) 
}

// sipHeaders object
{
    "{{string}}": "{{string}}"
}
```

## SIP 呼叫錄製中繼資料
<a name="sip-update-metadata"></a>

下列範例顯示記錄 Alice 和 Bob 兩個人之間 SIP 呼叫的中繼資料。兩位參與者都會傳送和接收音訊和視訊。為了簡單起見，此範例只有 SIP 和 SDP 的程式碼片段，而 SRC 會將每個參與者的串流記錄到 SRS，而不會混合。

```
INVITE sip:recorder@example.com SIP/2.0
   Via: SIP/2.0/TCP src.example.com;branch=z9hG4bKdf6b622b648d9
   From: <sip:2000@example.com>;tag=35e195d2-947d-4585-946f-09839247
   To: <sip:recorder@example.com>
   Call-ID: d253c800-b0d1ea39-4a7dd-3f0e20a
   Session-ID: ab30317f1a784dc48ff824d0d3715d86
    ;remote=00000000000000000000000000000000
   CSeq: 101 INVITE
   Max-Forwards: 70
   Require: siprec
   Accept: application/sdp, application/rs-metadata,
   application/rs-metadata-request
   Contact: <sip:2000@src.example.com>;+sip.src
   Content-Type: multipart/mixed;boundary={{boundary}}
   Content-Length: [length]

   Content-Type: application/SDP
   ...
   m=audio 49170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000
   a=label:96
   a=sendonly
   ...
   m=video 49174 RTP/AVPF 96
   a=rtpmap:96 H.264/90000
   a=label:97
   a=sendonly
   ...
   m=audio 51372 RTP/AVP 0
   a=rtpmap:0 PCMU/8000
   a=label:98
   a=sendonly
   ...
   m=video 49176 RTP/AVPF 96
   a=rtpmap:96 H.264/90000
   a=label:99
   a=sendonly
   ....

Content-Type: application/rs-metadata
Content-Disposition: recording-session

<?xml version="1.0" encoding="UTF-8"?>
<recording xmlns='urn:ietf:params:xml:ns:recording:1'>
  <datamode>complete</datamode>
        <group group_id="7+OTCyoxTmqmqyA/1weDAg==">
                <associate-time>2010-12-16T23:41:07Z</associate-time>
                <!-- Standardized extension -->
                <call-center xmlns='urn:ietf:params:xml:ns:callcenter'>
                        <supervisor>sip:alice@atlanta.com</supervisor>
                </call-center>
                <mydata xmlns='http://example.com/my'>
                        <structure>structure!</structure>
                        <whatever>structure</whatever>
                </mydata>
        </group>
        <session session_id="hVpd7YQgRW2nD22h7q60JQ==">
                <sipSessionID>ab30317f1a784dc48ff824d0d3715d86;
                                      remote=47755a9de7794ba387653f2099600ef2</sipSessionID>
                <group-ref>7+OTCyoxTmqmqyA/1weDAg==
                </group-ref>
                <!-- Standardized extension -->
                <mydata xmlns='http://example.com/my'>
                        <structure>FOO!</structure>
                        <whatever>bar</whatever>
                </mydata>
        </session>
        <participant
              participant_id="srfBElmCRp2QB23b7Mpk0w==">
                <nameID aor="sip:alice@atlanta.com">
                        <naSRCme xml:lang="it">Alice</name>
                </nameID>
                <!-- Standardized extension -->
                <mydata xmlns='http://example.com/my'>
                        <structure>FOO!</structure>
                        <whatever>bar</whatever>
                </mydata>
        </participant>
        <participant
               participant_id="zSfPoSvdSDCmU3A3TRDxAw==">
                <nameID aor="sip:bob@biloxy.com">
                        <name xml:lang="it">Bob</name>
                </nameID>
                <!-- Standardized extension -->
                <mydata xmlns='http://example.com/my'>
                        <structure>FOO!</structure>
                        <whatever>bar</whatever>
                </mydata>
        </participant>
        <stream stream_id="UAAMm5GRQKSCMVvLyl4rFw=="
               session_id="hVpd7YQgRW2nD22h7q60JQ==">
                <label>96</label>
        </stream>
        <stream stream_id="i1Pz3to5hGk8fuXl+PbwCw=="
               session_id="hVpd7YQgRW2nD22h7q60JQ==">
                <label>97</label>
        </stream>
        <stream stream_id="8zc6e0lYTlWIINA6GR+3ag=="
               session_id="hVpd7YQgRW2nD22h7q60JQ==">
                <label>98</label>
        </stream>
        <stream stream_id="EiXGlc+4TruqqoDaNE76ag=="
               session_id="hVpd7YQgRW2nD22h7q60JQ==">
                <label>99</label>
        </stream>
        <sessionrecordingassoc session_id="hVpd7YQgRW2nD22h7q60JQ==">
            <associate-time>2010-12-16T23:41:07Z</associate-time>
        </sessionrecordingassoc>
        <participantsessionassoc
              participant_id="srfBElmCRp2QB23b7Mpk0w=="
              session_id="hVpd7YQgRW2nD22h7q60JQ==">
                <associate-time>2010-12-16T23:41:07Z</associate-time>
        </participantsessionassoc>
        <participantsessionassoc
               participant_id="zSfPoSvdSDCmU3A3TRDxAw=="
               session_id="hVpd7YQgRW2nD22h7q60JQ==">
                <associate-time>2010-12-16T23:41:07Z</associate-time>
        </participantsessionassoc>
        <participantstreamassoc
              participant_id="srfBElmCRp2QB23b7Mpk0w==">
                <send>i1Pz3to5hGk8fuXl+PbwCw==</send>
                <send>UAAMm5GRQKSCMVvLyl4rFw==</send>
                <recv>8zc6e0lYTlWIINA6GR+3ag==</recv>
                <recv>EiXGlc+4TruqqoDaNE76ag==</recv>
        </participantstreamassoc>
        <participantstreamassoc
               participant_id="zSfPoSvdSDCmU3A3TRDxAw==">
                <send>8zc6e0lYTlWIINA6GR+3ag==</send>
                <send>EiXGlc+4TruqqoDaNE76ag==</send>
                <recv>UAAMm5GRQKSCMVvLyl4rFw==</recv>
                <recv>i1Pz3to5hGk8fuXl+PbwCw==</recv>
        </participantstreamassoc>
</recording>
```

下列範例顯示當一個通話參與者保留另一個通話時，已更新的中繼資料。在此情況下， `participant_id srfBElmCRp2QB23b7Mpk0w==`只會接收媒體串流，不會傳送任何媒體，因此會省略 `send` XML 元素。相反地， `participant_id zSfPoSvdSDCmU3A3TRDxAw==`會將媒體傳送到其他參與者，但不接收來自該參與者的媒體，因此會省略 `recv` XML 元素。

```
INVITE sip:recorder@example.com SIP/2.0
            Via: SIP/2.0/TCP src.example.com;branch=z9hG4bKdf6b622b648d9
      From: <sip:2000@example.com>;tag=35e195d2-947d-4585-946f-09839247
      To: <sip:recorder@example.com>
      Call-ID: d253c800-b0d1ea39-4a7dd-3f0e20a
      Session-ID: ab30317f1a784dc48ff824d0d3715d86
       ;remote=f81d4fae7dec11d0a76500a0c91e6bf6
      CSeq: 101 INVITE
      Max-Forwards: 70
      Require: siprec
      Accept: application/sdp, application/rs-metadata,
      application/rs-metadata-request
      Contact: <sip:2000@src.example.com>;+sip.src
      Content-Type: multipart/mixed;boundary=foobar
      Content-Length: [length]

      Content-Type: application/SDP
      ...
      m=audio 49170 RTP/AVP 0
      a=rtpmap:0 PCMU/8000
      a=label:96
      a=sendonly
      ...
      m=video 49174 RTP/AVPF 96
      a=rtpmap:96 H.264/90000
      a=label:97
      a=sendonly
      ...
      m=audio 51372 RTP/AVP 0
      a=rtpmap:0 PCMU/8000
      a=label:98
      a=sendonly
      ...
      m=video 49176 RTP/AVPF 96
      a=rtpmap:96 H.264/90000
      a=label:99
      a=sendonly
      ....

   Content-Type: application/rs-metadata
   Content-Disposition: recording-session

      <?xml version="1.0" encoding="UTF-8"?>
        <recording xmlns='urn:ietf:params:xml:ns:recording:1'>
          <datamode>partial</datamode>
            <participantstreamassoc
             participant_id="srfBElmCRp2QB23b7Mpk0w==">
             <recv>8zc6e0lYTlWIINA6GR+3ag==</recv>
             <recv>EiXGlc+4TruqqoDaNE76ag==</recv>
            </participantstreamassoc>
            <participantstreamassoc
             participant_id="zSfPoSvdSDCmU3A3TRDxAw==">
              <send>8zc6e0lYTlWIINA6GR+3ag==</send>
              <send>EiXGlc+4TruqqoDaNE76ag==</send>
             </participantstreamassoc>
           </recording>
```

下列範例顯示通話繼續時的中繼資料更新。承載現在具有 `send`和 `recv` XML 元素。

```
INVITE sip:recorder@example.com SIP/2.0
      Via: SIP/2.0/TCP src.example.com;branch=z9hG4bKdf6b622b648d9
      From: <sip:2000@example.com>;tag=35e195d2-947d-4585-946f-09839247
      To: <sip:recorder@example.com>
      Call-ID: d253c800-b0d1ea39-4a7dd-3f0e20a
      Session-ID: ab30317f1a784dc48ff824d0d3715d86
       ;remote=f81d4fae7dec11d0a76500a0c91e6bf6
      CSeq: 101 INVITE
      Max-Forwards: 70
      Require: siprec
      Accept: application/sdp, application/rs-metadata,
      application/rs-metadata-request
      Contact: <sip:2000@src.example.com>;+sip.src
      Content-Type: multipart/mixed;boundary=foobar
      Content-Length: [length]

      Content-Type: application/SDP
      ...
      m=audio 49170 RTP/AVP 0
      a=rtpmap:0 PCMU/8000
      a=label:96
      a=sendonly
      ...
      m=video 49174 RTP/AVPF 96
      a=rtpmap:96 H.264/90000
      a=label:97
      a=sendonly
      ...
      m=audio 51372 RTP/AVP 0
      a=rtpmap:0 PCMU/8000
      a=label:98
      a=sendonly
      ...
      m=video 49176 RTP/AVPF 96
      a=rtpmap:96 H.264/90000
      a=label:99
      a=sendonly
      ....
    
   Content-Type: application/rs-metadata
   Content-Disposition: recording-session

      <?xml version="1.0" encoding="UTF-8"?>
        <recording xmlns='urn:ietf:params:xml:ns:recording:1'>
          <datamode>partial</datamode>
            <participantstreamassoc
             participant_id="srfBElmCRp2QB23b7Mpk0w==">
             <send>i1Pz3to5hGk8fuXl+PbwCw==</send>
             <send>UAAMm5GRQKSCMVvLyl4rFw==</send>
             <recv>8zc6e0lYTlWIINA6GR+3ag==</recv>
             <recv>EiXGlc+4TruqqoDaNE76ag==</recv>
            </participantstreamassoc>
            <participantstreamassoc
             participant_id="zSfPoSvdSDCmU3A3TRDxAw==">
              <send>8zc6e0lYTlWIINA6GR+3ag==</send>
              <send>EiXGlc+4TruqqoDaNE76ag==</send>
              <recv>i1Pz3to5hGk8fuXl+PbwCw==</recv>
             <recv>UAAMm5GRQKSCMVvLyl4rFw==</recv>
             </participantstreamassoc>
           </recording>
```

## Amazon Transcribe 處理器目的地
<a name="amazon-transcribe-processors"></a>

支援的接收器：`KinesisDataStreamSink`。

您無法將此處理器與 Amazon Transcribe 呼叫分析結合。如需 Amazon Transcribe 輸入和輸出的詳細資訊，請參閱《Amazon [ Transcribe 開發人員指南》中的 Transcribe 串流音訊](https://docs.aws.amazon.com/transcribe/latest/dg/streaming.html)。 *Amazon Transcribe *

使用 Amazon Transcribe 呼叫分析工作階段會從 Kinesis Video Stream 取得音訊資料輸入。
+ 支援的 MediaEncoding：PCM 已簽章的 16 位元小端音訊。
+ 支援的 MediaSampleRate 取樣率：介於 8，000 Hz 和 48，000 Hz 之間。

 `StreamConfiguration` Amazon Transcribe 處理器的 輸入：
+ 您必須`KinesisVideoStreamArn`為每個串流指定 。
+ （選用） KVS `FragmentNumber` - 在特定片段之後使用 區塊啟動呼叫分析任務。如果未提供，則會在 Kinesis Video Stream 上使用最新的可用區塊。
+ `StreamChannelDefinition` Amazon Transcribe 目前支援兩個聲道的音訊。您必須在執行時間 `NumberOfChannels`中指定 `StreamChannelDefinition`。此外，`ChannelId`如果您在兩個不同的頻道中傳送單聲道音訊，則必須傳遞 。在您的文字記錄中，聲道會指定標籤 `ch_0` 和 `ch_1`。下列範例顯示單一音訊頻道串流的 KVS 輸入。

```
"StreamChannelDefinition" : {"
    NumberOfChannels" : 1
}
```

 下列範例顯示兩個不同串流中兩個單音音訊輸入的 KVS 輸入。

```
KVS-1:
    "StreamChannelDefinition" : {
        "NumberOfChannels"  : 1
        "ChannelDefinitions": [
            {
                "ChannelId": 0
            }
        ]
    }
KVS-2:
    "StreamChannelDefinition" : {
        "NumberOfChannels"  : 1
        "ChannelDefinitions": [
            {
                "ChannelId": 1
            }
        ]
    }
```

**注意**  
對於`MediaInsightsPipeline`使用 Amazon Transcribe 處理器建立的 Voice Connector，會將 Voice Connector 帳戶腿部音訊指派給 ，`channel-0`並將 PSTN 腿部音訊指派給 `channel-1`。  
對於語音連接器 SIPREC，我們依賴 SIPREC 中繼資料。在大多數情況下，具有最低語義值的串流標籤會指派給 `channel-0`。  
對於 Amazon Transcribe 和 Amazon Transcribe 呼叫分析處理器，如果您傳遞兩個 Kinesis Video 串流，而且每個串流都包含單一音訊頻道，我們會在處理 Transcribe 或 Transcribe 呼叫分析資料之前，將這兩個頻道交錯至單一音訊串流。

## Amazon Transcribe 輸出
<a name="amazon-transcribe-output"></a>

下列範例顯示 Amazon Transcribe 的一次性中繼資料輸出格式。

```
{
    "time": "{{string}}", // ISO8601 format
    "service-type": "CallAnalytics",
    "detail-type": "CallAnalyticsMetadata",
    "mediaInsightsPipelineId": "{{string}}",
    "metadata": "{{string}}" // JSON encoded string of the metadata object
}

// metadata object
{
    "voiceConnectorId": "{{string}}",
    "callId": "{{string}}",
    "transactionId": "{{string}}",
    "fromNumber": "{{string}}",
    "toNumber": "{{string}}",
    "direction": "{{string}}",
    "oneTimeMetadata": "{{string}}" // JSON encoded string of oneTimeMetadata object
}
 
// onetimeMetadata object
{
    "inviteHeaders": "{{string}}", // JSON encoded string of SIP Invite headers key-value pair
    "siprecMetadata": "{{string}}", // siprec metadata in XML 
    "siprecMetadataJson": "{{string}}" // siprec metadata in JSON (converted from above XML) 
}
 
// inviteHeaders object
{
    "{{string}}": "{{string}}"
}
```

下列範例顯示 Amazon Transcribe 輸出格式。

```
{
    "time": "{{string}}", // ISO8601 format
    "service-type": "CallAnalytics",
    "detail-type": "Transcribe",
    "mediaInsightsPipelineId": "{{string}}",
    "metadata": {
        "voiceconnectorId": "{{string}}",
        "callId": "{{string}}",
        "transactionId": "{{string}}",
        "fromNumber": "{{string}}",
        "toNumber": "{{string}}",
        "direction": "{{string}}"
    }
    "TranscriptEvent": {
        "Transcript": {
            "Results": [{
                "Alternatives": [{
                    "Entities": [{
                        "Category": "{{string}}",
                        "Confidence": {{number}},
                        "Content": "{{string}}",
                        "EndTime": {{number}},
                        "StartTime": {{number}},
                        "Type": "{{string}}"
                    }],
                    "Items": [{
                        "Confidence": {{number}},
                        "Content": "{{string}}",
                        "EndTime": {{number}},
                        "Speaker": "{{string}}",
                        "Stable": {{boolean}},
                        "StartTime": {{number}},
                        "Type": "{{string}}",
                        "VocabularyFilterMatch": {{boolean}}
                    }],
                    "Transcript": "{{string}}"
                }],
                "ChannelId": "{{string}}",
                "EndTime": {{number}},
                "IsPartial": {{boolean}},
                "LanguageCode": "{{string}}",
                "LanguageIdentification": [{
                    "LanguageCode": "{{string}}",
                    "Score": {{number}}
                }],
                "ResultId": "{{string}}",
                "StartTime": {{number}}
            }]
        }
    }
}
```

## 語音分析處理器目的地
<a name="voice-analytics-processor"></a>

 支援的接收器：`KinesisDataStreamSink`、`SnsTopicSink`、 `SqsQueueSink`和 `LambdaFunctionSink`。

 您可以結合此處理器與 Amazon Transcribe 通話分析處理器、Amazon Transcribe 處理器或通話錄音。您必須使用 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_StartSpeakerSearchTask.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_StartSpeakerSearchTask.html)或 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_StartVoiceToneAnalysisTask.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_StartVoiceToneAnalysisTask.html) APIs來叫用語音分析處理器。如需使用語音分析的詳細資訊，請參閱[使用 Amazon Chime SDK 語音分析](https://docs.aws.amazon.com/chime-sdk/latest/dg/voice-analytics.html)。

## 使用 Kinesis Data Stream 做為接收器
<a name="kinesis-data-stream-destination"></a>

呼叫分析產生的 Kinesis Data Stream (KDS) 記錄包括媒體管道 ID、詳細資訊類型、中繼資料和處理器特定區段。如需有關從 Kinesis Data Stream 取用資料的資訊，請參閱《[Amazon Kinesis Streams 開發人員指南》中的從 Amazon Kinesis Data Streams 讀取資料](https://docs.aws.amazon.com/streams/latest/dev/building-consumers.html)。 *Amazon Kinesis * 若要使用此接收器建立組態，您必須具有指定串流的`kinesis:DescribeStream`許可。

 **中繼資料**

 產生的 KDS 記錄`metadata`區段包含 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaInsightsPipeline.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaInsightsPipeline.html) API 呼叫`CallAnalyticsRuntimeMetadata`期間在 中指定的任何鍵值對。如果通話分析工作階段是由語音連接器啟動，中繼資料區段會自動填入下列參數：
+ `transactionId`
+ `fromNumber`
+ `toNumber`
+ `callId`
+ `voiceConnectorId`
+ `direction`

 除了上述參數之外，語音連接器起始通話分析工作階段的中繼資料區段也會填入包含下列項目`oneTimeMetadata`的欄位：
+ `inviteHeaders`
+ `siprecMetadata`

這只會在工作階段開始時發佈至 Kinesis Data Streams 一次，並具有 `detail-type`的 `CallAnalyticsMetadata`。

您可以在 中`MediaInsightsRuntimeMetadata`針對每個 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaInsightsPipeline.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaInsightsPipeline.html) API 呼叫傳遞唯一識別符，以便唯一識別傳遞給 Kinesis Data Stream 的每個記錄來源。

## Amazon S3 通話錄音
<a name="amazon-s3-call-recording"></a>

 通話分析記錄會從 KVS 串流讀取音訊，將其記錄為音訊檔案，並將檔案上傳至指定的 Amazon S3 儲存貯體。記錄通話分析之後， 也會將通話中繼資料以及檔案位置傳送至 KDS。如果您啟用資料倉儲，呼叫中繼資料 （包括使用 SIPREC 時的 SIPREC 中繼資料） 會交付至一組 Parquet 資料表中的資料倉儲，供您查詢。

如同任何其他呼叫分析處理器，您必須先建立管道的組態。您可以使用 Amazon Chime SDK 主控台或 CLI 來建立組態。然後，您可以使用 CLI 來建立管道。如需使用主控台建立錄製組態的詳細資訊，請參閱本節[為 Amazon Chime SDK 建立通話分析組態](creating-ca-configuration.md)稍早的 。如需使用錄製工作流程的詳細資訊，請參閱本節[了解記錄 Amazon Chime SDK 呼叫的工作流程](recording-workflows.md)稍早的 。

 **使用 CLI 建立組態**

 執行以下命令：

```
aws chime-sdk-media-pipeline create-media-insights-pipeline-configuration --cli-input-json file://configuration.json 
```

 下列範例顯示僅啟用記錄的組態 JSON 檔案：

```
{
    "MediaInsightsPipelineConfigurationName": configuration_name,
    "ResourceAccessRoleArn": {{role_arn}},
    "Elements": [
        {
            "KinesisDataStreamSinkConfiguration": {
                "InsightsTarget": {{KDS_arn}} //Where recording live metadata will be delivered.
            },
            "Type": "KinesisDataStreamSink"
        },
        {
            "S3RecordingSinkConfiguration": {
                "Destination": "arn:aws:s3:::kvs-recording-testing",
                "RecordingFileFormat": {{file_format}} // Specify "Opus" or "WAV" as the recording file format.
            },
            "Type": "S3RecordingSink"
        }         
    ]
}
```

請記得以下事項：
+ 若要透過 Kinesis Video Streams 啟用通話錄音，音訊應為 PCM 簽署的 16 位元小端。取樣率必須為 8KHz。
+ 建置器必須為 Kinesis Video Stream 設定足夠長的資料保留期，以確保透過呼叫分析保留和消耗片段。
+ 如果您啟用通話錄音，無論是單獨使用還是與其他處理器結合使用，都必須提供兩個 Kinesis Video Stream ARNs 進行錄音。通話錄音不支援單一立體聲音訊輸入。

## Amazon S3 通話記錄中繼資料輸出
<a name="s3-recording-metadata-output"></a>

下列範例顯示呼叫分析 Amazon S3 記錄的中繼資料輸出格式。

```
{
    "time": "{{string}}", // ISO8601 format
    "service-type": "CallAnalytics",
    "detail-type": "Recording",   
    "mediaInsightsPipelineId": "{{string}}",
    "s3MediaObjectConsoleUrl": "{{string}}",
    "recordingDurationSeconds": "{{number}}",
    "metadata": "{{string}}" // JSON encoded string of the metadata object
}

// metadata object
{
    "voiceConnectorId": "{{string}}",
    "callId": "{{string}}",
    "transactionId": "{{string}}",
    "fromNumber": "{{string}}",
    "toNumber": "{{string}}",
    "direction": "{{string}}",
    "startTime": "{{string}}", // ISO8601 format
    "endTime": "{{string}}", // ISO8601 format
    "oneTimeMetadata": "{{string}}" // JSON encoded in string of oneTimeMetadata object
}

// onetimeMetadata object
{
    "sipHeaders": "{{string}}", // JSON encoded string of SIP Invite headers key-value pair
    "siprecMetadata": "{{string}}", // siprec metadata in XML 
    "siprecMetadataJson": "{{string}}" // siprec metadata in JSON (converted from above XML) 
}

// sipHeaders object
{
    "{{string}}": "{{string}}"
}
```

## 啟用語音增強功能
<a name="voice-enhancement-sink"></a>

若要啟用語音增強功能，請在 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaInsightsPipelineConfiguration.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaInsightsPipelineConfiguration.html) API 呼叫中包含 `VoiceEnhancementSinkConfiguration`元素。

此範例顯示典型的 元素。

```
{
  "Type":"VoiceEnhancementSink",
  "VoiceEnhancementSinkConfiguration": {
       "Disabled": {{Boolean}} (string) // FALSE ==> Voice Enhancement will be performed
}
```

若要更新組態，請將 `VoiceEnhancementSinkConfiguration`元素新增至 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_UpdateMediaInsightsPipelineConfiguration.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_UpdateMediaInsightsPipelineConfiguration.html) API 呼叫。當您這麼做時，[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_GetMediaInsightsPipelineConfiguration.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_GetMediaInsightsPipelineConfiguration.html)API 會在結果中包含 `VoiceEnhancementSinkConfiguration`元素。

此範例請求說明如何啟用語音增強功能和 Amazon S3 錄製。

```
POST /media-insights-pipeline-configurations HTTP/1.1
Content-type: application/json

{
   "MediaInsightsPipelineConfigurationName":"{{media_insights_configuration_name}}",
   "ResourceAccessRoleArn":"arn:aws:iam::{{account_id}}:role/{{resource_access_role}}",
   "Elements":[
      {
         "Type":"S3RecordingSink",
         "S3RecordingSinkConfiguration":{
            "Destination":"arn:aws:s3:::{{input_bucket_path}}",
            "RecordingFileFormat":"{{Wav}}"
         }
      },
      {
         "Type":"VoiceEnhancementSink",
         "VoiceEnhancementSinkConfiguration": {
            "disabled":"{{false}}"
         }
      }
   ],
   "ClientRequestToken":"{{client_request_token}}"
}
```

**注意**  
`VoiceEnhancementSink` 元素一律需要呼叫分析組態中的 `S3RecordingSink`元素。