

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Processore di analisi delle chiamate e destinazioni di output per l'SDK Amazon Chime
<a name="call-analytics-processor-and-output-destinations"></a>

 Puoi specificare elementi unici una sola volta per configurazione della pipeline di Media Insights. Tutti i processori e i sink devono risiedere nello stesso AWS account ed è necessario crearli nella stessa AWS regione dell'endpoint chiamato. Ad esempio, se utilizzi l'`us-east-1`endpoint per Amazon Chime SDK Media Pipelines, non puoi trasmettere un Kinesis Data Stream dalla regione. `us-west-2` 

Espandi ogni sezione per informazioni su ciascuna destinazione.

## Destinazioni dei processori Amazon Transcribe Call Analytics
<a name="amazon-transcribe-call-analytics-processor"></a>

Lavelli supportati:. `KinesisDataStreamSink`

Non puoi combinare questo processore con un processore Amazon Transcribe. Per ulteriori informazioni su Amazon Transcribe Call Analytics, consulta la sezione Analisi delle [chiamate in tempo reale](https://docs.aws.amazon.com/transcribe/latest/dg/call-analytics-streaming.html), nella Amazon *Transcribe* Developer Guide. Se abiliti l'[analisi Post call](https://docs.aws.amazon.com/transcribe/latest/dg/tca-post-call.html) includendola `PostCallAnalyticsSettings` nella chiamata `AmazonTranscribeCallAnalyticsProcessorConfiguration` API, ricevi artefatti nella posizione Amazon S3 specificata quando la pipeline di Media Insights si interrompe e l'elaborazione termina.

**Nota**  
Se metti in pausa la pipeline per più di 35 secondi e poi la riprendi, gli artefatti post-chiamata vengono generati in file separati con sessioni diverse nel bucket Amazon S3. IDs 

Gli artefatti post-chiamata includono un file JSON di analisi e un file WAV o Opus di registrazione audio. L'URL del bucket Amazon S3 per i file di registrazione redatti (se abiliti la redazione dei contenuti) e non redatti viene inviato a Kinesis Data Stream una volta per ogni sessione post-chiamata di analisi delle chiamate di Amazon Transcribe come parte della sezione dei metadati. `onetimeMetadata`

Analisi delle chiamate con Amazon Transcribe L'analisi delle chiamate prende in input i dati audio da Kinesis Video Stream.
+ Codifica multimediale supportata: audio little-endian a 16 bit firmato PCM.
+ Frequenze di campionamento multimediali supportate: tra 8.000 Hz e 48.000 Hz.

`StreamConfiguration`input per un processo di Amazon Transcribe Analytics:
+ È necessario specificare il valore `KinesisVideoStreamArn` per ogni stream.
+ (Facoltativo) Il KVS `FragmentNumber` avvia un processo di analisi delle chiamate con il blocco dopo un frammento specificato. Se non viene fornito, utilizza la parte più recente del flusso video Kinesis.
+ `StreamChannelDefinition`Definisce chi sta parlando. L'analisi delle chiamate di Amazon Transcribe richiede audio a due canali. Quando chiami l'API, devi specificare quale altoparlante si trova su quale canale. [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) Ad esempio, se il vostro agente parla per primo, impostate il `ChannelId` `0` to per indicare il primo canale e `ParticipantRole` `AGENT` per indicare che l'agente sta parlando.

**Nota**  
Quando usi un Voice Connector per creare un processore di analisi delle chiamate `MediaInsightsPipeline` con Amazon Transcribe, l'audio della gamba dell'account Voice Connector `AGENT` è e l'audio della gamba PSTN è per il. `CUSTOMER` `ParticipantRole`  
Per Voice Connector SIPREC, ci affidiamo ai metadati SIPREC. Nella maggior parte dei casi, l'etichetta stream con il valore lessicografico più basso è considerata la. `AGENT`

L'esempio seguente mostra l'ingresso Kinesis Video Stream per un flusso audio a doppio canale.

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

 Al contrario, l'esempio seguente mostra due ingressi mono da due diversi flussi Kinesis Video. 

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

## Output di analisi delle chiamate di Amazon Transcribe
<a name="amazon-transcribe-call-analytics-output"></a>

 Ogni record Amazon Transcribe contiene `UtteranceEvent` un o `CategoryEvent` un, ma non entrambi. `CategoryEvents`ne ho uno`detail-type`. `TranscribeCallAnalyticsCategoryEvent` 

L'esempio seguente mostra il formato di output dei metadati monouso per 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'esempio seguente mostra il formato di output di 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
                }]
            }
        }
    }
}
```

## Lo streaming di Amazon Chime SDK Voice Connector aggiorna i metadati
<a name="cvc-stream-update-metadata"></a>

Se la configurazione di analisi delle chiamate è associata a un connettore vocale Amazon Chime SDK, il seguente payload di aggiornamento del connettore vocale verrà inviato quando è disponibile un aggiornamento in streaming di [Voice](https://docs.aws.amazon.com/chime-sdk/latest/ag/automating-chime-with-cloudwatch-events.html) Connector.

L'esempio seguente mostra un formato di metadati di aggiornamento per il processore Amazon Transcribe e il processore 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'esempio seguente mostra un formato di metadati di aggiornamento per 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"
}
```

## Metadati di registrazione delle chiamate SIP
<a name="sip-update-metadata"></a>

Gli esempi seguenti mostrano i metadati per la registrazione di una chiamata SIP tra due persone, Alice e Bob. Entrambi i partecipanti inviano e ricevono audio e video. Per semplicità, l'esempio contiene solo frammenti di SIP e SDP e SRC registra i flussi di ogni partecipante su SRS senza mixarli.

```
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'esempio seguente mostra i metadati aggiornati quando un partecipante alla chiamata mette in attesa l'altro. In questo caso, riceve `participant_id srfBElmCRp2QB23b7Mpk0w==` solo flussi multimediali e non invia alcun file multimediale, quindi l'elemento `send` XML viene omesso. Al contrario, `participant_id zSfPoSvdSDCmU3A3TRDxAw==` invia file multimediali all'altro partecipante ma non riceve file multimediali dall'altro partecipante, pertanto l'elemento `recv` XML viene omesso.

```
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'esempio seguente mostra l'aggiornamento dei metadati quando la chiamata riprende. Il payload ora contiene gli elementi e XML. `send` `recv`

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

