

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 univoci solo una volta per configurazione della pipeline di Media Insights. Tutti i processori e i sink devono risiedere nello stesso AWS account e devi crearli nella stessa AWS regione dell'endpoint che chiami. 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 di 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 l'analisi delle [ Real-time chiamate nella * Amazon Transcribe*](https://docs.aws.amazon.com/transcribe/latest/dg/call-analytics-streaming.html) 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, riceverai degli 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 successivi alla chiamata vengono generati in file separati con ID di sessione diversi nel bucket Amazon S3.

Post-call gli artefatti 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 oscurati (se abiliti la redazione dei contenuti) e non oscurati viene inviato a Kinesis Data Stream una volta per ogni sessione di analisi delle chiamate di Amazon Transcribe Post Call come parte della sezione dei metadati. `onetimeMetadata`

L'analisi delle chiamate con Amazon Transcribe prende i dati audio in ingresso 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 dello streaming video Kinesis.
+ `StreamChannelDefinition`Definisce chi sta parlando. L'analisi delle chiamate di Amazon Transcribe richiede un audio a due canali. Devi specificare quale altoparlante si trova su quale canale quando chiami l'API. [CreateMediaInsightsPipeline](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaInsightsPipeline.html) Ad esempio, se il tuo agente parla per primo, imposti su `ChannelId` `0` to per indicare il primo canale e `ParticipantRole` su `AGENT` per indicare che l'agente sta parlando.

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

L'esempio seguente mostra l'ingresso Kinesis Video Stream per uno stream 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 stream Kinesis Video. 

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

## Risultato dell'analisi delle chiamate Amazon Transcribe
<a name="amazon-transcribe-call-analytics-output"></a>

 Ogni record Amazon Transcribe contiene un `UtteranceEvent` o un record`CategoryEvent`, ma non entrambi. `CategoryEvents`avere un di`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 Amazon Chime SDK Voice Connector, il seguente payload di Voice Connector Update verrà inviato quando è disponibile un aggiornamento in streaming di Voice Connector. [https://docs.aws.amazon.com/chime-sdk/latest/ag/automating-chime-with-cloudwatch-events.html](https://docs.aws.amazon.com/chime-sdk/latest/ag/automating-chime-with-cloudwatch-events.html)

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 gli stream di ciascun 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 contenuti multimediali all'altro partecipante, ma non li riceve, 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 XML e. `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 Amazon Transcribe. Per ulteriori informazioni sull'input e sull'output di Amazon Transcribe, consulta Transcribe streaming audio [ nella Amazon ](https://docs.aws.amazon.com/transcribe/latest/dg/streaming.html) Transcribe Developer Guide. * *

La sessione di analisi delle chiamate con Amazon Transcribe riceve 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 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à l'ultimo blocco disponibile su Kinesis Video Stream.
+ `StreamChannelDefinition`Amazon Transcribe attualmente supporta l'audio con due canali. È necessario specificarlo `NumberOfChannels` in fase di esecuzione. `StreamChannelDefinition` Inoltre, è necessario superare il limite `ChannelId` se si invia audio mono in 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 della gamba dell'account Voice Connector `channel-0` e l'audio della gamba PSTN a. `channel-1`  
Per Voice Connector SIPREC, ci affidiamo ai metadati SIPREC. Nella maggior parte dei casi, viene assegnata l'etichetta dello stream con il valore lessicografico più basso. `channel-0`  
Per i processori di analisi delle chiamate Amazon Transcribe e Amazon Transcribe, se passate due stream Kinesis Video e ogni stream contiene un canale audio mono, interlacciamo entrambi i canali in un unico flusso audio prima di elaborare i dati di analisi delle chiamate Transcribe o Transcribe.

## Risultato 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 del processore di analisi vocale
<a name="voice-analytics-processor"></a>

 Lavelli 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 le [StartVoiceToneAnalysisTask](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_StartVoiceToneAnalysisTask.html) API [StartSpeakerSearchTask](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_StartSpeakerSearchTask.html) o per richiamare un processore di analisi vocale. Per ulteriori informazioni sull'utilizzo dell'analisi vocale, consulta Utilizzo dell'analisi vocale dell'SDK di Amazon Chime. [https://docs.aws.amazon.com/chime-sdk/latest/dg/voice-analytics.html](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 [ Reading Data from Amazon Kinesis Data Streams, nella guida per sviluppatori di Amazon Kinesis ](https://docs.aws.amazon.com/streams/latest/dev/building-consumers.html) Streams. * * Per creare una configurazione con questo sink, è necessario 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 [CreateMediaInsightsPipeline](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 automaticamente popolata 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`

Viene pubblicato su Kinesis Data Streams solo una volta all'inizio della sessione e ha un valore di disattivazione. `detail-type` `CallAnalyticsMetadata`

Puoi passare identificatori univoci `MediaInsightsRuntimeMetadata` per ogni chiamata [CreateMediaInsightsPipeline](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaInsightsPipeline.html) API in modo da poter identificare in modo univoco l'origine di ogni record inviato al tuo Kinesis Data Stream.

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

 La registrazione dell'analisi delle chiamate legge l'audio da uno stream 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 consegnati al data warehouse in una serie di tabelle Parquet su cui puoi interrogare.

Come qualsiasi altro processore di analisi delle chiamate, è necessario innanzitutto creare una configurazione per la pipeline. Puoi utilizzare la console SDK Amazon Chime o l'interfaccia a riga di comando per creare la configurazione. È quindi possibile utilizzare la CLI per creare la pipeline. Per ulteriori informazioni sull'uso della console per creare configurazioni di registrazione, fate 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[Comprendere i 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 solo la 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 firmato PCM little-endian a 16 bit. La frequenza di campionamento deve essere di 8 kHz. 
+ Gli sviluppatori devono impostare un periodo di conservazione dei dati sufficientemente lungo per consentire a Kinesis Video Stream di garantire che i frammenti vengano conservati e consumabili dall'analisi delle chiamate. 
+ Se abiliti la registrazione delle chiamate, da sola o in combinazione con altri processori, devi fornire due ARN Kinesis Video Stream per la registrazione. La registrazione delle chiamate non supporta un singolo ingresso audio stereo. 

## Uscita dei metadati di 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 dell'analisi delle chiamate su 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}}"
}
```

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

Per abilitare il miglioramento vocale, includi un `VoiceEnhancementSinkConfiguration` elemento in una chiamata [CreateMediaInsightsPipelineConfiguration](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaInsightsPipelineConfiguration.html) API.

Questo esempio mostra un elemento tipico.

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

Per aggiornare una configurazione, aggiungete l'`VoiceEnhancementSinkConfiguration`elemento a una chiamata [UpdateMediaInsightsPipelineConfiguration](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_UpdateMediaInsightsPipelineConfiguration.html) API. Quando lo fai, l'[GetMediaInsightsPipelineConfiguration](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 di 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.