

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Processeur d'analyse des appels et destinations de sortie pour le SDK Amazon Chime
<a name="call-analytics-processor-and-output-destinations"></a>

 Vous ne pouvez spécifier des éléments uniques qu'une seule fois par configuration de pipeline Media Insights. Tous les processeurs et récepteurs doivent résider dans le même AWS compte, et vous devez les créer dans la même AWS région que le point de terminaison que vous appelez. Par exemple, si vous utilisez le `us-east-1` point de terminaison pour Amazon Chime SDK Media Pipelines, vous ne pouvez pas transmettre un flux de données Kinesis depuis la région. `us-west-2` 

Développez chaque section pour obtenir des informations sur chaque destination.

## Destinations du processeur Amazon Transcribe Call Analytics
<a name="amazon-transcribe-call-analytics-processor"></a>

Éviers pris en charge :`KinesisDataStreamSink`.

Vous ne pouvez pas associer ce processeur à un processeur Amazon Transcribe. Pour plus d'informations sur Amazon Transcribe Call Analytics, reportez-vous à la section Analyse des [appels en temps réel du manuel](https://docs.aws.amazon.com/transcribe/latest/dg/call-analytics-streaming.html) *Amazon Transcribe Developer* Guide. Si vous activez l'[analyse post-appel](https://docs.aws.amazon.com/transcribe/latest/dg/tca-post-call.html) en les incluant `PostCallAnalyticsSettings` dans l'appel d'`AmazonTranscribeCallAnalyticsProcessorConfiguration`API, vous recevez des artefacts dans l'emplacement Amazon S3 spécifié lorsque le pipeline Media Insights s'arrête et que le traitement est terminé.

**Note**  
Si vous interrompez le pipeline pendant plus de 35 secondes, puis que vous le reprenez, les artefacts post-appel sont générés dans des fichiers séparés avec des sessions différentes IDs dans le compartiment Amazon S3.

Les artefacts post-appel incluent un fichier d'analyse JSON et un fichier d'enregistrement audio WAV ou Opus. L'URL du compartiment Amazon S3 pour les fichiers d'enregistrement expurgés (si vous activez la rédaction de contenu) et non expurgés est envoyée au Kinesis Data Stream une fois pour chaque session post-appel d'analyse des appels Amazon Transcribe, dans le cadre de la section des métadonnées. `onetimeMetadata`

L'analyse des appels avec Amazon Transcribe L'analyse des appels utilise les données audio saisies depuis le flux vidéo Kinesis.
+ Encodage multimédia pris en charge : audio Little-Endian 16 bits signé PCM.
+ Fréquences d'échantillonnage multimédia prises en charge : entre 8 000 Hz et 48 000 Hz.

`StreamConfiguration`entrée pour un processus Amazon Transcribe Analytics :
+ Vous devez spécifier le `KinesisVideoStreamArn` pour chaque flux.
+ (Facultatif) Le KVS `FragmentNumber` lance une tâche d'analyse des appels avec le segment situé après un fragment spécifié. S'il n'est pas fourni, il utilise le dernier extrait du flux vidéo Kinesis.
+ Cela `StreamChannelDefinition` définit qui parle. L'analyse des appels Amazon Transcribe nécessite un son à deux canaux. Vous devez spécifier quel haut-parleur se trouve sur quel canal lorsque vous appelez l'[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. Par exemple, si votre agent parle en premier, vous réglez le sur `ChannelId` `0` pour indiquer le premier canal et `AGENT` sur `ParticipantRole` pour indiquer que l'agent parle.

**Note**  
Lorsque vous utilisez un connecteur vocal pour créer un `MediaInsightsPipeline` avec un processeur d'analyse des appels Amazon Transcribe, le segment audio du compte Voice Connector est `AGENT` destiné au. `CUSTOMER` `ParticipantRole`  
Pour le Voice Connector SIPREC, nous nous appuyons sur les métadonnées SIPREC. Dans la plupart des cas, l'étiquette de flux présentant la valeur lexicographique la plus faible est considérée comme le. `AGENT`

L'exemple suivant montre l'entrée Kinesis Video Stream pour un flux audio double canal.

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

 En revanche, l'exemple suivant montre deux entrées mono provenant de deux flux Kinesis Video différents. 

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

## Sortie d'analyse des appels Amazon Transcribe
<a name="amazon-transcribe-call-analytics-output"></a>

 Chaque enregistrement Amazon Transcribe contient un `UtteranceEvent` ou un`CategoryEvent`, mais pas les deux. `CategoryEvents`J'ai un `detail-type` de`TranscribeCallAnalyticsCategoryEvent`. 

L'exemple suivant montre le format de sortie de métadonnées à usage unique pour 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"
}
```

 L'exemple suivant montre le format de sortie 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 met à jour les métadonnées en continu
<a name="cvc-stream-update-metadata"></a>

Si la configuration de l'analyse des appels est associée à un connecteur vocal du SDK Amazon Chime, la charge utile de mise à jour du connecteur vocal suivante sera envoyée lors d'une mise à jour en streaming du connecteur [vocal](https://docs.aws.amazon.com/chime-sdk/latest/ag/automating-chime-with-cloudwatch-events.html).

L'exemple suivant montre un format de métadonnées de mise à jour pour le processeur Amazon Transcribe et le processeur 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"
}
```

L'exemple suivant montre un format de métadonnées de mise à jour pour 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"
}
```

## Métadonnées d'enregistrement des appels SIP
<a name="sip-update-metadata"></a>

Les exemples suivants montrent les métadonnées permettant d'enregistrer un appel SIP entre deux personnes, Alice et Bob. Les deux participants envoient et reçoivent du son et de la vidéo. Pour des raisons de simplicité, l'exemple ne contient que des extraits de SIP et de SDP, et SRC enregistre les flux de chaque participant sur SRS sans les mélanger.

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

L'exemple suivant montre les métadonnées mises à jour lorsqu'un participant à un appel met l'autre en attente. Dans ce cas, il `participant_id srfBElmCRp2QB23b7Mpk0w==` ne reçoit que des flux multimédias et n'envoie aucun média. L'élément `send` XML est donc omis. En revanche, `participant_id zSfPoSvdSDCmU3A3TRDxAw==` envoie du contenu multimédia à l'autre participant, mais ne reçoit pas de contenu multimédia de sa part, de sorte que l'élément `recv` XML est omis.

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

L'exemple suivant montre la mise à jour des métadonnées lorsque l'appel reprend. La charge utile contient désormais les éléments `recv` XML `send` et.

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

## Destinations des processeurs Amazon Transcribe
<a name="amazon-transcribe-processors"></a>

Éviers pris en charge :`KinesisDataStreamSink`.

Vous ne pouvez pas associer ce processeur à l'analyse des appels Amazon Transcribe. *Pour plus d'informations sur l'entrée et la sortie d'Amazon Transcribe, consultez la section Transcribe le [streaming audio du manuel Amazon Transcribe](https://docs.aws.amazon.com/transcribe/latest/dg/streaming.html) Developer Guide.*

La session d'analyse des appels avec Amazon Transcribe utilise les données audio saisies par Kinesis Video Stream.
+ Compatible MediaEncoding : audio Little-Endian 16 bits signé PCM.
+  MediaSampleRate Fréquences d'échantillonnage prises en charge : entre 8 000 Hz et 48 000 Hz.

 `StreamConfiguration`entrée pour les processeurs Amazon Transcribe : 
+ Vous devez spécifier le `KinesisVideoStreamArn` pour chaque flux.
+ (Facultatif) KVS `FragmentNumber` - Démarre une tâche d'analyse des appels avec le fragment situé après un fragment spécifique. S'il n'est pas fourni, il utilisera le dernier extrait disponible sur le Kinesis Video Stream.
+ `StreamChannelDefinition`Amazon Transcribe prend actuellement en charge l'audio sur deux canaux. Vous devez le spécifier `NumberOfChannels` dans le runtime`StreamChannelDefinition`. De plus, vous devez transmettre le `ChannelId` si vous envoyez du son mono sur deux canaux distincts. Dans votre transcription, les canaux se voient attribuer les étiquettes `ch_0` et `ch_1`. L'exemple suivant montre l'entrée KVS pour un flux de canal audio mono.

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

 L'exemple suivant montre l'entrée KVS pour deux entrées audio mono dans deux flux différents. 

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

**Note**  
Pour le connecteur vocal créé à l'`MediaInsightsPipeline`aide d'un processeur Amazon Transcribe, le segment audio du compte Voice Connector est attribué `channel-0` et le segment audio du compte PSTN est attribué à. `channel-1`  
Pour le Voice Connector SIPREC, nous nous appuyons sur les métadonnées SIPREC. Dans la plupart des cas, l'étiquette de flux présentant la valeur lexicographique la plus faible est attribuée à. `channel-0`  
Pour les processeurs d'analyse d'appels Amazon Transcribe et Amazon Transcribe, si vous transmettez deux flux Kinesis Video et que chaque flux contient un canal audio mono, nous entrelacons les deux canaux en un seul flux audio avant de traiter les données d'analyse des appels Transcribe ou Transcribe.

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

L'exemple suivant montre un format de sortie de métadonnées à usage unique pour 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"
}
```