## Destinazioni dei processori Amazon Transcribe
<a name="amazon-transcribe-processors"></a>

Lavelli supportati:. `KinesisDataStreamSink`

Non puoi combinare questo processore con l'analisi delle chiamate di Amazon Transcribe. *Per ulteriori informazioni sull'input e sull'output di Amazon Transcribe, consulta Transcribe [streaming audio nella Amazon Transcribe Developer Guide](https://docs.aws.amazon.com/transcribe/latest/dg/streaming.html).*

La sessione di analisi delle chiamate con Amazon Transcribe utilizza l'input di dati audio da Kinesis Video Stream.
+ Supportato MediaEncoding: audio little-endian a 16 bit con firma PCM.
+ Frequenze di MediaSampleRate campionamento supportate: tra 8.000 Hz e 48.000 Hz.

 `StreamConfiguration`input per i processori Amazon Transcribe: 
+ È necessario specificare il valore `KinesisVideoStreamArn` per ogni stream.
+ (Facoltativo) KVS`FragmentNumber`: avvia un processo di analisi delle chiamate con il blocco dopo un frammento specifico. Se non viene fornito, utilizzerà il blocco più recente disponibile su Kinesis Video Stream.
+ `StreamChannelDefinition`Amazon Transcribe attualmente supporta l'audio con due canali. È necessario specificare il valore `NumberOfChannels` in fase di esecuzione. `StreamChannelDefinition` Inoltre, è necessario passare il `ChannelId` se si invia audio mono su due canali separati. Nella trascrizione, ai canali vengono assegnate le etichette `ch_0` e `ch_1`. L'esempio seguente mostra l'ingresso KVS per lo streaming di un canale audio mono.

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

 L'esempio seguente mostra l'ingresso KVS per due ingressi audio mono in due flussi diversi. 

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

**Nota**  
Per il Voice Connector creato `MediaInsightsPipeline` con un processore Amazon Transcribe, viene assegnato l'audio leg dell'account Voice Connector e l'audio leg PSTN `channel-0` a. `channel-1`  
Per Voice Connector SIPREC, ci affidiamo ai metadati SIPREC. Nella maggior parte dei casi, viene assegnata l'etichetta stream con il valore lessicografico più basso. `channel-0`  
Per i processori di analisi delle chiamate Amazon Transcribe e Amazon Transcribe, se trasmetti due flussi Kinesis Video e ogni flusso contiene un canale audio mono, associamo entrambi i canali a un unico flusso audio prima di elaborare i dati di analisi delle chiamate Transcribe o Transcribe.

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

L'esempio seguente mostra un formato di output di metadati monouso per 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'esempio seguente mostra il formato di output di 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
            }]
        }
    }
}
```

## Destinazioni dei processori di analisi vocale
<a name="voice-analytics-processor"></a>

 Lavandini supportati:`KinesisDataStreamSink`, `SqsQueueSink``SnsTopicSink`, e`LambdaFunctionSink`. 

 Puoi combinare questo processore con il processore di analisi delle chiamate Amazon Transcribe, il processore Amazon Transcribe o la registrazione delle chiamate. È necessario utilizzare [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)o per richiamare un [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 processore di analisi vocale. Per ulteriori informazioni sull'uso dell'analisi vocale, consulta [Uso dell'analisi vocale di Amazon Chime SDK](https://docs.aws.amazon.com/chime-sdk/latest/dg/voice-analytics.html). 

## Utilizzo di Kinesis Data Stream come sink
<a name="kinesis-data-stream-destination"></a>

I record Kinesis Data Stream (KDS) generati dall'analisi delle chiamate includono l'ID della pipeline multimediale, il tipo di dettaglio, i metadati e le sezioni specifiche del processore. *Per informazioni sul consumo di dati da un Kinesis Data Stream, consulta la sezione [Lettura dei dati da Amazon Kinesis Data Streams, nella guida per sviluppatori](https://docs.aws.amazon.com/streams/latest/dev/building-consumers.html) di Amazon Kinesis Streams.* Per creare una configurazione con questo sink, devi disporre dell'`kinesis:DescribeStream`autorizzazione per lo stream specificato. 

 **Metadati**

 La `metadata` sezione dei record KDS generati contiene tutte le coppie chiave-valore specificate `CallAnalyticsRuntimeMetadata` durante la [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)chiamata API. Se una sessione di analisi delle chiamate è stata avviata da un Voice Connector, la sezione dei metadati viene compilata automaticamente con i seguenti parametri: 
+ `transactionId`
+ `fromNumber`
+ `toNumber`
+ `callId`
+ `voiceConnectorId`
+ `direction`

 Oltre ai parametri mostrati sopra, la sezione dei metadati per le sessioni di analisi delle chiamate avviate da Voice Connector verrà compilata con un campo che contiene: `oneTimeMetadata` 
+ `inviteHeaders`
+ `siprecMetadata`

Questo file viene pubblicato su Kinesis Data Streams una sola volta all'inizio della sessione e `detail-type` ha un valore di. `CallAnalyticsMetadata`

Puoi inserire identificatori univoci `MediaInsightsRuntimeMetadata` per ogni chiamata [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 in modo da identificare in modo univoco l'origine di ogni record inviato a Kinesis Data Stream.

## Registrazione delle chiamate Amazon S3
<a name="amazon-s3-call-recording"></a>

 La registrazione di analisi delle chiamate legge l'audio da un flusso KVS, lo registra come file audio e carica il file nel bucket Amazon S3 specificato. Dopo la registrazione, l'analisi delle chiamate invia anche i metadati della chiamata insieme alla posizione del file a KDS. Se abiliti un data warehouse, i metadati delle chiamate (inclusi i metadati SIPREC se è stato utilizzato SIPREC) vengono inviati al data warehouse in un set di tabelle Parquet su cui puoi interrogare.

Come qualsiasi altro processore di analisi delle chiamate, devi prima creare una configurazione per la pipeline. Puoi utilizzare la console Amazon Chime SDK o la CLI per creare la configurazione. Si utilizza quindi la CLI per creare la pipeline. Per ulteriori informazioni sull'utilizzo della console per creare configurazioni di registrazione, fare riferimento a[Creazione di configurazioni di analisi delle chiamate per l'SDK Amazon Chime](creating-ca-configuration.md), all'inizio di questa sezione. Per ulteriori informazioni sull'utilizzo dei flussi di lavoro di registrazione, fare riferimento a[Comprensione dei flussi di lavoro per la registrazione delle chiamate per l'SDK Amazon Chime](recording-workflows.md), all'inizio di questa sezione.

 **Per utilizzare la CLI per creare una configurazione**

 Esegui il comando seguente: 

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

 L'esempio seguente mostra un file JSON di configurazione con la sola registrazione abilitata: 

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

Ricorda quanto segue:
+ Per abilitare la registrazione delle chiamate tramite Kinesis Video Streams, l'audio deve essere little-endian a 16 bit firmato PCM. La frequenza KHz di campionamento deve essere 8. 
+ I costruttori devono impostare un periodo di conservazione dei dati sufficientemente lungo per Kinesis Video Stream per garantire che i frammenti vengano conservati e utilizzabili dall'analisi delle chiamate. 
+ Se abiliti la registrazione delle chiamate, da sola o in combinazione con altri processori, devi fornire due Kinesis Video Stream ARNs per la registrazione. La registrazione delle chiamate non supporta un singolo ingresso audio stereo. 

## Uscita dei metadati per la registrazione delle chiamate Amazon S3
<a name="s3-recording-metadata-output"></a>

L'esempio seguente mostra il formato di output dei metadati per la registrazione di Amazon S3 per l'analisi delle chiamate.

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

## Abilita il miglioramento della voce
<a name="voice-enhancement-sink"></a>

Per abilitare il miglioramento della voce, includi un `VoiceEnhancementSinkConfiguration` elemento in una chiamata API. [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)

Questo esempio mostra un elemento tipico.

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

Per aggiornare una configurazione, aggiungi l'`VoiceEnhancementSinkConfiguration`elemento a una chiamata [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. Quando lo fai, 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 include l'`VoiceEnhancementSinkConfiguration`elemento nei risultati.

Questa richiesta di esempio mostra come abilitare Voice Enhancement e la registrazione su 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"
}
```

