

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Rufen Sie den Analyseprozessor und die Ausgabeziele für das Amazon Chime SDK auf
<a name="call-analytics-processor-and-output-destinations"></a>

 Sie können eindeutige Elemente nur einmal pro Media Insights-Pipeline-Konfiguration angeben. Alle Prozessoren und Senken müssen sich in demselben AWS Konto befinden, und Sie müssen sie in derselben AWS Region erstellen wie der Endpunkt, den Sie aufrufen. Wenn Sie beispielsweise den `us-east-1` Endpunkt für Amazon Chime SDK Media Pipelines verwenden, können Sie keinen Kinesis Data Stream aus der Region übergeben. `us-west-2` 

Erweitern Sie jeden Abschnitt, um Informationen zu den einzelnen Zielen zu erhalten.

## Ziele des Amazon Transcribe Call Analytics-Prozessors
<a name="amazon-transcribe-call-analytics-processor"></a>

Unterstützte Spülbecken:. `KinesisDataStreamSink`

Sie können diesen Prozessor nicht mit einem Amazon Transcribe Transcribe-Prozessor kombinieren. Weitere Informationen zu Amazon Transcribe Call Analytics finden Sie unter [Real-time Call Analytics](https://docs.aws.amazon.com/transcribe/latest/dg/call-analytics-streaming.html) im *Amazon Transcribe* Developer Guide. Wenn Sie die [Analyse nach dem Anruf](https://docs.aws.amazon.com/transcribe/latest/dg/tca-post-call.html) aktivieren, indem Sie sie `PostCallAnalyticsSettings` in den `AmazonTranscribeCallAnalyticsProcessorConfiguration` API-Aufruf aufnehmen, erhalten Sie Artefakte am angegebenen Amazon S3 S3-Speicherort, wenn die Media Insights-Pipeline stoppt und die Verarbeitung abgeschlossen ist.

**Anmerkung**  
Wenn Sie die Pipeline für mehr als 35 Sekunden anhalten und dann fortsetzen, werden Artefakte nach dem Aufrufen in separaten Dateien mit unterschiedlichen Sitzungs-IDs im Amazon S3 S3-Bucket generiert.

Post-call Zu den Artefakten gehören eine JSON-Analysedatei und eine WAV- oder Opus-Datei für Audioaufnahmen. Die Amazon S3 S3-Bucket-URL für geschwärzte (wenn Sie die Inhaltsschwärzung aktivieren) und nicht geschwärzte Aufzeichnungsdateien wird einmal für jede Amazon Transcribe Call Analytics-Post-Call-Sitzung als Teil des Metadatenbereichs an den Kinesis Data Stream gesendet. `onetimeMetadata`

Anrufanalysen mit Amazon Transcribe Call Analytics verwenden Audiodaten, die vom Kinesis Video Stream eingegeben werden.
+ Unterstützte Medienkodierung: PCM-signiertes 16-Bit-Little-Endian-Audio.
+ Unterstützte Medien-Sampleraten: Zwischen 8.000 Hz und 48.000 Hz.

`StreamConfiguration`Eingabe für einen Amazon Transcribe Analytics-Prozess:
+ Sie müssen das `KinesisVideoStreamArn` für jeden Stream angeben.
+ (Optional) Das KVS `FragmentNumber` startet eine Anrufanalyseaufgabe mit dem Chunk nach einem bestimmten Fragment. Falls nicht angegeben, verwendet es den neuesten Teil des Kinesis-Videostreams.
+ Das `StreamChannelDefinition` definiert, wer spricht. Amazon Transcribe Call Analytics erfordert Zweikanal-Audio. Sie müssen angeben, welcher Lautsprecher sich auf welchem Kanal befindet, wenn Sie die API aufrufen. [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) Wenn Ihr Agent beispielsweise zuerst spricht, setzen Sie auf, `ChannelId` `0` um den ersten Kanal anzuzeigen, und auf, `ParticipantRole` `AGENT` um anzuzeigen, dass der Agent spricht.

**Anmerkung**  
Wenn Sie einen Voice Connector verwenden, um einen `MediaInsightsPipeline` mit einem Amazon Transcribe Anrufanalyseprozessor zu erstellen, ist das Audio des Voice Connector-Kontos `AGENT` und das PSTN-Audio für den. `CUSTOMER` `ParticipantRole`  
Für Voice Connector SIPREC verlassen wir uns auf die SIPREC-Metadaten. In den meisten Fällen wird das Stream-Label mit dem niedrigsten lexikografischen Wert als das Stream-Label angesehen. `AGENT`

Das folgende Beispiel zeigt den Kinesis Video Stream-Eingang für einen Zweikanal-Audiostream.

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

 Im Gegensatz dazu zeigt das folgende Beispiel zwei Monoeingänge von zwei verschiedenen Kinesis-Videostreams. 

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

## Ausgabe der Amazon Transcribe Transcribe-Anrufanalysen
<a name="amazon-transcribe-call-analytics-output"></a>

 Jeder Amazon Transcribe Transcribe-Datensatz enthält ein `UtteranceEvent` oder ein`CategoryEvent`, aber nicht beides. `CategoryEvents`habe ein `detail-type` von. `TranscribeCallAnalyticsCategoryEvent` 

Das folgende Beispiel zeigt das einmalige Metadaten-Ausgabeformat für 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}}"
}
```

 Das folgende Beispiel zeigt das Amazon Transcribe Call Analytics-Ausgabeformat. 

```
{
    "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-Streaming aktualisiert Metadaten
<a name="cvc-stream-update-metadata"></a>

Wenn die Konfiguration der Anrufanalyse mit einem Amazon Chime SDK Voice Connector verknüpft ist, wird die folgende Payload für das Voice Connector-Update gesendet, wenn es ein [Voice Connector-Streaming-Update](https://docs.aws.amazon.com/chime-sdk/latest/ag/automating-chime-with-cloudwatch-events.html) gibt.

Das folgende Beispiel zeigt ein Update-Metadatenformat für den Amazon Transcribe Transcribe-Prozessor und den Transcribe Call Analytics-Prozessor.

```
{
    "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}}"
}
```

Das folgende Beispiel zeigt ein aktualisiertes Metadatenformat für Call Analytics Amazon S3 Recording.

```
{
    "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}}"
}
```

## Metadaten zur SIP-Anrufaufzeichnung
<a name="sip-update-metadata"></a>

Die folgenden Beispiele zeigen die Metadaten für die Aufzeichnung eines SIP-Anrufs zwischen zwei Personen, Alice und Bob. Beide Teilnehmer senden und empfangen Audio und Video. Der Einfachheit halber enthält das Beispiel nur Ausschnitte von SIP und SDP, und SRC zeichnet die Streams jedes Teilnehmers auf SRS auf, ohne sie zu mischen.

```
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>
```

Das folgende Beispiel zeigt die aktualisierten Metadaten, wenn ein Gesprächsteilnehmer den anderen in die Warteschleife setzt. In diesem Fall empfängt es `participant_id srfBElmCRp2QB23b7Mpk0w==` nur Medienstreams und sendet keine Medien, sodass das `send` XML-Element weggelassen wird. `participant_id zSfPoSvdSDCmU3A3TRDxAw==`Sendet dagegen Medien an den anderen Teilnehmer, empfängt aber keine Medien von diesem, sodass das `recv` XML-Element weggelassen wird.

```
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>
```

Das folgende Beispiel zeigt die Aktualisierung der Metadaten, wenn der Anruf wieder aufgenommen wird. Die Nutzlast enthält jetzt die `recv` XML-Elemente `send` und.

```
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>
```

## Ziele für Amazon Transcribe Transcribe-Prozessoren
<a name="amazon-transcribe-processors"></a>

Unterstützte Spülbecken:. `KinesisDataStreamSink`

Sie können diesen Prozessor nicht mit der Amazon Transcribe-Anrufanalyse kombinieren. Weitere Informationen zur Eingabe und Ausgabe von Amazon Transcribe finden Sie unter Transcribe [Streaming Audio im *Amazon* Transcribe](https://docs.aws.amazon.com/transcribe/latest/dg/streaming.html) Developer Guide.

Die Anrufanalysesitzung mit Amazon Transcribe verwendet Audiodaten, die von Kinesis Video Stream eingegeben werden.
+ Unterstützt MediaEncoding: PCM-signiertes 16-Bit-Little-Endian-Audio.
+ Unterstützte MediaSampleRate Abtastraten: Zwischen 8.000 Hz und 48.000 Hz.

 `StreamConfiguration`Eingabe für Amazon Transcribe Transcribe-Prozessoren: 
+ Sie müssen das `KinesisVideoStreamArn` für jeden Stream angeben.
+ (Optional) KVS `FragmentNumber` — Startet einen Anrufanalysejob mit dem Block nach einem bestimmten Fragment. Falls nicht angegeben, wird der neueste verfügbare Chunk im Kinesis Video Stream verwendet.
+ `StreamChannelDefinition`Amazon Transcribe unterstützt derzeit Audio mit zwei Kanälen. Sie müssen das `NumberOfChannels` in der Laufzeit angeben. `StreamChannelDefinition` Außerdem müssen Sie das übergeben, `ChannelId` wenn Sie Mono-Audio in zwei separaten Kanälen senden. In Ihrem Transkript sind die Kanäle mit den Bezeichnungen `ch_0` und `ch_1` versehen. Das folgende Beispiel zeigt den KVS-Eingang für einen Mono-Audiokanal-Stream.

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

 Das folgende Beispiel zeigt den KVS-Eingang für zwei Mono-Audioeingänge in zwei verschiedenen Streams. 

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

**Anmerkung**  
Für den Voice Connector, der `MediaInsightsPipeline` mit einem Amazon Transcribe Transcribe-Prozessor erstellt wurde, wird das Voice Connector-Konto Leg Audio `channel-0` und das PSTN Leg Audio zugewiesen. `channel-1`  
Für Voice Connector SIPREC verlassen wir uns auf die SIPREC-Metadaten. In den meisten Fällen wird das Stream-Label mit dem niedrigsten lexikografischen Wert zugewiesen. `channel-0`  
Wenn Sie bei den Anrufanalyseprozessoren Amazon Transcribe und Amazon Transcribe zwei Kinesis Video-Streams weiterleiten und jeder Stream einen Mono-Audiokanal enthält, verschachteln wir beide Kanäle zu einem einzigen Audiostream, bevor wir Transcribe- oder Transcribe-Anrufanalysedaten verarbeiten.

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

Das folgende Beispiel zeigt ein einmaliges Metadaten-Ausgabeformat für 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}}"
}
```

Das folgende Beispiel zeigt das Amazon Transcribe Transcribe-Ausgabeformat. 

```
{
    "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}}
            }]
        }
    }
}
```

## Ziele des Sprachanalyseprozessors
<a name="voice-analytics-processor"></a>

 Unterstützte Senken:`KinesisDataStreamSink`, `SqsQueueSink``SnsTopicSink`, und`LambdaFunctionSink`. 

 Sie können diesen Prozessor mit dem Amazon Transcribe Call Analytics-Prozessor, dem Amazon Transcribe Transcribe-Prozessor oder der Anrufaufzeichnung kombinieren. Sie müssen die [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 [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)oder verwenden, um einen Sprachanalyseprozessor aufzurufen. Weitere Informationen zur Verwendung von Sprachanalysen finden Sie unter [Verwenden von Amazon Chime SDK-Sprachanalysen.](https://docs.aws.amazon.com/chime-sdk/latest/dg/voice-analytics.html) 

## Kinesis Data Stream als Senke verwenden
<a name="kinesis-data-stream-destination"></a>

Die durch Anrufanalysen generierten Kinesis Data Stream (KDS) -Datensätze umfassen die Medien-Pipeline-ID, den Detailtyp, Metadaten und prozessorspezifische Abschnitte. Informationen zur Nutzung von Daten aus einem Kinesis Data Stream finden Sie unter [Daten aus Amazon Kinesis Data Streams lesen im Amazon Kinesis Streams *Streams-Entwicklerhandbuch*](https://docs.aws.amazon.com/streams/latest/dev/building-consumers.html). Um eine Konfiguration mit dieser Senke zu erstellen, benötigen Sie `kinesis:DescribeStream` Berechtigungen für den angegebenen Stream. 

 **Metadaten**

 Der `metadata` Abschnitt der generierten KDS-Datensätze enthält alle Schlüssel-Wert-Paare, die `CallAnalyticsRuntimeMetadata` während des API-Aufrufs angegeben wurden. [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) Wenn eine Anrufanalysesitzung von einem Voice Connector initiiert wurde, wird der Metadatenbereich automatisch mit den folgenden Parametern gefüllt: 
+ `transactionId`
+ `fromNumber`
+ `toNumber`
+ `callId`
+ `voiceConnectorId`
+ `direction`

 Zusätzlich zu den oben aufgeführten Parametern wird der Metadatenbereich für von Voice Connector initiierte Anrufanalysesitzungen mit einem `oneTimeMetadata` Feld gefüllt, das Folgendes enthält: 
+ `inviteHeaders`
+ `siprecMetadata`

Dies wird zu Beginn der Sitzung nur einmal in Kinesis Data Streams veröffentlicht und hat den Wert `detail-type` von`CallAnalyticsMetadata`.

Sie können `MediaInsightsRuntimeMetadata` für jeden [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-Aufruf eindeutige Kennungen übergeben, sodass Sie die Quelle jedes Datensatzes, der an Ihren Kinesis Data Stream geliefert wird, eindeutig identifizieren können.

## Amazon S3 S3-Anrufaufzeichnung
<a name="amazon-s3-call-recording"></a>

 Die Aufzeichnung von Call Analytics liest Audio aus einem KVS-Stream, zeichnet es als Audiodatei auf und lädt die Datei in den angegebenen Amazon S3 S3-Bucket hoch. Nach der Aufzeichnung sendet Call Analytics auch die Metadaten des Anrufs zusammen mit dem Speicherort der Datei an KDS. Wenn Sie ein Data Warehouse aktivieren, werden die Metadaten des Anrufs (einschließlich SIPREC-Metadaten, falls SIPREC verwendet wurde) in Form von Parquet-Tabellen, die Sie abfragen können, an das Data Warehouse übermittelt.

Wie bei jedem anderen Prozessor für Anrufanalysen müssen Sie zunächst eine Konfiguration für die Pipeline erstellen. Sie können die Amazon Chime SDK-Konsole oder die CLI verwenden, um die Konfiguration zu erstellen. Anschließend verwenden Sie die CLI, um die Pipeline zu erstellen. Weitere Informationen zur Verwendung der Konsole zum Erstellen von Aufzeichnungskonfigurationen finden Sie weiter [Anrufanalysekonfigurationen für das Amazon Chime SDK erstellen](creating-ca-configuration.md) oben in diesem Abschnitt. Weitere Informationen zur Verwendung der Aufzeichnungsworkflows finden Sie weiter [Grundlegendes zu Workflows für die Aufzeichnung von Anrufen für das Amazon Chime SDK](recording-workflows.md) oben in diesem Abschnitt.

 **So verwenden Sie die CLI zum Erstellen einer Konfiguration**

 Führen Sie den folgenden Befehl aus: 

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

 Das folgende Beispiel zeigt eine JSON-Konfigurationsdatei, bei der nur die Aufzeichnung aktiviert ist: 

```
{
    "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"
        }         
    ]
}
```

Beachten Sie Folgendes:
+ Um die Anrufaufzeichnung über Kinesis Video Streams zu ermöglichen, sollte Audio mit PCM-signierter 16-Bit-Little-Endian-Signatur sein. Die Samplerate muss 8 kHz betragen. 
+ Entwickler müssen eine ausreichend lange Datenaufbewahrungsdauer für den Kinesis Video Stream festlegen, um sicherzustellen, dass die Fragmente aufbewahrt und für Anrufanalysen verwendet werden können. 
+ Wenn Sie die Anrufaufzeichnung entweder alleine oder in Kombination mit anderen Prozessoren aktivieren, müssen Sie zwei Kinesis Video Stream-ARNs für die Aufzeichnung bereitstellen. Die Anrufaufzeichnung unterstützt keinen einzelnen Stereo-Audioeingang. 

## Ausgabe von Metadaten für die Amazon S3 S3-Anrufaufzeichnung
<a name="s3-recording-metadata-output"></a>

Das folgende Beispiel zeigt das Metadaten-Ausgabeformat für die Amazon S3 S3-Aufzeichnung von Call Analytics.

```
{
    "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}}"
}
```

## Sprachverbesserung aktivieren
<a name="voice-enhancement-sink"></a>

Um die Sprachverbesserung zu aktivieren, fügen Sie ein `VoiceEnhancementSinkConfiguration` Element in einen [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-Aufruf ein.

Dieses Beispiel zeigt ein typisches Element.

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

Um eine Konfiguration zu aktualisieren, fügen Sie das `VoiceEnhancementSinkConfiguration` Element zu einem [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-Aufruf hinzu. Wenn Sie dies tun, nimmt die [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 das `VoiceEnhancementSinkConfiguration` Element in die Ergebnisse auf.

Diese Beispielanfrage zeigt, wie Voice Enhancement und Amazon S3 S3-Aufzeichnung aktiviert werden.

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

**Anmerkung**  
Das `VoiceEnhancementSink` Element erfordert immer ein `S3RecordingSink` Element in einer Konfiguration für Anrufanalysen.