L'exemple suivant montre le format de sortie 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
            }]
        }
    }
}
```

## Destinations des processeurs d'analyse vocale
<a name="voice-analytics-processor"></a>

 Récepteurs pris en charge : `KinesisDataStreamSink` `SqsQueueSink``SnsTopicSink`,, et`LambdaFunctionSink`. 

 Vous pouvez associer ce processeur au processeur d'analyse des appels Amazon Transcribe, au processeur Amazon Transcribe ou à l'enregistrement des appels. Vous devez utiliser le [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)ou [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 pour appeler un processeur d'analyse vocale. Pour plus d'informations sur l'utilisation de l'analyse vocale, consultez la section [Utilisation de l'analyse vocale du SDK Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/dg/voice-analytics.html). 

## Utilisation de Kinesis Data Stream comme récepteur
<a name="kinesis-data-stream-destination"></a>

Les enregistrements Kinesis Data Stream (KDS) générés par l'analyse des appels incluent l'ID du pipeline multimédia, le type de détail, les métadonnées et les sections spécifiques au processeur. Pour plus d'informations sur la consommation de données provenant d'un flux de données Kinesis, reportez-vous à [la section Reading Data Streams d'Amazon Kinesis Data Streams](https://docs.aws.amazon.com/streams/latest/dev/building-consumers.html) dans le guide du développeur *Amazon Kinesis Streams*. Pour créer une configuration avec ce récepteur, vous devez disposer d'une `kinesis:DescribeStream` autorisation sur le flux spécifié. 

 **Metadonnées**

 La `metadata` section des enregistrements KDS générés contient toutes les paires clé-valeur spécifiées `CallAnalyticsRuntimeMetadata` lors de l'[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)appel d'API. Si une session d'analyse des appels a été initiée par un connecteur vocal, la section des métadonnées est automatiquement renseignée avec les paramètres suivants : 
+ `transactionId`
+ `fromNumber`
+ `toNumber`
+ `callId`
+ `voiceConnectorId`
+ `direction`

 Outre les paramètres indiqués ci-dessus, la section des métadonnées pour les sessions d'analyse des appels initiées par Voice Connector sera remplie avec un `oneTimeMetadata` champ contenant : 
+ `inviteHeaders`
+ `siprecMetadata`

Il est publié sur Kinesis Data Streams une seule fois au début de la session et comporte `detail-type` un `CallAnalyticsMetadata` de.

Vous pouvez transmettre des identifiants uniques `MediaInsightsRuntimeMetadata` pour chaque appel d'[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 afin d'identifier de manière unique la source de chaque enregistrement transmis à votre Kinesis Data Stream.

## Enregistrement des appels Amazon S3
<a name="amazon-s3-call-recording"></a>

 L'enregistrement des analyses d'appels lit le son d'un flux KVS, l'enregistre sous forme de fichier audio et télécharge le fichier dans le compartiment Amazon S3 spécifié. Après l'enregistrement, l'analyse des appels envoie également les métadonnées des appels ainsi que l'emplacement du fichier à KDS. Si vous activez un entrepôt de données, les métadonnées d'appel (y compris les métadonnées SIPREC si SIPREC a été utilisé) sont transmises à l'entrepôt de données dans un ensemble de tables Parquet que vous pouvez interroger.

Comme tout autre processeur d'analyse des appels, vous devez d'abord créer une configuration pour le pipeline. Vous pouvez utiliser la console Amazon Chime SDK ou la CLI pour créer la configuration. Vous utilisez ensuite la CLI pour créer le pipeline. Pour plus d'informations sur l'utilisation de la console pour créer des configurations d'enregistrement, reportez-vous à [Création de configurations d'analyse des appels pour le SDK Amazon Chime](creating-ca-configuration.md) la section précédente de cette section. Pour plus d'informations sur l'utilisation des flux de travail d'enregistrement, reportez-vous à [Comprendre les flux de travail pour l'enregistrement des appels pour le SDK Amazon Chime](recording-workflows.md) la section précédente de cette section.

 **Pour utiliser la CLI pour créer une configuration**

 Exécutez la commande suivante : 

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

 L'exemple suivant montre un fichier de configuration JSON dans lequel seul l'enregistrement est activé : 

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

Rappelez-vous ce qui suit :
+ Pour activer l'enregistrement des appels via Kinesis Video Streams, le son doit être signé Little-endian 16 bits avec signature PCM. La fréquence d'échantillonnage doit être de 8KHz. 
+ Les créateurs doivent définir une période de conservation des données suffisamment longue pour le Kinesis Video Stream afin de garantir que les fragments sont conservés et consommables par l'analyse des appels. 
+ Si vous activez l'enregistrement des appels, seul ou en combinaison avec d'autres processeurs, vous devez fournir deux Kinesis Video Stream ARNs pour l'enregistrement. L'enregistrement des appels ne prend pas en charge une seule entrée audio stéréo. 

## Sortie de métadonnées d'enregistrement des appels Amazon S3
<a name="s3-recording-metadata-output"></a>

L'exemple suivant montre le format de sortie des métadonnées pour l'enregistrement des analyses d'appels sur 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"
}
```

## Activer l'amélioration vocale
<a name="voice-enhancement-sink"></a>

