

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 Real-time l'analisi delle chiamate, nella Amazon *Transcribe* Developer Guide.](https://docs.aws.amazon.com/transcribe/latest/dg/call-analytics-streaming.html) 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 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 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 le [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)API [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 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 [Reading Data from 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 di campionamento deve essere di 8 kHz. 
+ 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 ARN Kinesis Video Stream 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.