**Nota**  
L'`VoiceEnhancementSink`elemento richiede sempre un `S3RecordingSink` elemento in una configurazione di analisi delle chiamate.

# Combinazione della trascrizione con i sink di registrazione per l'SDK Amazon Chime
<a name="combining-recording-transcription"></a>

Puoi combinare i processori Amazon Transcribe e Amazon Transcribe Call Analytics con un sink di registrazione Amazon S3. I costruttori possono passare un S3 RecordingSinkConfiguration oltre ai processori Amazon Transcribe in [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)una chiamata API o utilizzando la console.

Oltre al sink di registrazione Amazon S3, puoi utilizzare un processore Amazon Transcribe o un processore Amazon Transcribe Call Analytics, ma mai entrambi. Puoi anche aggiungere l'analisi vocale alla stessa configurazione oltre a un sink di registrazione, con o senza un processore di trascrizione.

**Nota**  
È possibile abilitare la registrazione con uno qualsiasi dei processori sopra elencati. Tuttavia, se abiliti Amazon Transcribe Call Analytics insieme alla registrazione delle chiamate Amazon S3, devi fornire due flussi video Kinesis e riceverai file di registrazione duplicati, uno da Amazon Transcribe Call Analytics e uno dalla registrazione delle chiamate Amazon S3.