Pour activer l'amélioration vocale, incluez un `VoiceEnhancementSinkConfiguration` élément dans un appel d'[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.

Cet exemple montre un élément typique.

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

Pour mettre à jour une configuration, ajoutez l'`VoiceEnhancementSinkConfiguration`élément à un appel d'[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. Lorsque vous le faites, l'[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 inclut l'`VoiceEnhancementSinkConfiguration`élément dans les résultats.

Cet exemple de demande montre comment activer l'amélioration vocale et l'enregistrement 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"
}
```

**Note**  
L'`VoiceEnhancementSink`élément nécessite toujours un `S3RecordingSink` élément dans une configuration d'analyse des appels.

# Combinaison de la transcription avec des récepteurs d'enregistrement pour le SDK Amazon Chime
<a name="combining-recording-transcription"></a>

Vous pouvez associer les processeurs Amazon Transcribe et Amazon Transcribe Call Analytics à un récepteur d'enregistrement Amazon S3. Les constructeurs peuvent transmettre un S3 RecordingSinkConfiguration en plus des processeurs Amazon Transcribe lors d'un appel d'[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 ou en utilisant la console.

En association avec le récepteur d'enregistrement Amazon S3, vous pouvez utiliser un processeur Amazon Transcribe ou Amazon Transcribe Call Analytics, mais jamais les deux. Vous pouvez également ajouter des analyses vocales à la même configuration en plus d'un récepteur d'enregistrement, avec ou sans processeur de transcription.

**Note**  
Vous pouvez activer l'enregistrement avec l'un des processeurs répertoriés ci-dessus. Toutefois, si vous activez Amazon Transcribe Call Analytics en même temps que l'enregistrement des appels Amazon S3, vous devez fournir deux flux vidéo Kinesis et vous recevrez des fichiers d'enregistrement dupliqués, l'un provenant d'Amazon Transcribe Call Analytics et l'autre provenant de l'enregistrement des appels Amazon S3.

Rappelez-vous ce qui suit :
+ Vous devez utiliser un unique`MediaInsightsPipelineConfigurationName`.
+ Pour plus d'informations à ce sujet`ResourceAccessRoleArn`, reportez-vous [Utilisation du rôle d'accès aux ressources d'analyse des appels pour le SDK Amazon Chime](call-analytics-resource-access-role.md) à ce guide.
+ La `Destination` valeur doit être un ARN du chemin S3. Le compartiment Amazon S3 doit appartenir au même compte.
+ Si vous utilisez une configuration avec Transcribe et enregistrement pour créer un pipeline, les pauses et les reprises apparaissent uniquement dans les informations générées par un flux Kinesis Data. Toutes les données des flux KVS sont enregistrées et téléchargées sur Amazon S3.
+ Si une configuration utilise Amazon Transcribe ou Transcribe Call Analytics (TCA) en plus de l'enregistrement, le pipeline Media Insights fournit des informations sur la transcription ou Transcribe Call Analytics en temps réel, suivies d'un enregistrement Amazon S3 à la fin de l'appel. Si les services de transcription échouent pendant l'analyse des appels, la tâche d'enregistrement S3 essaie toujours de s'exécuter. À l'inverse, un échec d'enregistrement sur Amazon S3 n'affecte pas les informations de transcription, puisqu'il s'exécute une fois la transcription terminée.

Cet exemple montre une configuration avec un processeur Amazon Transcribe et un récepteur d'enregistrement Amazon S3. L'exemple permet également une stabilisation partielle des résultats, ce qui peut réduire la latence en sortie, mais peut avoir un impact sur la précision. Pour plus d'informations, reportez-vous à la section [Stabilisation des résultats partiels](https://docs.aws.amazon.com/transcribe/latest/dg/streaming-partial-results.html#streaming-partial-result-stabilization) du manuel *Amazon Transcribe Developer* Guide.

```
{
    "MediaInsightsPipelineConfigurationName": unique_configuration_name,
    "ResourceAccessRoleArn": role_arn,
    "Elements": [{
            "AmazonTranscribeProcessorConfiguration": {
                "ContentIdentificationType": "string",
                "ContentRedactionType": "string",
                "EnablePartialResultsStabilization": boolean, //Enables partial result stabilization. Can reduce latency. May impact accuracy. 
                "FilterPartialResults": boolean, //To control partial utterance events
                "LanguageCode": "string",
                "LanguageModelName": "string",
                "PartialResultsStability": "string",
                "PiiEntityTypes": "string",
                "ShowSpeakerLabel": boolean,
                "VocabularyFilterMethod": "string",
                "VocabularyFilterName": "string",
                "VocabularyName": "string"
            },
            "Type": "AmazonTranscribeProcessor"
        },
        {
            "KinesisDataStreamSinkConfiguration": {
                "InsightsTarget": KDS_arn //Where recording and insights live metadata will be delivered.
            },
            "Type": "KinesisDataStreamSink"
        },
        {
            "S3RecordingSinkConfiguration": {
                "Destination": S3_Arn,
                "RecordingFileFormat": file_format // Specify "Opus" or "WAV" as the recording file format.
            },
            "Type": "S3RecordingSink"
        }
    ]
}
```

# Utilisation EventBridge des notifications Amazon pour le SDK Amazon Chime
<a name="using-eventbridge-notifications"></a>

Le SDK Call Analytics d'Amazon Chime prend en charge l'envoi d'événements vers le EventBridge bus par défaut lorsque l'état du pipeline d'informations sur les médias change ou lorsque les conditions d'alerte en temps réel de l'analyse des appels sont remplies. Pour les mises à jour du statut des erreurs du pipeline Media Insights, nous vous recommandons de configurer une EventBridge cible pour vous avertir en cas de défaillance asynchrone de vos ressources. Les notifications d'analyse des appels ont une source aws.chime et différents types de détails, qui sont partagés dans les sections suivantes. Pour plus d'informations, consultez le [guide de EventBridge l'utilisateur Amazon](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html).

**Topics**
+ [Mises à jour d'état](#status-updates)
+ [Des alertes en temps réel](#realtime-alerts)

## Mises à jour d'état
<a name="status-updates"></a>

 Les pipelines Media Insights envoient EventBridge des notifications au fur et à mesure qu'une session d'analyse des appels progresse et qu'elle se termine correctement ou qu'elle rencontre des erreurs. Vous recevez une EventBridge notification avec le type de détail « Media Insights State Change » lorsque : 
+ Le statut d'un pipeline d'informations sur les médias change.
+ Le statut d'un élément du pipeline d'informations sur les médias change.
+ Tout élément du pipeline est arrêté.
+ Tout élément du pipeline tombe en panne.

La section détaillée inclut toujours les champs suivants :
+ `version`
+ `mediaInsightsPipelineArn`
+ `eventType`

La section détaillée inclut également un `mediaInsightsPipelineElementStatuses` champ si le pipeline d'informations multimédias contient plusieurs éléments, tels que des processeurs d'analyse et des récepteurs de données. Ce champ indique le statut de chaque élément du pipeline. Le statut possible de chaque élément du pipeline pourrait être le suivant :
+ `NotStarted`
+ `InProgress`
+ `Stopped`
+ `Failed`

 La section détaillée inclut également toutes les paires clé-valeur spécifiées `MediaInsightsRuntimeMetadata` lors de l'appel d'[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. Si une session d'analyse des appels a été initiée par un connecteur vocal, la section des métadonnées est automatiquement renseignée avec les paramètres suivants : 
+ `transactionId`
+ `fromNumber`
+ `toNumber`
+ `callId`
+ `voiceConnectorId`
+ `direction`

 Les types d'événements suivants peuvent apparaître chaque fois qu'un pipeline d'informations sur les médias contient un seul élément. Agrandissez chaque section pour plus d’informations.

### Informations sur les médias du SDK Amazon Chime en cours
<a name="insights-in-progress"></a>

Cet exemple montre une structure d'événement typique.

```
{
    "version": "0",
    "id": "string",
    "detail-type": "Media Insights State Change", 
    "source": "aws.chime", 
    "account": number,
    "region": "string",
    "time": "yyyy-mm-ddThh:mm:ssZ",
    "resources": [] 
    "detail": {
        "version": "0",
        "mediaInsightsPipelineArn": "string",
        "eventType": "chime:MediaInsightsInProgress",
        "version": "0",
        "callId": "string",
        "transactionId": "string",
        "fromNumber": "string",
        "toNumber": "string",
        "voiceConnectorId": "string", 
        "direction": "string"
    }
}
```

### Les informations sur les médias du SDK Amazon Chime sont suspendues
<a name="insights-paused"></a>

Cet exemple montre une structure d'événement typique.

```
{
    "version": "0",
    "id": "string",
    "detail-type": "Media Insights State Change", 
    "source": "aws.chime", 
    "account": number,
    "region": "string",
    "time": "yyyy-mm-ddThh:mm:ssZ",
    "resources": [] 
    "detail": {
        "version": "0",
        "mediaInsightsPipelineArn": "string",
        "eventType": "chime:MediaInsightsPaused",
        "callId": "string",
        "transactionId": "string",
        "fromNumber": "string",
        "toNumber": "string",
        "voiceConnectorId": "string", 
        "direction": "string"
    }
}
```

### Les informations sur les médias du SDK Amazon Chime ont été interrompues
<a name="insights-stoppped"></a>

Cet exemple montre une structure d'événement typique.

```
{
    "version": "0",
    "id": "string",
    "detail-type": "Media Insights State Change", 
    "source": "aws.chime", 
    "account": number,
    "region": "string",
    "time": "yyyy-mm-ddThh:mm:ssZ",
    "resources": [] 
    "detail": {
        "version": "0",
        "mediaInsightsPipelineArn": "string",
        "eventType": "chime:MediaInsightsStopped",
        "callId": "string",
        "transactionId": "string",
        "fromNumber": "string",
        "toNumber": "string",
        "voiceConnectorId": "string", 
        "direction": "string"
    }
}
```

### Défaillance temporaire du SDK Amazon Chime Media Insights
<a name="insights-temp-failure"></a>

Indique que le service a rencontré une défaillance temporaire et qu'il tentera de réessayer. Aucune action n'est requise de votre part.

Cet exemple montre une structure d'événement typique.

```
{
    "version": "0",
    "id": "string",
    "detail-type": "Media Insights State Change", 
    "source": "aws.chime", 
    "account": number,
    "region": "string",
    "time": "yyyy-mm-ddThh:mm:ssZ",
    "resources": [] 
    "detail": {
        "version": "0",
        "mediaInsightsPipelineArn": "string",
        "eventType": "chime:MediaInsightsTemporaryFailure",
        "callId": "string",
        "transactionId": "string",
        "fromNumber": "string",
        "toNumber": "string",
        "voiceConnectorId": "string", 
        "direction": "string"
    }
}
```

### Défaillance permanente du SDK Amazon Chime Media Insights
<a name="insights-perm-failure"></a>

Indique un échec qui nécessite une action de votre part. Utilisez le `failureReason` pour résoudre le problème. Les défaillances typiques peuvent inclure les suivantes :
+ Autorisations insuffisantes sur le rôle d'accès aux ressources
+ Ressources manquantes ou supprimées
+ Limitation à partir d'un AWS service qui appelle Analytics invoque en votre nom, tel qu'Amazon Transcribe ou Amazon Kinesis.
+ Formats multimédias incompatibles sur les flux KVS

Cet exemple montre une structure d'événement typique.

```
{
    "version": "0",
    "id": "string",
    "detail-type": "Media Insights State Change", 
    "source": "aws.chime", 
    "account": number,
    "region": "string",
    "time": "yyyy-mm-ddThh:mm:ssZ",
    "resources": [] 
    "detail": {
        "version": "0",
        "mediaInsightsPipelineArn": "string",
        "eventType": "chime:MediaInsightsPermanentFailure",
        "callId": "string",
        "transactionId": "string",
        "fromNumber": "string",
        "toNumber": "string",
        "voiceConnectorId": "string", 
        "direction": "string",
        "failureReason": "string"              
    }
}
```

**Note**  
Le champ `failureReason` est facultatif. Par exemple, une raison typique pourrait être`Access denied when assuming resource access role`.

Les types d'événements suivants peuvent apparaître chaque fois qu'un pipeline d'informations multimédias est créé, ou que la tentative de création échoue, pour une session d'analyse des appels initiée par un connecteur vocal du SDK Amazon Chime. Agrandissez chaque section pour plus d’informations.

### Création d'informations sur les médias du SDK Amazon Chime
<a name="vc-pipeline-created"></a>

Cet exemple illustre un événement de réussite typique.

```
{
    "version": "0",
    "id": "string",
    "detail-type": "Media Insights State Change", 
    "source": "aws.chime", 
    "account": number,
    "region": "string",
    "time": "yyyy-mm-ddThh:mm:ssZ",
    "resources": [] 
    "detail": 
    {
        "version": "0",
        "mediaInsightsPipelineConfigurationArn": "string",
        "mediaInsightsPipelineArn": "string",
        "eventType": "chime:MediaInsightsCreated",
        "callId": "string",
        "transactionId": "string",
        "fromNumber": "string",
        "toNumber": "string",
        "voiceConnectorId": "string", 
        "direction": "string",
    }
}
```

### Échec de la création d'Amazon Chime Media Insights
<a name="vc-pipeline-failed"></a>

Cet exemple montre un événement de défaillance typique.

```
{
    "version": "0",
    "id": "string",
    "detail-type": "Media Insights State Change",     
    "source": "aws.chime", 
    "account": number,
    "region": "string",
    "time": "yyyy-mm-ddThh:mm:ssZ",
    "resources": [] 
    "detail": 
    {
        "version": "0",
        "mediaInsightsPipelineConfigurationArn": "string",
        "eventType": "chime:MediaInsightsCreateFailed", 
        "callId": "string",
        "transactionId": "string",
        "fromNumber": "string",
        "toNumber": "string",
        "voiceConnectorId": "string", 
        "direction": "string",
        "failureOrigin": "Voice Connector",
        "httpStatusCode": "string",
        "failureReason": "string"
    }
}
```

Les types d'événements suivants peuvent apparaître lorsqu'un pipeline d'informations sur les médias contient plusieurs éléments. Les exemples de notifications sont à `AmazonTranscribeProcessor` combiner avec`S3RecordingSink`. Agrandissez chaque section pour plus d’informations. 

### AmazonTranscribeProcessor est en cours et S3 n'RecordingSink a pas démarré
<a name="processor-running-sink-not-started"></a>

Cet exemple montre une structure d'événement typique.

```
{
    "version": "0", 
    "id": "string",
    "detail-type": "Media Insights State Change", 
    "source": "aws.chime", 
    "account": number, 
    "region": "string",
    "time": "yyyy-mm-ddThh:mm:ssZ", 
    "resources": [],
    "detail": {
        "version": "0", 
        "mediaInsightsPipelineArn": "string", 
        "eventType": "chime:MediaInsightsInProgress",
        "mediaInsightsPipelineElementStatuses": [
            { 
                "type": "AmazonTranscribeProcessor", 
                "status": "InProgress",
                "updatedOn": 1686184070655             
            },
            { 
                "type": "S3RecordingSink", 
                "status": "NotStarted",
                "updatedOn": 1686184070655 
            }
        ] 
        "callId": "string", 
        "transactionId": "string", 
        "fromNumber": "string", 
        "toNumber": "string", 
        "voiceConnectorId": "string", 
        "direction": "string" 
    } 
}
```

### AmazonTranscribeProcessor a réussi et S3 RecordingSink est en cours
<a name="processor-success-sink-in-progress"></a>

Cet exemple montre une structure d'événement typique.

```
{
    "version": "0", 
    "id": "string",
    "detail-type": "Media Insights State Change", 
    "source": "aws.chime", 
    "account": number, 
    "region": "string",
    "time": "yyyy-mm-ddThh:mm:ssZ", 
    "resources": [],
    "detail": {
        "version": "0", 
        "mediaInsightsPipelineArn": "string", 
        "eventType": "chime:MediaInsightsInProgress",
        "mediaInsightsPipelineElementStatuses": [
            { 
                "type": "AmazonTranscribeProcessor", 
                "status": "Stopped",
                "updatedOn": 1686184070655             
            },
            { 
                "type": "S3RecordingSink", 
                "status": "InProgress",
                "updatedOn": 1686184070655 
            }
        ] 
        "callId": "string", 
        "transactionId": "string", 
        "fromNumber": "string", 
        "toNumber": "string", 
        "voiceConnectorId": "string", 
        "direction": "string" 
    } 
}
```

### AmazonTranscribeProcessor a échoué et S3 RecordingSink est en cours
<a name="processor-fail-sink-in-process"></a>

Cet exemple montre une structure d'événement typique.

```
{
    "version": "0", 
    "id": "string",
    "detail-type": "Media Insights State Change", 
    "source": "aws.chime", 
    "account": number, 
    "region": "string",
    "time": "yyyy-mm-ddThh:mm:ssZ", 
    "resources": [],
    "detail": {
        "version": "0", 
        "mediaInsightsPipelineArn": "string", 
        "eventType": "chime:MediaInsightsInProgress",
        "mediaInsightsPipelineElementStatuses": [
            { 
                "type": "AmazonTranscribeProcessor", 
                "status": "Failed",
                "updatedOn": 1686184070655             
            },
            { 
                "type": "S3RecordingSink", 
                "status": "InProgress",
                "updatedOn": 1686184070655 
            }
        ] 
        "callId": "string", 
        "transactionId": "string", 
        "fromNumber": "string", 
        "toNumber": "string", 
        "voiceConnectorId": "string", 
        "direction": "string" 
    } 
}
```

### AmazonTranscribeProcessor a échoué et S3 RecordingSink a réussi
<a name="processor-fail-record-finish"></a>

Cet exemple montre une structure d'événement typique.

```
{
    "version": "0", 
    "id": "string",
    "detail-type": "Media Insights State Change", 
    "source": "aws.chime", 
    "account": number, 
    "region": "string",
    "time": "yyyy-mm-ddThh:mm:ssZ", 
    "resources": [],
    "detail": {
        "version": "0", 
        "mediaInsightsPipelineArn": "string", 
        "eventType": "chime:MediaInsightsPermanentFailure",
        "mediaInsightsPipelineElementStatuses": [
            { 
                "type": "AmazonTranscribeProcessor", 
                "status": "Failed",
                "updatedOn": 1686184070655             
            },
            { 
                "type": "S3RecordingSink", 
                "status": "Stopped",
                "updatedOn": 1686184070655 
            }
        ] 
        "callId": "string", 
        "transactionId": "string", 
        "fromNumber": "string", 
        "toNumber": "string", 
        "voiceConnectorId": "string", 
        "direction": "string",
        "failureReason": "string" 
    } 
}
```

### AmazonTranscribeProcessor a réussi et S3 RecordingSink a échoué
<a name="processor-success-recording-fail"></a>

Cet exemple montre une structure d'événement typique.

```
{
    "version": "0", 
    "id": "string",
    "detail-type": "Media Insights State Change", 
    "source": "aws.chime", 
    "account": number, 
    "region": "string",
    "time": "yyyy-mm-ddThh:mm:ssZ", 
    "resources": [],
    "detail": {
        "version": "0", 
        "mediaInsightsPipelineArn": "string", 
        "eventType": "chime:MediaInsightsPermanentFailure",
        "mediaInsightsPipelineElementStatuses": [
            { 
                "type": "AmazonTranscribeProcessor", 
                "status": "Stopped",
                "updatedOn": 1686184070655             
            },
            { 
                "type": "S3RecordingSink", 
                "status": "Failed",
                "updatedOn": 1686184070655 
            }
        ] 
        "callId": "string", 
        "transactionId": "string", 
        "fromNumber": "string", 
        "toNumber": "string", 
        "voiceConnectorId": "string", 
        "direction": "string",
        "failureReason": "string" 
    } 
}
```

### AmazonTranscribeProcessor est en pause et S3 n'RecordingSink a pas démarré
<a name="processor-pause-recording-no-start"></a>

Cet exemple montre une structure d'événement typique.

```
{
    "version": "0", 
    "id": "string",
    "detail-type": "Media Insights State Change", 
    "source": "aws.chime", 
    "account": number, 
    "region": "string",
    "time": "yyyy-mm-ddThh:mm:ssZ", 
    "resources": [],
    "detail": {
        "version": "0", 
        "mediaInsightsPipelineArn": "string", 
        "eventType": "chime:MediaInsightsPaused",
        "mediaInsightsPipelineElementStatuses": [
            { 
                "type": "AmazonTranscribeProcessor", 
                "status": "Paused",
                "updatedOn": 1686184070655             
            },
            { 
                "type": "S3RecordingSink", 
                "status": "NotStarted",
                "updatedOn": 1686184070655 
            }
        ] 
        "callId": "string", 
        "transactionId": "string", 
        "fromNumber": "string", 
        "toNumber": "string", 
        "voiceConnectorId": "string", 
        "direction": "string" 
    } 
}
```

### AmazonTranscribeProcessor a temporairement échoué et S3 n'RecordingSink a pas démarré
<a name="processor-temp-fail-recording-no-start"></a>

Cet exemple montre une structure d'événement typique.

```
{
    "version": "0", 
    "id": "string",
    "detail-type": "Media Insights State Change", 
    "source": "aws.chime", 
    "account": number, 
    "region": "string",
    "time": "yyyy-mm-ddThh:mm:ssZ", 
    "resources": [],
    "detail": {
        "version": "0", 
        "mediaInsightsPipelineArn": "string", 
        "eventType": "chime:MediaInsightsTemporaryFailure",
        "mediaInsightsPipelineElementStatuses": [
            { 
                "type": "AmazonTranscribeProcessor", 
                "status": "TemporarilyFailed",
                "updatedOn": 1686184070655             
            },
            { 
                "type": "S3RecordingSink", 
                "status": "NotStarted",
                "updatedOn": 1686184070655 
            }
        ] 
        "callId": "string", 
        "transactionId": "string", 
        "fromNumber": "string", 
        "toNumber": "string", 
        "voiceConnectorId": "string", 
        "direction": "string" 
    } 
}
```

### AmazonTranscribeProcessor et S3 RecordingSink a réussi
<a name="processor-sink-success"></a>

Cet exemple montre une structure d'événement typique.

```
{
    "version": "0", 
    "id": "string",
    "detail-type": "Media Insights State Change", 
    "source": "aws.chime", 
    "account": number, 
    "region": "string",
    "time": "yyyy-mm-ddThh:mm:ssZ", 
    "resources": [],
    "detail": {
        "version": "0", 
        "mediaInsightsPipelineArn": "string", 
        "eventType": "chime:MediaInsightsStopped",
        "mediaInsightsPipelineElementStatuses": [
            { 
                "type": "AmazonTranscribeProcessor", 
                "status": "Stopped",
                "updatedOn": 1686184070655             
            },
            { 
                "type": "S3RecordingSink", 
                "status": "Stopped",
                "updatedOn": 1686184070655 
            }
        ] 
        "callId": "string", 
        "transactionId": "string", 
        "fromNumber": "string", 
        "toNumber": "string", 
        "voiceConnectorId": "string", 
        "direction": "string" 
    } 
}
```

### S3 RecordingSink a réussi et VoiceEnhancement est en cours
<a name="voice-enhancement-sink-inprogress"></a>

Cet exemple montre une structure d'événement typique.

```
{
  "version": "0",
  "id": "string",
  "detail-type": "Media Insights State Change",
  "source": "aws.chime",
  "account": number,
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "region": "string",
  "detail": {
    "mediaInsightsPipelineArn": "string",
    "eventType": "chime:MediaInsightsInProgress",
    "version": "0",
    "mediaInsightsPipelineElementStatuses": [
      {
        "type": "VoiceEnhancementSink",
        "status": "InProgress",
        "updatedOn": 1686184070655
      },
      {
        "type": "S3RecordingSink",
        "status": "Stopped",
        "updatedOn": 1686184070655
      }
    ]
  }
}
```

### S3 RecordingSink a réussi et VoiceEnhancement a échoué en raison d'appels de plus de 30 minutes
<a name="voice-enhancement-sink-fail-longerthan30minutes"></a>

Cet exemple montre une structure d'événement typique.

```
{
  "version": "0",
  "id": "string",
  "detail-type": "Media Insights State Change",
  "source": "aws.chime",
  "account": number,
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "region": "string",
  "detail": {
    "mediaInsightsPipelineArn": "string",
    "eventType": "chime:MediaInsightsStopped",
    "version": "0",
    "mediaInsightsPipelineElementStatuses": [
      {
        "type": "VoiceEnhancement",
        "status": "NotSupported",
        "updatedOn": 1686184070655,
        "statusDetail": "Unsupported recording length"
      },
      {
        "type": "S3RecordingSink",
        "status": "Stopped",
        "updatedOn": 1686184070655
      }
    ]
  }
}
```

### S3 RecordingSink a réussi et VoiceEnhancement a échoué en raison d'appels de moins de 30 minutes
<a name="voice-enhancement-sink-fail-lessthan30minutes"></a>

Cet exemple montre une structure d'événement typique.

```
{
  "version": "0",
  "id": "string",
  "detail-type": "Media Insights State Change",
  "source": "aws.chime",
  "account": number,
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "region": "string",
  "detail": {
    "mediaInsightsPipelineArn": "string",
    "eventType": "chime:MediaInsightsPermanentFailure",
    "version": "0",
    "mediaInsightsPipelineElementStatuses": [
      {
        "type": "VoiceEnhancement",
        "status": "Failed",
        "updatedOn": 1686184070655
      },
      {
        "type": "S3RecordingSink",
        "status": "Stopped",
        "updatedOn": 1686184070655
      }
    ]
  }
}
```

## Des alertes en temps réel
<a name="realtime-alerts"></a>

**Note**  
Seuls les processeurs Amazon Transcribe et Amazon Transcribe Call Analytics prennent en charge les alertes en temps réel.

 L'analyse des appels du SDK Amazon Chime permet aux développeurs de définir des règles pour l'envoi d'alertes en temps réel via un processeur lors d'une session d'analyse. Les alertes sont envoyées à Amazon EventBridge avec le type de détail`Media Insights Rules Matched`. EventBridge prend en charge l'intégration avec des services en aval tels que Lambda, Amazon SQS et Amazon SNS afin de déclencher des notifications pour l'utilisateur final ou de lancer une autre logique métier personnalisée.

 Les alertes en temps réel sont configurées dans le cadre du `RealTimeAlertConfiguration` champ du`MediaInsightsPipelineConfiguration`. Vous pouvez utiliser la console Amazon Chime SDK pour configurer le champ, ou vous pouvez appeler le ou. [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) APIs 

 Cet exemple montre comment créer ou mettre à jour une configuration d'alerte en temps réel via l'API. 

```
{
    "MediaInsightsPipelineConfigurationName": "config_name",
    "ResourceAccessRoleArn": "arn:aws:iam::account_id:role/role_name",
    "RealTimeAlertConfiguration": {
        "Disabled": false,
        "Rules": [{
                "Type": "KeywordMatch",
                "KeywordMatchConfiguration": {
                    "RuleName": "rule_name_1",
                    "Keywords": [
                        "hello",
                        "thank you"
                    ],
                    "Negate": false
                }
            },
            {
                "Type": "Sentiment",
                "RuleName": "rule_name_2",
                "SentimentType": "NEGATIVE",
                "TimePeriod": 60
            },
            {
                "Type": "IssueDetection",
                "RuleName": "rule_name_3"
            }
        ]
    },
    "Elements": [{
            "Type": "AmazonTranscribeCallAnalyticsProcessor",
            "AmazonTranscribeCallAnalyticsProcessorConfiguration": {
                "LanguageCode": "en-US"
            }
        },
        {
            "Type": "KinesisDataStreamSink",
            "KinesisDataStreamSinkConfiguration": {
                "InsightsTarget": "arn:aws:kinesis:us-east-1:account_id:stream/stream_name"
            }
        }
    ]
}
```

Chaque règle d'une configuration d'alerte en temps réel est déclenchée indépendamment. Vous pouvez recevoir plusieurs EventBridge notifications si plusieurs conditions de règle sont remplies en même temps. Pour créer une liste de règles pour vos alertes, vous pouvez sélectionner l'un des types de règles suivants :

Match de mots clés  
Alertes lorsqu'un ensemble spécifique de mots clés ou de phrases correspond à un énoncé ou à un événement de transcription. Vous pouvez configurer l'alerte pour qu'elle émette un événement si :  
+ Tous les mots clés spécifiés sont prononcés et `Negate` sont définis sur`false`.
+ Tous les mots clés spécifiés ne sont pas prononcés pendant toute la durée de l'appel, s'il `Negate` est défini sur. `true`
Amazon Transcribe et Amazon Transcribe Analytics prennent en charge ce type de règle.

Analyse de sentiment  
Alertes lorsqu'un type de sentiment particulier persiste pendant une période continue. Seule Transcribe Call Analytics prend en charge cette règle.

Détection des problèmes  
Alerte lorsqu'un problème est détecté lors d'un événement d'énoncé. Seul Transcribe Call Analytics prend en charge ce type de règle.

L'exemple suivant montre un événement d'alerte en temps réel pour une `KeywordMatch` règle.

```
{
    "version": "0",
    "id": "string",
    "detail-type": "Media Insights Rules Matched", 
    "source": "aws.chime", 
    "account": number,
    "region": "us-east-1",
    "time": "yyyy-mm-ddThh:mm:ssZ", 
    "resources": [],
    "detail":   {
        "version": "0",
        "sourceMetadata": {}
        "ruleName": "string"
        "utteranceId": "string",
        "beginTimestamp": "yyyy-mm-ddThh:mm:ssZ",
    }
}
```

Certains EventBridge champs sont spécifiques au type de règle correspondant :

**Champs de correspondance des mots clés**  
`utteranceId`: ID de la transcription qui contient un mot clé correspondant si vous utilisez Amazon Transcribe Call Analytics. Pour la correspondance des mots clés parlés uniquement.  
`resultId`: ID de la transcription qui contient un mot clé correspondant si vous utilisez Amazon Transcribe. Pour la correspondance des mots clés parlés uniquement.  
`beginTimestamp`: heure de début de la transcription qui contient un mot clé correspondant. Pour la correspondance des mots clés parlés uniquement.

**Champs d'analyse des sentiments**  
`beginTimestamp`: heure de début de la fenêtre déroulante pour le sentiment correspondant.  
`endTimestamp`: Heure de fin de la fenêtre déroulante pour le sentiment correspondant.

# Création d'un lac de données du SDK Amazon Chime
<a name="ca-data-lake"></a>

Le lac de données d'analyse des appels du SDK Amazon Chime vous permet de diffuser vos informations basées sur l'apprentissage automatique et toutes les métadonnées d'Amazon Kinesis Data Stream vers votre compartiment Amazon S3. Par exemple, utiliser le lac de données pour accéder URLs aux enregistrements. Pour créer le lac de données, vous déployez un ensemble de AWS CloudFormation modèles depuis la console Amazon Chime SDK ou par programmation à l'aide du. AWS CLI Le lac de données vous permet d'interroger les métadonnées de vos appels et les données d'analyse vocale en faisant référence aux tables de données AWS Glue dans Amazon Athena.

**Topics**
+ [Conditions préalables](#data-lake-prereqs)
+ [Terminologie et concepts relatifs aux lacs de données](#data-lake-terms)
+ [Création de plusieurs lacs de données](#creating-multiple-data-lakes)
+ [Disponibilité régionale du data lake](#data-lake-regions)
+ [Architecture du lac de données](#data-lake-architecture)
+ [Configuration du lac de données](#data-lake-setup)

## Conditions préalables
<a name="data-lake-prereqs"></a>

Vous devez disposer des éléments suivants pour créer un lac de SDK Amazon Chime :
+ Un flux de données Amazon Kinesis. Pour plus d'informations, reportez-vous à la section [Création d'un flux via la console de gestion AWS](https://docs.aws.amazon.com/streams/latest/dev/how-do-i-create-a-stream.html) dans le manuel *Amazon Kinesis Streams Developer Guide*.
+ Un compartiment S3. Pour plus d'informations, reportez-vous à la section [Création de votre premier compartiment Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket.html) dans le *guide de l'utilisateur Amazon S3*.

## Terminologie et concepts relatifs aux lacs de données
<a name="data-lake-terms"></a>

Utilisez les termes et concepts suivants pour comprendre le fonctionnement du lac de données.

**Amazon Kinesis Data Firehose**  
Un service d'extraction, de transformation et de chargement (ETL) qui capture, transforme et diffuse de manière fiable des données en streaming vers des lacs de données, des magasins de données et des services d'analyse. Pour plus d'informations, consultez Qu'est-ce qu'Amazon Kinesis Data Firehose ?

**Amazon Athena**  
Amazon Athena est un service de requête interactif qui vous permet d'analyser des données dans Amazon S3 à l'aide du SQL standard. Athena fonctionne sans serveur, vous n'avez donc aucune infrastructure à gérer et vous ne payez que pour les requêtes que vous exécutez. Pour utiliser Athena, pointez sur vos données dans Amazon S3, définissez le schéma et utilisez des requêtes SQL standard. Vous pouvez également utiliser des groupes de travail pour regrouper les utilisateurs et contrôler les ressources auxquelles ils ont accès lorsqu'ils exécutent des requêtes. Les groupes de travail vous permettent de gérer la simultanéité des requêtes et de hiérarchiser l'exécution des requêtes entre différents groupes d'utilisateurs et différentes charges de travail.

**Catalogue de données Glue**  
Dans Amazon Athena, les tables et les bases de données contiennent les métadonnées qui détaillent le schéma des données sources sous-jacentes. Pour chaque jeu de données, une table doit exister dans Athena. Les métadonnées du tableau indiquent à Athena l'emplacement de votre compartiment Amazon S3. Il spécifie également la structure des données, telle que les noms des colonnes, les types de données et le nom de la table. Les bases de données contiennent uniquement les métadonnées et les informations de schéma d'un ensemble de données.

## Création de plusieurs lacs de données
<a name="creating-multiple-data-lakes"></a>

Plusieurs lacs de données peuvent être créés en fournissant un nom de base de données Glue unique pour spécifier où stocker les informations relatives aux appels. Pour un AWS compte donné, il peut y avoir plusieurs configurations d'analyse des appels, chacune associée à un lac de données correspondant. Cela signifie que la séparation des données peut être appliquée dans certains cas d'utilisation, tels que la personnalisation de la politique de conservation et de la politique d'accès sur la manière dont les données sont stockées. Différentes politiques de sécurité peuvent être appliquées pour l'accès aux informations, aux enregistrements et aux métadonnées.

## Disponibilité régionale du data lake
<a name="data-lake-regions"></a>

Le lac de données du SDK Amazon Chime est disponible dans les régions suivantes.


| Région | Table Glue | Rapide | 
| --- | --- | --- | 
| us-east-1 | Available | Available | 
| us-west-2 | Available | Available | 
| eu-central-1 | Available | Available | 

## Architecture du lac de données
<a name="data-lake-architecture"></a>

Le schéma suivant montre l'architecture du lac de données. Les numéros du dessin correspondent au texte numéroté ci-dessous.

![\[Le programme passe par un lac de données.\]](http://docs.aws.amazon.com/fr_fr/chime-sdk/latest/dg/images/call-analytics-data-lake-architecture.png)


Dans le schéma, une fois que vous avez utilisé la AWS console pour déployer le CloudFormation modèle à partir du flux de travail de configuration du pipeline Media Insights, les données suivantes sont transmises au compartiment Amazon S3 :

1. L'analyse des appels du SDK Amazon Chime commencera à diffuser des données en temps réel vers le flux de données Kinesis du client. 

1. Amazon Kinesis Firehose met en mémoire tampon ces données en temps réel jusqu'à ce qu'elles accumulent 128 Mo, soit 60 secondes, selon la première éventualité. Firehose utilise ensuite le catalogue `amazon_chime_sdk_call_analytics_firehose_schema` de données Glue pour compresser les données et transforme les enregistrements JSON en fichier parquet.

1. Le fichier parquet se trouve dans votre compartiment Amazon S3, dans un format partitionné.

1. Outre les données en temps réel, les fichiers .wav récapitulatifs Amazon Transcribe Call Analytics après l'appel (expurgés et non expurgés, si cela est spécifié dans la configuration) et les fichiers .wav d'enregistrement des appels sont également envoyés à votre compartiment Amazon S3. 

1. Vous pouvez utiliser Amazon Athena et le SQL standard pour interroger les données du compartiment Amazon S3.

1. Le CloudFormation modèle crée également un catalogue de données Glue pour interroger ces données récapitulatives après l'appel via Athena.

1. Toutes les données du compartiment Amazon S3 peuvent également être visualisées à l'aide de Quick. QuickSight établit une connexion avec un compartiment Amazon S3 à l'aide d'Amazon Athena.

La table Amazon Athena utilise les fonctionnalités suivantes pour optimiser les performances des requêtes :

**Partitionnement de données**  
Le partitionnement divise votre table en plusieurs parties et conserve les données associées en fonction des valeurs des colonnes telles que la date, le pays et la région. Les partitions agissent comme des colonnes virtuelles. Dans ce cas, le CloudFormation modèle définit les partitions lors de la création de la table, ce qui permet de réduire la quantité de données numérisées par requête et d'améliorer les performances. Vous pouvez également filtrer par partition pour limiter la quantité de données numérisées par une requête. Pour plus d'informations, reportez-vous à la section [Partitionnement des données dans Athena dans](https://docs.aws.amazon.com/athena/latest/ug/partitions.html) le guide de l'utilisateur d'*Amazon Athena*.  
Cet exemple montre une structure de partitionnement datée du 1er janvier 2023 :  

1. 

   ```
   s3://example-bucket/amazon_chime_sdk_data_lake
                               /serviceType=CallAnalytics/detailType={DETAIL_TYPE}/year=2023
                               /month=01/day=01/example-file.parquet
   ```

1. où se `DETAIL_TYPE` trouve l'un des suivants :

   1. `CallAnalyticsMetadata`

   1. `TranscribeCallAnalytics`

   1. `TranscribeCallAnalyticsCategoryEvents`

   1. `Transcribe`

   1. `Recording`

   1. `VoiceAnalyticsStatus`

   1. `SpeakerSearchStatus`

   1. `VoiceToneAnalysisStatus`

**Optimisation de la génération de banques de données en colonnes**  
Apache Parquet utilise la compression par colonne, la compression basée sur le type de données et le transfert des prédicats vers le bas pour stocker les données. De meilleurs taux de compression ou le fait de sauter des blocs de données permettent de lire moins d'octets dans votre compartiment Amazon S3. Cela permet d'améliorer les performances des requêtes et de réduire les coûts. Pour cette optimisation, la conversion des données de JSON en parquet est activée dans Amazon Kinesis Data Firehose.

**Projection de partition**  
Cette fonctionnalité d'Athena crée automatiquement des partitions pour chaque jour afin d'améliorer les performances des requêtes basées sur les dates.

## Configuration du lac de données
<a name="data-lake-setup"></a>

Utilisez la console Amazon Chime SDK pour effectuer les étapes suivantes.

1. **Démarrez la console Amazon Chime SDK ([ https://console.aws.amazon.com/chime-sdk/accueil](https://console.aws.amazon.com/chime-sdk/home)) et dans le volet de navigation, sous **Call Analytics**, sélectionnez Configurations.**

1. Terminez l'étape 1, choisissez **Suivant**, puis sur la page Étape 2, cochez la case **Voice Analytics**.

1. Sous **Détails de la sortie**, cochez la case **Entrepôt de données pour effectuer une analyse historique**, puis cliquez sur le lien **Déployer la CloudFormation pile**.

   Le système vous renvoie vers la page **Quick Create Stack** de la CloudFormation console.

1. Entrez un nom pour la pile, puis entrez les paramètres suivants :

   1. `DataLakeType`— Choisissez **Create Call Analytics DataLake**.

   1. `KinesisDataStreamName`— Choisissez votre stream. Il doit s'agir du flux utilisé pour le streaming des analyses d'appels.

   1. `S3BucketURI`— Choisissez votre compartiment Amazon S3. L'URI doit avoir le préfixe `s3://bucket-name`

   1. `GlueDatabaseName`— Choisissez un nom de base de données AWS Glue unique. Vous ne pouvez pas réutiliser une base de données existante dans le AWS compte.

1. Cochez la case d'accusé de réception, puis choisissez **Create** data lake. Attendez 10 minutes pour que le système crée le lac.

### Configuration du lac de données à l'aide de AWS CLI
<a name="data-lake-setup-using-cli"></a>

 AWS CLI À utiliser pour créer un rôle autorisé à créer une pile CloudFormation d'appels. Suivez la procédure ci-dessous pour créer et configurer les rôles IAM. Pour plus d'informations, consultez la section [Création d'une pile](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-cli-creating-stack.html) dans le *guide de AWS CloudFormation l'utilisateur*.

1. Créez un rôle appelé *AmazonChimeSdkCallAnalytics-Datalake-Provisioning-Role et associez une politique de confiance au rôle* permettant de l'assumer. CloudFormation 

   1. Créez une politique de confiance IAM à l'aide du modèle suivant et enregistrez le fichier au format .json.

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "Service": "cloudformation.amazonaws.com"
                  },
                  "Action": "sts:AssumeRole",
                  "Condition": {}
              }
          ]
      }
      ```

------

   1. Exécutez la **aws iam create-role** commande et transmettez la politique de confiance en tant que paramètre.

      ```
                                          aws iam create-role \
          --role-name AmazonChimeSdkCallAnalytics-Datalake-Provisioning-Role
          --assume-role-policy-document file://role-trust-policy.json
      ```

   1. Notez l'*ARN du rôle* renvoyé par la réponse. *le rôle arn* est requis à l'étape suivante.

1. Créez une politique avec l'autorisation de créer une CloudFormation pile.

   1. Créez une politique IAM à l'aide du modèle suivant et enregistrez le fichier au format .json. Ce fichier est obligatoire lors de l'appel à create-policy.

------
#### [ JSON ]

****  

      ```
      {  
          "Version":"2012-10-17",		 	 	   
          "Statement": [  
              {  
                  "Sid": "DeployCloudFormationStack",  
                  "Effect": "Allow",  
                  "Action": [  
                      "cloudformation:CreateStack"
                  ],
                  "Resource": "*"
              }
          ]
      }
      ```

------

   1. Exécutez **aws iam create-policy** et transmettez la politique de création de pile en tant que paramètre.

      ```
                                      aws iam create-policy --policy-name testCreateStackPolicy 
      --policy-document file://create-cloudformation-stack-policy.json
      ```

   1. Notez l'*ARN du rôle* renvoyé par la réponse. *le rôle arn* est requis à l'étape suivante.

1. Attachez la stratégie **aws iam attach-role-policy** au rôle.

   ```
                               aws iam attach-role-policy --role-name {Role name created above}
   --policy-arn {Policy ARN created above}
   ```

1. Créez une CloudFormation pile et entrez les paramètres requis :**aws cloudformation create-stack**.

   Fournissez des valeurs de paramètres pour chaque ParameterKey utilisation ParameterValue.

   ```
                               aws cloudformation create-stack  --capabilities CAPABILITY_NAMED_IAM 
   --stack-name testDeploymentStack 
   --template-url https://chime-sdk-assets.s3.amazonaws.com/public_templates/AmazonChimeSDKDataLake.yaml 
   --parameters  ParameterKey=S3BucketURI,ParameterValue={S3 URI}
   ParameterKey=DataLakeType,ParameterValue="Create call analytics datalake" 
   ParameterKey=KinesisDataStreamName,ParameterValue={Name of Kinesis Data Stream}
   --role-arn {Role ARN created above}
   ```

#### Ressources créées par la configuration du lac de données
<a name="cf-resources"></a>

Le tableau suivant répertorie les ressources créées lorsque vous créez un lac de données.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/chime-sdk/latest/dg/ca-data-lake.html)

# Configuration d'un tableau de bord rapide pour le SDK Amazon Chime
<a name="quicksight-setup-setup"></a>

Une fois que vous avez configuré le lac de données, vous pouvez configurer un tableau de bord rapide avec des métriques prédéfinies qui visualisent vos données. Vous pouvez utiliser les tableaux de bord suivants :
+ **Transcrivez l'analyse des appels et l'analyse vocale**. Les indicateurs incluent des visuels résumés et détaillés pour les turn-by-turn transcriptions, les problèmes détectés, les résultats, la détection des entités et les correspondances d'identifiants de profil vocal.
+ **Transcrivez \$1 Analyse vocale**. Les indicateurs incluent des visuels résumés et détaillés pour les turn-by-turn transcriptions, les correspondances de vocabulaire, le ton vocal et les correspondances d'identifiant de profil vocal.

Les rubriques suivantes expliquent comment configurer un compte Quick si vous n'en avez pas déjà un et comment configurer un tableau de bord.

**Topics**
+ [Création d'un QuickSight compte](#create-quicksight-account)
+ [Configuration de votre QuickSight compte](#configure-qs-acct)
+ [Création d'un QuickSight tableau de bord](#create-qs-dashboard)

## Création d'un QuickSight compte
<a name="create-quicksight-account"></a>

Les étapes décrites dans cette section expliquent comment créer un compte Quick. Si vous avez déjà un compte, vous pouvez passer à[Création d'un QuickSight tableau de bord](#create-qs-dashboard).

Vous pouvez créer un QuickSight compte en :
+ À l'aide CloudFormation de modèles Amazon.
+ À l'aide de la console Amazon Chime SDK.

### Conditions préalables
<a name="qs-account-prereqs"></a>

Rassemblez les informations suivantes avant de commencer :
+ Le nom de votre compartiment Amazon S3 pour l'analyse des appels.
+ Une adresse e-mail de notification. Le système envoie QuickSight des notifications à cette adresse.

### Utiliser CloudFormation des modèles pour créer un compte
<a name="account-by-cft"></a>

Les étapes suivantes expliquent comment créer un compte Quick en déployant un CloudFormation modèle Amazon. Le processus vous permet uniquement de souscrire à un compte Enterprise. Pour plus d'informations sur la tarification, reportez-vous à la section [Tarification rapide](https://aws.amazon.com/quicksight/pricing/).

**Pour déployer le modèle**

1. Démarrez la AWS console et connectez-vous à votre compte AWS.

1. Collez l'URL suivante dans la barre d'adresse de votre navigateur. Assurez-vous de saisir votre région comme indiqué.

   `https://region.console.aws.amazon.com/cloudformation/home?region=region#/stacks/quickcreate?templateURL=https://chime-sdk-assets.s3.amazonaws.com/public_templates/AmazonChimeSDKQuickSightSubscription.yaml`.