Ricorda quanto segue:
+ È necessario utilizzare un file univoco. `MediaInsightsPipelineConfigurationName`
+ Per informazioni su`ResourceAccessRoleArn`, fare riferimento [Utilizzo del ruolo di accesso alle risorse di analisi delle chiamate per l'SDK Amazon Chime](call-analytics-resource-access-role.md) a questa guida.
+ Il `Destination` valore deve essere un ARN del percorso S3. Il bucket Amazon S3 deve appartenere allo stesso account.
+ Se utilizzi una configurazione con Transcribe and recording per creare una pipeline, le pause e le riprese appaiono solo negli approfondimenti generati da un flusso di Kinesis Data. Tutti i dati negli stream KVS vengono registrati e caricati su Amazon S3.
+ Se una configurazione utilizza Amazon transcribe o transcribe call analytics (TCA) oltre alla registrazione, la pipeline Media Insights fornisce informazioni sulla trascrizione o Transcribe Call Analytics in tempo reale, seguite dalla registrazione di Amazon S3 al termine della chiamata. Se i servizi di trascrizione falliscono durante l'analisi della chiamata, il processo di registrazione S3 tenta comunque di funzionare. Al contrario, un errore di registrazione su Amazon S3 non influisce sulle informazioni di trascrizione, poiché viene eseguito dopo il completamento della trascrizione.

Questo esempio mostra una configurazione con un processore Amazon Transcribe e un sink di registrazione Amazon S3. L'esempio consente anche la stabilizzazione parziale dei risultati, che può ridurre la latenza in uscita, ma può influire sulla precisione. *Per ulteriori informazioni, consulta la sezione [Stabilizzazione dei risultati parziali](https://docs.aws.amazon.com/transcribe/latest/dg/streaming-partial-results.html#streaming-partial-result-stabilization), nella 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"
        }
    ]
}
```

# Utilizzo EventBridge delle notifiche Amazon per l'SDK Amazon Chime
<a name="using-eventbridge-notifications"></a>

Amazon Chime SDK Call Analytics supporta l'invio di eventi al EventBridge bus predefinito quando lo stato della pipeline di Media Insights cambia o quando vengono soddisfatte le condizioni di avviso in tempo reale di analisi delle chiamate. Per gli aggiornamenti sullo stato degli errori della pipeline di Media Insights, ti consigliamo di configurare un EventBridge obiettivo per avvisarti se le tue risorse si guastano in modo asincrono. Le notifiche di analisi delle chiamate hanno una fonte aws.chime e vari tipi di dettagli, che sono condivisi nelle sezioni seguenti. Per ulteriori informazioni, consulta la [Amazon EventBridge User Guide](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html).

**Topics**
+ [Aggiornamenti di stato](#status-updates)
+ [Avvisi in tempo reale](#realtime-alerts)

## Aggiornamenti di stato
<a name="status-updates"></a>

 Le pipeline di Media Insights inviano EventBridge notifiche man mano che una sessione di analisi delle chiamate procede e termina correttamente o rileva errori. Riceverai una EventBridge notifica con il tipo di dettaglio «Media Insights State Change» quando: 
+ Lo stato di una pipeline di Media Insights cambia.
+ Lo stato di un elemento della pipeline di Media Insights cambia.
+ Qualsiasi elemento della pipeline viene interrotto.
+ Qualsiasi elemento della pipeline non funziona.

La sezione dei dettagli include sempre i seguenti campi:
+ `version`
+ `mediaInsightsPipelineArn`
+ `eventType`

La sezione dei dettagli include anche un `mediaInsightsPipelineElementStatuses` campo se la pipeline di Media Insights contiene più elementi, come processori di analisi e data sink. Questo campo indica lo stato di ogni elemento nella pipeline. Lo stato possibile per ogni elemento della pipeline potrebbe essere:
+ `NotStarted`
+ `InProgress`
+ `Stopped`
+ `Failed`

 La sezione dei dettagli include anche tutte le coppie chiave-valore specificate `MediaInsightsRuntimeMetadata` durante la [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)chiamata API. Se una sessione di analisi delle chiamate è stata avviata da un Voice Connector, la sezione dei metadati viene compilata automaticamente con i seguenti parametri: 
+ `transactionId`
+ `fromNumber`
+ `toNumber`
+ `callId`
+ `voiceConnectorId`
+ `direction`

 I seguenti tipi di eventi possono apparire ogni volta che una pipeline di Media Insights contiene un singolo elemento. Espandi ogni sezione per ottenere ulteriori informazioni.

### Approfondimenti multimediali su Amazon Chime SDK in corso
<a name="insights-in-progress"></a>

Questo esempio mostra una tipica struttura di eventi.

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

### Gli approfondimenti multimediali dell'SDK Amazon Chime sono stati sospesi
<a name="insights-paused"></a>

Questo esempio mostra una tipica struttura di eventi.

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

### Gli approfondimenti multimediali dell'SDK Amazon Chime sono stati interrotti
<a name="insights-stoppped"></a>

Questo esempio mostra una tipica struttura di eventi.

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

### Errore temporaneo di Amazon Chime SDK Media Insights
<a name="insights-temp-failure"></a>

Indica che il servizio ha riscontrato un errore temporaneo e tenterà di riprovare. Non è richiesta alcuna azione da parte tua.

Questo esempio mostra una tipica struttura di eventi.

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

### Errore permanente di Amazon Chime SDK Media Insights
<a name="insights-perm-failure"></a>

Indica un errore che richiede un intervento da parte tua. Utilizzare il `failureReason` per risolvere il problema. I guasti tipici potrebbero includere quanto segue:
+ Autorizzazioni insufficienti per il ruolo di accesso alle risorse
+ Risorse mancanti o eliminate
+ Limitazione da parte di un AWS servizio che richiama le chiamate di analisi per tuo conto, come Amazon Transcribe o Amazon Kinesis.
+ Formati multimediali incompatibili negli stream KVS

Questo esempio mostra una tipica struttura di eventi.

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

**Nota**  
Il campo `failureReason` è facoltativo. Ad esempio, un motivo tipico potrebbe essere`Access denied when assuming resource access role`.

I seguenti tipi di eventi possono apparire ogni volta che viene creata una pipeline di Media Insights, o il tentativo di creazione fallisce, per una sessione di analisi delle chiamate avviata da un Amazon Chime SDK Voice Connector. Espandi ogni sezione per ottenere ulteriori informazioni.

### Creazione di approfondimenti multimediali sull'SDK Amazon Chime
<a name="vc-pipeline-created"></a>

Questo esempio mostra un tipico evento di successo.

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

### Creazione non riuscita degli approfondimenti multimediali dell'SDK Amazon Chime
<a name="vc-pipeline-failed"></a>

Questo esempio mostra un tipico evento di errore.

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

I seguenti tipi di eventi possono apparire quando una pipeline di Media Insights contiene più elementi. Le notifiche di esempio sono da `AmazonTranscribeProcessor` `S3RecordingSink` abbinare a. Espandi ogni sezione per ottenere ulteriori informazioni. 

### AmazonTranscribeProcessor è in corso e S3 non RecordingSink è stato avviato
<a name="processor-running-sink-not-started"></a>

Questo esempio mostra una tipica struttura di eventi.

```
{
    "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 è riuscito e S3 RecordingSink è in corso
<a name="processor-success-sink-in-progress"></a>

Questo esempio mostra una tipica struttura di eventi.

```
{
    "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 non è riuscito e S3 RecordingSink è in corso
<a name="processor-fail-sink-in-process"></a>

Questo esempio mostra una tipica struttura di eventi.

```
{
    "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 ha fallito e S3 RecordingSink ha avuto successo
<a name="processor-fail-record-finish"></a>

Questo esempio mostra una tipica struttura di eventi.

```
{
    "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 ha avuto successo e S3 RecordingSink ha fallito
<a name="processor-success-recording-fail"></a>

Questo esempio mostra una tipica struttura di eventi.

```
{
    "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 è in pausa e S3 non RecordingSink è stato avviato
<a name="processor-pause-recording-no-start"></a>

Questo esempio mostra una tipica struttura di eventi.

```
{
    "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 è temporaneamente fallito e S3 non RecordingSink è stato avviato
<a name="processor-temp-fail-recording-no-start"></a>

Questo esempio mostra una tipica struttura di eventi.

```
{
    "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 e S3 ha avuto successo RecordingSink
<a name="processor-sink-success"></a>

Questo esempio mostra una tipica struttura di eventi.

```
{
    "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 è riuscito ed VoiceEnhancement è in corso
<a name="voice-enhancement-sink-inprogress"></a>

Questo esempio mostra una tipica struttura di eventi.

```
{
  "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 ha avuto successo e VoiceEnhancement non è riuscito a causa di chiamate di durata superiore a 30 minuti
<a name="voice-enhancement-sink-fail-longerthan30minutes"></a>

Questo esempio mostra una tipica struttura di eventi.

```
{
  "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 ha avuto successo e VoiceEnhancement non è riuscito a causa di chiamate inferiori a 30 minuti
<a name="voice-enhancement-sink-fail-lessthan30minutes"></a>

Questo esempio mostra una tipica struttura di eventi.

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

## Avvisi in tempo reale
<a name="realtime-alerts"></a>

**Nota**  
Solo i processori Amazon Transcribe e Amazon Transcribe Call Analytics supportano avvisi in tempo reale.

 L'analisi delle chiamate di Amazon Chime SDK consente agli sviluppatori di configurare regole per l'invio di avvisi in tempo reale tramite un processore durante una sessione di analisi. Gli avvisi vengono inviati ad Amazon EventBridge con il tipo di `Media Insights Rules Matched` dettaglio. EventBridge supporta l'integrazione con servizi downstream come Lambda, Amazon SQS e Amazon SNS per attivare notifiche per l'utente finale o avviare altre logiche aziendali personalizzate.

 Gli avvisi in tempo reale vengono configurati come parte del campo per. `RealTimeAlertConfiguration` `MediaInsightsPipelineConfiguration` Puoi utilizzare la console Amazon Chime SDK per configurare il campo oppure puoi chiamare o. [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 

 Questo esempio mostra come creare o aggiornare una configurazione di avvisi in tempo reale tramite 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"
            }
        }
    ]
}
```

Ogni regola in una configurazione di avviso in tempo reale viene attivata indipendentemente. È possibile ricevere più EventBridge notifiche se vengono soddisfatte più condizioni della regola contemporaneamente. Per creare un elenco di regole per i tuoi avvisi, puoi selezionare tra i seguenti tipi di regole:

Keyword Match  
Avvisa quando una determinata serie di parole chiave o frasi trova corrispondenza in un evento di enunciazione o trascrizione. È possibile configurare l'avviso in modo che emetta un evento se:  
+ Tutte le parole chiave specificate vengono pronunciate e `Negate` sono impostate su. `false`
+ Tutte le parole chiave specificate non vengono pronunciate per l'intera chiamata, se `Negate` è impostata su. `true`
Amazon Transcribe e Amazon Transcribe Analytics supportano questo tipo di regola.

Analisi delle emozioni  
Avvisa quando un particolare tipo di sentimento persiste per un periodo di tempo variabile. Solo Transcribe Call Analytics supporta questa regola.

Rilevamento dei problemi  
Avvisa quando viene rilevato un problema in un evento di enunciazione. Solo Transcribe Call Analytics supporta questo tipo di regola.

L'esempio seguente mostra un evento di avviso in tempo reale per una `KeywordMatch` regola.

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

Alcuni EventBridge campi sono specifici del tipo di regola corrispondente:

**Campi di corrispondenza tra parole chiave**  
`utteranceId`: ID della trascrizione che contiene una parola chiave corrispondente se utilizzi Amazon Transcribe Call Analytics. Solo per la corrispondenza di parole chiave vocali.  
`resultId`: ID della trascrizione che contiene una parola chiave corrispondente se utilizzi Amazon Transcribe. Solo per la corrispondenza di parole chiave vocali.  
`beginTimestamp`: ora di inizio della trascrizione che contiene una parola chiave corrispondente. Solo per la corrispondenza di parole chiave vocali.

**Campi di analisi del sentiment**  
`beginTimestamp`: Ora di inizio della finestra scorrevole per il sentimento corrispondente.  
`endTimestamp`: Ora di fine della finestra scorrevole per il sentimento corrispondente.

# Creazione di un data lake SDK Amazon Chime
<a name="ca-data-lake"></a>

Il data lake di analisi delle chiamate SDK di Amazon Chime ti consente di trasmettere in streaming le informazioni basate sull'apprendimento automatico e tutti i metadati da Amazon Kinesis Data Stream al tuo bucket Amazon S3. Ad esempio, utilizzando il data lake per accedere alle registrazioni. URLs Per creare il data lake, distribuisci un set di AWS CloudFormation modelli dalla console Amazon Chime SDK o utilizzando programmaticamente il. AWS CLI Il data lake ti consente di interrogare i metadati delle chiamate e i dati di analisi vocale facendo riferimento alle tabelle di dati AWS Glue in Amazon Athena.

**Topics**
+ [Prerequisiti](#data-lake-prereqs)
+ [Terminologia e concetti relativi al data lake](#data-lake-terms)
+ [Creazione di più data lake](#creating-multiple-data-lakes)
+ [Disponibilità regionale del data lake](#data-lake-regions)
+ [Architettura del data lake](#data-lake-architecture)
+ [Configurazione del data lake](#data-lake-setup)

## Prerequisiti
<a name="data-lake-prereqs"></a>

È necessario disporre dei seguenti elementi per creare un lake Amazon Chime SDK:
+ Un flusso di dati Amazon Kinesis. Per ulteriori informazioni, consulta [Creating a Stream tramite la Console di gestione AWS](https://docs.aws.amazon.com/streams/latest/dev/how-do-i-create-a-stream.html) nella *Amazon Kinesis Streams* Developer Guide.
+ Un bucket S3. Per ulteriori informazioni, consulta la sezione [Crea il tuo primo bucket Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket.html) nella *Amazon* S3 User Guide.

## Terminologia e concetti relativi al data lake
<a name="data-lake-terms"></a>

Utilizza i seguenti termini e concetti per comprendere come funziona il data lake.

**Amazon Kinesis Data Firehose**  
Un servizio di estrazione, trasformazione e caricamento (ETL) che acquisisce, trasforma e fornisce dati in streaming in modo affidabile a data lake, data store e servizi di analisi. Per ulteriori informazioni, consulta What Is Amazon Kinesis Data Firehose?

**Amazon Athena**  
Amazon Athena è un servizio di query interattivo che consente di analizzare i dati in Amazon S3 utilizzando SQL standard. Athena è serverless, quindi non hai alcuna infrastruttura da gestire e paghi solo per le query che esegui. Per usare Athena, punta ai tuoi dati in Amazon S3, definisci lo schema e usa query SQL standard. Puoi anche utilizzare i gruppi di lavoro per raggruppare gli utenti e controllare le risorse a cui hanno accesso durante l'esecuzione delle query. I gruppi di lavoro consentono di gestire la concorrenza delle query e di assegnare priorità all'esecuzione delle query tra diversi gruppi di utenti e carichi di lavoro.

**Catalogo dati Glue**  
In Amazon Athena, le tabelle e i database contengono i metadati che descrivono in dettaglio uno schema per i dati di origine sottostanti. Per ogni set di dati, deve esistere una tabella in Athena. I metadati nella tabella indicano ad Athena la posizione del tuo bucket Amazon S3. Inoltre, specifica la struttura dei dati, come i nomi delle colonne, i tipi di dati e il nome della tabella. I database contengono solo i metadati e le informazioni sullo schema di un set di dati.

## Creazione di più data lake
<a name="creating-multiple-data-lakes"></a>

È possibile creare più data lake fornendo un nome di database Glue univoco per specificare dove archiviare le informazioni sulle chiamate. Per un determinato AWS account, possono esserci diverse configurazioni di analisi delle chiamate, ognuna con un data lake corrispondente. Ciò significa che la separazione dei dati può essere applicata per determinati casi d'uso, come la personalizzazione della politica di conservazione e della politica di accesso sulla modalità di archiviazione dei dati. Possono essere applicate diverse politiche di sicurezza per l'accesso a informazioni dettagliate, registrazioni e metadati.

## Disponibilità regionale del data lake
<a name="data-lake-regions"></a>

Il data lake Amazon Chime SDK è disponibile nelle seguenti regioni.


| Region | Tabella Glue | Rapido | 
| --- | --- | --- | 
| us-east-1 | Disponibilità | Disponibilità | 
| us-west-2 | Disponibilità | Disponibilità | 
| eu-central-1 | Disponibilità | Disponibilità | 

## Architettura del data lake
<a name="data-lake-architecture"></a>

Il diagramma seguente mostra l'architettura del data lake. I numeri nel disegno corrispondono al testo numerato riportato di seguito.

![\[Il programma scorre attraverso un data lake.\]](http://docs.aws.amazon.com/it_it/chime-sdk/latest/dg/images/call-analytics-data-lake-architecture.png)


Nel diagramma, dopo aver utilizzato la AWS console per distribuire il CloudFormation modello dal flusso di lavoro di configurazione della pipeline di Media Insights, i seguenti dati fluiscono verso il bucket Amazon S3:

1. L'analisi delle chiamate dell'SDK Amazon Chime inizierà a trasmettere dati in tempo reale al Kinesis Data Stream del cliente. 

1. Amazon Kinesis Firehose memorizza nel buffer questi dati in tempo reale fino a quando non accumulano 128 MB o trascorsi 60 secondi, a seconda dell'evento che si verifica per primo. Firehose utilizza quindi il file contenuto `amazon_chime_sdk_call_analytics_firehose_schema` nel Glue Data Catalog per comprimere i dati e trasforma i record JSON in un file parquet.

1. Il file parquet si trova nel tuo bucket Amazon S3, in un formato partizionato.

1. Oltre ai dati in tempo reale, al tuo Amazon S3 Bucket vengono inviati anche i file.wav di riepilogo di Amazon Transcribe Call Analytics post-chiamata (redatti e non redatti, se specificato nella configurazione) e i file.wav di registrazione delle chiamate. 

1. Puoi utilizzare Amazon Athena e SQL standard per interrogare i dati nel bucket Amazon S3.

1. Il CloudFormation modello crea anche un Glue Data Catalog per interrogare questi dati di riepilogo post-chiamata tramite Athena.

1. Tutti i dati sul bucket Amazon S3 possono essere visualizzati anche con Quick. QuickSight crea una connessione con un bucket Amazon S3 utilizzando Amazon Athena.

La tabella Amazon Athena utilizza le seguenti funzionalità per ottimizzare le prestazioni delle query:

**Partizionamento dei dati**  
Il partizionamento divide la tabella in parti e mantiene insieme i dati correlati in base ai valori delle colonne come data, paese e regione. Le partizioni agiscono come colonne virtuali. In questo caso, il CloudFormation modello definisce le partizioni al momento della creazione della tabella, il che aiuta a ridurre la quantità di dati scansionati per query e migliora le prestazioni. È inoltre possibile filtrare per partizione per limitare la quantità di dati analizzati da una query. *Per ulteriori informazioni, consulta la sezione [Partizionamento dei dati in Athena nella Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/partitions.html) User Guide.*  
Questo esempio mostra la struttura di partizionamento con una data del 1° gennaio 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. dove `DETAIL_TYPE` è uno dei seguenti:

   1. `CallAnalyticsMetadata`

   1. `TranscribeCallAnalytics`

   1. `TranscribeCallAnalyticsCategoryEvents`

   1. `Transcribe`

   1. `Recording`

   1. `VoiceAnalyticsStatus`

   1. `SpeakerSearchStatus`

   1. `VoiceToneAnalysisStatus`

**Ottimizza la generazione di archivi dati colonnari**  
Apache Parquet utilizza la compressione a colonne, la compressione in base al tipo di dati e il pushdown dei predicati per archiviare i dati. Rapporti di compressione migliori o saltare blocchi di dati significa leggere meno byte dal tuo bucket Amazon S3. Ciò si traduce in migliori prestazioni di query e costi ridotti. Per questa ottimizzazione, la conversione dei dati da JSON a parquet è abilitata in Amazon Kinesis Data Firehose.

**Proiezione delle partizioni**  
Questa funzionalità di Athena crea automaticamente partizioni per ogni giorno per migliorare le prestazioni delle query basate sulla data.

## Configurazione del data lake
<a name="data-lake-setup"></a>

Utilizza la console Amazon Chime SDK per completare i seguenti passaggi.

1. **Avvia la console Amazon Chime SDK ([ https://console.aws.amazon.com/chime-sdk/home](https://console.aws.amazon.com/chime-sdk/home)) e nel pannello di navigazione, in **Call Analytics**, scegli Configurazioni.**

1. Completa il passaggio 1, scegli **Avanti** e nella pagina Passaggio 2, seleziona la casella di controllo **Voice Analytics**.

1. In **Dettagli di output**, seleziona la casella di controllo **Data warehouse per eseguire l'analisi storica**, quindi scegli il link **Deploy CloudFormation stack.**

   Il sistema ti rimanda alla pagina **Quick create stack nella console**. CloudFormation 

1. Immettete un nome per lo stack, quindi inserite i seguenti parametri:

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

   1. `KinesisDataStreamName`— Scegli il tuo stream. Dovrebbe essere lo stream utilizzato per lo streaming di analisi delle chiamate.

   1. `S3BucketURI`— Scegli il tuo bucket Amazon S3. L'URI deve avere il prefisso `s3://bucket-name`

   1. `GlueDatabaseName`— Scegli un nome univoco per AWS Glue Database. Non è possibile riutilizzare un database esistente nell' AWS account.

1. **Scegli la casella di controllo di conferma, quindi scegli Crea data lake.** Attendi 10 minuti affinché il sistema crei il lago.

### Configurazione del data lake utilizzando AWS CLI
<a name="data-lake-setup-using-cli"></a>

Si usa AWS CLI per creare un ruolo con i permessi per chiamare lo CloudFormation stack di creazione. Segui la procedura seguente per creare e configurare i ruoli IAM. Per ulteriori informazioni, consulta [Creating a stack](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-cli-creating-stack.html) nella *Guida per l'AWS CloudFormation utente*.

1. Crea un ruolo chiamato *AmazonChimeSdkCallAnalytics-Datalake-Provisioning-Role e allega al ruolo* una politica di fiducia che consenta di assumere il ruolo. CloudFormation 

   1. Crea una policy di fiducia IAM utilizzando il seguente modello e salva il file in formato.json.

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

****  

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

------

   1. Esegui il **aws iam create-role** comando e passa la policy di fiducia come parametro.

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

   1. Annota il *ruolo arn* restituito dalla risposta. *role arn* è richiesto nel passaggio successivo.

1. Crea una policy con il permesso di creare uno CloudFormation stack.

   1. Crea una policy IAM utilizzando il seguente modello e salva il file in formato.json. Questo file è necessario quando si chiama create-policy.

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

****  

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

------

   1. Esegui **aws iam create-policy** e passa la policy create stack come parametro.

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

   1. Annota il *ruolo arn* restituito dalla risposta. *role arn* è richiesto nel passaggio successivo.

1. Collegare la policy **aws iam attach-role-policy** al ruolo.

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

1. Crea uno CloudFormation stack e inserisci i parametri richiesti:. **aws cloudformation create-stack**

   Fornisci i valori dei parametri per ogni ParameterKey utilizzo 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}
   ```

#### Risorse create dalla configurazione del data lake
<a name="cf-resources"></a>

La tabella seguente elenca le risorse create durante la creazione di un data lake.

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

# Configurazione di un pannello di controllo rapido per l'SDK Amazon Chime
<a name="quicksight-setup-setup"></a>

Una volta configurato il data lake, puoi configurare una dashboard Quick con metriche predefinite che visualizzano i tuoi dati. Puoi utilizzare i seguenti dashboard:
+ **Trascrivi Call Analytics \$1 Voice Analytics**. Le metriche includono immagini riepilogative e dettagliate per turn-by-turn trascrizioni, problemi rilevati, risultati, rilevamento delle entità e corrispondenza degli ID dei profili vocali.
+ **Trascrivi** \$1 Analisi vocale. Le metriche includono riepiloghi e immagini dettagliate per le turn-by-turn trascrizioni, le corrispondenze del vocabolario, il tono della voce e le corrispondenze degli ID dei profili vocali.

I seguenti argomenti spiegano come configurare un account Quick se non ne hai già uno e come configurare una dashboard.

**Topics**
+ [Creare un QuickSight account](#create-quicksight-account)
+ [Configurazione del tuo account QuickSight](#configure-qs-acct)
+ [Creazione di una dashboard QuickSight](#create-qs-dashboard)

## Creare un QuickSight account
<a name="create-quicksight-account"></a>

I passaggi di questa sezione spiegano come creare un account Quick. Se hai già un account, puoi passare a[Creazione di una dashboard QuickSight](#create-qs-dashboard).

Puoi creare un QuickSight account tramite:
+ Utilizzo dei CloudFormation modelli Amazon.
+ Utilizzando la console Amazon Chime SDK.

### Prerequisiti
<a name="qs-account-prereqs"></a>

Raccogli le seguenti informazioni prima di iniziare:
+ Il nome del tuo bucket Amazon S3 per l'analisi delle chiamate.
+ Un indirizzo e-mail di notifica. Il sistema invia QuickSight notifiche a questo indirizzo.

### Utilizzo CloudFormation di modelli per creare un account
<a name="account-by-cft"></a>

I passaggi seguenti spiegano come creare un account Quick distribuendo un CloudFormation modello Amazon. Il processo ti iscrive solo a un account Enterprise. Per informazioni sui prezzi, consulta [Quick Pricing](https://aws.amazon.com/quicksight/pricing/).

**Per distribuire il modello**

1. Avvia la AWS console e accedi al tuo account AWS.

1. Incolla il seguente URL nella barra degli indirizzi del browser. Assicurati di inserire la tua regione come indicato.

   `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. Nella pagina **Quick create stack**, inserisci quanto segue:

   1. In **Stack name inserisci un nome** per il tuo account.

   1. Sotto **QuickSightNotificationEmail**l'indirizzo email che hai raccolto in precedenza.

   1. In **QuickSightSubscriptionForDataVisualization**, scegli **Crea nuovo AWS QuickSight account**.

   1. In **S3 BucketName**, inserisci il nome del tuo bucket Amazon S3.

   1. Seleziona l'opzione **Riconosco che AWS CloudFormation potrebbe creare risorse IAM.** casella di controllo.

1. Seleziona **Crea stack**.

   Il sistema impiega circa 10 minuti per creare lo stack.

1. Al termine della creazione, scegli **Vai a Quick** e inserisci il tuo indirizzo e-mail per accedere al tuo account.

### Utilizzo della console per creare un account
<a name="account-by-console"></a>

I passaggi seguenti spiegano come utilizzare la console Amazon Chime SDK per creare un account Quick. È necessario utilizzare un account Enterprise o Enterprise \$1 Q.

**Per utilizzare la console**

1. Avvia la console Amazon Chime SDK da [ https://console.aws.amazon.com/chime-sdk/casa](https://console.aws.amazon.com/chime-sdk/home)**QuickSight**, cerca e nei risultati della ricerca scegli. **QuickSight**  
![\[Un risultato di ricerca che rimanda a Quick.\]](http://docs.aws.amazon.com/it_it/chime-sdk/latest/dg/images/quicksightsetup-1.png)

1. Scegli **Iscriviti per QuickSight**. 

1. Scegli **Enterprise** o **Enterprise \$1 Q**, quindi scegli **Continua**.

1. Inserisci nome, cognome, numero di telefono e l'indirizzo email che hai raccolto in precedenza, quindi scegli **Continua**.

1. Esegui questa operazione:

   1. In **Metodo di autenticazione**, scegli un'opzione. 
**Nota**  
Se scegli l'opzione con utenti federati, hai bisogno delle autorizzazioni IAM corrette. Per ulteriori informazioni, consulta la sezione [Registrazione di un abbonamento rapido nella Guida rapida per](https://docs.aws.amazon.com/quicksight/latest/user/signing-up.html) *l'utente*.

   1. In **QuickSight Regione**, seleziona una regione.

   1. In **Informazioni sull'account**, inserisci un nome per l'account e l'indirizzo email che hai raccolto in precedenza.

   1. Nella sezione **QuickSight Accesso ai servizi AWS**, utilizza il ruolo predefinito oppure scegli **Usa un ruolo esistente** e seleziona un ruolo dall'elenco.

   1. (Facoltativo) Se necessario, in **Consenti l'accesso e l'individuazione automatica per queste risorse**, scegli risorse aggiuntive.

   1. Al termine, scegli **Fine.**

   1. Al termine della creazione, scegli **Vai a Quick** e inserisci il tuo indirizzo email per accedere al tuo account.

## Configurazione del tuo account QuickSight
<a name="configure-qs-acct"></a>

Dopo aver effettuato l'accesso al tuo QuickSight account, devi configurare la sicurezza e aggiungerti a un gruppo creato dal processo di configurazione.

**Per configurare la sicurezza**

1. Scegli l'icona del profilo nell'angolo in alto a destra, quindi scegli **Gestisci QuickSight dal menu** risultante.  
![\[Un menu con il comando Gestisci. QuickSight\]](http://docs.aws.amazon.com/it_it/chime-sdk/latest/dg/images/quicksightsetup-1-a.png)

1. Nel riquadro di navigazione, scegli **Sicurezza e autorizzazioni**.

1. In **QuickSight Accesso ai AWS servizi**, scegli **Gestisci** e assicurati che siano selezionati i seguenti servizi.
   + Amazon Redshift
   + Amazon RDS
   + Simple Storage Service (Amazon S3)
   + Amazon Athena
   +  IAM

1. Scegli il link **Select Amazon S3 bucket**.

1. Seleziona la casella di controllo accanto al tuo bucket Amazon S3, quindi seleziona la casella di controllo a destra, nella colonna **Autorizzazione di scrittura per Athena** Workgroup.

1. Scegli **Fine**.

1. Scegli **Save** (Salva).

**Per aggiungerti al gruppo**

1. Nel riquadro di navigazione, scegli **Gestisci gruppi**, quindi scegli il gruppo con **amministratori** nel nome. **Ad esempio, *S3 BucketName* — Amministratori.**

1. Scegli **Aggiungi utente**, quindi inserisci il tuo alias email nella casella che appare.

   Il tuo nome appare come **Amministratore (*your-alias***).

1. Scegliere **Aggiungi**.

## Creazione di una dashboard QuickSight
<a name="create-qs-dashboard"></a>

Dopo aver creato un data lake, puoi creare una QuickSight dashboard che visualizza i tuoi dati. Puoi utilizzare un CloudFormation modello Amazon o la console Amazon Chime SDK per creare la dashboard. I passaggi seguenti spiegano entrambi i metodi.

**Per utilizzare un modello**

1. Avvia la CloudFormation console Amazon.

1. Incolla il seguente link nella barra degli indirizzi del browser: `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. Nella pagina **Quick create stack**, sotto **Stack name**, inserisci un nome per l'account.

1. **In **ActiveQuickSightAccount**, scegli True.**

1. In **QuicksightDashboardSelection**, scegli **Call Analytics — Transcribe Call Analytics and Voice Analytics dashboard o Call Analytics** **— Trascrivi** e Voice Analytics.

1. In **Amazon S3 BucketName**, inserisci l'URI del tuo bucket Amazon S3.

1. In **GlueDatabaseName**, inserisci il database Glue su cui desideri distribuire la QuickSight dashboard.

1. Seleziona la casella di controllo **Riconosco che AWS CloudFormation potrebbe creare risorse IAM**, quindi scegli **Create stack**.

**Per configurare manualmente un QuickSight pannello di controllo**

1. Accedi al tuo QuickSight account.

1. Nell'angolo in alto a destra scegli l'icona del profilo, quindi scegli **Gestisci QuickSight**.  
![\[La finestra di dialogo QuickSight dell'account e il QuickSight comando Gestisci.\]](http://docs.aws.amazon.com/it_it/chime-sdk/latest/dg/images/quicksightsetup-1-a.png)

1. Nel riquadro di navigazione, scegli **Gestisci gruppi**, quindi scegli il gruppo creato dal processo di configurazione.

1. Scegli **Aggiungi utente**, inserisci il tuo indirizzo email, quindi scegli **Aggiungi**.

   Il sistema impiega 10 minuti per implementare la pagina.

1. Usa la console Amazon Chime SDK per accedere al tuo QuickSight account e utilizzare la dashboard.