1. Sur la page **Création rapide d'une pile**, entrez ce qui suit :

   1. Dans **Stack name**, saisissez le nom de votre compte.

   1. Sous **QuickSightNotificationEmail**l'adresse e-mail que vous avez saisie plus tôt.

   1. Sous **QuickSightSubscriptionForDataVisualization**, choisissez **Créer un nouveau AWS QuickSight compte**.

   1. Sous **S3 BucketName**, entrez le nom de votre compartiment Amazon S3.

   1. Sélectionnez l'option **Je reconnais qu'AWS est CloudFormation susceptible de créer des ressources IAM**. case à cocher.

1. Sélectionnez **Créer la pile**.

   Le système met environ 10 minutes pour créer la pile.

1. Lorsque le build est terminé, choisissez **Go to Quick** et saisissez votre adresse e-mail pour vous connecter à votre compte.

### Utiliser la console pour créer un compte
<a name="account-by-console"></a>

Les étapes suivantes expliquent comment utiliser la console Amazon Chime SDK pour créer un compte Quick. Vous devez utiliser un compte Enterprise ou Enterprise \$1 Q.

**Pour utiliser la console**

1. Démarrez la console Amazon Chime SDK [ https://console.aws.amazon.com/chime-sdk/chez](https://console.aws.amazon.com/chime-sdk/home) vous**QuickSight**, recherchez et choisissez dans les résultats de recherche. **QuickSight**  
![\[Un résultat de recherche qui renvoie à Quick.\]](http://docs.aws.amazon.com/fr_fr/chime-sdk/latest/dg/images/quicksightsetup-1.png)

1. Choisissez **S'inscrire pour QuickSight**. 

1. Choisissez **Enterprise** ou **Enterprise \$1 Q**, puis choisissez **Continuer**.

1. Entrez votre prénom, votre nom de famille, votre numéro de téléphone et l'adresse e-mail que vous avez précédemment collectés, puis choisissez **Continuer**.

1. Procédez comme suit :

   1. Sous **Méthode d'authentification**, choisissez une option. 
**Note**  
Si vous choisissez l'option avec des utilisateurs fédérés, vous devez disposer des autorisations IAM appropriées. Pour plus d'informations, reportez-vous à [la section Inscription à un abonnement rapide](https://docs.aws.amazon.com/quicksight/latest/user/signing-up.html) dans le *Guide de l'utilisateur rapide*.

   1. Sous **QuickSight Région**, sélectionnez une région.

   1. Sous **Informations sur le compte**, entrez le nom du compte et l'adresse e-mail que vous avez collectés précédemment.

   1. Sous **QuickSight Accès aux services AWS**, utilisez le rôle par défaut ou choisissez **Utiliser un rôle existant** et sélectionnez un rôle dans la liste.

   1. (Facultatif) selon les besoins, sous **Autoriser l'accès et la découverte automatique pour ces ressources**, sélectionnez des ressources supplémentaires.

   1. Lorsque vous avez terminé, choisissez **Terminer**.

   1. Lorsque le build est terminé, choisissez **Go to Quick** et saisissez votre adresse e-mail pour vous connecter à votre compte.

## Configuration de votre QuickSight compte
<a name="configure-qs-acct"></a>

Une fois connecté à votre QuickSight compte, vous devez configurer la sécurité et vous ajouter à un groupe créé par le processus de configuration.

**Pour configurer la sécurité**

1. Cliquez sur l'icône de profil dans le coin supérieur droit, puis sélectionnez **Gérer** dans le QuickSight menu qui s'affiche.  
![\[Un menu avec la QuickSight commande Gérer.\]](http://docs.aws.amazon.com/fr_fr/chime-sdk/latest/dg/images/quicksightsetup-1-a.png)

1. Dans le volet de navigation, sélectionnez **Sécurité et autorisations**.

1. Sous **QuickSight Accès aux AWS services**, choisissez **Gérer** et assurez-vous que les services suivants sont sélectionnés.
   + Amazon Redshift
   + Amazon RDS
   + Amazon S3
   + Amazon Athena
   +  IAM

1. **Cliquez sur le lien Select Amazon S3 buckets**.

1. Cochez la case à côté de votre compartiment Amazon S3, puis cochez la case de droite, dans la colonne **Autorisation d'écriture pour le groupe de travail Athena**.

1. Choisissez **Finish** (Terminer).

1. Choisissez **Enregistrer**.

**Pour vous ajouter au groupe**

1. Dans le volet de navigation, choisissez **Gérer les groupes**, puis choisissez le groupe dont le nom **contient Admins**. Par exemple, *S3 BucketName* — **Admins.**

1. Choisissez **Ajouter un utilisateur**, puis entrez votre alias d'e-mail dans le champ qui apparaît.

   Votre nom apparaît sous la forme **Admin, c'est-à-dire** *votre alias*.

1. Choisissez **Ajouter**.

## Création d'un QuickSight tableau de bord
<a name="create-qs-dashboard"></a>

Après avoir créé un lac de données, vous pouvez créer un QuickSight tableau de bord qui visualise vos données. Vous pouvez utiliser un CloudFormation modèle Amazon ou la console Amazon Chime SDK pour créer le tableau de bord. Les étapes suivantes expliquent les deux méthodes.

**Pour utiliser un modèle**

1. Démarrez la CloudFormation console Amazon.

1. Collez le lien suivant dans la barre d'adresse de votre navigateur : `https://region.console.aws.amazon.com/cloudformation/home?region=region#/stacks/quickcreate?templateURL=https://chime-sdk-assets.s3.amazonaws.com/public_templates/AmazonChimeSDKQuickSightDashboards.yaml`

1. Sur la page **Création rapide d'une pile**, sous **Nom de la pile**, entrez le nom du compte.

1. Sous **ActiveQuickSightAccount**, sélectionnez **Vrai**.

1. Sous **QuicksightDashboardSelection**, choisissez **Analyse des appels — Transcrire le tableau de bord des analyses des appels et des analyses vocales ou Analyse des appels — Transcrire le tableau de bord** **des analyses** vocales.

1. Sous **Amazon S3 BucketName**, entrez l'URI de votre compartiment Amazon S3.

1. Sous **GlueDatabaseName**, entrez la base de données Glue sur laquelle vous souhaitez déployer le QuickSight tableau de bord.

1. Cochez la case **Je reconnais qu'AWS CloudFormation pourrait créer des ressources IAM**, puis choisissez **Create stack**.

**Pour configurer un QuickSight tableau de bord manuellement**

1. Accédez à votre QuickSight compte.

1. Dans le coin supérieur droit, choisissez l'icône du profil, puis sélectionnez **Gérer QuickSight**.  
![\[La boîte de dialogue du QuickSight compte et QuickSight la commande Gérer.\]](http://docs.aws.amazon.com/fr_fr/chime-sdk/latest/dg/images/quicksightsetup-1-a.png)

1. Dans le volet de navigation, choisissez **Gérer les groupes**, puis choisissez le groupe créé par le processus de configuration.

1. Choisissez **Ajouter un utilisateur**, entrez votre adresse e-mail, puis choisissez **Ajouter**.

   Le système met 10 minutes pour déployer la page.

1. Utilisez la console Amazon Chime SDK pour vous connecter à votre QuickSight compte et utiliser le tableau de bord.