

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Gerar insights de chamadas usando analytics de chamadas para o SDK do Amazon Chime
<a name="call-analytics"></a>

Os tópicos desta seção explicam como usar a análise de chamadas do SDK do Amazon Chime para gerar insights a partir dos dados de chamadas. 

A análise de chamadas do SDK do Amazon Chime oferece aos desenvolvedores soluções de baixo código para gerar insights econômicos a partir de áudio em tempo real, incluindo ingestão de áudio, análise, alertas e integração de data lake. A análise de chamadas permite gerar insights por meio da integração com o Amazon Transcribe e o Transcribe Call Analytics (TCA) e, de forma nativa, por meio da análise de voz do SDK do Amazon Chime. A análise de chamadas também pode gravar chamadas no bucket do Amazon S3.

É possível usar os métodos a seguir para configurar e executar análise de chamadas.
+ Usar o console do SDK do Amazon Chime para criar uma configuração de análise de chamadas e associá-la ao conector de voz do SDK do Amazon Chime. Durante esse processo, você pode ativar a gravação e a análise de chamadas. Não precisa escrever código para realizar o processo.
+ Use um conjunto de Amazon Chime SDK APIs [Amazon Chime SDK](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/welcome.html) APIs para criar e executar programaticamente uma configuração.

Para obter mais informações, consulte [Criar configurações de analytics de chamadas do SDK do Amazon Chime](creating-ca-configuration.md) e [Usar as configurações de analytics de chamadas do SDK do Amazon Chime](using-call-analytics-configurations.md), mais adiante nesta seção.

**Topics**
+ [O que é a análise de chamadas do SDK do Amazon Chime](what-is-amazon-chime-sdk-call-analytics.md)
+ [Noções básicas sobre a terminologia de analytics de chamadas do SDK do Amazon Chime](ca-terms-concepts.md)
+ [Criar configurações de analytics de chamadas do SDK do Amazon Chime](creating-ca-configuration.md)
+ [Usar as configurações de analytics de chamadas do SDK do Amazon Chime](using-call-analytics-configurations.md)
+ [Gerenciar pipelines de analytics de chamadas do SDK do Amazon Chime](managing-call-analytics-pipelines.md)
+ [Pausar e retomar pipelines de analytics de chamadas do SDK do Amazon Chime](pausing-and-resuming-call-analytics-pipelines.md)
+ [Usar o perfil de acesso ao recurso de analytics de chamadas do SDK do Amazon Chime](call-analytics-resource-access-role.md)
+ [Noções básicas sobre os status de analytics de chamadas do SDK do Amazon Chime](call-analytics-statuses.md)
+ [Monitoramento de pipelines de análise de chamadas para o Amazon Chime SDK com a Amazon CloudWatch](monitoring-with-cloudwatch.md)
+ [Processador de analytics de chamadas e destinos de saída do SDK do Amazon Chime](call-analytics-processor-and-output-destinations.md)
+ [Modelo de dados de analytics de chamadas do SDK do Amazon Chime](ca-data-model.md)
+ [Usar a análise de voz do SDK do Amazon Chime](voice-analytics.md)
+ [Cotas de serviço de analytics de chamadas do SDK do Amazon Chime](ca-regions.md)

# O que é a análise de chamadas do SDK do Amazon Chime
<a name="what-is-amazon-chime-sdk-call-analytics"></a>

A análise de chamadas do SDK do Amazon Chime é uma solução de baixo código para gerar insights econômicos a partir de áudio em tempo real, incluindo recursos para ingestão de áudio, gravação, análise de voz, alertas e um data lake. Você pode gerar insights baseados em aprendizado de máquina usando a análise de chamadas criando uma configuração de análise de chamadas reutilizável que determina quais integrações de aprendizado de AWS máquina e recursos de processamento de áudio devem ser habilitados para um fluxo de trabalho. Em seguida, será usada a configuração de análise de chamadas com várias fontes de mídia, como conectores de voz ou o Amazon Kinesis Video Streams. A análise de chamadas gera insights por meio de integrações com o Amazon Transcribe e a análise de chamadas do Transcribe (TCA) e, de [forma nativa, por meio da análise de voz do SDK do Amazon Chime](voice-analytics.md), um serviço executado sob análise de chamadas.

Siga as etapas a seguir para usar a análise de chamadas:

![\[Imagem mostrando o processo de configuração da análise de chamadas do SDK do Amazon Chime.\]](http://docs.aws.amazon.com/pt_br/chime-sdk/latest/dg/images/CallAnalyticsOverview.png)


No diagrama:

1. Comece criando uma configuração de análise de chamadas.

1. Defina os destinos de saída e um data lake opcional.

1. Crie fluxos de trabalho que associam sua configuração a um conector de voz e ao Amazon Kinesis Video Streams.

1. Analise e, opcionalmente, visualize os insights.

É possível usar o console do SDK do Amazon Chime para criar uma configuração de análise de chamadas e permitir que ela seja iniciada automaticamente. Se você precisar controlar as configurações que se aplicam a um determinado tipo de chamada, use APIs para criar uma configuração. De qualquer forma, a configuração contém detalhes sobre os serviços AWS de aprendizado de máquina a serem invocados para o áudio da chamada, habilitar a gravação da chamada e os destinos dos insights, metadados e gravações. A análise de chamadas fornece os seguintes destinos:
+ Um Amazon Kinesis Data Stream (KDS). É possível usar o KDS para receber informações de chamadas ao vivo que podem ser integradas a seu aplicativo. Por exemplo, é possível integrar os insights ao vivo para ajudar um atendente de vendas ou de suporte ao cliente durante uma ligação com um cliente; ou, usar os insights para aumentar os prompts e resumos de IA generativa.
+ Um bucket do Amazon S3 configurado como um data warehouse. O bucket armazena dados no formato Parquet. O Parquet é um formato de arquivo de código aberto projetado para compactar e armazenar grandes volumes de dados. Em seguida, é possível usar o Amazon Athena para consultar os dados usando a linguagem de consulta simples (SQL) ou movê-los para o data warehouse existente e emparelhá-los com os dados da sua empresa. Por exemplo, você pode realizar análises agregadas pós-chamada para entender a eficácia das chamadas de clientes, áreas problemáticas de um produto ou oportunidades para treinar funcionários para alcançar melhores resultados para os clientes.

Além desses destinos, a análise de chamadas também oferece suporte a alertas em tempo real que você pode pré-configurar, com base nos insights. Os alertas são enviados para a Amazon EventBridge. 

**nota**  
Ao criar uma configuração de análise de chamadas, não selecione uma fonte de áudio específica. Isso permite que reutilizar as configurações em várias fontes de áudio. Por exemplo, uma configuração pode habilitar a gravação de chamadas e fornecer a transcrição de chamadas. Em seguida, você poderá usar a configuração com um conector de voz do Chime SDK e um stream de áudio por meio de um stream de vídeo do Kinesis. Também é possível compartilhar a configuração entre vários conectores de voz. Cada configuração de análise de chamadas é exclusiva e identificada por um ARN. 

# Noções básicas sobre a terminologia de analytics de chamadas do SDK do Amazon Chime
<a name="ca-terms-concepts"></a>

Os conceitos e terminologia a seguir são fundamentais para entender como usar a análise de chamadas do SDK do Amazon Chime.

**Amazon Athena**  
Um serviço de consultas interativas que permite a análise de dados no Amazon S3 usando SQL padrão. Como o Athena é uma tecnologia sem servidor, não há infraestrutura para ser gerenciada e você paga apenas pelas consultas que executar. Para usar o Athena, aponte para seus dados no Amazon S3, defina o esquema e use consultas SQL padrão. Você também pode usar grupos de trabalho para agrupar usuários e controlar os recursos aos quais eles têm acesso quando executam consultas. Os grupos de trabalho permitem gerenciar a simultaneidade de consultas e priorizar a execução de consultas em diferentes grupos de usuários e workloads. Para obter mais informações, consulte [O que é o Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html).

**Amazon Kinesis Data Firehose**  
Um serviço de extração, transformação e carregamento (ETL) que captura, transforma e fornece dados de streaming de forma confiável para data lakes, data stores e serviços de análise. Para obter mais informações, consulte [O que é o Amazon Kinesis Data Firehose](https://aws.amazon.com/kinesis/data-firehose/).

**Data warehouse de análise de chamadas**  
Armazenamento opcional de dados de análise de chamadas. O warehouse armazena os dados em um formato de arquivo de dados baseado em parquet em um bucket do Amazon S3. É possível usar o SQL padrão para consultar os dados. Ative o warehouse em uma configuração de análise de chamadas.

**Glue Data Catalog**  
Um repositório centralizado de metadados para ativos de dados em várias fontes de dados. O catálogo consiste em bancos de dados e tabelas. Para análise de chamadas, os metadados na tabela informam o Athena a localização do seu bucket do Amazon S3. Também especificam a estrutura de dados, como nomes de colunas, tipos de dados e o nome da tabela. Os bancos de dados contêm apenas os metadados e as informações do esquema de um conjunto de dados. Para mais informações, consulte [Entendendo a estrutura da tabela do catálogo de AWS Glue dados para o Amazon Chime SDK](ca-data-model-diagram.md), mais adiante nesta seção.

**Pipeline de insights de mídia**  
 Um recurso temporário identificado por um único `MediaPipelineId`. Criado usando uma configuração de pipeline de análise de chamadas e parâmetros de runtime. Os parâmetros de runtime especificam a fonte de dados do pipeline.

**Configuração do pipeline de insights de mídia**  
Uma configuração estática usada para criar pipelines de insights de mídia. É possível usar uma configuração para instanciar um ou mais pipelines.

**Elemento de configuração do pipeline de insights de mídia**  
O elemento de configuração do pipeline de insights de mídia inclui instruções para processar mídia usando um elemento processador ou fornecer insights gerados usando um elemento coletor.

**Tarefa do pipeline de insights de mídia**  
Um sub-recurso temporário de um pipeline de insights de mídia. As tarefas contêm metadados sobre o status de um processo de um ARN de stream e ID de canal específicos. Identificadas por um ID exclusivo. Criadas ao iniciar a análise de voz em um pipeline de insights de mídia. 

**Pesquisa de locutor**  
Um atributo de análise de voz que ajuda a reconhecer os participantes da chamada.

**Análise de voz**  
Um atributo do SDK do Amazon Chime que inclui pesquisa de locutor e análise de tom de voz.

**Incorporação de voz**  
Uma representação vetorial da voz do autor de uma chamada, além de um ID exclusivo.

**Aprimoramento de voz**  
Um sistema que aprimora a qualidade do áudio das chamadas telefônicas.

**Perfil de voz**  
A combinação de uma incorporação de voz, seu ID e sua data de expiração.

**Domínio do perfil de voz**  
Uma coleção de perfis de voz.

**Análise de tom de voz**  
Um atributo de análise de voz que permite analisar a voz dos autores de chamada em busca de um sentimento `positive`, `negative`, ou `neutral`.

*Para obter mais informações sobre o APIs uso para criar configurações de insights de chamadas, iniciar pipelines e executar análises de voz, consulte o [Amazon Chime SDK Media Pipelines, na Referência da API do SDK do Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Media_Pipelines.html).*

**nota**  
É altamente recomendável usar o pipeline de insights de mídia APIs para executar análises de chamadas, pois somente elas APIs fornecem novos recursos. Para obter mais informações sobre as diferenças entre o pipeline de mídia e os namespaces de voz, consulte [Usando voz APIs para executar análises de voz para o Amazon Chime SDK](va-in-voice-namespace.md), mais adiante nesta seção.

# Criar configurações de analytics de chamadas do SDK do Amazon Chime
<a name="creating-ca-configuration"></a>

Para usar a análise de chamadas, você começa criando uma *configuração*, uma estrutura estática que contém as informações necessárias para criar um pipeline de análise de chamadas. É possível usar o console do SDK do Amazon Chime para criar uma configuração ou chamar a 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).

Uma configuração de análise de chamadas inclui detalhes sobre processadores de áudio, como gravação, análise de voz ou o Amazon Transcribe. Também inclui destinos de insights e configurações de eventos de alerta. Opcionalmente, é possível salvar os dados de chamadas em um bucket do Amazon S3 para análise posterior.

No entanto, *as configurações não incluem fontes de áudio específicas*. Isso permite reutilizar a configuração em vários fluxos de trabalho de análise de chamadas. Por exemplo, é possível usar a mesma configuração de análise de chamadas com conectores de voz diferentes ou em diferentes fontes do Amazon Kinesis Video Stream (KVS).

Use as configurações para criar pipelines quando as chamadas SIP ocorrem por um conector de voz ou quando novas mídias são enviadas para um Amazon Kinesis Video Stream (KVS). Os pipelines, por sua vez, processam a mídia de acordo com as especificações na configuração.

É possível interromper um pipeline programaticamente a qualquer momento. Os pipelines também interrompem o processamento da mídia quando a chamada de um conector de voz é encerrada. Além disso, é possível pausar um pipeline. Ao fazer isso, desativa as chamadas para os serviços subjacentes de machine learning da Amazon e as retoma quando desejado. No entanto, a gravação de chamadas continua durante a pausa do pipeline.

As seções a seguir explicam os pré-requisitos para criar e como criar uma configuração de análise de chamadas.

**Topics**
+ [Noções básicas sobre os pré-requisitos de analytics de chamadas do SDK do Amazon Chime](ca-prerequisites.md)
+ [Usar o console do SDK do Amazon Chime para criar configurações de análise de chamadas](create-config-console.md)
+ [Usando APIs para criar configurações de análise de chamadas para o Amazon Chime SDK](create-config-apis.md)
+ [Associar uma configuração a um Voice Connector para o SDK do Amazon Chime](ca-associate-vc-steps.md)

# Noções básicas sobre os pré-requisitos de analytics de chamadas do SDK do Amazon Chime
<a name="ca-prerequisites"></a>

Antes de criar uma configuração de análise de chamadas, são necessários os itens a seguir. Você pode usar o AWS console para criá-los:
+ Um conector de voz do SDK do Amazon Chime. Caso contrário, consulte [Criação de conectores de voz do SDK do Amazon Chime.](https://docs.aws.amazon.com/chime-sdk/latest/ag/ca-prerequisites.html) Também é necessário:
  + Ativar o streaming do conector de voz. Para obter mais informações, consulte [Automatizar o Amazon Chime SDK EventBridge com, no Guia do administrador do Amazon *Chime* SDK](https://docs.aws.amazon.com/chime-sdk/latest/ag/automating-chime-with-cloudwatch-events.html) 
  + Configurar o conector de voz para usar a análise de chamadas. Para obter mais informações, consulte [Como configurar conectores de voz para usar a análise de chamadas](https://docs.aws.amazon.com/chime-sdk/latest/ag/configure-voicecon.html), no *Guia do administrador do SDK do Amazon Chime*.
+  EventBridge Alvos da Amazon. Caso contrário, consulte [Monitoramento do Amazon Chime SDK com](https://docs.aws.amazon.com/chime-sdk/latest/ag/automating-chime-with-cloudwatch-events.html) o Guia do Administrador do *Amazon EventBridge Chime* SDK.
+ Uma função vinculada ao serviço que permite que o Voice Connector acesse ações nos EventBridge alvos. Para obter mais informações, consulte [Uso da política de função vinculada ao serviço do conector de voz do SDK do Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/ag/using-service-linked-roles-stream.html), no *Guia do administrador do SDK do Amazon Chime*.
+ Um Amazon Kinesis Data Stream. Caso contrário, consulte [Criação e gerenciamento de streams](https://docs.aws.amazon.com/streams/latest/dev/working-with-streams.html), no *Guia do desenvolvedor do Amazon Kinesis Streams*. A análise e a transcrição de voz exigem um fluxo de dados do Kinesis.
+ Para analisar chamadas off-line, é necessário criar um data lake do SDK do Amazon Chime. Para fazer isso, consulte [Criação de um data lake do SDK do Amazon Chime](ca-data-lake.md), mais adiante neste guia.

# Usar o console do SDK do Amazon Chime para criar configurações de análise de chamadas
<a name="create-config-console"></a>

Depois de criar os pré-requisitos listados na seção anterior, poderá usar o console do SDK do Amazon Chime para criar uma ou mais configurações de análise de chamadas. Também poderá usar o console para associar um ou mais conectores de voz às configurações. Quando o processo estiver concluído, a análise de chamadas começará a ser executada com os atributos que você ativou ao criar a configuração.

Siga as etapas a seguir para criar uma configuração de análise de chamadas:

1. Especifique os detalhes da configuração, incluindo um nome e tags opcionais.

1. Defina as configurações de gravação. Crie uma configuração de análise de chamadas que inclua insights baseados em gravação e machine learning.

1. Configure os serviços de análise.

1. Selecione destinos de saída para consumir insights em tempo real. Crie um data lake opcional para realizar análises pós-chamada.

1. Crie um novo perfil de serviço ou use um perfil existente. 

1. Configure alertas em tempo real que enviem notificações via Amazon EventBridge quando determinadas condições forem atendidas.

1. Revise as definições e crie a configuração

Depois de criar a configuração, ative a análise de chamadas associando um conector de voz à configuração. Depois de fazer isso, a análise de chamadas será iniciada automaticamente quando uma chamada chegar ao conector de voz. Para mais informações, consulte [Associar uma configuração a um Voice Connector para o SDK do Amazon Chime](ca-associate-vc-steps.md), mais adiante nesta seção.

As seções a seguir explicam como realizar cada etapa do processo. Expandi-as na ordem listada.

## Especificar detalhes da configuração
<a name="ca-config-details"></a>

**Para especificar detalhes da configuração**

1. [Abra o console Amazon Chime em casahttps://console.aws.amazon.com/chime-sdk/.](https://console.aws.amazon.com/chime-sdk/home)

1. No painel de navegação, em **Análise de chamadas**, escolha **Configurações** e, em seguida, escolha **Criar configuração**.

1. Em **Basic information** (Informações básicas), faça o seguinte:

   1. Insira um nome para a configuração. O nome deve refletir seu caso de uso e todas as tags.

   1. (Opcional) Em **Tags**, escolha **Adicionar nova tag** e insira as chaves de tag e valores opcionais. Defina as chaves e os valores. As tags ajudam a consultar a configuração.

   1. Escolha **Próximo**.

## Configuração da gravação
<a name="recording-details"></a>

**Para configurar a gravação**
+ Na página **Configure recording** (Configurar gravação), faça o seguinte: 

  1. Escolha a caixa de seleção **Ativar gravação de chamadas**. Isso permite gravar chamadas do conector de voz ou streams do KVS e enviar os dados ao bucket do Amazon S3.

  1. Em **Formato de arquivo**, escolha **WAV com PCM** para obter a melhor qualidade de áudio.

     —ou—

     Escolha **OGG com OPUS** para compactar o áudio e otimizar o armazenamento.

  1. (Opcional) Conforme necessário, escolha o link **Criar um bucket do Amazon S3** e siga as etapas para criar um bucket do Amazon S3.

  1. Insira o URI do seu bucket do Amazon S3 ou escolha **Browse** para localizar um bucket.

  1. (Opcional) Escolha **Ativar aprimoramento de voz** para ajudar a melhorar a qualidade do áudio das gravações.

  1. Escolha **Próximo**.

## Compreender o aprimoramento de voz
<a name="understand-voice-enhancement"></a>

Ao criar uma configuração de análise de chamadas, é possível habilitar a gravação de chamadas e armazenar as chamadas gravadas em um bucket do Amazon S3. Como parte disso, também é possível ativar o aprimoramento de voz e melhorar a qualidade do áudio das chamadas armazenadas. O aprimoramento de voz só se aplica às gravações geradas após a ativação do atributo. Quando o recurso de aprimoramento de voz está ativo, além da gravação original, é criada uma gravação aprimorada, que é armazenada no mesmo bucket e formato do Amazon S3. O aprimoramento de voz gerará gravações aprimoradas para chamadas de até 30 minutos de duração. As gravações aprimoradas não serão geradas para chamadas com mais de 30 minutos. 

As chamadas telefônicas são filtradas por banda estreita e amostradas em 8. KHz O aprimoramento de voz aumenta a taxa de amostragem de 8 kHz para 16 kHz e usa um modelo de machine learning para expandir o conteúdo de frequência de banda estreita para banda larga para tornar a fala mais natural. O aprimoramento de voz também usa um modelo de redução de ruído chamado Amazon Voice Focus, que ajuda a reduzir o ruído de fundo no áudio aprimorado.

O aprimoramento de voz também usa um modelo de redução de ruído chamado Voice Focus. O modelo ajuda a reduzir o ruído de fundo no áudio aprimorado. O aprimoramento de voz aplica o modelo ao áudio 16 KHz atualizado.

**nota**  
O atributo de aprimoramento de voz é suportado apenas nas regiões Leste dos EUA (Norte da Virgínia) e Oeste dos EUA (Oregon).

*Os metadados das gravações de aprimoramento de voz são publicados por meio do KDS configurado na tabela existente do catálogo de dados do AWS Glue call\$1analytics\$1recording\$1metadata.* *Para identificar o registro de gravação de chamadas original a partir da gravação de chamadas aprimorada por voz, um novo campo chamado *subtipo de detalhe* com valor *VoiceEnhancement*é adicionado à notificação do KDS e à tabela de cola call\$1analytics\$1recording\$1metadata.* Para obter mais informações sobre o esquema de data warehouse, consulte [Modelo de dados de analytics de chamadas do SDK do Amazon Chime](ca-data-model.md).

### Formato de arquivo do aprimoramento de voz
<a name="enhancement-file-format"></a>

Observe o seguinte sobre arquivos de gravação aprimorada.
+ As gravações aprimoradas são gravadas no mesmo bucket do Amazon S3 que as gravações normais. Você configura o destino chamando [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_S3RecordingSinkConfiguration.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_S3RecordingSinkConfiguration.html)ou [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_S3RecordingSinkRuntimeConfiguration.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_S3RecordingSinkRuntimeConfiguration.html)APIs, ou usando o console do Amazon Chime SDK. 
+ As gravações aprimoradas têm **\$1enhanced** anexado ao nome do arquivo base. name.
+ As gravações aprimoradas têm o mesmo formato de arquivo da gravação original. Você configura o formato do arquivo chamando [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_S3RecordingSinkConfiguration.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_S3RecordingSinkConfiguration.html)ou [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_S3RecordingSinkRuntimeConfiguration.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_S3RecordingSinkRuntimeConfiguration.html) APIs, ou usando o console do Amazon Chime SDK.

O exemplo a seguir mostra um formato de nome de arquivo típico.

```
s3://original_file_name_enhanced.wav
```

or

```
s3://original_file_name_enhanced.ogg
```

## Configurar os serviços de análise
<a name="configure-analytics"></a>

O Amazon Transcribe fornece transcrições de texto das chamadas. Em seguida, é possível usar as transcrições para ampliar outros serviços de machine learning, como o Amazon Comprehend ou seus próprios modelos de machine learning.

**nota**  
O Amazon Transcribe também fornece reconhecimento automático de idiomas. No entanto, esse atributo não pode ser usado com modelos de linguagem ou redação de conteúdo personalizados. Além disso, se a identificação de idioma for utilizada com outros atributos, somente será possível usar os idiomas compatíveis com esses atributos. Para obter mais informações, consulte [Identificação do idioma com transcrições de streaming](https://docs.aws.amazon.com/transcribe/latest/dg/lang-id-stream.html), no *Guia do desenvolvedor do Amazon Transcribe*.

A Amazon Transcribe Call Analytics é uma API baseada em machine learning que fornece transcrições de chamadas, opiniões e insights de conversas em tempo real. O serviço elimina a necessidade de fazer anotações e permite uma ação imediata sobre os problemas detectados. O serviço também fornece análises pós-chamada, como sentimento do autor da chamada, motivadores da chamada, tempo sem conversa, interrupções, velocidade da conversa e características da conversa.

**nota**  
Por padrão, a análise pós-chamada transmite gravações de chamadas para o bucket do Amazon S3. Para evitar a criação de gravações duplicadas, não ative a gravação de chamadas e a análise pós-chamada ao mesmo tempo.

Por fim, o Transcribe Call Analytics pode marcar automaticamente conversas com base em frases específicas e ajudar a redigir informações confidenciais de áudio e texto. Para obter mais informações sobre os processadores de mídia de análise de chamadas, os insights gerados por esses processadores e os destinos de saída, consulte [Processador de analytics de chamadas e destinos de saída do SDK do Amazon Chime](call-analytics-processor-and-output-destinations.md), mais adiante nesta seção.

**Para configurar os serviços de análise**

1. Na página **Configurar serviços de análise**, marque as caixas de seleção ao lado de **Análise de voz** ou **Serviços de transcrição**. Os dois itens podem ser selecionados.

   Marque a caixa de seleção **Análise de voz**, para ativar qualquer combinação de **pesquisa de locutor** e **análise de tom de voz**. 

   Selecione a caixa de seleção **Serviços de transcrição** para ativar o Amazon Transcribe ou o Transcribe Call Analytics.

   1. **Para ativar a pesquisa de locutor**
      + Selecione a caixa de seleção **Sim, eu concordo com a confirmação de consentimento para análise de voz do SDK do Amazon Chime** e escolha **Aceitar**.

   1. Para ativar a análise de tom de voz
      + Marque a caixa de seleção **Análise de tom de voz**.

   1. Para habilitar o Amazon Transcribe

      1. Escolha o botão **Amazon Transcribe**.

      1. Em **Configurações de idioma**, faça o seguinte:

         1. Se seus chamadores falarem um único idioma, escolha **Idioma específico**, abra a lista de **idiomas** e selecione o idioma.

         1. Se seus chamadores falarem vários idiomas, você poderá identificá-los automaticamente. Escolha **Detecção automática de idioma**. 

         1. Abra a lista **Opções de idioma para identificação automática de idioma** e selecione pelo menos dois idiomas.

         1. (Opcional) Abra a lista **Idiomas preferidos** e especifique um idioma preferido. Quando os idiomas selecionados na etapa anterior têm pontuações de confiança correspondentes, o serviço transcreve o idioma preferido.

         1. (Opcional) Expanda as **Configurações de remoção de conteúdo**, selecione uma ou mais opções e escolha uma ou mais das opções adicionais que forem exibidas. O texto auxiliar explica cada opção.

         1. (Opcional) Expanda **Configurações adicionais**, selecione uma ou mais opções e escolha uma ou mais das opções adicionais que forem exibidas. O texto auxiliar explica cada opção.

   1. Para habilitar o Amazon Transcribe Call Analytics

      1. Escolha o botão **Amazon Transcribe Call Analytics**.

      1. Abra a lista **Idiomas** e selecione um idioma.

      1. (Opcional) Expanda as **Configurações de remoção de conteúdo**, selecione uma ou mais opções e escolha uma ou mais das opções adicionais que forem exibidas. O texto auxiliar explica cada opção.

      1. (Opcional) Expanda **Configurações adicionais**, selecione uma ou mais opções e escolha uma ou mais das opções adicionais que forem exibidas. O texto auxiliar explica cada opção.

      1. (Opcional) Expanda as **Configurações de análise pós-chamada** e faça o seguinte:

         1. Escolha a caixa de seleção **Análise pós-chamada**.

         1. Insira o URI do bucket do Amazon S3.

         1. Selecione um tipo de redação de conteúdo.

1. Ao terminar de fazer as seleções, escolha **Avançar**. 

## Configurar os detalhes de saída
<a name="configure-output"></a>

Depois de concluir as etapas de processamento de mídia, selecione um destino para a saída da análise. A análise de chamadas fornece insights ao vivo por meio do Amazon Kinesis Data Streams e, opcionalmente, por meio de um data warehouse em um bucket do Amazon S3 de sua escolha. Para criar o data warehouse, você usa um CloudFormation modelo. O modelo ajuda a criar a infraestrutura que fornece os metadados e insights de chamada para o bucket do Amazon S3. Para obter mais informações sobre a criação do data warehouse, consulte [Criação de um data lake do SDK do Amazon Chime](ca-data-lake.md), mais adiante nesta seção. Para obter mais informações sobre a criação do esquema do data warehouse, consulte [Modelo de dados de analytics de chamadas do SDK do Amazon Chime](ca-data-model.md), também mais adiante nesta seção.

Se você ativou a análise de voz na seção anterior, também poderá adicionar destinos de notificação de análise de voz, como AWS Lambda, Amazon Simple Queue Service ou Amazon Simple Notification Service. As etapas a seguir explicam como.

**Para configurar os detalhes de saída**

1. Abra a lista de **fluxo de dados do Kinesis** e selecione seu fluxo de dados.
**nota**  
Se quiser visualizar os dados, deve selecionar o fluxo de dados do Kinesis usado pelo bucket do Amazon S3 e pelo Amazon Kinesis Data Firehose.

1. (Opcional) Expanda **destinos adicionais de notificação de análise de voz** e selecione qualquer combinação de destinos AWS Lambda, Amazon SNS e Amazon SQS.

1. (Opcional) Em **Analisar e visualizar insights**, marque a caixa de seleção **Executar análise histórica com data lake**. Para obter mais informações sobre data lakes, consulte [Criação de um data lake do SDK do Amazon Chime](ca-data-lake.md), mais adiante nesta seção.

1. Quando terminar, escolha **Next** (Próximo).

## Configurar permissões de acesso
<a name="configure-perms"></a>

Para permitir a análise de chamadas, o serviço de machine learning e outros recursos devem ter permissões para acessar a mídia de dados e fornecer informações. É possível usar um perfil de serviço existente ou usar o console para criar um novo perfil. Para obter mais informações sobre funções, consulte [Usar o perfil de acesso ao recurso de analytics de chamadas do SDK do Amazon Chime](call-analytics-resource-access-role.md), mais adiante nesta seção.

**Para configurar permissões de acesso**

1. Na página **Configurar permissões de acesso**, faça um dos itens a seguir:

   1. Selecione **Criar e usar um novo perfil de serviço**.

   1. Na caixa **Sufixo do nome do perfil de serviço**, insira um sufixo descritivo para o perfil.

   —ou—

   1. Selecione **Usar um perfil de serviço existente**.

   1. Abra a lista **Perfil de serviço** e selecione um perfil.

1. Escolha **Próximo**.

## (Opcional) Configurar alertas em tempo real
<a name="configure-alerts"></a>

**Importante**  
Para usar alertas em tempo real, você deve primeiro ativar o Amazon Transcribe ou a análise do Amazon Transcribe.

Você pode criar um conjunto de regras que enviam alertas em tempo real para a Amazon EventBridge. Quando um insight gerado pelo Amazon Transcribe ou pelo Amazon Transcribe Call Analytics corresponde à regra especificada durante uma sessão de análise, é enviado um alerta. Os alertas têm o tipo de detalhe`Media Insights Rules Matched`. EventBridge oferece suporte à integração com serviços downstream, como Amazon Lambda, Amazon SQS e Amazon SNS, para acionar notificações para o usuário final ou iniciar outra lógica de negócios personalizada. Para mais informações, consulte [Usando EventBridge notificações da Amazon para o Amazon Chime SDK](using-eventbridge-notifications.md), mais adiante nesta seção.

**Para configurar alertas**

1. Em **Alertas em tempo real**, escolha **Alertas ativos em tempo real**.

1. Em **Regras**, selecione **Criar regra**.

1. Na caixa de seleção **Nome da regra**, insira um nome para a regra.

1. Abra a lista **Tipo de regra** e selecione o tipo de regra que deseja usar.

1. Use os controles que aparecem para adicionar palavras-chave à regra e aplicar a lógica, como **mencionada** ou **não mencionada**.

1. Escolha **Próximo**.

## Examinar e criar
<a name="review-create"></a>

**Para criar o arquivo de configuração**

1. Revise as configurações em cada seção. Conforme necessário, escolha **Editar** para alterar uma configuração.

1. Escolha **Criar configuração**.

A configuração aparece na página **Configurações** do console do SDK do Amazon Chime.

# Usando APIs para criar configurações de análise de chamadas para o Amazon Chime SDK
<a name="create-config-apis"></a>

É possível criar programaticamente conectores de voz e configurações de análise de chamadas e, em seguida, associá-los para iniciar um fluxo de trabalho de análise de chamadas. Este guia pressupõe que você saiba como escrever o código.

Os APIs que você usa variam, dependendo do tipo de fluxo de trabalho. Por exemplo, para gravar áudio, primeiro chame a 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) para criar uma configuração de analytics de chamadas. Em seguida, você liga [CreateVoiceConnector](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_CreateVoiceConnector.html)para o para criar um conector de voz. Por fim, associe a configuração a um Voice Connector usando a API [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_PutVoiceConnectorStreamingConfiguration.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_PutVoiceConnectorStreamingConfiguration.html).

Por outro lado, para gravar áudio com um produtor do Kinesis Video Streams, chame [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) e a API [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).

Para obter mais informações sobre o uso de configurações de análise de chamadas para habilitar fluxos de trabalho diferentes, consulte fluxos de trabalho em [Usar as configurações de analytics de chamadas do SDK do Amazon Chime](using-call-analytics-configurations.md), mais adiante nesta seção.

# Associar uma configuração a um Voice Connector para o SDK do Amazon Chime
<a name="ca-associate-vc-steps"></a>

Depois de usar o console para criar uma configuração de análise de chamadas, use a configuração associando um conector de voz a ele. O conector de voz então invoca automaticamente a chamada dos serviços de análise especificados na configuração. O conector de voz invoca a análise de chamadas para cada chamada.

**Para associar um conector de voz**

1. [Abra o console Amazon Chime em casahttps://console.aws.amazon.com/chime-sdk/.](https://console.aws.amazon.com/chime-sdk/home)

1. No painel de navegação, em **Entroncamento SIP**, escolha **Conectores de voz**.

1. Escolha o nome do conector de voz que deseja associar a uma configuração e, em seguida, escolha a guia **Streaming**.

1. Se ainda não estiver selecionado, escolha **Iniciar** para começar a transmitir para o Kinesis Video Streams.

1. Em **Análise de chamadas**, selecione **Ativar** e, no menu exibido, escolha seu ARN de configuração de análise de chamadas.

1. Escolha **Salvar**.

**nota**  
Depois de ativar, desativar ou modificar uma configuração associada a um conector de voz, aguarde 5 minutos para que as novas configurações se propaguem pelo serviço e entrem em vigor.

Para obter mais informações sobre as configurações de análise de chamadas, consulte [Gerenciamento da análise de chamadas](https://docs.aws.amazon.com/chime-sdk/latest/ag/ag-call-analytics.html), no *Guia do administrador do SDK do Amazon Chime*.

Para obter mais informações sobre o uso de configurações de análise de chamadas para habilitar fluxos de trabalho diferentes, consulte [Usar as configurações de analytics de chamadas do SDK do Amazon Chime](using-call-analytics-configurations.md), mais adiante nesta seção.

# Usar as configurações de analytics de chamadas do SDK do Amazon Chime
<a name="using-call-analytics-configurations"></a>

Para processar o áudio usando uma configuração de análise de chamadas, é necessário criar um pipeline de análise de chamadas, também conhecido como pipeline de insights de mídia. O pipeline é criado durante uma chamada para tratar o áudio e é encerrado ao final da chamada. Os pipelines de análise de chamadas exigem o ARN de uma configuração de análise de chamadas e informações sobre a fonte de áudio. A configuração de análise de chamadas inclui detalhes sobre processadores de áudio, destinos de insights e configurações de eventos de alerta, *mas não a fonte do áudio*. Assim, é possível reutilizar a configuração em diferentes fluxos de trabalho de análise de chamadas, com diferentes conectores de voz ou fontes KVS. O pipeline de análise de chamadas invoca os serviços de machine learning especificados na configuração e grava o áudio. É possível interromper o pipeline manual ou automaticamente quando a chamada terminar.

É possível usar pipelines de análise de chamadas em uma ampla variedade de casos de uso. Os fluxos de trabalho a seguir mostram possíveis formas de usar uma configuração e um pipeline de análise de chamadas.

**Topics**
+ [Noções básicas sobre fluxos de trabalho para gravar chamadas para o SDK do Amazon Chime](recording-workflows.md)
+ [Noções básicas sobre fluxos de trabalho de analytics baseada em machine learning do SDK do Amazon Chime](ml-based-analytics.md)

# Noções básicas sobre fluxos de trabalho para gravar chamadas para o SDK do Amazon Chime
<a name="recording-workflows"></a>

Os tópicos desta seção listam e descrevem os fluxos de trabalho para gravar chamadas e para o Kinesis Video Streams.

# Gravar chamadas do conector de voz
<a name="record-vc-calls"></a>

Use esse fluxo de trabalho quando:
+ Já usa, ou planeja usar, um conector de voz para incluir a mídia SIP na análise de chamadas.
**nota**  
Os conectores de voz forem compatíveis com SIP e SIPREC. Para obter mais informações, consulte [Gerenciamento de conectores de voz do SDK do Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/ag/voice-connectors.html), no *Guia do administrador do SDK do Amazon Chime*.
+ Quiser gravar automaticamente chamadas SIP ou SIPREC com baixa latência para os destinos do Amazon Simple Storage Service de sua escolha.
+ Quiser usar o console do SDK do Amazon Chime para criar a configuração e associá-la a um conector de voz.
+ Quiser aplicar a mesma configuração de gravação a cada chamada do conector de voz. Se quiser aplicar várias configurações a um ou mais conectores de voz, consulte a próxima seção.

Para habilitar a chamada programaticamente, use o seguinte SDK do Amazon Chime. APIs
+ Usar a 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) para criar uma configuração de analytics de chamadas
+ Use o [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_CreateVoiceConnector.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_CreateVoiceConnector.html) para criar um Voice Connector.
+ Use a API [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_PutVoiceConnectorStreamingConfiguration.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_PutVoiceConnectorStreamingConfiguration.html) para associar a configuração a um Voice Connector. 

Para obter mais informações, consulte [Como configurar conectores de voz para usar a análise de chamadas](https://docs.aws.amazon.com/chime-sdk/latest/ag/configure-voicecon.html) no *Guia do administrador do SDK do Amazon Chime*. 

 O diagrama a seguir mostra o fluxo de dados quando um conector de voz inicia uma sessão de gravação de chamadas. Os números no diagrama correspondem ao texto numerado abaixo. 

![\[Imagem mostra o fluxo de dados quando um conector de voz começa a gravar uma chamada.\]](http://docs.aws.amazon.com/pt_br/chime-sdk/latest/dg/images/call-analytics-workflow-1.png)


 No diagrama: 

1. Use o console do SDK do Amazon Chime ou a 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) para criar uma configuração de analytics de chamadas. Durante o processo para criar a configuração, basta ativar a gravação de chamadas, escolher o formato de arquivo de gravação desejado e especificar o destino do Amazon S3 para armazenar os arquivos de gravação. Para obter mais informações, consulte [Criar configurações de análise de chamadas](https://docs.aws.amazon.com/chime-sdk/latest/ag/create-ca-config.html) no *Guia do administrador do SDK do Amazon Chime*.

1. Use o console do SDK do Amazon Chime ou a API [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_PutVoiceConnectorStreamingConfiguration.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_PutVoiceConnectorStreamingConfiguration.html) para associar a configuração a um Voice Connector. Para usar o console, consulte [Como configurar conectores de voz para usar a análise de chamadas](https://docs.aws.amazon.com/chime-sdk/latest/ag/configure-voicecon.html).

1. Durante uma chamada de saída, o conector de voz recebe o áudio de cada participante da chamada.

1. Se uma configuração de gravação de análise de chamadas estiver anexada ao conector de voz, o serviço de conector de voz usará o serviço de pipeline de mídia para iniciar uma sessão de gravação de análise de chamadas.

1. O serviço de pipeline de mídia inicia o processador de gravação de chamadas que monitora a chamada em andamento.

1. Quando a chamada termina, o serviço de pipeline de mídia entrega o arquivo de gravação da chamada para o bucket do Amazon S3 indicado e fornece os metadados de gravação por meio do Amazon Kinesis Data Stream. Se um data warehouse estiver ativado, os metadados da chamada também serão enviados para o data warehouse do Amazon Simple Storage Service. Nos casos em que for utilizado o SIPREC para incorporar áudio SIP na análise de chamadas, os metadados da chamada conterão metadados do SIPREC em formato de tabela. Para obter mais informações sobre as tabelas de gravação, consulte [Entendendo as tabelas do catálogo de AWS Glue dados para o Amazon Chime SDK](glue-tables.md), mais adiante nesta seção.

1. O serviço de pipeline de mídia envia os eventos de status do pipeline para a Amazon padrão EventBridge. Para obter mais informações, consulte [Usando EventBridge notificações](https://docs.aws.amazon.com/chime-sdk/latest/dg/ca-eventbridge-notifications.html) neste guia. 

**nota**  
 Observe que deve habilitar o streaming do conector de voz para permitir a gravação com um conector de voz. Esse atributo permite o streaming de dados de chamadas para o Kinesis Video Streams gerenciado pelo conector de voz em sua conta. Para obter mais informações, consulte [Streaming de mídia do conector de voz do SDK do Amazon Chime para o Kinesis Video Streams](https://docs.aws.amazon.com/chime-sdk/latest/ag/start-kinesis-vc.html) no *Guia do administrador do SDK do Amazon Chime*.

 Também é possível armazenar dados de chamadas criados pelo conector de voz no Kinesis Video Streams com durações variadas, variando de horas a dias ou até anos. Ao optar pela não retenção de dados a usabilidade dos dados da chamada fica limitada para consumo imediato. O custo do Kinesis Video Streams é determinado com base na largura de banda e no armazenamento total utilizado. É possível ajustar o período de retenção de dados a qualquer momento na configuração de streaming do conector de voz. Para habilitar a gravação da análise de chamadas, você deve garantir que o stream de vídeo do Kinesis retenha os dados por tempo suficiente para realizar a análise de chamadas. Faça isso especificando um período de retenção de dados adequado. 

 É possível associar uma configuração de pipeline de informações de chamadas a quantos conectores de voz quiser. Também é possível criar uma configuração diferente para cada conector de voz. Os conectores de voz usam o AWSService RoleForAmazonChimeVoiceConnector para chamar a [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 em seu nome uma vez por ID de transação. Para obter informações sobre a função, consulte [Uso da função vinculada ao serviço do SDK do Amazon Chime para conectores de voz do SDK do Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/ag/using-service-linked-roles-stream.html#service-linked-role-permissions-stream) no *Guia do administrador do SDK do Amazon Chime*.

# Gravar com produtores do Amazon Kinesis Video Streams
<a name="record-kvs-streams"></a>

Grave Amazon Kinesis Video Streams quando: 
+ Precisar aplicar configurações diferentes a uma chamada em vez de usar a mesma configuração para cada chamada do conector de voz.
+ Desejar gravar áudio SIP ou não SIP que não seja processado por um conector de voz.

 Para usar essa opção de gravação de chamadas, você precisará publicar áudio no Kinesis Video Streams (KVS) e, depois, chamar a API [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) com as informações do canal de fluxos do KVS e um ARN de configuração de analytics de chamadas.

**nota**  
A análise de chamadas APIs suporta no máximo dois canais de áudio. Você também pode ativar o streaming do Voice Connector e, em seguida, usar as informações do KVS publicadas nas EventBridge notificações do Voice Connector para iniciar a gravação de uma chamada. 

 Ao chamar a API [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), é possível escolher se deseja ou não especificar números de fragmentos para cada definição de canal de fluxos do KVS. Se fornecer um número de fragmento, a análise de chamadas começará a processar o streaming nesse fragmento. Se não especificar a ID de um fragmento, a análise de chamadas começará a processar o streaming a partir do fragmento mais recente disponível. 

 O diagrama a seguir mostra o fluxo de dados quando um conector de voz inicia uma sessão de gravação de chamadas. Os números no diagrama correspondem ao texto numerado abaixo. 

![\[Imagem mostra o fluxo de dados quando um conector de voz começa a gravar uma chamada.\]](http://docs.aws.amazon.com/pt_br/chime-sdk/latest/dg/images/call-analytics-workflow-2.png)


No diagrama:

1. É possível usar o console do SDK do Amazon Chime ou a 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) para criar uma configuração de gravação de chamadas.

1. Use o AWS SDK para criar um aplicativo que envia áudio externo para o KVS ou habilite o streaming do Voice Connector para publicar automaticamente o áudio da chamada em um KVS. Para obter mais informações, consulte [Streaming de mídia do conector de voz do SDK do Amazon Chime para o Kinesis Video Streams](https://docs.aws.amazon.com/chime-sdk/latest/ag/start-kinesis-vc.html) no *Guia do administrador do SDK do Amazon Chime*.

1. Se o streaming do Voice Connector estiver ativado, o serviço Voice Connector enviará notificações para o padrão EventBridge.

1. No caso de streaming do Voice Connector, seu aplicativo pode usar os `STARTED` eventos de streaming do Amazon Chime Voice Connector EventBridge para coletar informações do stream KVS sobre os trechos de uma chamada.

1. Depois que sua aplicação tiver as informações de áudio dos eventos de streaming do Voice Connector ou de uma origem externa, ela invocará a API [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) do SDK do Amazon Chime.

1. O serviço de pipeline de mídia inicia o processador de gravação de chamadas que monitora a chamada em andamento.

1. O serviço de pipeline de mídia envia os eventos de status do pipeline para a Amazon padrão EventBridge. Para obter mais informações, consulte [Usando EventBridge notificações](https://docs.aws.amazon.com/chime-sdk/latest/dg/ca-eventbridge-notifications.html).

1. Quando a chamada é finalizada, o serviço de pipeline de mídia entregará o arquivo de gravação da chamada para o bucket do Amazon S3 indicado e fornecerá os metadados de gravação por meio do Amazon Kinesis Data Stream. Se um data warehouse estiver ativado, os metadados da chamada também serão enviados para o data warehouse do Amazon S3. Nos casos em que for utilizado o SIPREC para incorporar áudio SIP na análise de chamadas, os metadados da chamada conterão metadados do SIPREC em um formato conveniente de tabela. Para obter mais informações sobre as tabelas de gravação, consulte [Entendendo as tabelas do catálogo de AWS Glue dados para o Amazon Chime SDK](glue-tables.md), mais adiante nesta seção.

1. Seu aplicativo pode monitorar o pipeline e, no caso de um conector de voz, o status da chamada usando eventos publicados na Amazon EventBridge. Para obter mais informações, consulte [Usando EventBridge notificações](https://docs.aws.amazon.com/chime-sdk/latest/dg/ca-eventbridge-notifications.html) neste guia.

1. Para encerrar a gravação, chame a API [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_DeleteMediaPipeline.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_DeleteMediaPipeline.html) para encerrar a gravação da chamada. 

Para obter exemplos e gravações baseadas em API, consulte o [Coletor de gravação do Amazon S3](https://docs.aws.amazon.com/chime-sdk/latest/dg/ca-processors-sinks.html#ca-s3-recording-sink) neste guia.

# Usar a CLI para iniciar a gravação
<a name="using-the-cli-to-start-recording"></a>

Os exemplos nesta seção explicam como fazer o seguinte:
+ Use a CLI para executar uma configuração de analytics de chamadas e invocar o [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).
+ Usar a CLI para especificar destinos de gravação, formatos de arquivo de áudio e nomes de arquivos de áudio.

**Topics**
+ [Executar uma configuração e iniciar um pipeline](#cli-run-config)
+ [Definição de destinos, nomes e formatos](#cli-set-buckets-formats)

## Executar uma configuração e iniciar um pipeline
<a name="cli-run-config"></a>

Use o comando a seguir para executar uma configuração e iniciar um pipeline de insights de mídia. O arquivo pipeline.json contém as configurações.

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

O exemplo a seguir mostra um típico arquivo `pipeline.json`.

```
{
    "MediaInsightsPipelineConfigurationArn": arn:aws:chime:region;account_id:media-insights-pipeline-configuration/MyConfiguration,
    "KinesisVideoStreamRecordingSourceRuntimeConfiguration": {
        "Streams": [
            {
                "StreamArn": kinesis_video_stream_arn_1
            },
            {
                "StreamArn": kinesis_video_stream_arn_2
            }
        ],
        "FragmentSelector": {
            "FragmentSelectorType": "selector_type", // Specify "server_timestamp" or "producer_timestamp" as the fragment selector type
            "TimestampRange": {
                "StartTimestamp": epoch_time_seconds,
                "EndTimestamp": epoch_time_seconds
            }
        }
    },
    "S3RecordingSinkRuntimeConfiguration": {
        "Destination": arn:aws:s3:::bucket_name/prefix/optional_file_name,
        "RecordingFileFormat": file_format // Specify "Opus" or "WAV" as the recording file format, if you want to override the configuration
    }
}
```

O `MediaInsightsPipelineConfigurationArn` é o ARN de configuração que você recebe depois de criar uma configuração de análise de chamadas.

## Definição de destinos, nomes e formatos
<a name="cli-set-buckets-formats"></a>

 O exemplo a seguir usa uma pasta chamada `MyRecordingBucket` como o valor de `S3SinkConfiguration.Destination` e `Opus` como o valor de `RecordingFileFormat`.

```
arn:aws:s3:::MyRecordingBucket/voice-connector-id/transaction-id_year-month-date-hour-minute-second-millisecond.ogg
```

O exemplo a seguir usa `MyRecordingBucket` como o valor de `S3SinkConfiguration.Destination` e `Wav` como o valor de `RecordingFileFormat`.

```
arn:aws:s3:::MyRecordingBucket/voice-connector-id/transaction-id_year-month-date-hour-minute-second-millisecond.wav
```

# Noções básicas sobre fluxos de trabalho de analytics baseada em machine learning do SDK do Amazon Chime
<a name="ml-based-analytics"></a>

As seções a seguir descrevem como usar os atributos de análise de machine learning fornecidos pela análise de chamadas do SDK do Amazon Chime.

**nota**  
Se planeja executar várias análises de machine learning no mesmo stream de vídeo do Kinesis, talvez seja necessário aumentar o limite do nível de conexão para `GetMedia` e `GetMediaForFragmentList` do streaming de vídeo. Para obter mais informações, consulte [Limites do Kinesis Video Streams](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/limits.html) no *Guia do desenvolvedor do Kinesis Video Streams*.

# Usar conectores de voz para iniciar a análise de chamadas automaticamente
<a name="automatic-vc-analytics"></a>

Use esse fluxo de trabalho quando:
+ Quiser uma configuração controlada pelo console.
+ Já usa, ou planeja usar, um conector de voz para incluir a mídia SIP na análise de chamadas. Os conectores de voz forem compatíveis tanto com SIP quanto com SIPREC. Para obter mais informações sobre a configuração de conectores de voz, consulte [Gerenciar o conector de voz do SDK do Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/ag/voice-connectors.html).
+ Desejar aplicar a mesma configuração de insights de mídia a cada chamada do conector de voz.
+ Precisar usar a análise de voz do SDK do Amazon Chime, que requer um conector de voz ou um pipeline de insights de mídia.

Para habilitar esse fluxo de trabalho no console do SDK do Amazon Chime, siga as etapas para criar uma configuração de gravação em [Como configurar conectores de voz para usar a análise de chamadas](https://docs.aws.amazon.com/chime-sdk/latest/ag/configure-voicecon.html).

Para habilitar esse fluxo de trabalho programaticamente, use o seguinte APIs: [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaInsightsPipelineConfiguration.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaInsightsPipelineConfiguration.html)API para criar uma configuração de análise de chamadas e, em seguida, associe a configuração a um conector de voz usando a [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_PutVoiceConnectorStreamingConfiguration.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_PutVoiceConnectorStreamingConfiguration.html)API. Para obter mais informações, consulte [Como configurar conectores de voz para usar análise de voz](https://docs.aws.amazon.com/chime-sdk/latest/ag/configure-voicecon.html) no *Guia do administrador do SDK do Amazon Chime*. 

 O diagrama a seguir mostra o fluxo de dados quando um conector de voz inicia uma sessão de análise de chamadas. Os números no diagrama correspondem ao texto numerado abaixo. 

 ![\[Image showing the flow of data when a Voice Connector initiates a call.\]](http://docs.aws.amazon.com/pt_br/chime-sdk/latest/dg/images/call-analytics-workflow-1.png)

 No diagrama: 

1. Use o console do SDK do Amazon Chime ou a 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) para criar uma configuração de pipeline de insights de mídia.

1. Use o console do SDK do Amazon Chime ou a API [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_PutVoiceConnectorStreamingConfiguration.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_PutVoiceConnectorStreamingConfiguration.html) para associar a configuração a um Voice Connector. Para associar uma configuração existente a um conector de voz, consulte [Como configurar conectores de voz para a usar análise de chamadas](https://docs.aws.amazon.com/chime-sdk/latest/ag/configure-voicecon.html) no *Guia do administrador do SDK do Amazon Chime*.

1. Durante uma chamada de saída, o conector de voz recebe o áudio de cada participante da chamada.

1. Devido à integração com a análise de chamadas, se uma configuração de análise de chamadas estiver anexada a um conector de voz, o serviço de conector de voz iniciará uma sessão de análise de chamadas usando o serviço de pipeline de mídia.

1. O serviço de pipeline de mídia invoca um ou mais processadores de mídia conforme especificado na configuração.

1. O serviço de pipeline de mídia envia os dados de saída para um ou mais destinos com base na configuração. Por exemplo, é possível enviar análises em tempo real por meio de um Amazon Kinesis Data Stream e, se configurado, enviar os metadados e as análises da chamada para um data warehouse do Amazon S3.

1. O serviço de pipeline de mídia envia os eventos de status do pipeline para a Amazon padrão EventBridge. Se você configurou regras, as notificações para elas também serão enviadas para EventBridge a Amazon. Para obter mais informações, consulte [Usando EventBridge notificações](https://docs.aws.amazon.com/chime-sdk/latest/dg/ca-eventbridge-notifications.html).

**nota**  
Um processador de análise de voz só inicia automaticamente quando você liga para o [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_StartSpeakerSearchTask.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_StartSpeakerSearchTask.html)ou [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_StartVoiceToneAnalysisTask.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_StartVoiceToneAnalysisTask.html) APIs. 
Você deve habilitar o streaming do conector de voz para usar a análise de chamadas com o conector de voz. Esse atributo permite o streaming de dados de chamadas para o Kinesis Video Streams gerenciado por conector de voz em sua conta. Para obter mais informações, consulte [Streaming de mídia do conector de voz do SDK do Amazon Chime para o Kinesis Video Streams](https://docs.aws.amazon.com/chime-sdk/latest/ag/start-kinesis-vc.html) no *Guia do administrador do SDK do Amazon Chime*. 

 Também é possível armazenar dados de chamadas do conector de voz no Kinesis Video Streams por períodos variáveis, de horas até anos. Ao optar pela não retenção de dados a usabilidade dos dados da chamada fica limitada para consumo imediato. O custo do Kinesis Video Streams é determinado com base na largura de banda e no armazenamento total utilizado. É possível ajustar o período de retenção de dados a qualquer momento editando a configuração de streaming do conector de voz. Para habilitar a gravação da análise de chamadas, você deve garantir que o stream de vídeo do Kinesis retenha os dados até que a análise de chamadas seja concluída. Faça isso especificando um período de retenção de dados adequado. 

 É possível associar uma configuração de pipeline de insights de mídia a quantos conectores de voz quiser. Também é possível criar uma configuração diferente para cada conector de voz. Os conectores de voz usam o AWSService RoleForAmazonChimeVoiceConnector para chamar a [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 em seu nome uma vez por ID de transação. Para obter informações sobre a função, consulte [Uso da função vinculada ao serviço do SDK do Amazon Chime para conectores de voz do SDK do Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/ag/using-service-linked-roles-stream.html#service-linked-role-permissions-stream) no *Guia do administrador do SDK do Amazon Chime*. 

# Usando a análise de chamadas APIs com conectores de voz
<a name="ca-apis-with-vc"></a>

Use esse fluxo de trabalho se você usa um conector de voz, mas precisa controlar quando aplicar uma configuração de análise de chamadas e em qual chamada a configuração será aplicada.

 Para usar esse método, você precisa criar um EventBridge destino para os eventos que o Voice Connector publica e, em seguida, usar os eventos para acionar o pipeline APIs de análise de chamadas. Para obter mais informações, consulte [Automatização do SDK do Amazon Chime com o Guia do administrador do SDK EventBridge](https://docs.aws.amazon.com/chime-sdk/latest/ag/automating-chime-with-cloudwatch-events.html) do Amazon *Chime*. 

 O diagrama a seguir mostra como implementar um controle mais granular ao usar a análise de chamadas com conector de voz. Os números no diagrama correspondem aos números no texto abaixo. 

![\[Imagem mostrando o fluxo de dados ao usar chamadas de API com conectores de voz.\]](http://docs.aws.amazon.com/pt_br/chime-sdk/latest/dg/images/analytics-vc-with-apis.png)


 No diagrama: 

1. Use o console do SDK do Amazon Chime ou a 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) para criar uma configuração de pipeline de insights de mídia.

1. Durante uma chamada de saída, o conector de voz receberá o áudio do participante.

1. O Voice Connector envia o áudio da chamada para o Kinesis Video Stream e os eventos correspondentes para o. EventBridge Os eventos têm metadados de streaming e da chamada.

1. Sua inscrição é assinada EventBridge por meio de um EventBridge Target.

1. Sua aplicação invoca a API [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) do SDK do Amazon Chime.

1. O serviço de pipeline de mídia invoca um ou mais processadores de mídia com base nos elementos do processador na configuração do pipeline de insights de mídia.

1. O serviço de pipeline de mídia envia os dados de saída para um ou mais destinos com base na configuração. A análise de chamadas do SDK do Amazon Chime fornecerá análises em tempo real por meio do Amazon Kinesis Data Stream e, se configuradas, análises de metadados de chamadas para um data warehouse do Amazon S3.

1. O serviço de pipeline de mídia envia os eventos para a Amazon EventBridge. Se você configurou regras, as notificações para elas também serão enviadas para EventBridge a Amazon.

1. É possível pausar ou retomar a sessão de analytics de chamadas invocando a API [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_UpdateMediaInsightsPipelineStatus.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_UpdateMediaInsightsPipelineStatus.html).
**nota**  
A gravação de chamadas não suporta pausar e retomar chamadas. Além disso, as tarefas de análise de voz iniciadas para a chamada também param quando uma sessão é pausada. Para reiniciá-los, você deve chamar o [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_StartSpeakerSearchTask.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_StartSpeakerSearchTask.html)ou [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_StartVoiceToneAnalysisTask.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_StartVoiceToneAnalysisTask.html) APIs.

1. Se você selecionar a análise de tom de voz durante a configuração, inicie a análise de voz chamando o [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_StartSpeakerSearchTask.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_StartSpeakerSearchTask.html)ou [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_StartVoiceToneAnalysisTask.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_StartVoiceToneAnalysisTask.html) APIs.

# Como usar a análise de chamadas com produtores do Kinesis Video Streams
<a name="ca-apis-kvs"></a>

 Para usar essa opção, é necessário publicar dados do áudio no Kinesis Video Streams (KVS) e, depois, chamar a API [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) com informações do canal de fluxos do KVS.

**nota**  
A análise de chamadas APIs suporta no máximo dois canais de áudio.

Ao chamar a API [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), é possível especificar números de fragmentos para cada definição de canal de fluxo KVS. Se fornecer um número de fragmento, a análise de chamadas começa a processar o streaming nesse fragmento. Caso contrário, a análise de chamadas começa a processar o streaming a partir do fragmento mais recente disponível.

A análise de chamadas suporta áudio PCM (somente formatos de áudio little-endian assinados de 16 bits, que não incluem WAV) com uma taxa de amostragem de áudio entre 8 kHz e 48 kHz. Áudio de baixa qualidade, como áudio de telefonia, normalmente é de cerca de 8.000 Hz. Áudio de alta qualidade normalmente varia de 16.000 Hz a 48.000 Hz. A taxa de amostragem especificada deve corresponder à do seu áudio. Para ter mais informações, consulte [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_KinesisVideoStreamSourceRuntimeConfiguration.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_KinesisVideoStreamSourceRuntimeConfiguration.html) na *Referência da API do SDK do Amazon Chime*.

O SDK do produtor do Kinesis Video Streams fornece um conjunto de bibliotecas que podem ser usadas para transmitir dados de áudio para um stream de vídeo do Kinesis. Para obter mais informações, consulte as [Bibliotecas do produtor do Kinesis Video Streams](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/producer-sdk.html) no *Guia do desenvolvedor do Amazon Kinesis Video Streams*.

O diagrama a seguir mostra o fluxo de dados ao usar a análise de chamadas com um produtor personalizado do stream de vídeo do Kinesis. Os números no diagrama correspondem ao texto numerado abaixo.

![\[Imagem mostrando o fluxo de dados ao usar a análise de chamadas com um produtor do stream de vídeo do Kinesis.\]](http://docs.aws.amazon.com/pt_br/chime-sdk/latest/dg/images/analytics-kvs-with-apis.png)


1. Você usa o AWS console ou a [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaInsightsPipelineConfiguration.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaInsightsPipelineConfiguration.html)API para criar uma configuração de pipeline de insights de mídia.

1. Use um produtor do stream de vídeo do Kinesis para gravar áudio no Kinesis Video Streams.

1. Sua aplicação invoca a API [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).

1. O serviço de pipeline de mídia lê o áudio do Kinesis Video Streams do cliente.

1. O serviço de pipeline de mídia envia os eventos para a Amazon EventBridge. Se você configurou regras, as notificações para elas também serão enviadas para EventBridge a Amazon.

1. O serviço de pipeline de mídia invoca um ou mais elementos do processador.

1. O serviço de pipeline de mídia envia dados de saída para um ou mais elementos coletores.

1. É possível pausar ou retomar a sessão de analytics de chamadas invocando a API [ UpdateMediaInsightsPipelineStatus](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_UpdateMediaInsightsPipelineStatus.html).
**nota**  
A gravação de chamadas não suporta pausar e retomar.

1. Seu aplicativo pode processar os EventBridge eventos da Amazon para acionar fluxos de trabalho comerciais personalizados.

1. Se você selecionar análise de voz ao criar uma configuração, seu aplicativo poderá iniciar a análise de voz chamando o [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_StartSpeakerSearchTask.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_StartSpeakerSearchTask.html)ou [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_StartVoiceToneAnalysisTask.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_StartVoiceToneAnalysisTask.html) APIs.

# Gerenciar pipelines de analytics de chamadas do SDK do Amazon Chime
<a name="managing-call-analytics-pipelines"></a>

 Você pode ler, listar e excluir pipelines de insights de mídia chamando o [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_GetMediaPipeline.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_GetMediaPipeline.html), e. [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_DeleteMediaPipeline.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_DeleteMediaPipeline.html) APIs 

 Os pipelines de insights de mídia serão interrompidos se alguma das condições a seguir for atendida: 
+ Nenhum dos streams de vídeo do Kinesis enviar novos fragmentos para um pipeline `InProgress` por 15 segundos.
+ A API [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_DeleteMediaPipeline.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_DeleteMediaPipeline.html) é chamada.
+ O pipeline de insights de mídia tiver sido criado há mais de 8 horas. O sistema interromper o pipeline automaticamente.
+ O pipeline de insights de mídia for pausado por mais de 2 horas. O sistema interromper o pipeline automaticamente.

# Pausar e retomar pipelines de analytics de chamadas do SDK do Amazon Chime
<a name="pausing-and-resuming-call-analytics-pipelines"></a>

Para pausar e retomar um pipeline de insights de mídia, invoque a API [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_UpdateMediaInsightsPipelineStatus.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_UpdateMediaInsightsPipelineStatus.html) com uma ação de `Pause` ou `Resume`. Para fazer isso, passe o ID ou o ARN do pipeline no campo `Identifier`.

**Atenção**  
Aviso: A API `UpdateMediaInsightsPipelineStatus` *interrompe* todas as tarefas de análise de voz iniciadas em um pipeline de insights de mídia quando é fornecido um status `Pause`. Quando for fornecido o status `Resume`, as tarefas não são retomadas e devem ser iniciadas novamente. Você deve fornecer todos os avisos necessários e obter todos os consentimentos necessários dos locutores antes de reiniciar as tarefas. Para ter mais informações, consulte [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_StartSpeakerSearchTask.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_StartSpeakerSearchTask.html) ou [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_StartVoiceToneAnalysisTask.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_StartVoiceToneAnalysisTask.html) na *Referência da API do SDK do Amazon Chime*.

Enquanto está pausado, o pipeline para de enviar mídia aos processadores e de gravar dados no Kinesis Data Streams e nos data warehouses. Quando você `Resume` o pipeline, o serviço envia a parte mais recente disponível no stream. Os pipelines do Media Insights param automaticamente quando pausados por mais de 2 horas. **Observe que** a gravação de chamadas não suporta pausar e retomar. 

 Para mais informações, consulte os tópicos a seguir: 
+ [Usando EventBridge notificações](https://docs.aws.amazon.com/chime-sdk/latest/dg/ca-eventbridge-notifications.html).
+ [https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_dataplane_StartSelector.html#KinesisVideo-Type-dataplane_StartSelector-StartSelectorType](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_dataplane_StartSelector.html#KinesisVideo-Type-dataplane_StartSelector-StartSelectorType) no *Guia do desenvolvedor do Amazon Kinesis Video Streams*.
+ [Processador Amazon Transcribe Call Analytics](https://docs.aws.amazon.com/chime-sdk/latest/dg/ca-processors-sinks.html#ca-transcribe-analytics-processor).

**nota**  
 Você é cobrado pelo uso da análise de chamadas mesmo enquanto um pipeline fica pausado. No entanto, você não é cobrado pelos AWS serviços acessados por meio da função de acesso a recursos, como o Amazon Transcribe e o Amazon Kinesis. 

 Você pode ler, atualizar e excluir as configurações existentes de análise de chamadas usando [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), e [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_DeleteMediaInsightsPipelineConfiguration.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_DeleteMediaInsightsPipelineConfiguration.html) APIs passando o nome da configuração ou o ARN no campo Identificador. 

 É possível listar as configurações chamando a API [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_media-pipelines-chime_ListMediaInsightsPipelineConfiguration.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_media-pipelines-chime_ListMediaInsightsPipelineConfiguration.html). 

# Usar o perfil de acesso ao recurso de analytics de chamadas do SDK do Amazon Chime
<a name="call-analytics-resource-access-role"></a>

A conta de chamada deve criar a função de acesso a recursos usada por uma configuração de pipeline de insights de mídia. Não é possível usar funções entre contas. 

Dependendo dos atributos que ativar ao criar uma configuração de análise de chamadas, você deverá usar políticas de atributos adicionais. Expanda as seções a seguir para saber mais.

## Política mínima necessária
<a name="minimum-policy"></a>

A função exige, no mínimo, a seguinte política:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
            "Effect": "Allow",
            "Action": [
                "transcribe:StartCallAnalyticsStreamTranscription",
                "transcribe:StartStreamTranscription"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "kinesisvideo:GetDataEndpoint",
                "kinesisvideo:GetMedia"
            ],
            "Resource": "arn:aws:kinesisvideo:us-east-1:111122223333:stream/Chime*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "kinesisvideo:GetDataEndpoint",
                "kinesisvideo:GetMedia"
            ],
            "Resource": "arn:aws:kinesisvideo:us-east-1:111122223333:stream/*",
            "Condition": {
                "StringLike": {
                    "aws:ResourceTag/AWSServiceName": "ChimeSDK"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": ["kms:Decrypt"],
            "Resource": "arn:aws:kms:us-east-1:111122223333:key/*",
            "Condition": {
                "StringLike": {
                    "aws:ResourceTag/AWSServiceName": "ChimeSDK"
                }
            }
        }
    ]
}
```

------

Você também deve usar a seguinte política de confiança:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "mediapipelines.chime.amazonaws.com"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
            "aws:SourceAccount": "111122223333"
        },
        "ArnLike": {
            "aws:SourceARN": "arn:aws:chime:*:111122223333:*"
        }
        }
    }
  ]
}
```

------

## Política KinesisDataStreamSink
<a name="kds-stream-sink-policy"></a>

Se você usar o `KinesisDataStreamSink`, adicione a seguinte política:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
            "Effect": "Allow",
            "Action": [
                "kinesis:PutRecord"
            ],
            "Resource": [
                "arn:aws:kinesis:us-east-1:111122223333:stream/output_stream_name"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKey"
            ],
            "Resource": [
            "arn:aws:kms:us-east-1:111122223333:key/*"
            ],
            "Condition": {
                "StringLike": {
                    "aws:ResourceTag/AWSServiceName": "ChimeSDK"
                }
            }
        }
    ]
}
```

------

## Política S3RecordingSink
<a name="s3-recording-sink-policy"></a>

Se você usar o `S3RecordingSink`, adicione a seguinte política:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:PutObjectTagging"
            ],
            "Resource": [
                "arn:aws:s3:::input_bucket_path/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "kinesisvideo:GetDataEndpoint",
                "kinesisvideo:ListFragments",
                "kinesisvideo:GetMediaForFragmentList"
            ],
            "Resource": [
                "arn:aws:kinesisvideo:us-east-1:111122223333:stream/*"
            ],
            "Condition": {
                "StringLike": {
                    "aws:ResourceTag/AWSServiceName": "ChimeSDK"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "kinesisvideo:ListFragments",
                "kinesisvideo:GetMediaForFragmentList"
            ],
            "Resource": [
            "arn:aws:kinesisvideo:us-east-1:111122223333:stream/Chime*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKey"
            ],
            "Resource": [
            "arn:aws:kms:us-east-1:111122223333:key/*"
            ],
            "Condition": {
                "StringLike": {
                    "aws:ResourceTag/AWSServiceName": "ChimeSDK"
                }
            }
        }
    ]
}
```

------

## Política de análise pós-chamada
<a name="post-call-analytics-policy"></a>

Se usar o atributo de análise pós-chamada do `AmazonTranscribeCallAnalyticsProcessor`, adicione a seguinte política:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iam:PassRole"
            ],
            "Resource": [
                "arn:aws:iam::111122223333:role/transcribe_role_name"
            ],
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": "transcribe.streaming.amazonaws.com"
                }
            }
        }
    ]
}
```

------

## Política VoiceEnhancementSinkConfiguration
<a name="enhancement-sink-config-policy"></a>

Se você usar o elemento `VoiceEnhancementSinkConfiguration`, adicione a seguinte política:

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "s3:GetObject",
            "s3:PutObject",
            "s3:PutObjectAcl",
            "s3:PutObjectTagging"
         ],
         "Resource":[
            "arn:aws:s3:::input_bucket_path/*"
         ]
      },
      {
         "Effect":"Allow",
         "Action":[
            "kinesisvideo:GetDataEndpoint",
            "kinesisvideo:ListFragments",
            "kinesisvideo:GetMediaForFragmentList"
         ],
         "Resource":[
            "arn:aws:kinesisvideo:us-east-1:111122223333:stream/*"
         ],
         "Condition":{
            "StringLike":{
               "aws:ResourceTag/AWSServiceName":"ChimeSDK"
            }
         }
      },
      {
         "Effect":"Allow",
         "Action":[
            "kinesisvideo:ListFragments",
            "kinesisvideo:GetMediaForFragmentList"
         ],
         "Resource":[
         "arn:aws:kinesisvideo:us-east-1:111122223333:stream/Chime*"
         ]
      },
      {
         "Effect":"Allow",
         "Action":[
            "kms:GenerateDataKey"
         ],
         "Resource":[
         "arn:aws:kms:us-east-1:111122223333:key/*"
         ],
         "Condition":{
            "StringLike":{
               "aws:ResourceTag/AWSServiceName":"ChimeSDK"
            }
         }
      }
   ]
}
```

------

## Política VoiceAnalyticsProcessor
<a name="voice-analytics-processor-policy"></a>

Se usar o `VoiceAnalyticsProcessor`, adicione as políticas para `LambdaFunctionSink`, `SqsQueueSink`, e `SnsTopicSink` dependendo de quais coletores você definir.

Política do `LambdaFunctionSink`:    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Action": [
        "lambda:InvokeFunction",
        "lambda:GetPolicy"
       ],
      "Resource": [
          "arn:aws:lambda:us-east-1:111122223333:function:function_name"
       ],
      "Effect": "Allow"
    }
  ]
}
```

Política `SqsQueueSink`    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Action": [
        "sqs:SendMessage",
        "sqs:GetQueueAttributes"
       ],
      "Resource": [
      "arn:aws:sqs:us-east-1:111122223333:queue_name"
        ],
      "Effect": "Allow"
    },
    {
      "Effect": "Allow",
      "Action": ["kms:GenerateDataKey", "kms:Decrypt"],
      "Resource": "arn:aws:kms:us-east-1:111122223333:key/*",
      "Condition": {
        "StringLike": {
            "aws:ResourceTag/AWSServiceName": "ChimeSDK"
        }
      }
    }
  ]
}
```

Política do `SnsTopicSink`:    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Action": [
        "sns:Publish",
        "sns:GetTopicAttributes"
      ],
      "Resource": [
      "arn:aws:sns:us-east-1:111122223333:topic_name"
      ],
      "Effect": "Allow"
    },
    {
      "Effect": "Allow",
      "Action": ["kms:GenerateDataKey", "kms:Decrypt"],
      "Resource": "arn:aws:kms:us-east-1:111122223333:key/*",
      "Condition": {
        "StringLike": {
            "aws:ResourceTag/AWSServiceName": "ChimeSDK"
        }
      }
    }
  ]
}
```

# Noções básicas sobre os status de analytics de chamadas do SDK do Amazon Chime
<a name="call-analytics-statuses"></a>

Os pipelines de insights de mídia rastreiam um conjunto de status ao executar um dos procedimentos a seguir, ou ambos: 
+ Usar vários elementos de processamento de machine learning, como o Amazon Transcribe e análise de voz.
+ Ativar a gravação de chamadas com ou sem processamento de machine learning.

Para obter o status do pipeline e do elemento, use a [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_GetMediaPipeline.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_GetMediaPipeline.html)API e [EventBridgeas notificações](using-eventbridge-notifications.md).

Para obter status das tarefas de análise de voz, use as [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_GetSpeakerSearchTask.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_GetSpeakerSearchTask.html)[metas de notificação de análise de voz](va-notification-targets.md) e e. [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_GetVoiceToneAnalysisTask.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_GetVoiceToneAnalysisTask.html) APIs

Os pipelines de insights de mídia rastreiam os status a seguir.
+ **Status do pipeline**: o status geral de um pipeline de análise de chamadas, também conhecido como pipeline de insights de mídia. É determinado pelos status dos elementos.
+ **Status do elemento**: o status do processamento dos elementos individuais de configuração do pipeline de insights de mídia.
+ **Status da tarefa**: o status de processamento de uma tarefa do pipeline de insights de mídia iniciada por análise de voz. O status do elemento `VoiceAnalyticsProcessor` é determinado pelos status da tarefa. Nenhum outro elemento em um pipeline de análise de chamadas tem um status de tarefa.

  Para obter mais informações sobre as tarefas do pipeline de insights de mídia, consulte [Noções básicas sobre a terminologia de analytics de chamadas do SDK do Amazon Chime](ca-terms-concepts.md) anteriormente neste guia.

Nem todos os tipos de elementos de configuração de insights de mídia têm status de elemento. Em geral, somente os elementos de configuração de insights de mídia do tipo “processador” têm um status de elemento. Além disso, os coletores de gravação e aprimoramento de voz do Amazon S3 têm status de processador. Especificamente, existem status de elementos para os seguintes tipos de elementos de configuração de insights de mídia:
+ `AmazonTranscribeProcessor`
+ `AmazonTranscribeCallAnalyticsProcessor`
+ `S3RecordingSink`
+ `VoiceAnalyticsProcessor`
+ `VoiceEnhancementSink`

O status do pipeline é determinado pelos status do elemento, como segue:


| Status do pipeline | Condição | 
| --- | --- | 
| NotStarted | Todos os status dos elementos não são iniciados. | 
| Inicializando | Pelo menos um elemento está sendo inicializado e o restante não foi iniciado. | 
| InProgress | Pelo menos um elemento está em andamento.  | 
| Com falha | Pelo menos um elemento falhou e os demais foram interrompidos. | 
| Parando | Consulte [Gerenciar pipelines de analytics de chamadas do SDK do Amazon Chime](managing-call-analytics-pipelines.md) para obter uma lista completa das condições de interrupção. | 
| Interrompido | Todos os elementos foram interrompidos. | 
| Paused | Todos os elementos estão pausados. | 

Ao contrário de outros status de elementos, o elemento `VoiceAnalyticsProcessor` tem algumas nuances. Conforme mencionado anteriormente, o status do elemento `VoiceAnalyticsProcessor`, correspondente ao recurso de analytics de voz do SDK do Amazon Chime, é determinado pelos status da tarefa criados por meio da [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) e da [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).
+ O status do elemento `VoiceAnalyticsProcessor` começa em um estado `NotStarted`, porque `StartSpeakerSearchTask` e `StartVoiceToneAnalysisTask` devem ser chamados antes que o elemento possa alterar o status para `Initializing`, e em seguida para `InProgress`.
+ O `VoiceAnalyticsProcessor` permanece como `InProgress` enquanto uma tarefa é iniciada e não for atendia uma [condição de interrupção](managing-call-analytics-pipelines.md) durante a execução da tarefa.
+ Mesmo que `VoiceAnalyticsProcessor` possa estar `InProgress`, você só será cobrado pela duração do processamento das tarefas.
+ Para limpar os pipelines de insights de mídia que tiveram pelo menos uma tarefa de análise de voz iniciada e nenhuma outra tarefa estiver em execução, você deve chamar `DeleteMediaPipeline`.
+ Enquanto uma tarefa estiver em execução ou for concluída com êxito, o status do elemento `VoiceAnalyticsProcessor` permanecerá como `InProgress`.

# Monitoramento de pipelines de análise de chamadas para o Amazon Chime SDK com a Amazon CloudWatch
<a name="monitoring-with-cloudwatch"></a>

Você pode usar CloudWatch a Amazon para monitorar os pipelines de análise de chamadas do Amazon Chime SDK. Você também pode definir alarmes que observam determinados limites e enviam notificações ou realizam ações quando esses limites são atingidos. Para obter mais informações sobre CloudWatch, consulte o [Guia CloudWatch do usuário da Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/).

**Topics**
+ [Pré-requisitos](#monitoring-prereqs)
+ [Métricas de análise de chamadas](#monitoring-metrics)
+ [CloudWatch dimensões para métricas de pipeline](#monitoring-dimensions)

## Pré-requisitos
<a name="monitoring-prereqs"></a>

Para usar CloudWatch métricas, você deve primeiro criar uma função vinculada ao serviço de canais de mídia que conceda permissões para publicar métricas de serviço na Amazon. CloudWatch Consulte mais informações sobre o perfil vinculado ao serviço em [Criar um perfil vinculado ao serviço para pipelines de mídia do SDK do Amazon Chime](create-pipeline-role.md), neste guia.

## Métricas de análise de chamadas
<a name="monitoring-metrics"></a>

A análise de chamadas do SDK do Amazon Chime publica as métricas a seguir no namespace `AWS/ChimeSDK` para os pipelines de insights de mídia que você cria usando uma configuração de insights de mídia.


| Métrica | Description | 
| --- | --- | 
|  `MediaInsightsPipelineCreated`  |  O pipeline de insights de mídia foi criado com sucesso. Unidade: Contagem  | 
|  `MediaInsightsPipelineStopped`  |  O pipeline de insights de mídia foi interrompido com sucesso. Unidade: Contagem  | 
|  `MediaInsightsPipelineFailed`  |  O pipeline de insights de mídia falhou. Unidade: Contagem  | 
|  `MediaInsightsPipelineDuration`  |  O tempo entre a criação do pipeline e a interrupção/falha. Unidade: segundos  | 
|  `MediaInsightsPipelineBillingDuration`  |  A duração do faturamento do pipeline de insights de mídia. Unidade: Contagem  | 
|  `RecordingFileSize`  |  O tamanho do arquivo de gravação. Unidade: bytes  | 
|  `RecordingDuration `  |  A duração da gravação. Unidade: segundos  | 

## CloudWatch dimensões para métricas de pipeline
<a name="monitoring-dimensions"></a>

A tabela a seguir lista as CloudWatch dimensões que você pode usar para monitorar os pipelines de análise de chamadas.


| Dimensão | Description | 
| --- | --- | 
| `MediaInsightsPipelineConfigurationId` | O ID da configuração do pipeline de insights de mídia. | 
| `MediaInsightsPipelineConfigurationName` | O nome da configuração do pipeline de insights de mídia. | 

# Processador de analytics de chamadas e destinos de saída do SDK do Amazon Chime
<a name="call-analytics-processor-and-output-destinations"></a>

 Você só pode especificar elementos exclusivos uma vez por configuração do pipeline de insights de mídia. Todos os processadores e coletores devem residir na mesma AWS conta e você deve criá-los na mesma AWS região do endpoint que você chama. Por exemplo, se você usa o endpoint do `us-east-1` para os pipelines de mídia do SDK do Amazon Chime, não pode passar um fluxo de dados do Kinesis da região `us-west-2`. 

Expanda cada seção para obter informações sobre cada destino.

## Destinos do processador do Amazon Transcribe Call Analytics
<a name="amazon-transcribe-call-analytics-processor"></a>

Coletores suportados: `KinesisDataStreamSink`.

Não é possível combinar esse processador com um processador do Amazon Transcribe. Para obter mais informações sobre o Amazon Transcribe Call Analytics, consulte [Análise de chamadas em tempo real](https://docs.aws.amazon.com/transcribe/latest/dg/call-analytics-streaming.html), no *Guia do desenvolvedor do Amazon Transcribe*. Se habilitar a [Análise pós-chamada](https://docs.aws.amazon.com/transcribe/latest/dg/tca-post-call.html), ao incluir `PostCallAnalyticsSettings` na chamada de API `AmazonTranscribeCallAnalyticsProcessorConfiguration`, você receberá artefatos no local especificado do Amazon S3 quando o pipeline de insights de mídia for interrompido e o processamento for concluído.

**nota**  
Se você pausar o pipeline por mais de 35 segundos e depois retomá-lo, os artefatos pós-chamada serão gerados em arquivos separados com sessões diferentes IDs no bucket do Amazon S3.

Os artefatos pós-chamada incluem um arquivo JSON de análise e um arquivo de gravação de áudio WAV ou Opus. O URL do bucket do Amazon S3 para arquivos de gravação editados (se a edição de conteúdo estiver habilitada) e não editados é enviado ao fluxo de dados do Kinesis uma vez para cada sessão pós-chamada do Amazon Transcribe Call Analytics, como parte dos `onetimeMetadata`, na seção de metadados.

A análise de chamadas com o Amazon Transcribe Call Analytics usa a entrada de dados de áudio do stream de vídeo do Kinesis.
+ Codificação de mídia suportada: áudio little-endian de 16 bits assinado pelo PCM.
+ Taxas de amostragem de mídia suportadas: entre 8.000 Hz e 48.000 Hz.

Entrada de `StreamConfiguration` para um processo de análise do Amazon Transcribe:
+ Você deve especificar o `KinesisVideoStreamArn` para cada stream.
+ (Opcional) O `FragmentNumber` do KVS inicia um trabalho de análise de chamada da parte após um fragmento especificado. Se não for fornecido, ele usa a parte mais recente do stream de vídeo do Kinesis.
+ `StreamChannelDefinition` define quem está falando. O Amazon Transcribe Call Analytics requer áudio de dois canais. É necessário especificar qual locutor está em qual canal ao chamar a API [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). Por exemplo, se seu atendente falar primeiro, você define o `ChannelId` como `0` para indicar o primeiro canal e o `ParticipantRole` como `AGENT` para indicar que o atendente está falando.

**nota**  
Quando usar um conector de voz para criar um `MediaInsightsPipeline` com um processador do Amazon Transcribe Call Analytics, o áudio da perna da conta do conector de voz será o `AGENT` e o áudio da perna do PSTN será o `CUSTOMER` para o `ParticipantRole`.  
Para o conector de voz SIPREC, dependemos dos metadados do SIPREC. Na maioria dos casos, o rótulo do stream com o menor valor lexicográfico é considerado o `AGENT`.

O exemplo a seguir mostra a entrada do stream de vídeo do Kinesis para um stream de áudio de dois canais.

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

 Por outro lado, o exemplo a seguir mostra duas entradas mono de dois streams diferentes do Kinesis Video. 

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

## Saída do Amazon Transcribe Call Analytics
<a name="amazon-transcribe-call-analytics-output"></a>

 Cada registro do Amazon Transcribe contém um `UtteranceEvent` ou um `CategoryEvent`, mas não ambos. `CategoryEvents` têm um `detail-type` do `TranscribeCallAnalyticsCategoryEvent`. 

O exemplo a seguir mostra o formato único de saída de metadados para o 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"
}
```

 O exemplo a seguir mostra o formato de saída do 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
                }]
            }
        }
    }
}
```

## Metadados de atualizações de streaming do conector de voz do SDK do Amazon Chime
<a name="cvc-stream-update-metadata"></a>

Se a configuração de análise de chamadas estiver associada a um conector de voz do SDK do Amazon Chime, a seguinte carga útil de atualização do conector de voz será enviada quando houver uma [atualização de streaming do conector de voz](https://docs.aws.amazon.com/chime-sdk/latest/ag/automating-chime-with-cloudwatch-events.html).

O exemplo a seguir mostra um formato de metadados de atualização para o processador do Amazon Transcribe e o processador do 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"
}
```

O exemplo a seguir mostra um formato de metadados de atualização para a gravação do Amazon S3 do Call Analytics.

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

## Metadados de gravação de chamadas de SIP
<a name="sip-update-metadata"></a>

Os exemplos a seguir mostram os metadados para gravar uma chamada de SIP entre duas pessoas, Alice e Bob. Ambos os participantes enviam e recebem áudio e vídeo. Para simplificar, o exemplo tem apenas trechos de SIP e SDP, e o SRC grava os streamings de cada participante no SRS sem misturar.

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

O exemplo a seguir mostra os metadados atualizados quando um participante da chamada coloca o outro em espera. Nesse caso, `participant_id srfBElmCRp2QB23b7Mpk0w==` apenas recebe streamings de mídia e não envia nenhuma mídia, portanto, o elemento XML `send` é omitido. Por outro lado, `participant_id zSfPoSvdSDCmU3A3TRDxAw==` envia, mas não recebe mídia do outro participante, portanto, o elemento XML `recv` é omitido.

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

O exemplo a seguir mostra a atualização dos metadados quando a chamada é retomada. A carga útil agora tem os elementos XML `send` e `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>
```

## Destinos do processador do Amazon Transcribe
<a name="amazon-transcribe-processors"></a>

Coletores suportados: `KinesisDataStreamSink`.

Não é possível combinar esse processador com o do Amazon Transcribe Call Analytics. Para obter mais informações sobre a entrada e a saída do Amazon Transcribe, consulte [Transcrever streaming de áudio](https://docs.aws.amazon.com/transcribe/latest/dg/streaming.html) no *Guia do desenvolvedor do Amazon Transcribe*.

A sessão de análise de chamadas com o Amazon Transcribe usa a entrada de dados de áudio do stream de vídeo do Kinesis.
+ Suportado MediaEncoding: áudio little-endian de 16 bits assinado por PCM.
+ Taxas MediaSampleRate de amostragem suportadas: entre 8.000 Hz e 48.000 Hz.

 Entrada de `StreamConfiguration` para processadores do Amazon Transcribe: 
+ Você deve especificar o `KinesisVideoStreamArn` para cada stream.
+ (Opcional) `FragmentNumber` do KVS: inicia um trabalho de análise de chamada da parte após um fragmento específico. Se não for fornecido, ele usará a parte mais recente do stream de vídeo no Kinesis.
+ Atualmente, a `StreamChannelDefinition` do Amazon Transcribe suporta áudio com dois canais. Você precisa especificar o `NumberOfChannels` no runtime da `StreamChannelDefinition`. Além disso, você deve passar o `ChannelId` se enviar áudio mono em dois canais separados. Na transcrição, são atribuídos os rótulos `ch_0` e `ch_1` aos canais. O exemplo a seguir mostra a entrada KVS para um stream de canal de áudio mono.

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

 O exemplo a seguir mostra a entrada KVS para duas entradas de áudio mono em dois streams diferentes. 

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

**nota**  
Para o conector de voz `MediaInsightsPipeline` criado com um processador do Amazon Transcribe, o áudio da perna da conta do conector de voz é atribuído ao `channel-0` e o áudio da perna da PSTN ao `channel-1`.  
Para o conector de voz SIPREC, dependemos dos metadados do SIPREC. Na maioria dos casos, o rótulo do stream com o menor valor lexicográfico é atribuído ao `channel-0`.  
Para os processadores do Amazon Transcribe e do Amazon Transcribe Call Analytics, se você transmitir dois streams de vídeo do Kinesis e cada stream contiver um canal de áudio mono, intercalaremos os dois canais em um único stream de áudio antes de processar o Transcribe ou os dados da análise de chamadas do Transcribe.

## Saída do Amazon Transcribe
<a name="amazon-transcribe-output"></a>

O exemplo a seguir mostra um formato único de saída de metadados para o 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"
}
```

O exemplo a seguir mostra o formato de saída do 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
            }]
        }
    }
}
```

## Destinos do processador de análise de voz
<a name="voice-analytics-processor"></a>

 Coletores compatíveis: `KinesisDataStreamSink`, `SqsQueueSink`, `SnsTopicSink` e `LambdaFunctionSink`. 

 É possível combinar esse processador com o processador do Amazon Transcribe Call Analytics, o processador do Amazon Transcribe ou a gravação de chamadas. Você deve usar o [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_StartSpeakerSearchTask.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_StartSpeakerSearchTask.html)ou [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_StartVoiceToneAnalysisTask.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_StartVoiceToneAnalysisTask.html) APIs para invocar um processador de análise de voz. Para obter mais informações sobre o uso de análise de voz, consulte [Como usar a análise de voz do SDK do Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/dg/voice-analytics.html). 

## Usar o fluxo de dados do Kinesis como coletor
<a name="kinesis-data-stream-destination"></a>

Os registros do fluxo de dados do Kinesis (KDS) gerados pela análise de chamadas incluem o ID do pipeline de mídia, o tipo de detalhe, os metadados e as seções específicas do processador. Para obter informações sobre o consumo de dados de um fluxo de dados do Kinesis, consulte [Leitura de dados do Amazon Kinesis Data Streams](https://docs.aws.amazon.com/streams/latest/dev/building-consumers.html), no *Guia do desenvolvedor do Amazon Kinesis Streams*. Para criar uma configuração com esse coletor, você deve ter permissão para `kinesis:DescribeStream` no stream especificado. 

 **Metadados**

 A seção `metadata` dos registros KDS gerados contém todos os pares de chave-valor especificados nos `CallAnalyticsRuntimeMetadata` durante a chamada de API [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). Se uma sessão de análise de chamadas foi iniciada por um conector de voz, a seção de metadados será preenchida automaticamente com os seguintes parâmetros: 
+ `transactionId`
+ `fromNumber`
+ `toNumber`
+ `callId`
+ `voiceConnectorId`
+ `direction`

 Além dos parâmetros mostrados acima, a seção de metadados das sessões de analytics de chamadas iniciadas pelo Voice Connector será preenchida com um campo `oneTimeMetadata`, que contém: 
+ `inviteHeaders`
+ `siprecMetadata`

Isso é publicado no fluxo de dados do Kinesis somente uma vez no início da sessão e tem um `detail-type` de `CallAnalyticsMetadata`.

É possível transmitir identificadores exclusivos nos `MediaInsightsRuntimeMetadata` para cada chamada de API [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) para poder identificar com exclusividade a origem de cada registro entregue ao fluxo de dados do Kinesis.

## Gravação de chamadas do Amazon S3
<a name="amazon-s3-call-recording"></a>

 A gravação de análise de chamadas lê o áudio de um stream do KVS, o grava como um arquivo de áudio e carrega o arquivo bucket do Amazon S3 especificado. Depois de gravar a chamada, a análise também envia os metadados da chamada junto com a localização do arquivo para o KDS. Se você habilitar um data warehouse, os metadados da chamada (incluindo metadados SIPREC, se o SIPREC tiver sido usado) serão entregues ao data warehouse em um conjunto de tabelas Parquet que você pode consultar.

Como qualquer outro processador de análise de chamadas, primeiro deve ser criada uma configuração para o pipeline. É possível usar o console do SDK do Amazon Chime ou a CLI para criar a configuração. Então, use a CLI para criar um pipeline. Para mais informações sobre como usar o console para criar configurações de gravação, consulte [Criar configurações de analytics de chamadas do SDK do Amazon Chime](creating-ca-configuration.md), anteriormente nesta seção. Para obter mais informações sobre o uso dos fluxos de trabalho de gravação, consulte [Noções básicas sobre fluxos de trabalho para gravar chamadas para o SDK do Amazon Chime](recording-workflows.md), anteriormente nesta seção.

 **Como usar a CLI para criar uma configuração**

 Execute este comando: . 

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

 O exemplo a seguir mostra um arquivo JSON de configuração com somente a gravação habilitada: 

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

Lembre-se do seguinte:
+ Para habilitar a gravação de chamadas por meio do Kinesis Video Streams, o áudio deve ser little-endian de 16 bits assinado pelo PCM. A taxa de amostragem deve ser 8KHz. 
+ Os criadores devem definir um período de retenção de dados do Kinesis Video Stream suficientemente longo, para garantir que os fragmentos sejam retidos e possam ser consumidos pela analytics de chamadas. 
+ Se você habilitar a gravação de chamadas, sozinha ou em combinação com outros processadores, deverá fornecer dois Kinesis Video Stream ARNs para gravação. A gravação de chamadas não suporta uma entrada única de áudio estéreo. 

## Saída de metadados de gravação de chamadas do Amazon S3
<a name="s3-recording-metadata-output"></a>

O exemplo a seguir mostra o formato de saída de metadados para a gravação de analytics de chamadas do 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"
}
```

## Ativar o aprimoramento de voz
<a name="voice-enhancement-sink"></a>

Para habilitar o aprimoramento de voz, inclua um elemento `VoiceEnhancementSinkConfiguration` em uma chamada de 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).

Este exemplo mostra um elemento típico.

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

Para atualizar uma configuração, adicione o elemento `VoiceEnhancementSinkConfiguration` a uma chamada de API [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). Ao fazer isso, a API [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) inclui o elemento `VoiceEnhancementSinkConfiguration` nos resultados.

Este exemplo de solicitação mostra como habilitar o aprimoramento de voz e a gravação no 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**  
O elemento `VoiceEnhancementSink` sempre exige um elemento `S3RecordingSink` em uma configuração de análise de chamadas.

# Combinar a transcrição com coletores de gravação do SDK do Amazon Chime
<a name="combining-recording-transcription"></a>

É possível combinar os processadores do Amazon Transcribe e do Amazon Transcribe Call Analytics com um coletor de gravação do Amazon S3. Os criadores podem transmitir um S3 RecordingSinkConfiguration além dos processadores Amazon Transcribe em [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)uma chamada de API ou usando o console.

Em conjunto com o coletor de gravação do Amazon S3, é possível usar um processador do Amazon Transcribe ou do Amazon Transcribe Call Analytics, mas nunca ambos. Também é possível adicionar análise de voz à mesma configuração, além de um coletor de gravação, com ou sem um processador de transcrição.

**nota**  
É possível ativar a gravação com qualquer um dos processadores listados acima. No entanto, se você habilitar o Amazon Transcribe Call Analytics, além da gravação de chamadas do Amazon S3, você deverá fornecer dois fluxos de vídeo do Kinesis e receberá arquivos de gravação duplicados, um do Amazon Transcribe Call Analytics e um da gravação de chamadas do Amazon S3.

Lembre-se do seguinte:
+ Você deve usar um `MediaInsightsPipelineConfigurationName` exclusivo.
+ Para obter informações sobre o `ResourceAccessRoleArn`, consulte [Usar o perfil de acesso ao recurso de analytics de chamadas do SDK do Amazon Chime](call-analytics-resource-access-role.md) neste guia.
+ O valor de `Destination` deve ser um ARN do caminho do S3. O bucket do Amazon S3 deve ser de propriedade da mesma conta.
+ Se usar uma configuração com Transcribe e gravação para criar um pipeline, pausas e retomadas só aparecerão nos insights gerados por um fluxo de dados do Kinesis. Todos os dados nos streams do KVS são registrados e enviados para o Amazon S3.
+ Se uma configuração usa o Amazon Transcribe ou Transcribe Call Analytics (TCA) além da gravação, o pipeline de insights de mídia fornece informações da transcrição ou insights do Transcribe Call Analytics em tempo real, seguidos pela gravação do Amazon S3 ao final da chamada. Se os serviços de transcrição falharem durante a análise da chamada, o trabalho de gravação do S3 ainda tentará ser executado. Por outro lado, uma falha na gravação do Amazon S3 não afeta os insights da transcrição, pois ela é executada após a conclusão da transcrição.

O exemplo mostra uma configuração com um processador do Amazon Transcribe e um coletor de gravação do Amazon S3. O exemplo também permite a estabilização parcial dos resultados, o que pode reduzir a latência na saída, mas pode afetar a precisão. Para obter mais informações, consulte [Estabilização parcial de resultados](https://docs.aws.amazon.com/transcribe/latest/dg/streaming-partial-results.html#streaming-partial-result-stabilization), no *Guia do desenvolvedor do Amazon Transcribe*.

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

# Usando EventBridge notificações da Amazon para o Amazon Chime SDK
<a name="using-eventbridge-notifications"></a>

O Amazon Chime SDK Call Analytics suporta o envio de eventos para o EventBridge barramento padrão quando o estado do pipeline de insights de mídia muda ou quando as condições de alerta em tempo real da análise de chamadas são atendidas. Para as atualizações de status de erro do pipeline do media insights, recomendamos que você configure um EventBridge alvo para notificá-lo se seus recursos falharem de forma assíncrona. As notificações de análise de chamadas têm uma fonte aws.chime e vários tipos de detalhes, que são compartilhados nas seções a seguir. Para obter mais informações, consulte o [Guia EventBridge do usuário da Amazon](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html).

**Topics**
+ [Atualizações de status](#status-updates)
+ [Alertas em tempo real](#realtime-alerts)

## Atualizações de status
<a name="status-updates"></a>

 Os pipelines de insights de mídia enviam EventBridge notificações à medida que uma sessão de análise de chamadas avança e termina com sucesso ou encontra erros. Você recebe uma EventBridge notificação com o tipo de detalhe “Alteração de estado do Media Insights” quando: 
+ O status de um pipeline de insights de mídia mudar.
+ O status do elemento de um pipeline de insights de mídia mudar.
+ Algum elemento do pipeline for interrompido.
+ Algum elemento do pipeline falhar.

A seção de detalhe sempre inclui os campos a seguir:
+ `version`
+ `mediaInsightsPipelineArn`
+ `eventType`

A seção de detalhes também inclui um campo `mediaInsightsPipelineElementStatuses` se o pipeline de insights de mídia contiver vários elementos, como processadores de análise e coletores de dados. Esse campo indica os status de cada elemento no pipeline. O status possível para cada elemento do pipeline pode ser:
+ `NotStarted`
+ `InProgress`
+ `Stopped`
+ `Failed`

 A seção de detalhes também inclui todos os pares de chave-valor especificados em `MediaInsightsRuntimeMetadata` durante a chamada de API [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). Se uma sessão de análise de chamadas foi iniciada por um conector de voz, a seção de metadados é preenchida automaticamente com os parâmetros a seguir: 
+ `transactionId`
+ `fromNumber`
+ `toNumber`
+ `callId`
+ `voiceConnectorId`
+ `direction`

 Os seguintes tipos de eventos podem aparecer sempre que um pipeline de insights de mídia contém um único elemento. Expanda cada seção para saber mais.

### Insights de mídia do SDK do Amazon Chime em andamento
<a name="insights-in-progress"></a>

Este exemplo mostra uma estrutura típica de evento.

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

### Insights de mídia do SDK do Amazon Chime pausados
<a name="insights-paused"></a>

Este exemplo mostra uma estrutura típica de evento.

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

### Insights de mídia do SDK do Amazon Chime interrompidos
<a name="insights-stoppped"></a>

Este exemplo mostra uma estrutura típica de evento.

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

### Falha temporária dos insights de mídia do SDK do Amazon Chime
<a name="insights-temp-failure"></a>

Indica que o serviço encontrou uma falha temporária e vai tentar novamente. Não é necessária nenhuma ação sua.

Este exemplo mostra uma estrutura típica de evento.

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

### Falha permanente de insights de mídia do SDK do Amazon Chime
<a name="insights-perm-failure"></a>

Indica uma falha que exige uma ação sua. Use o `failureReason` para solucionar o problema. As falhas típicas podem incluir o seguinte:
+ Permissões insuficientes da função de acesso ao recurso
+ Recursos ausentes ou excluídos
+ Limitação a partir de um AWS serviço que a análise de chamadas invoca em seu nome, como o Amazon Transcribe ou o Amazon Kinesis.
+ Formatos de mídia incompatíveis em streams KVS

Este exemplo mostra uma estrutura típica de evento.

```
{
    "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**  
O campo `failureReason` é opcional. Por exemplo, um motivo típico pode ser `Access denied when assuming resource access role`.

Os seguintes tipos de eventos podem aparecer sempre que um pipeline de insights de mídia for criado ou a tentativa de criação falhar para uma sessão de análise de chamadas iniciada por um conector de voz do SDK do Amazon Chime. Expanda cada seção para saber mais.

### Insights de mídia do SDK do Amazon Chime criados
<a name="vc-pipeline-created"></a>

Este exemplo mostra um evento típico com êxito.

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

### Falha na criação de insights de mídia do SDK do Amazon Chime
<a name="vc-pipeline-failed"></a>

Este exemplo mostra um evento de falha típico.

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

Os seguintes tipos de eventos podem aparecer quando um pipeline de insights de mídia contiver vários elementos. As notificações de exemplo são do `AmazonTranscribeProcessor` combinadas com o `S3RecordingSink`. Expanda cada seção para saber mais. 

### AmazonTranscribeProcessor está em andamento e o S3 não RecordingSink foi iniciado
<a name="processor-running-sink-not-started"></a>

Este exemplo mostra uma estrutura típica de evento.

```
{
    "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 foi bem-sucedido e o S3 RecordingSink está em andamento
<a name="processor-success-sink-in-progress"></a>

Este exemplo mostra uma estrutura típica de evento.

```
{
    "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 falhou e o S3 RecordingSink está em andamento
<a name="processor-fail-sink-in-process"></a>

Este exemplo mostra uma estrutura típica de evento.

```
{
    "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 falhou e o S3 RecordingSink foi bem-sucedido
<a name="processor-fail-record-finish"></a>

Este exemplo mostra uma estrutura típica de evento.

```
{
    "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 teve sucesso e o S3 falhou RecordingSink
<a name="processor-success-recording-fail"></a>

Este exemplo mostra uma estrutura típica de evento.

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

### AmazonTranscribeProcessor está pausado e o S3 RecordingSink não foi iniciado
<a name="processor-pause-recording-no-start"></a>

Este exemplo mostra uma estrutura típica de evento.

```
{
    "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 falhou temporariamente e o S3 não RecordingSink foi iniciado
<a name="processor-temp-fail-recording-no-start"></a>

Este exemplo mostra uma estrutura típica de evento.

```
{
    "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 o S3 teve sucesso RecordingSink
<a name="processor-sink-success"></a>

Este exemplo mostra uma estrutura típica de evento.

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

### O S3 RecordingSink foi bem-sucedido e VoiceEnhancement está em andamento
<a name="voice-enhancement-sink-inprogress"></a>

Este exemplo mostra uma estrutura típica de evento.

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

### O S3 RecordingSink foi bem-sucedido e VoiceEnhancement falhou devido a chamadas de mais de 30 minutos
<a name="voice-enhancement-sink-fail-longerthan30minutes"></a>

Este exemplo mostra uma estrutura típica de evento.

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

### O S3 RecordingSink foi bem-sucedido e VoiceEnhancement falhou devido a chamadas de menos de 30 minutos
<a name="voice-enhancement-sink-fail-lessthan30minutes"></a>

Este exemplo mostra uma estrutura típica de evento.

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

## Alertas em tempo real
<a name="realtime-alerts"></a>

**nota**  
Somente os processadores do Amazon Transcribe e do Amazon Transcribe Call Analytics suportam alertas em tempo real.

 A análise de chamadas do SDK do Amazon Chime permite que os desenvolvedores configurem regras para enviar alertas em tempo real por meio de um processador durante uma sessão de análise. Os alertas são enviados para a Amazon EventBridge com o tipo de detalhe`Media Insights Rules Matched`. EventBridge oferece suporte à integração com serviços downstream, como Lambda, Amazon SQS e Amazon SNS, para acionar notificações para o usuário final ou iniciar outra lógica comercial personalizada.

 Os alertas em tempo real são configurados como parte do campo `RealTimeAlertConfiguration` para a `MediaInsightsPipelineConfiguration`. Você pode usar o console do Amazon Chime SDK para configurar o campo ou pode chamar o ou. [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaInsightsPipelineConfiguration.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaInsightsPipelineConfiguration.html) APIs 

 Este exemplo mostra como criar ou atualizar uma configuração de alerta em tempo real por meio da 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"
            }
        }
    ]
}
```

Cada regra em uma configuração de alerta em tempo real é acionada de forma independente. Você poderá receber várias EventBridge notificações se várias condições de regra forem atendidas ao mesmo tempo. Para criar uma lista de regras para seus alertas, você pode selecionar entre os seguintes tipos de regras:

Correspondência de palavra-chave  
Alerta quando um conjunto específico de palavras-chave ou frases for correspondido em um evento de enunciado ou transcrição. É possível configurar o alerta para emitir um evento se:  
+ Todas as palavras-chave especificadas forem faladas e `Negate` estiver definido como `false`.
+ Todas as palavras-chave especificadas não forem faladas durante toda a chamada, se `Negate` estiver definido como `true`.
O Amazon Transcribe e a análise do Amazon Transcribe oferecem suporte a esse tipo de regra.

Análise de sentimento  
Alerta quando um determinado tipo de sentimento está em andamento por um período de tempo contínuo. Somente o Transcribe Call Analytics suporta essa regra.

Detecção de problemas  
Alerta quando um problema é detectado em um evento de enunciado. Somente o Transcribe Call Analytics suporta esse tipo de regra.

O exemplo a seguir mostra um evento de alerta em tempo real para uma regra `KeywordMatch`.

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

Alguns EventBridge campos são específicos para o tipo de regra correspondente:

**Campos de correspondência de palavras-chave**  
`utteranceId`: ID da transcrição que contém uma palavra-chave correspondente se você usar o Amazon Transcribe Call Analytics. Somente para correspondência falada de palavras-chave.  
`resultId`: ID da transcrição que contém uma palavra-chave correspondente se você usar o Amazon Transcribe. Somente para correspondência falada de palavras-chave.  
`beginTimestamp`: hora de início da transcrição que contém uma palavra-chave correspondente. Somente para correspondência falada de palavras-chave.

**Campos de análise de sentimento**  
`beginTimestamp`: hora de início da janela contínua para o sentimento correspondente.  
`endTimestamp`: hora de término da janela contínua para o sentimento correspondente.

# Criação de um data lake do SDK do Amazon Chime
<a name="ca-data-lake"></a>

O data lake de análise de chamadas do SDK do Amazon Chime permite que você transmita os insights baseados em machine learning e todos os metadados do Amazon Kinesis Data Stream para o bucket do Amazon S3. Por exemplo, usando o data lake URLs para acessar as gravações. Para criar o data lake, você implanta um conjunto de AWS CloudFormation modelos do console do Amazon Chime SDK ou programaticamente usando o. AWS CLI O data lake permite que você consulte seus metadados de chamadas e dados de análise de voz fazendo referência às tabelas de dados do AWS Glue no Amazon Athena.

**Topics**
+ [Pré-requisitos](#data-lake-prereqs)
+ [Terminologia e conceitos de data lake](#data-lake-terms)
+ [Criação de vários data lakes](#creating-multiple-data-lakes)
+ [Disponibilidade regional do data lake](#data-lake-regions)
+ [Arquitetura de data lake](#data-lake-architecture)
+ [Configuração de data lake](#data-lake-setup)

## Pré-requisitos
<a name="data-lake-prereqs"></a>

Você deve ter os seguintes itens para criar um lake do SDK do Amazon Chime:
+ Um Amazon Kinesis data stream. Para obter mais informações, consulte [Como criar um stream por meio do Console de Gerenciamento da AWS](https://docs.aws.amazon.com/streams/latest/dev/how-do-i-create-a-stream.html) no *Guia do desenvolvedor do Amazon Kinesis Streams*.
+ Um bucket do S3. Para obter mais informações, consulte [Criar seu primeiro bucket do Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket.html) no *Guia do usuário do Amazon S3*.

## Terminologia e conceitos de data lake
<a name="data-lake-terms"></a>

Use os termos e conceitos a seguir para entender como funciona o data lake.

**Amazon Kinesis Data Firehose**  
Um serviço de extração, transformação e carregamento (ETL) que captura, transforma e fornece dados de streaming de forma confiável para data lakes, data stores e serviços de análise. Para obter mais informações, consulte O que é o Amazon Kinesis Data Firehose?

**Amazon Athena**  
O Amazon Athena é um serviço de consulta interativa que permite analisar dados no Amazon S3 usando o SQL padrão. Como o Athena é uma tecnologia sem servidor, não há infraestrutura para ser gerenciada e você paga apenas pelas consultas que executar. Para usar o Athena, aponte para seus dados no Amazon S3, defina o esquema e use consultas SQL padrão. Você também pode usar grupos de trabalho para agrupar usuários e controlar os recursos aos quais eles têm acesso quando executam consultas. Os grupos de trabalho permitem gerenciar a simultaneidade de consultas e priorizar a execução de consultas em diferentes grupos de usuários e workloads.

**Glue Data Catalog**  
No Amazon Athena, as tabelas e os bancos de dados contêm os metadados que detalham um esquema para os dados de origem subjacente. Para cada conjunto de dados, é necessário existir uma tabela no Athena. Os metadados na tabela informam o Athena a localização do seu bucket do Amazon S3. Também especificam a estrutura de dados, como nomes de colunas, tipos de dados e o nome da tabela. Os bancos de dados contêm apenas os metadados e as informações do esquema de um conjunto de dados.

## Criação de vários data lakes
<a name="creating-multiple-data-lakes"></a>

Vários data lakes podem ser criados fornecendo um nome de banco de dados Glue exclusivo para especificar onde armazenar os insights de chamadas. Para uma determinada AWS conta, pode haver várias configurações de análise de chamadas, cada uma com um data lake correspondente. Isso significa que a separação de dados pode ser aplicada a determinados casos de uso sobre como os dados são armazenados, como a personalização da política de retenção e a política de acesso. Podem ser aplicadas diferentes políticas de segurança para acesso a insights, gravações e metadados.

## Disponibilidade regional do data lake
<a name="data-lake-regions"></a>

O data lake do SDK do Amazon Chime está disponível nas regiões a seguir.


| Region | Tabela Glue | Quick | 
| --- | --- | --- | 
| us-east-1 | Available (Disponível) | Available (Disponível) | 
| us-west-2 | Available (Disponível) | Available (Disponível) | 
| eu-central-1 | Available (Disponível) | Available (Disponível) | 

## Arquitetura de data lake
<a name="data-lake-architecture"></a>

O diagrama a seguir mostra a arquitetura de data lake. Os números no desenho correspondem ao texto numerado abaixo.

![\[O programa flui por meio de um data lake.\]](http://docs.aws.amazon.com/pt_br/chime-sdk/latest/dg/images/call-analytics-data-lake-architecture.png)


No diagrama, depois de usar o AWS console para implantar o CloudFormation modelo do fluxo de trabalho de configuração do pipeline de mídia Insights, os seguintes dados fluem para o bucket do Amazon S3:

1. A análise de chamadas do SDK do Amazon Chime começará a transmitir dados em tempo real para o fluxo de dados do Kinesis do cliente. 

1. O Amazon Kinesis Firehose armazena esses dados em tempo real até que eles acumulem 128 MB, ou 60 segundos, o que ocorrer primeiro. Em seguida, o Firehose usa o `amazon_chime_sdk_call_analytics_firehose_schema` no Glue Data Catalog para compactar os dados e transformar os registros JSON em um arquivo parquet.

1. O arquivo parquet reside no bucket do Amazon S3, em um formato particionado.

1. Além dos dados em tempo real, os arquivos resumidos .wav do Amazon Transcribe Call Analytics pós-chamada (editados e não editados, se especificados na configuração) e os arquivos .wav de gravação de chamadas também são enviados para o bucket do Amazon S3. 

1. É possível usar o Amazon Athena e o SQL padrão para consultar os dados no bucket do Amazon S3.

1. O CloudFormation modelo também cria um Glue Data Catalog para consultar esses dados resumidos pós-chamada por meio do Athena.

1. Todos os dados no bucket do Amazon S3 também podem ser visualizados usando o Quick. QuickSight cria uma conexão com um bucket do Amazon S3 usando o Amazon Athena.

A tabela do Amazon Athena usa os seguintes atributos para otimizar o desempenho da consulta:

**Particionamento de dados**  
O particionamento divide a tabela em partes e mantém os dados relacionados juntos com base em valores de coluna, como data, país ou região. As partições funcionam como colunas virtuais. Nesse caso, o CloudFormation modelo define partições na criação da tabela, o que ajuda a reduzir a quantidade de dados digitalizados por consulta e melhora o desempenho. Também é possível filtrar por partição para restringir a quantidade de dados digitalizados por consulta. Para mais informações, consulte [Particionamento de dados no Athena](https://docs.aws.amazon.com/athena/latest/ug/partitions.html) no *Guia do usuário do Amazon Athena*.  
Este exemplo mostra a estrutura de particionamento com data de 1º de janeiro de 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. em que `DETAIL_TYPE` é dos itens a seguir:

   1. `CallAnalyticsMetadata`

   1. `TranscribeCallAnalytics`

   1. `TranscribeCallAnalyticsCategoryEvents`

   1. `Transcribe`

   1. `Recording`

   1. `VoiceAnalyticsStatus`

   1. `SpeakerSearchStatus`

   1. `VoiceToneAnalysisStatus`

**Otimizar a geração de armazenamento de dados colunares**  
O Apache Parquet usa compactação em colunas, compactação com base no tipo de dado e passagem de predicados para armazenar dados. Com melhores taxas de compactação ou ao ignorar blocos de dados significa ler menos bytes do bucket do Amazon S3. Isso leva a um melhor desempenho de consulta e a um menor custo. Para essa otimização, é ativada a conversão de dados de JSON para parquet no Amazon Kinesis Data Firehose.

**Projeção de partições**  
Esse atributo do Athena cria partições automaticamente para cada dia para melhorar o desempenho das consultas baseadas em datas.

## Configuração de data lake
<a name="data-lake-setup"></a>

Use o console do SDK do Amazon Chime para realizar as etapas a seguir.

1. **Inicie o console do Amazon Chime SDK ([ https://console.aws.amazon.com/chime-sdk/home](https://console.aws.amazon.com/chime-sdk/home)) e, no painel de navegação, em **Call Analytics**, escolha Configurações.**

1. Concluída a etapa 1, escolha **Avançar** e, na página etapa 2, marque a caixa de seleção **Análise de voz**.

1. Em **Detalhes da saída**, marque a caixa de seleção **Data warehouse para realizar análise histórica** e, em seguida, escolha o link **Implantar CloudFormation pilha**.

   O sistema envia você para a página de **criação rápida da pilha** no CloudFormation console.

1. Insira um nome para a pilha e, em seguida, insira os seguintes parâmetros:

   1. `DataLakeType`— Escolha **Criar análise de chamadas DataLake**.

   1. `KinesisDataStreamName`: escolha seu stream. Deve ser o stream usado para streaming de análise de chamadas.

   1. `S3BucketURI`: escolha o bucket do Amazon S3. O URI deve ter o prefixo `s3://bucket-name`

   1. `GlueDatabaseName`: escolha um nome exclusivo do banco de dados do AWS Glue. Você não pode reutilizar um banco de dados existente na conta da AWS .

1. Marque a caixa de seleção de confirmação e, em seguida, escolha **Criar data lake**. Aguarde 10 minutos para que o sistema crie o data lake.

### Configuração do data lake usando AWS CLI
<a name="data-lake-setup-using-cli"></a>

Use AWS CLI para criar uma função com permissões para a pilha CloudFormation de criação da chamada. Siga o procedimento abaixo para criar e configurar os perfis do IAM. Para obter mais informações, consulte [Criação de uma pilha](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-cli-creating-stack.html) no *Guia do AWS CloudFormation usuário*.

1. Crie uma função chamada *AmazonChimeSdkCallAnalytics-Datalake-Provisioning-Role e anexe uma política de confiança à função*, permitindo que você assuma a função. CloudFormation 

   1. Crie uma política de confiança do IAM usando o modelo a seguir e salve o arquivo no formato .json.

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

****  

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

------

   1. Execute o comando **aws iam create-role** e passe a política de confiança como parâmetro.

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

   1. Anote o *ARN da função* retornado na resposta. Será necessário um *ARN de função* na próxima etapa.

1. Crie uma política com permissão para criar uma CloudFormation pilha.

   1. Crie uma política do IAM usando o modelo a seguir e salve o arquivo no formato .json. Esse arquivo será necessário para chamar create-policy.

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

****  

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

------

   1. Execute **aws iam create-policy** e passe a política de criação de pilha como parâmetro.

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

   1. Anote o *ARN da função* retornado na resposta. Será necessário um *ARN de função* na próxima etapa.

1. Anexe a política do **aws iam attach-role-policy** à função.

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

1. Crie uma CloudFormation pilha e insira os parâmetros necessários:**aws cloudformation create-stack**.

   Forneça valores de parâmetros para cada ParameterKey uso 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}
   ```

#### Recursos criados pela configuração do data lake
<a name="cf-resources"></a>

A tabela a seguir lista os recursos criados quando um data lake é criado.

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

# Configuração de um painel rápido para o Amazon Chime SDK
<a name="quicksight-setup-setup"></a>

Depois de configurar o data lake, você pode configurar um painel rápido com métricas predefinidas que visualizam seus dados. Você pode usar os seguintes painéis:
+ **Transcrição de análise de chamadas \$1 Análise de voz**. As métricas incluem imagens resumidas e detalhadas de turn-by-turn transcrições, problemas detectados, resultados, detecção de entidades e correspondências de ID de perfil de voz.
+ **Transcrição \$1 Análise de voz**. As métricas incluem imagens resumidas e detalhadas de turn-by-turn transcrições, correspondências de vocabulário, tom de voz e correspondências de ID de perfil de voz.

Os tópicos a seguir explicam como configurar uma conta rápida, se você ainda não tiver uma, e como configurar um painel.

**Topics**
+ [Criando uma QuickSight conta](#create-quicksight-account)
+ [Configurando sua conta QuickSight](#configure-qs-acct)
+ [Criação de um QuickSight painel](#create-qs-dashboard)

## Criando uma QuickSight conta
<a name="create-quicksight-account"></a>

As etapas desta seção explicam como criar uma conta rápida. Se você já tem uma conta, pode pular para [Criação de um QuickSight painel](#create-qs-dashboard).

Você pode criar uma QuickSight conta da seguinte forma:
+ Usando CloudFormation modelos da Amazon.
+ Usando o console do SDK do Amazon Chime.

### Pré-requisitos
<a name="qs-account-prereqs"></a>

Reúna as informações a seguir antes de começar:
+ O nome do seu bucket de análise de chamadas do Amazon S3.
+ Um endereço de e-mail de notificação. O sistema envia QuickSight notificações para esse endereço.

### Usando CloudFormation modelos para criar uma conta
<a name="account-by-cft"></a>

As etapas a seguir explicam como criar uma conta Quick implantando um CloudFormation modelo da Amazon. O processo só inscreve você em uma conta Enterprise. Para obter informações sobre preços, consulte [Quick Pricing](https://aws.amazon.com/quicksight/pricing/).

**Para implantar o modelo**

1. Inicie o AWS console e faça login na sua conta da AWS.

1. Cole a URL a seguir na barra de endereço do navegador. Insira sua região conforme indicado.

   `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. Na página **Criar uma pilha**, insira o seguinte:

   1. Em **Nome da pilha**, insira um nome para a sua conta.

   1. Abaixo **QuickSightNotificationEmail**do endereço de e-mail que você coletou anteriormente.

   1. Em **QuickSightSubscriptionForDataVisualization**, escolha **Criar nova AWS QuickSight conta**.

   1. Em **S3 BucketName**, insira o nome do seu bucket Amazon S3.

   1. Selecione a opção **Eu reconheço que a AWS CloudFormation pode criar recursos do IAM.** caixa de seleção.

1. Selecione **Criar pilha**.

   O sistema leva aproximadamente 10 minutos para criar a pilha.

1. Quando a compilação terminar, escolha **Ir para Rápido** e insira seu endereço de e-mail para entrar na sua conta.

### Usar o console para criar uma conta
<a name="account-by-console"></a>

As etapas a seguir explicam como usar o console do Amazon Chime SDK para criar uma conta Quick. Você deve usar uma conta Enterprise ou Enterprise \$1 Q.

**Para usar o console do**

1. Inicie o console do Amazon Chime SDK em [ https://console.aws.amazon.com/chime-sdk/casa](https://console.aws.amazon.com/chime-sdk/home), pesquise e**QuickSight**, nos resultados da pesquisa, escolha. **QuickSight**  
![\[Um resultado de pesquisa vinculado ao Quick.\]](http://docs.aws.amazon.com/pt_br/chime-sdk/latest/dg/images/quicksightsetup-1.png)

1. Escolha **Inscrever-se** em QuickSight. 

1. Escolha **Enterprise** ou **Enterprise \$1 Q** e, em seguida, escolha **Continuar**.

1. Insira seu nome, sobrenome, número de telefone e o endereço de e-mail que você anotou anteriormente e escolha **Continuar**.

1. Faça o seguinte:

   1. Em **Método de autenticação**, escolha uma opção. 
**nota**  
Se você escolher a opção com usuários federados, precisará das permissões corretas do IAM. Para obter mais informações, consulte [Inscrever-se para uma assinatura rápida](https://docs.aws.amazon.com/quicksight/latest/user/signing-up.html) no *Guia rápido do usuário*.

   1. Em **QuickSight Região**, selecione uma região.

   1. Em **Informações da conta**, insira um nome para a conta e o endereço de e-mail que você anotou anteriormente.

   1. Em **QuickSight Acesso aos serviços da AWS**, use a função padrão ou escolha **Usar uma função existente** e selecione uma função na lista.

   1. (Opcional) conforme necessário, em **Permitir acesso e descoberta automática para esses recursos**, escolha recursos adicionais.

   1. Quando terminar, escolha **Concluir**.

   1. Quando a compilação terminar, escolha **Ir para Rápido** e insira seu endereço de e-mail para entrar na sua conta.

## Configurando sua conta QuickSight
<a name="configure-qs-acct"></a>

Depois de fazer login na sua QuickSight conta, você precisa configurar a segurança e se adicionar a um grupo criado pelo processo de configuração.

**Para configurar a segurança**

1. Escolha o ícone do perfil no canto superior direito e escolha **Gerenciar** no QuickSight menu resultante.  
![\[Um menu com o QuickSight comando Gerenciar.\]](http://docs.aws.amazon.com/pt_br/chime-sdk/latest/dg/images/quicksightsetup-1-a.png)

1. No painel de navegação, escolha **Segurança e permissões**.

1. Em **QuickSight Acesso aos AWS serviços**, escolha **Gerenciar** e verifique se os seguintes serviços estão selecionados.
   + banco de dados de origem
   + Amazon RDS
   + Amazon S3
   + Amazon Athena
   +  IAM

1. Escolha o link **Selecionar buckets do Amazon S3**.

1. Marque a caixa de seleção ao lado do seu bucket do Amazon S3 e, em seguida, selecione a caixa de seleção à direita, na coluna **Permissão de gravação para o Athena Workgroup**.

1. Escolha **Terminar**.

1. Escolha **Salvar**.

**Para se adicionar ao grupo**

1. No painel de navegação, escolha **Gerenciar grupos** e, em seguida, escolha o nome do grupo com **Administradores** no nome. Por exemplo, *S3 BucketName* — **Admins**.

1. Escolha **Adicionar usuário** e, em seguida, insira o alias de seu e-mail na caixa que aparece.

   Seu nome aparece como **Administrador – ***seu alias*.

1. Escolha **Adicionar**.

## Criação de um QuickSight painel
<a name="create-qs-dashboard"></a>

Depois de criar um data lake, você pode criar um QuickSight painel que visualiza seus dados. Você pode usar um CloudFormation modelo da Amazon ou o console do Amazon Chime SDK para criar o painel. As etapas a seguir explicam como usar os dois métodos.

**Para usar um modelo**

1. Inicie o CloudFormation console da Amazon.

1. Cole o link a seguir na barra de endereço do navegador: `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. Na página **Criar pilha de forma rápida**, em **Nome da pilha**, insira um nome para a conta.

1. Em **ActiveQuickSightAccount**, escolha **Verdadeiro**.

1. Em **QuicksightDashboardSelection**, escolha **Análise de chamadas — Transcrever painel Análise de chamadas e análise de voz ou Análise** **de chamadas — painel Transcrever e análise** de voz.

1. Em **Amazon S3 BucketName**, insira o URI do seu bucket do Amazon S3.

1. Em **GlueDatabaseName**, insira o banco de dados Glue no qual você deseja que o QuickSight painel seja implantado.

1. Escolha a caixa de seleção **Eu reconheço que a AWS CloudFormation pode criar recursos do IAM** e, em seguida, escolha **Criar pilha**.

**Para configurar um QuickSight painel manualmente**

1. Navegue até sua QuickSight conta.

1. No canto superior direito, escolha o ícone do perfil e escolha **Gerenciar QuickSight**.  
![\[A caixa de diálogo QuickSight da conta e o QuickSight comando Gerenciar.\]](http://docs.aws.amazon.com/pt_br/chime-sdk/latest/dg/images/quicksightsetup-1-a.png)

1. No painel de navegação, escolha **Gerenciar grupos** e escolha o grupo criado pelo processo de configuração.

1. Escolha **Adicionar usuário**, insira seu endereço de e-mail e escolha **Adicionar**.

   O sistema leva 10 minutos para implantar a página.

1. Use o console do Amazon Chime SDK para fazer login na sua QuickSight conta e usar o painel.

# Modelo de dados de analytics de chamadas do SDK do Amazon Chime
<a name="ca-data-model"></a>

As informações nesta seção listam e descrevem o modelo de dados de análise de chamadas do Amazon Chime SDK, um conjunto de tabelas em um catálogo de dados do AWS Glue.

**Topics**
+ [Entendendo a estrutura da tabela do catálogo de AWS Glue dados para o Amazon Chime SDK](ca-data-model-diagram.md)
+ [Entendendo as tabelas do catálogo de AWS Glue dados para o Amazon Chime SDK](glue-tables.md)
+ [Extração de dados em seu catálogo de AWS Glue dados para análise de chamadas do Amazon Chime SDK](ca-data-model-queries.md)

# Entendendo a estrutura da tabela do catálogo de AWS Glue dados para o Amazon Chime SDK
<a name="ca-data-model-diagram"></a>

O diagrama a seguir mostra a estrutura da tabela do catálogo de dados AWS Glue criado para as sessões de análise de chamadas e análise de voz do Amazon Chime SDK.

![\[As tabelas no catálogo de dados Glue de analytics de chamadas.\]](http://docs.aws.amazon.com/pt_br/chime-sdk/latest/dg/images/glue-cat-diag-12-03.jpg)


A próxima seção lista e descreve as tabelas e os campos no catálogo. 

# Entendendo as tabelas do catálogo de AWS Glue dados para o Amazon Chime SDK
<a name="glue-tables"></a>

As tabelas a seguir listam e descrevem as colunas, os tipos de dados e os elementos em um catálogo de dados do Glue de análise de chamadas do SDK do Amazon Chime.

**Topics**
+ [call\$1analytics\$1metadata](#ca-glue-metadata)
+ [call\$1analytics\$1recording\$1metadata](#ca-glue-analytics-recording)
+ [transcribe\$1call\$1analytics](#ca-glue-transcribe-ca)
+ [transcribe\$1call\$1analytics\$1category\$1events](#ca-glue-transcribe-ca-events)
+ [transcribe\$1call\$1analytics\$1post\$1call](#ca-glue-transcribe)
+ [transcribe](#ca-glue-transcribe)
+ [voice\$1analytics\$1status](#ca-glue-va-status)
+ [speaker\$1search\$1status](#ca-glue-speaker-status)
+ [voice\$1tone\$1analysis\$1status](#ca-glue-tone-status)

## call\$1analytics\$1metadata
<a name="ca-glue-metadata"></a>

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/chime-sdk/latest/dg/glue-tables.html)

## call\$1analytics\$1recording\$1metadata
<a name="ca-glue-analytics-recording"></a>

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/chime-sdk/latest/dg/glue-tables.html)

## transcribe\$1call\$1analytics
<a name="ca-glue-transcribe-ca"></a>

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/chime-sdk/latest/dg/glue-tables.html)

## transcribe\$1call\$1analytics\$1category\$1events
<a name="ca-glue-transcribe-ca-events"></a>

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/chime-sdk/latest/dg/glue-tables.html)

## transcribe\$1call\$1analytics\$1post\$1call
<a name="ca-glue-transcribe"></a>

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/chime-sdk/latest/dg/glue-tables.html)

## transcribe
<a name="ca-glue-transcribe"></a>

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/chime-sdk/latest/dg/glue-tables.html)

## voice\$1analytics\$1status
<a name="ca-glue-va-status"></a>

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/chime-sdk/latest/dg/glue-tables.html)

## speaker\$1search\$1status
<a name="ca-glue-speaker-status"></a>

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/chime-sdk/latest/dg/glue-tables.html)

## voice\$1tone\$1analysis\$1status
<a name="ca-glue-tone-status"></a>

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/chime-sdk/latest/dg/glue-tables.html)

# Extração de dados em seu catálogo de AWS Glue dados para análise de chamadas do Amazon Chime SDK
<a name="ca-data-model-queries"></a>

Use esses exemplos de consultas para extrair e organizar os dados em seu catálogo de dados do Glue de análise de chamadas do SDK do Amazon Chime. 

**nota**  
Para obter informações sobre como se conectar ao Amazon Athena e consultar seu catálogo de dados do Glue, consulte [Conexão ao Amazon Athena com ODBC](https://docs.aws.amazon.com/athena/latest/ug/connect-with-odbc.html).

Expanda cada seção conforme necessário.

## Extraindo valores de metadados (tipo de dados STRING) na tabela call\$1analytics\$1metadata
<a name="qry-insights-metadata"></a>

`call_analytics_metadata` tem o campo `metadata` em formato de string JSON. Use a [função json\$1extract\$1scalar](https://docs.aws.amazon.com/athena/latest/ug/extracting-data-from-JSON.html) no Athena para consultar os elementos dessa string.

```
SELECT
    json_extract_scalar(metadata,'$.voiceConnectorId') AS "VoiceConnector ID",
    json_extract_scalar(metadata,'$.fromNumber') AS "From Number",
    json_extract_scalar(metadata,'$.toNumber') AS "To Number",
    json_extract_scalar(metadata,'$.callId') AS "Call ID",
    json_extract_scalar(metadata,'$.direction') AS Direction,
    json_extract_scalar(metadata,'$.transactionId') AS "Transaction ID"
FROM 
    "GlueDatabaseName"."call_analytics_metadata"
```

## Consultando SIPRECMetadata atualizações na tabela call\$1analytics\$1metadata
<a name="qry-insights-siprec-metadata"></a>

O `call_analytics_metadata` campo tem o campo de metadados em formato de string JSON. `metadata`tem outro objeto aninhado chamado`oneTimeMetadata`, esse objeto contém SIPRec metadados em XML original e formatos JSON transformados. Use a função `json_extract_scalar` no Athena para consultar os elementos dessa string.

```
SELECT
    json_extract_scalar(metadata,'$.voiceConnectorId') AS "VoiceConnector ID",
    json_extract_scalar(metadata,'$.fromNumber') AS "From Number",
    json_extract_scalar(metadata,'$.toNumber') AS "To Number",
    json_extract_scalar(metadata,'$.callId') AS "Call ID",
    json_extract_scalar(metadata,'$.direction') AS Direction,
    json_extract_scalar(metadata,'$.transactionId') AS "Transaction ID",
    json_extract_scalar(json_extract_scalar(metadata,'$.oneTimeMetadata'),'$.siprecMetadata') AS "siprec Metadata XML",
    json_extract_scalar(json_extract_scalar(metadata,'$.oneTimeMetadata'),'$.siprecMetadataJson') AS "Siprec Metadata JSON",
    json_extract_scalar(json_extract_scalar(metadata,'$.oneTimeMetadata'),'$.inviteHeaders') AS "Invite Headers"
FROM 
    "GlueDatabaseName"."call_analytics_metadata"
WHERE 
    callevent-type = "update";
```

## Extraindo valores de metadados (tipo de dados STRING) na tabela call\$1analytics\$1recording\$1metadata
<a name="qry-recording-metadata"></a>

`call_analytics_recording_metadata` tem o campo de metadados em formato de string JSON. Use a [função json\$1extract\$1scalar](https://docs.aws.amazon.com/athena/latest/ug/extracting-data-from-JSON.html) no Athena para consultar os elementos dessa string.

```
SELECT
    json_extract_scalar(metadata,'$.voiceConnectorId') AS "VoiceConnector ID",
    json_extract_scalar(metadata,'$.fromNumber') AS "From Number",
    json_extract_scalar(metadata,'$.toNumber') AS "To Number",
    json_extract_scalar(metadata,'$.callId') AS "Call ID",
    json_extract_scalar(metadata,'$.direction') AS Direction,
    json_extract_scalar(metadata,'$.transactionId') AS "Transaction ID"
FROM 
    "GlueDatabaseName"."call_analytics_recording_metadata"
WHERE 
    detail-subtype = "Recording"
```

## Extraindo valores dos detalhes (tipo de dados STRUCT) na tabela voice\$1analytics\$1status
<a name="qry-va-status"></a>

`voice_analytics_status` tem um campo de detalhes no tipo de dados `struct`. O exemplo a seguir mostra como consultar um campo de tipo de dados `struct`:

```
SELECT
    detail.transactionId AS "Transaction ID",
    detail.voiceConnectorId AS "VoiceConnector ID",
    detail.siprecmetadata AS "Siprec Metadata",
    detail.inviteheaders AS "Invite Headers",
    detail.streamStartTime AS "Stream Start Time"
FROM 
    "GlueDatabaseName"."voice_analytics_status"
```

## Unindo as tabelas voice\$1analytics\$1status e call\$1analytics\$1metadata
<a name="qry-join-va-meta"></a>

A consulta de exemplo a seguir une `call_analytics_metadata` e `voice_analytics_status`:

```
SELECT
    a.detail.transactionId AS "Transaction ID",
    a.detail.voiceConnectorId AS "VoiceConnector ID",
    a.detail.siprecmetadata AS "Siprec Metadata",
    a.detail.inviteheaders AS "Invite Headers",
    a.detail.streamStartTime AS "Stream Start Time"
    json_extract_scalar(b.metadata,'$.fromNumber') AS "From Number",
    json_extract_scalar(b.metadata,'$.toNumber') AS "To Number",
    json_extract_scalar(b.metadata,'$.callId') AS "Call ID",
    json_extract_scalar(b.metadata,'$.direction') AS Direction
FROM 
    "GlueDatabaseName"."voice_analytics_status" a
INNER JOIN 
    "GlueDatabaseName"."call_analytics_metadata" b
ON a.detail.transactionId = json_extract_scalar(b.metadata,'$.transactionId')
```

## Extraindo transcrições da tabela transcribe\$1call\$1analytics\$1post\$1call
<a name="qry-transcribe-ca-post-call"></a>

transcribe\$1call\$1analytics\$1post\$1call tem campo de transcrição em formato de struct com matrizes aninhadas. Use a consulta a seguir para desaninhar as matrizes:

```
SELECT 
    jobstatus,
    languagecode,
    IF(CARDINALITY(m.transcript)=0 OR CARDINALITY(m.transcript) IS NULL, NULL, e.transcript.id) AS utteranceId,
    IF(CARDINALITY(m.transcript)=0 OR CARDINALITY(m.transcript) IS NULL, NULL, e.transcript.content) AS transcript,
    accountid,
    channel,
    sessionid,
    contentmetadata.output AS "Redaction"
FROM 
    "GlueDatabaseName"."transcribe_call_analytics_post_call" m
CROSS JOIN UNNEST
    (IF(CARDINALITY(m.transcript)=0, ARRAY[NULL], transcript)) AS e(transcript)
```

## Unindo as tabelas transcribe\$1call\$1analytics\$1post\$1call e call\$1analytics\$1metadata
<a name="qry-va-status"></a>

A consulta a seguir une transcribe\$1call\$1analytics\$1post\$1call e call\$1analytics\$1metadata:

```
WITH metadata AS(
  SELECT 
    from_iso8601_timestamp(time) AS "Timestamp",
    date_parse(date_format(from_iso8601_timestamp(time), '%m/%d/%Y %H:%i:%s') , '%m/%d/%Y %H:%i:%s') AS "DateTime",
    date_parse(date_format(from_iso8601_timestamp(time) , '%m/%d/%Y') , '%m/%d/%Y') AS "Date",
    date_format(from_iso8601_timestamp(time) , '%H:%i:%s')  AS "Time",
    mediainsightspipelineid,
    json_extract_scalar(metadata,'$.toNumber') AS "To Number",
    json_extract_scalar(metadata,'$.voiceConnectorId') AS "VoiceConnector ID",
    json_extract_scalar(metadata,'$.fromNumber') AS "From Number",
    json_extract_scalar(metadata,'$.callId') AS "Call ID",
    json_extract_scalar(metadata,'$.direction') AS Direction,
    json_extract_scalar(metadata,'$.transactionId') AS "Transaction ID",
    REGEXP_REPLACE(REGEXP_EXTRACT(json_extract_scalar(metadata,'$.oneTimeMetadata.s3RecordingUrl'), '[^/]+(?=\.[^.]+$)'), '\.wav$', '') AS "SessionID"
  FROM 
    "GlueDatabaseName"."call_analytics_metadata"
),
transcript_events AS(
  SELECT 
    jobstatus,
    languagecode,
    IF(CARDINALITY(m.transcript)=0 OR CARDINALITY(m.transcript) IS NULL, NULL, e.transcript.id) AS utteranceId,
    IF(CARDINALITY(m.transcript)=0 OR CARDINALITY(m.transcript) IS NULL, NULL, e.transcript.content) AS transcript,
    accountid,
    channel,
    sessionid,
    contentmetadata.output AS "Redaction"
  FROM 
    "GlueDatabaseName"."transcribe_call_analytics_post_call" m
  CROSS JOIN UNNEST
    (IF(CARDINALITY(m.transcript)=0, ARRAY[NULL], transcript)) AS e(transcript)
)
SELECT 
    jobstatus,
    languagecode,
    a.utteranceId,
    transcript,
    accountid,
    channel,
    a.sessionid,
    "Redaction"
    "Timestamp",
    "DateTime",
    "Date",
    "Time",
    mediainsightspipelineid,
    "To Number",
    "VoiceConnector ID",
    "From Number",
    "Call ID",
    Direction,
    "Transaction ID"
FROM 
    "GlueDatabaseName"."transcribe_call_analytics_post_call" a
LEFT JOIN 
    metadata b
ON 
    a.sessionid = b.SessionID
```

## Consultando objeto de mídia URLs para gravação de chamadas com aprimoramento de voz
<a name="qry-voice-enhancement-call-recording"></a>

A consulta de exemplo a seguir une o URL `Voice enhancement call recording`:

```
SELECT 
    json_extract_scalar(metadata,'$.voiceConnectorId') AS "VoiceConnector ID",
    json_extract_scalar(metadata,'$.fromNumber') AS "From Number",
    json_extract_scalar(metadata,'$.toNumber') AS "To Number",
    json_extract_scalar(metadata,'$.callId') AS "Call ID",
    json_extract_scalar(metadata,'$.direction') AS Direction,
    json_extract_scalar(metadata,'$.transactionId') AS "Transaction ID",
    s3MediaObjectConsoleUrl
FROM
    {GlueDatabaseName}."call_analytics_recording_metadata"
WHERE
    detail-subtype = "VoiceEnhancement"
```

# Usar a análise de voz do SDK do Amazon Chime
<a name="voice-analytics"></a>

O atributo de análise de voz do SDK do Amazon Chime permite que você implemente a pesquisa de locutores e a análise do tom de voz. Use a pesquisa de locutor para identificar e inscrever novos chamadores, identificar chamadores repetidos e atribuir uma pontuação de confiança a essas identificações. Use a análise do tom de voz para prever o sentimento de um chamador como `negative`, `neutral` ou `positive`.

Você executa a análise de voz como um componente opcional de uma sessão de análise de chamadas do SDK do Amazon Chime.

A análise de voz funciona com pipelines de insights de mídia ou chamadas de conectores de voz do SDK do Amazon Chime. Recomendamos usar o [ SDK de pipelines de mídia](media-pipelines.md) e invocar tarefas em um pipeline do Media Insights para um controle mais refinado e informações sobre as tarefas.

Você pode usar conectores de voz para garantir a compatibilidade com versões anteriores, mas só atualizamos o pipeline de insights de mídia APIs com novos recursos.

Para obter mais informações sobre a criação e o uso de conectores de voz, consulte [Gerenciamento de conectores de voz do SDK do Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/ag/voice-connectors.html) no *Guia do administrador do SDK do Amazon Chime*.

A análise de voz também fornece:
+ Processamento assíncrono de tarefas. As tarefas são executadas independentemente umas das outras.
+ Controle quando você processa os insights.

Você pode iniciar a análise de voz ligando para [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)e. [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

Os tópicos a seguir explicam como usar análise de voz.

**Topics**
+ [Noções básicas sobre a arquitetura de analytics de voz do SDK do Amazon Chime](va-architecture.md)
+ [Noções básicas sobre o fluxo de trabalho de pesquisa de locutores do SDK do Amazon Chime](va-data-flow.md)
+ [Exemplo de fluxo de trabalho de análise do tom de voz do SDK do Amazon Chime](va-tone-flow.md)
+ [Pesquisar resultados de tarefas do SDK do Amazon Chime](va-task-result-poll.md)
+ [Noções básicas sobre as notificações do SDK do Amazon Chime](va-notification-targets.md)
+ [Noções básicas sobre políticas de armazenamento de dados, cancelamento da adesão e retenção de dados do SDK do Amazon Chime](va-opt-out.md)
+ [Usando voz APIs para executar análises de voz para o Amazon Chime SDK](va-in-voice-namespace.md)

# Noções básicas sobre a arquitetura de analytics de voz do SDK do Amazon Chime
<a name="va-architecture"></a>

Os tópicos desta seção fornecem uma visão geral da arquitetura de análise de voz do SDK do Amazon Chime, incluindo os fluxos de dados de cada atributo.

Este diagrama fornece uma visualização de alto nível de como os dados fluem por meio da análise de voz.

![\[Um diagrama mostrando o fluxo de dados de alto nível por meio da análise de voz.\]](http://docs.aws.amazon.com/pt_br/chime-sdk/latest/dg/images/va-architecture-kvs.png)


No diagrama:

1. O áudio é transferido para um stream de vídeo do Kinesis para um chamador e um atendente. Você pode usar um produtor do stream de vídeo do Kinesiss ou o streaming do conector de voz do SDK do Amazon Chime para fazer isso. Para obter mais informações, consulte [Noções básicas sobre fluxos de trabalho de analytics baseada em machine learning do SDK do Amazon Chime](ml-based-analytics.md) neste guia e [Streaming de mídia do conector de voz do SDK do Amazon Chime para Kinesis](https://docs.aws.amazon.com/chime-sdk/latest/ag/start-kinesis-vc.html) no *Guia do administrador do SDK do Amazon Chime*.

1. Um aplicativo ou um compilador aciona a pesquisa de locutores, a análise do tom de voz, ou ambas, para o fluxo de áudio após o consentimento do chamador.

1. Durante a chamada, a análise de voz envia notificações para um destino, que pode ser o Amazon Simple Queue Service (SQS), Amazon Simple Notification Service (SNS), AWS Lambda ou Amazon Kinesis Data Streams.

Além disso, a análise de voz fornece essas ferramentas para gerenciar os dados que ela gera.

**Perfis de voz**  
A combinação de uma incorporação de voz, o ID exclusivo incorporado e sua data de expiração. Os perfis de voz expiram após três anos por motivos de segurança e porque as vozes mudam com o tempo. Para evitar a recriação de perfis de voz, chame a API [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_UpdateVoiceProfile.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_UpdateVoiceProfile.html). Para obter mais informações sobre datas de expiração, consulte [Noções básicas sobre a retenção de dados para a analytics de voz do SDK do Amazon Chime](va-data-retention.md).  
Para inscrever uma incorporação de voz ou atualizar uma incorporação de voz registrada, você deve ligar para o [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_CreateVoiceProfile.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_CreateVoiceProfile.html)ou [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_UpdateVoiceProfile.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_UpdateVoiceProfile.html) APIs dentro de 24 horas após o término da chamada. 

**Domínios de perfil de voz**  
Uma coleção de perfis de voz.

# Noções básicas sobre o fluxo de trabalho de pesquisa de locutores do SDK do Amazon Chime
<a name="va-data-flow"></a>

Nesta seção, mostramos um exemplo de fluxo de dados e do programa para uma análise de pesquisa de locutor do SDK do Amazon Chime.

A função de pesquisa de locutor envolve a criação de uma incorporação de voz, que pode ser usada para comparar a voz de um chamador com os dados de voz armazenados anteriormente. A coleta, o uso, o armazenamento e a retenção de identificadores biométricos e informações biométricas na forma de uma impressão de voz digital podem exigir o consentimento informado do chamador por meio de uma autorização por escrito. Esse consentimento é exigido por várias leis estaduais, incluindo leis de biometria em Illinois, Texas, Washington e outras leis estaduais de privacidade. Antes de usar o atributo de pesquisa de locutor, você deve fornecer todos os avisos e obter todos os consentimentos, conforme exigido por lei e de acordo com os [Termos de serviço da AWS](https://aws.amazon.com/service-terms/) que regem o uso do atributo. 

O diagrama a seguir mostra um exemplo de fluxo de dados por meio de uma tarefa de análise de pesquisa de locutor. As descrições numeradas abaixo do diagrama descrevem cada etapa do processo. O diagrama pressupõe que você já tenha configurado um conector de voz do SDK do Amazon Chime com uma configuração da análise de chamadas que tenha um `VoiceAnalyticsProcessor`. Para obter mais informações, consulte [Gravar chamadas do conector de voz](record-vc-calls.md).

![\[Um diagrama mostrando o fluxo de dados por meio de uma análise de pesquisa de locutor.\]](http://docs.aws.amazon.com/pt_br/chime-sdk/latest/dg/images/speaker-search-workflow-2.png)


1. Você ou um administrador do sistema criam um domínio de perfil de voz para armazenar incorporações de voz e perfis de voz. Para obter mais informações sobre a criação de domínios de perfil de voz, consulte [Criação de domínios de perfil de voz](https://docs.aws.amazon.com/chime-sdk/latest/ag/create-vp-domain.html) no *Guia do administrador do SDK do Amazon Chime*. Você também pode usar a API [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_CreateVoiceProfileDomain.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_CreateVoiceProfileDomain.html).

1. Um chamador liga usando um número de telefone atribuído a um conector de voz do SDK do Amazon Chime. Ou um atendente usa um número do conector de voz para fazer uma chamada de saída.

1. O serviço conector de voz do SDK do Amazon Chime cria uma ID da transação e a associa à chamada.

1. Supondo que seu aplicativo se inscreva em EventBridge eventos, seu aplicativo chama a [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 com a configuração do pipeline de insights de mídia e o Kinesis Video Stream ARNs para a chamada do Voice Connector.

   Para obter mais informações sobre o uso EventBridge, consulte[Noções básicas sobre fluxos de trabalho de analytics baseada em machine learning do SDK do Amazon Chime](ml-based-analytics.md).

1. Seu aplicativo: como um sistema interativo de resposta de voz, ou atendente, notifica o chamador sobre a gravação de chamadas e o uso de incorporações de voz para análise de voz e solicita seu consentimento para participar.

1. Depois que o chamador der consentimento, sua aplicação ou o agente poderá chamar a API [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_StartSpeakerSearchTask.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_StartSpeakerSearchTask.html) por meio do [ SDK de voz](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Voice.html) se você tiver um Voice Connector e um ID de transação. Ou, se você tiver um ID de pipeline do Media Insights em vez de um ID de transação, chame a 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) no [ SDK de pipelines de mídia](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Media_Pipelines.html).

   Depois que o chamador fornece o consentimento, seu aplicativo ou o atendente chama a API `StartSpeakerSearchTask`. Você deve passar o ID do Voice Connector, o ID da transação e o ID do domínio do perfil de voz para a API. Uma ID da tarefa de pesquisa de locutor é retornada para identificar a tarefa assíncrona.
**nota**  
[Antes de invocar a `StartSpeakerSearchTask` API em qualquer um dos SDKs, você deve fornecer todos os avisos necessários e obter todos os consentimentos necessários, conforme exigido por lei e de acordo com os termos de serviço da AWS.](https://aws.amazon.com/service-terms/)

1. O sistema acumula 10 segundos da voz do chamador. O chamador deve falar por pelo menos esse período de tempo. O sistema não captura nem analisa o silêncio.

1. O pipeline do Media Insights compara a fala com os perfis de voz no domínio e lista as 10 principais correspondências de alta confiança. Se não encontrar uma correspondência, o Voice Connector cria um perfil de voz.

1. O serviço de pipeline do Media Insights envia um evento de notificação para os destinos de notificação configurados.

1. O chamador continua falando e fornece mais 10 segundos de fala sem silêncio.

1. O pipeline do Media Insights gera uma incorporação de voz de inscrição que você pode usar para criar um perfil de voz ou atualizar um perfil de voz existente.

1. O serviço de pipeline do Media Insights envia uma notificação `VoiceprintGenerationSuccessful` para os destinos de notificação configurados.

1. Seu aplicativo chama o [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_CreateVoiceProfile.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_CreateVoiceProfile.html)ou [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_UpdateVoiceProfile.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_UpdateVoiceProfile.html) APIs para criar ou atualizar o perfil.

1. Sua aplicação chama a API [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_GetSpeakerSearchTask.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_GetSpeakerSearchTask.html) conforme necessário para receber o status mais recente da tarefa de pesquisa de locutores.

# Exemplo de fluxo de trabalho de análise do tom de voz do SDK do Amazon Chime
<a name="va-tone-flow"></a>

**Importante**  
A análise do tom de voz envolve fazer previsões sobre o sentimento de um locutor com base em informações linguísticas e de tom. Você não deve usar a análise de sentimentos de qualquer forma proibida por lei, inclusive em relação à tomada de decisões sobre um indivíduo que possam produzir impactos legais ou igualmente significativos sobre esses indivíduos (por exemplo, relacionadas a emprego, moradia, capacidade de crédito ou ofertas financeiras, etc.). 

A análise do tom de voz analisa as vozes das pessoas em uma chamada e prevê seu sentimento, seja `positive`, `negative` ou `neutral`.

O diagrama a seguir mostra um exemplo de fluxo de trabalho para análise do tom de voz. Os itens numerados abaixo da imagem descrevem cada etapa do processo.

**nota**  
O diagrama pressupõe que você já tenha configurado um conector de voz do SDK do Amazon Chime com uma configuração da análise de chamadas que tenha um `VoiceAnalyticsProcessor`. Para obter mais informações, consulte [Gravar chamadas do conector de voz](record-vc-calls.md).

![\[Um diagrama mostrando o fluxo de dados por meio de uma análise do tom de voz.\]](http://docs.aws.amazon.com/pt_br/chime-sdk/latest/dg/images/voice-tone-workflow-v2.png)


No diagrama:

1. Um chamador liga usando um número de telefone atribuído a um conector de voz do SDK do Amazon Chime. Ou um atendente usa um número do conector de voz para fazer uma chamada de saída.

1. O serviço Voice Connector cria uma ID da transação e a associa à chamada.

1. Seu aplicativo: como um sistema interativo de resposta de voz, ou atendente, notifica o chamador sobre a gravação de chamadas e o uso de incorporações de voz para análise de voz e solicita seu consentimento para participar.

1. Supondo que seu aplicativo se inscreva em EventBridge eventos, seu aplicativo chama a [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 com a configuração do pipeline de insights de mídia e o Kinesis Video Stream ARNs para a chamada do Voice Connector.

   Para obter mais informações sobre o uso EventBridge, consulte[Noções básicas sobre fluxos de trabalho de analytics baseada em machine learning do SDK do Amazon Chime](ml-based-analytics.md).

1. Depois que o chamador der consentimento, sua aplicação ou o agente poderá chamar a API [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_StartSpeakerSearchTask.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_StartSpeakerSearchTask.html) por meio do [ SDK de voz](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Voice.html) se você tiver um Voice Connector e um ID de transação. Ou, se você tiver um ID de pipeline do Media Insights em vez de um ID de transação, chame a 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) no [ SDK de pipelines de mídia](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Media_Pipelines.html).

   Depois que o chamador fornece o consentimento, seu aplicativo ou o atendente chama a API `StartSpeakerSearchTask`. Você deve passar o ID do Voice Connector, o ID da transação e o ID do domínio do perfil de voz para a API. Uma ID da tarefa de pesquisa de locutor é retornada para identificar a tarefa assíncrona.

1. O usuário fala durante toda a chamada.

1. O atendente fala durante toda a chamada.

1. A cada 5 segundos, o pipeline do Media Insights usa um modelo de machine learning para analisar os últimos 30 segundos de fala e prever o tom do chamador nesse intervalo e em toda a chamada a partir do momento em que `StartVoiceToneAnalysisTask` foi chamada pela primeira vez.

1. O pipeline do Media Insights envia uma notificação com essas informações para os destinos de notificação configurados. Você pode identificar a notificação com base no ARN do stream e no ID do canal. Para mais informações, consulte [Noções básicas sobre as notificações do SDK do Amazon Chime](va-notification-targets.md), mais adiante nesta seção.

1. Repita as etapas 9 e 10 até que a chamada termine.

1. No final da chamada, o pipeline do Media Insights envia uma notificação final com a previsão de tom médio atual dos últimos 30 segundos, mais o tom médio de toda a chamada.

1. Sua aplicação chama a API [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_GetVoiceToneAnalysisTask.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_GetVoiceToneAnalysisTask.html) conforme necessário para receber o status mais recente da tarefa de análise do tom de voz. 
**nota**  
A API `GetVoiceToneAnalysisTask` não transmite os dados de tom.

**nota**  
A API [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_GetVoiceToneAnalysisTask.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_GetVoiceToneAnalysisTask.html) não exibe dados de tom de voz.

# Pesquisar resultados de tarefas do SDK do Amazon Chime
<a name="va-task-result-poll"></a>

**Importante**  
Por padrão, a análise de voz disponibiliza os resultados por 7 dias e, em seguida, exclui os dados automaticamente. Você deve armazenar os dados da sua tarefa se quiser usar por mais tempo ou para cumprir as leis de retenção de dados. Para obter mais informações, consulte [Noções básicas sobre a retenção de dados para a analytics de voz do SDK do Amazon Chime](va-data-retention.md), mais adiante neste guia.

A análise de voz tenta garantir pelo menos uma entrega do resultado de cada tarefa. No entanto, problemas de rede podem aumentar a latência. [Para contornar possíveis problemas, ou se você preferir processos síncronos, você pode usar o seguinte APIs no SDK de [pipelines de mídia ou no SDK](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Media_Pipelines.html) de voz:](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Voice.html)
+  [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_GetSpeakerSearchTask.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_GetSpeakerSearchTask.html) 
+  [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_GetVoiceToneAnalysisTask.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_GetVoiceToneAnalysisTask.html)
**Importante**  
A API `GetVoiceToneAnalysisTask` retorna somente o status de uma tarefa. Ele não retorna os resultados da tarefa. Para ver os resultados, use um alvo de notificação do Amazon SQS, Amazon SNS ou AWS Lambda.

A API `GetSpeakerSearchTask` obtém os resultados mais recentes de forma síncrona para um ID da tarefa, mensagens atrasadas ou mensagens que chegam fora de ordem. No entanto, recomendamos usar destinos de notificação e processamento assíncrono. Fazer isso consome menos recursos de computação.

# Noções básicas sobre as notificações do SDK do Amazon Chime
<a name="va-notification-targets"></a>

A análise de voz envia eventos automaticamente para um alvo quando as tarefas de pesquisa de locutores ou análise do tom de voz começam, enquanto são executadas e quando terminam. Use destinos de notificação para receber esses eventos. Recomendamos usar vários destinos de notificação se seu fluxo de trabalho ou aplicativo precisar de alta disponibilidade.

Além disso, você deve usar um perfil do IAM com as políticas necessárias para acessar os destinos de notificação. Para obter mais informações, consulte [Usar o perfil de acesso ao recurso de analytics de chamadas do SDK do Amazon Chime](call-analytics-resource-access-role.md).

**nota**  
Para o Amazon SQS e o Amazon SNS, não oferecemos suporte a filas. first-in-first-out Como resultado, as mensagens podem chegar fora de ordem. Recomendamos verificar os carimbos de data/hora para ordenar as mensagens conforme necessário e manter as mensagens em um armazenamento de dados como o Amazon DynamoDB. Você também pode usar a APIs descrição em [Pesquisar resultados de tarefas do SDK do Amazon Chime](va-task-result-poll.md) para receber os resultados mais recentes.

A tabela a seguir lista os eventos e seus tipos de detalhes correspondentes.


| Evento de notificação | Tipo de detalhe | 
| --- | --- | 
| Metadados de análise de voz | `VoiceAnalyticsStatus` | 
| Pesquisa de locutor | `SpeakerSearchStatus` | 
| Análise de tom de voz | `VoiceToneAnalysisStatus` | 

# Noções básicas sobre as políticas do IAM para destinos de notificação do SDK do Amazon Chime
<a name="va-iam-target-policies"></a>

Você deve usar políticas no perfil do IAM em uma configuração do Call Analytics que permita acesso aos seus destinos de notificação do Amazon SQS, Amazon SNS, AWS Lambda ou Amazon KDS. Para obter mais informações, consulte [Usar o perfil de acesso ao recurso de analytics de chamadas do SDK do Amazon Chime](call-analytics-resource-access-role.md) neste guia.

## Eventos de pesquisa de locutor
<a name="va-speaker-search-events"></a>

Os eventos de pesquisa de locutor têm o tipo de detalhe `SpeakerSearchStatus`.

Os conectores de voz do SDK do Amazon Chime enviam os seguintes eventos de pesquisa de locutor:
+ Identificação corresponde
+ Geração de incorporação de voz

Os eventos podem ter os seguintes status:
+ `IdentificationSuccessful`: identificou com sucesso pelo menos um ID de perfil de voz correspondente com uma alta pontuação de confiança em determinado domínio de perfil de voz.
+ `IdentificationFailure`: falha ao realizar a identificação. Causas: o chamador não fala por pelo menos 10 segundos, baixa qualidade de áudio.
+ `IdentificationNoMatchesFound`: não foi possível encontrar uma correspondência de alta confiança no domínio do perfil de voz fornecido. O chamador pode ser novo ou sua voz pode ter mudado.
+ `VoiceprintGenerationSuccessful`: o sistema gerou uma incorporação de voz usando 20 segundos de áudio não silencioso.
+ `VoiceprintGenerationFailure`: o sistema falhou ao gerar uma incorporação de voz. Causas: o chamador não fala por pelo menos 20 segundos, baixa qualidade de áudio.

### Identificação corresponde
<a name="va-id-matches"></a>

Depois que a API [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_StartSpeakerSearchTask](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_StartSpeakerSearchTask) é chamada para um `transactionId` específico, o serviço Voice Connector exibe uma notificação de correspondência de identificação após dez segundos de fala não silenciosa. O serviço retorna as 10 melhores correspondências, junto com um ID de perfil de voz e uma pontuação de confiança que varia de [0, 1]. Quanto maior a pontuação de confiança, maior a probabilidade de o locutor da chamada corresponder ao ID do perfil de voz. Se o modelo de machine learning não encontrar correspondências, o campo `detailStatus` da notificação conterá `IdentificationNoMatchesFound`.

O exemplo a seguir mostra a notificação de uma correspondência bem-sucedida.

```
{    
    "version": "0",
    "id": "12345678-1234-1234-1234-111122223333",
    "detail-type": "SpeakerSearchStatus",
    "service-type": "VoiceAnalytics",
    "source": "aws.chime",
    "account": "111122223333",
    "time": "yyyy-mm-ddThh:mm:ssZ",
    "region": "us-east-1",
    "resources": [],
    "detail": {
        "taskId": "uuid",
        "detailStatus": "IdentificationSuccessful",
        "speakerSearchDetails" : {
            "results": [
                {
                    "voiceProfileId": "vp-505e0992-82da-49eb-9d4a-4b34772b96b6",
                    "confidenceScore": "0.94567856",
                },
                {
                    "voiceProfileId": "vp-fba9cbfa-4b8d-4f10-9e41-9dfdd66545ab",
                    "confidenceScore": "0.82783350",
                },
                {
                    "voiceProfileId": "vp-746995fd-16dc-45b9-8965-89569d1cf787",
                    "confidenceScore": "0.77136436",
                }
            ]
        },
        "mediaInsightsPipelineId": "87654321-33ca-4dc6-9cdf-abcde6612345",
        "sourceArn": "arn:aws:chime:us-east-1:111122223333:media-pipeline/87654321-33ca-4dc6-9cdf-abcde6612345",
        "streamArn": "arn:aws:kinesisvideo:us-east-1:111122223333:stream/my-stream/0123456789012",
        "channelId": 0
    }
}
```

### Geração de incorporação de voz
<a name="va-voice-print-generation"></a>

Depois de mais 10 segundos de fala não silenciosa, o Voice Connector envia uma notificação de geração de incorporação de voz para os destinos de notificação. Você pode inscrever novas incorporações de voz em um perfil de voz ou atualizar uma impressão que já está em um perfil de voz.

O exemplo a seguir mostra a notificação de uma correspondência bem-sucedida, o que significa que você pode atualizar o perfil de voz associado.

```
{
    "version": "0",
    "id": "12345678-1234-1234-1234-111122223333",
    "detail-type": "SpeakerSearchStatus",
    "service-type": "VoiceAnalytics",
    "source": "aws.chime",
    "account": "111122223333",
    "time": "yyyy-mm-ddThh:mm:ssZ",
    "region": "us-east-1",
    "resources": [],
    "detail": {
        "taskId": "guid",
        "detailStatus": "VoiceprintGenerationSuccess",
        "mediaInsightsPipelineId": "87654321-33ca-4dc6-9cdf-abcde6612345",
        "sourceArn": "arn:aws:chime:us-east-1:111122223333:media-pipeline/87654321-33ca-4dc6-9cdf-abcde6612345",
        "streamArn": "arn:aws:kinesisvideo:us-east-1:111122223333:stream/my-stream/0123456789012",
        "channelId": 0
    }
}
```

## Eventos de análise do tom de voz
<a name="va-tone-status"></a>

Os eventos de análise do tom de voz têm o tipo de detalhe `VoiceToneAnalysisStatus`. As análises podem retornar esses status:
+ `VoiceToneAnalysisSuccessful`: analisou com sucesso as vozes do chamador e do atendente em probabilidades de sentimento: positivo, negativo ou neutro.
+ `VoiceToneAnalysisFailure`: falha ao realizar a análise do tom. Isso pode acontecer se o chamador ficar sem falar por 10 segundos ou se a qualidade do áudio ficar muito ruim.
+ `VoiceToneAnalysisCompleted`: analisou com sucesso as vozes do usuário e do atendente quanto às probabilidades de sentimento durante toda a chamada. Esse é o evento final, enviado quando a análise do tom de voz é concluída.

O exemplo abaixo mostra um evento típico de análise do tom de voz.

```
{
  "detail-type": "VoiceToneAnalysisStatus",
  "service-type": "VoiceAnalytics",
  "source": "aws.chime",
  "account": "216539279014",
  "time": "2022-08-26T17:55:15.563441Z",
  "region": "us-east-1",
  "detail": {
    "taskId": "uuid",
    "detailStatus": "VoiceToneAnalysisSuccessful",
    "voiceToneAnalysisDetails": {
      "currentAverageVoiceTone": {
          "startTime": "2022-08-26T17:55:15.563Z",
          "endTime": "2022-08-26T17:55:45.720Z",
          "voiceToneLabel": "neutral",
          "voiceToneScore": {    
            "neutral": "0.83",    
            "positive": "0.13",    
            "negative": "0.04"
          }
      },
      "overallAverageVoiceTone": {
          "startTime": "2022-08-26T16:23:13.344Z",
          "endTime": "2022-08-26T17:55:45.720Z",
          "voiceToneLabel": "positive",
          "voiceToneScore": {    
            "neutral": "0.25",    
            "positive": "0.65",    
            "negative": "0.1"
          }
      }
    },
        "startFragmentNumber": "01234567890123456789",
        "mediaInsightsPipelineId": "87654321-33ca-4dc6-9cdf-abcde6612345",
        "sourceArn": "arn:aws:chime:us-east-1:111122223333:media-pipeline/87654321-33ca-4dc6-9cdf-abcde6612345",
        "streamArn": "arn:aws:kinesisvideo:us-east-1:111122223333:stream/my-stream/0123456789012",
        "channelId": 0
  },
  "version": "0",
  "id": "Id-f928dfe3-f44b-4965-8a17-612f9fb92d59"
}
```

## Eventos resumidos após a chamada
<a name="va-post-call-summary-events"></a>

Os eventos de resumo pós-chamada são enviados 5 minutos após o término da chamada. Esses resumos fornecem uma visão geral das tarefas de pesquisa de locutor que ocorreram durante a chamada.

O exemplo a seguir mostra um resumo pós-chamada com a melhor correspondência de perfil de voz, identidade confirmada do locutor e uma lista dos perfis de voz criados ou atualizados por meio das chamadas de API `CreateVoiceProfile` e `UpdateVoiceProfile` feitas durante a chamada.

```
{
    "version": "0",
    "id": "12345678-1234-1234-1234-111122223333",
    "detail-type": "VoiceAnalyticsStatus",
    "service-type": "VoiceAnalytics",
    "source": "aws.chime",
    "account": "111122223333",
    "time": "yyyy-mm-ddThh:mm:ssZ",    
    "region": "us-east-1",
    "resources": [],
    "detail": {
        "detailStatus": "PostCallVoiceAnalytics",
        "callId": "22e8dee8-bbd7-4f94-927b-2d0ebaeddc1c",
        "transactionId": "daaeb6bf-2fe2-4e51-984e-d0fbf2f09436",
        "voiceConnectorId": "abcdef1ghij2klmno3pqr4",
        "isCaller": true | false,
        "speakerSearchResults": {
            "bestMatchedVoiceProfileId": "vp-04c25ba1-a059-4fd3-8495-4ac91b55e2bf",
            "customerValidatedCallerIdentity": "vp-04c25ba1-a059-4fd3-8495-4ac91b55e2bf",
            "createVoiceProfileTransactions": [
                {
                    "voiceProfileId": "vp-04c25ba1-a059-4fd3-8495-4ac91b55e2bf",
                    "requestTimestamp": "2022-12-14T18:38:38.796Z"
                },
                {
                    "voiceProfileId": "vp-04c25ba1-a059-4fd3-8495-4ac91b55e2bf",
                    "requestTimestamp": "2022-12-14T18:38:38.796Z",
                }
            ],
            "updateVoiceProfileTransactions": [
                {
                    "voiceProfileId": "vp-04c25ba1-a059-4fd3-8495-4ac91b55e2bf",
                    "requestTimestamp": "2022-12-14T18:38:38.796Z",
                },
                {
                    "voiceProfileId": "vp-04c25ba1-a059-4fd3-8495-4ac91b55e2bf",
                    "requestTimestamp": "2022-12-14T18:38:38.796Z",
                }
            ]
        }
    }
}
```

# Exemplo de analytics de voz: função do Lambda para o SDK do Amazon Chime
<a name="va-sample-lambda"></a>

O código Python no exemplo a seguir processa as notificações recebidas de um Voice Connector. Você pode adicionar o código a uma função AWS Lambda. Você também pode usar para acionar sua fila do Amazon SQS, tópico do Amazon SNS ou Amazon Kinesis Data Stream. Em seguida, você pode armazenar as notificações em um arquivo `EventTable` para processamento futuro. Para obter os formatos exatos de notificação, consulte [Noções básicas sobre as notificações do SDK do Amazon Chime](va-notification-targets.md).

```
import base64
import boto3
import json
import logging
import time

from datetime import datetime
from enum import Enum

log = logging.getLogger()
log.setLevel(logging.INFO)

dynamo = boto3.client("dynamodb")

EVENT_TABLE_NAME = "EventTable"

class EventType(Enum):
    """
    This example code uses a single Lambda processor to handle either
    triggers from SQS, SNS, Lambda, or Kinesis. You can adapt it to fit your
    desired infrastructure depending on what you prefer. To distinguish
    where we get events from, we use an EventType enum as an
    example to show the different ways of parsing the notifications.
    """
    SQS = "SQS"
    SNS = "SNS"
    LAMBDA = "LAMBDA"
    KINESIS = "KINESIS"


class AnalyticsType(Enum):
    """
    Define the various analytics event types that this Lambda will
    handle.
    """
    SPEAKER_SEARCH = "SpeakerSearch"
    VOICE_TONE_ANALYSIS = "VoiceToneAnalysis"
    ANALYTICS_READY = "AnalyticsReady"
    UNKNOWN = "UNKNOWN"
 
   
class DetailType(Enum):
    """
    Define the  various detail types that Voice Connector's voice
    analytics feature can return.
    """
    SPEAKER_SEARCH_TYPE = "SpeakerSearchStatus"
    VOICE_TONE_ANALYSIS_TYPE = "VoiceToneAnalysisStatus"
    ANALYTICS_READY = "VoiceAnalyticsStatus"
 

def handle(event, context):
    """
    Example of how to handle incoming Voice Analytics notification messages
    from Voice Connector.
    """
    logging.info(f"Received event of type {type(event)} with payload {event}")
    is_lambda = True
    
    # Handle triggers from SQS, SNS, and KDS. Use the below code if you would like
    # to use this Lambda as a trigger for an existing SQS queue, SNS topic or Kinesis
    # stream.
    if "Records" in event:
        logging.info("Handling event from SQS or SNS since Records exists")
        is_lambda = False
        for record in event.get("Records", []):
            _process_record(record)
    
    # If you would prefer to have your Lambda invoked directly, use the
    # below code to have the Voice Connector directly invoke your Lambda.
    # In this scenario, there are no "Records" passed.
    if is_lambda:
        logging.info(f"Handling event from Lambda")
        event_type = EventType.LAMBDA
        _process_notification_event(event_type, event)


def _process_record(record):
    # SQS and Kinesis use eventSource.
    event_source = record.get("eventSource")
    
    # SNS uses EventSource.
    if not event_source:
        event_source = record.get("EventSource")

    # Assign the event type explicitly based on the event source value.
    event_type = None
    if event_source == "aws:sqs":
        event = record["body"]
        event_type = EventType.SQS
    elif event_source == "aws:sns":
        event = record["Sns"]["Message"]
        event_type = EventType.SNS
    elif event_source == "aws:kinesis":
        raw_data = record["kinesis"]["data"]
        raw_message = base64.b64decode(raw_data).decode('utf-8')
        event = json.loads(raw_message)
        event_type = EventType.KINESIS
    else:
        raise Exception(f"Event source {event_source} is not supported")

    _process_notification_event(event_type, event)


def _process_notification_event(
    event_type: EventType,
    event: dict
):
    """
    Extract the attributes from the Voice Analytics notification message
    and store it as a DynamoDB item to process later.
    """
    message_id = event.get("id")
    analytics_type = _get_analytics_type(event.get("detail-type"))
    pk = None
    if analytics_type == AnalyticsType.ANALYTICS_READY.value or analytics_type == AnalyticsType.UNKNOWN.value:
        transaction_id = event.get("detail").get("transactionId")
        pk = f"transactionId#{transaction_id}#notificationType#{event_type.value}#analyticsType#{analytics_type}"
    else:
        task_id = event.get("detail").get("taskId")
        pk = f"taskId#{task_id}#notificationType#{event_type.value}#analyticsType#{analytics_type}"
    logging.info(f"Generated PK {pk}")
    _create_request_record(pk, message_id, json.dumps(event))


def _create_request_record(pk: str, sk: str, body: str):
    """
    Record this notification message into the Dynamo db table
    """
    try:
        # Use consistent ISO8601 date format.
        # 2019-08-01T23:09:35.369156 -> 2019-08-01T23:09:35.369Z
        time_now = (
            datetime.utcnow().isoformat()[:-3] + "Z"
        )
        response = dynamo.put_item(
            Item={
                "PK": {"S": pk},
                "SK": {"S": sk},
                "body": {"S": body},
                "createdOn": {"S": time_now},
            },
            TableName=EVENT_TABLE_NAME,
        )
        logging.info(f"Added record in table {EVENT_TABLE_NAME}, response : {response}")
    except Exception as e:
        logging.error(f"Error in adding record: {e}")


def _get_analytics_type(detail_type: str):
    """
    Get analytics type based on message detail type value.
    """
    if detail_type == DetailType.SPEAKER_SEARCH_TYPE.value:
        return AnalyticsType.SPEAKER_SEARCH.value
    elif detail_type == DetailType.VOICE_TONE_ANALYSIS_TYPE.value:
        return AnalyticsType.VOICE_TONE_ANALYSIS.value
    elif detail_type == DetailType.ANALYTICS_READY.value:
        return AnalyticsType.ANALYTICS_READY.value
    else:
        return AnalyticsType.UNKNOWN.value
```

**Importante**  
Você deve receber o consentimento antes de ligar para o [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_StartSpeakerSearchTask](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_StartSpeakerSearchTask)ou [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_StartVoiceToneAnalysis.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_StartVoiceToneAnalysis.html) APIs. Recomendamos que você mantenha os eventos em uma área de espera, como o Amazon DynamoDB, até receber o consentimento.

# Noções básicas sobre políticas de armazenamento de dados, cancelamento da adesão e retenção de dados do SDK do Amazon Chime
<a name="va-opt-out"></a>

O SDK do Amazon Chime usa dados de voz para fornecer e melhorar o serviço de pesquisa de locutor. Como parte disso, usamos o áudio de inscrição, os trechos gravados usados para criar incorporações de voz, para treinar nossos modelos de machine learning e inteligência artificial. Você pode optar por não ter seus dados usados para treinar os modelos, e os tópicos desta seção explicam como.

**Topics**
+ [Noções básicas sobre o armazenamento de dados de pesquisa de locutores do SDK do Amazon Chime](speaker-search-data-storage.md)
+ [Lidar com opções de exclusão de pesquisa de locutores do SDK do Amazon Chime](va-handle-opt-outs.md)
+ [Noções básicas sobre a retenção de dados para a analytics de voz do SDK do Amazon Chime](va-data-retention.md)

# Noções básicas sobre o armazenamento de dados de pesquisa de locutores do SDK do Amazon Chime
<a name="speaker-search-data-storage"></a>

O SDK do Amazon Chime armazena os seguintes dados para pesquisa de locutor:
+ As incorporações de voz anexadas aos perfis de voz que usamos para fornecer a funcionalidade de pesquisa de locutor.
+ Áudio de inscrição, trechos de fala gravados usados para criar as incorporações de voz para cada perfil de voz. Usamos as gravações de áudio de inscrição para:
  + Mantenha os modelos de pesquisa de locutor atualizados, uma parte essencial do fornecimento do atributo de pesquisa de locutor.
  + Treine o modelo de machine learning para desenvolver e melhorar o serviço. O uso do áudio de cadastro para treinamento é opcional, e você pode optar por não usar esse uso selecionando uma política de cancelamento, conforme descrito na seção a seguir.

# Lidar com opções de exclusão de pesquisa de locutores do SDK do Amazon Chime
<a name="va-handle-opt-outs"></a>

Você pode lidar com exclusão de usuários finais e organizações inteiras. A exclusão tem os seguintes efeitos:
+ Depois que você optar por não participar, a análise de voz não usará nenhum novo áudio de cadastro para treinamento de modelos e não usará nenhum áudio de cadastro coletado e armazenado antes de você cancelar a inscrição.
+ Depois que você optar por não participar, a análise de voz armazenará e usará o áudio de inscrição para fornecer o serviço de pesquisa de locutor.

**Atenção**  
As seguintes ações de exclusão são irreversíveis. Você não pode recuperar dados excluídos.

**Com lidar com exclusões de usuário final**  
Quando os usuários finais quiserem cancelar a adesão à pesquisa de locutores, chame a API [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_DeleteVoiceProfile.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_DeleteVoiceProfile.html). Essa ação remove o perfil de voz, além das incorporações de voz e do áudio de cadastro.

Para excluir um grupo de incorporações de voz, chame a API [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_DeleteVoiceProfileDomain.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_DeleteVoiceProfileDomain.html) para remover o domínio. Essa ação exclui *todos* os perfis de voz em um domínio.

**Com lidar com exclusões no nível organizacional**  
Para lidar com a exclusão de uma organização inteira, use uma política de exclusão da AWS Organizations. Use o nome do serviço `chimesdkvoiceanalytics`. Para obter informações sobre as políticas, consulte [Políticas de exclusão de serviços de IA](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_ai-opt-out.html) no *Guia do usuário do AWS Organizations*.

**nota**  
Para usar uma política de exclusão, suas AWS contas devem ser gerenciadas centralmente pela Organizations. AWS Se você ainda não criou uma organização para suas contas da AWS , consulte [Criação e gerenciamento de uma organização](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org.html) no *Guia do usuário do AWS Organizations*.

# Noções básicas sobre a retenção de dados para a analytics de voz do SDK do Amazon Chime
<a name="va-data-retention"></a>

Por padrão, a análise de voz do SDK do Amazon Chime exclui as incorporações de voz após 3 anos. Fazemos isso porque as vozes das pessoas mudam com o tempo e também por questões de segurança. É possível usar a API [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_UpdateVoiceProfile.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_UpdateVoiceProfile.html) para atualizar incorporações de voz expiradas.

Os resultados de [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_StartSpeakerSearchTask.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_StartSpeakerSearchTask.html)e também [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_StartVoiceToneAnalysisTask.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_StartVoiceToneAnalysisTask.html)estarão disponíveis em seus respectivos [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_GetSpeakerSearchTask.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_GetSpeakerSearchTask.html)e [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_GetVoiceToneAnalysisTask.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_GetVoiceToneAnalysisTask.html) APIs por no máximo 7 dias.

As incorporações de voz geradas a partir de a [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_StartSpeakerSearchTask.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_StartSpeakerSearchTask.html)estão disponíveis para persistência por meio do [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_CreateVoiceProfile.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_CreateVoiceProfile.html)e [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_UpdateVoiceProfile.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_UpdateVoiceProfile.html) APIs por 24 horas, após as quais são excluídas e não estão disponíveis.

Para remover resultados e lidar com a retirada de consentimento de seus clientes, consulte a seção anterior.

# Usando voz APIs para executar análises de voz para o Amazon Chime SDK
<a name="va-in-voice-namespace"></a>

Para compatibilidade com versões anteriores, você pode usar o Amazon Chime SDK APIs Voice para iniciar e gerenciar análises de voz. No entanto, somente o pipeline de insights de mídia APIs para análise de voz fornece novos recursos, por isso é altamente recomendável usá-los.

As seções a seguir explicam as diferenças entre os pipelines APIs de insights de voz e mídia.

## Interrupção tarefas
<a name="va-stopping-tasks"></a>

Se você usar um Voice Connector para iniciar tarefas de analytics de voz e, depois, usar a API [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_UpdateMediaInsightsPipelineStatus.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_UpdateMediaInsightsPipelineStatus.html) para pausar o pipeline, as tarefas continuarão em execução. Para interromper as tarefas, você deve chamar o [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_StopSpeakerSearchTask.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_StopSpeakerSearchTask.html) APIse.

## Noções básicas sobre as diferenças de notificação
<a name="va-notification-differences"></a>

Quando você usa voz APIs para executar análises de voz, as notificações são diferentes das geradas pelos pipelines de insights de mídia.
+ Eventos prontos para análise de voz só estão disponíveis para tarefas iniciadas usando voz APIs.
+ Você precisa usar os campos `voiceConnectorId`, `transactionId` ou `callId` em suas notificações para associar uma tarefa de análise de voz a uma chamada. Se você usa pipelines de insights de mídia para executar análises de voz, use os campos `mediaInsightsPipelineId` e `streamArn`, ou `channelId` para associar uma tarefa a uma chamada.

Os tópicos a seguir explicam como usar notificações com voz APIs.

**Topics**
+ [Eventos prontos para análise de voz](#va-ready-events)
+ [Eventos de pesquisa de locutor](#va-speaker-search-events)
+ [Eventos de análise do tom de voz](#va-tone-status)

### Eventos prontos para análise de voz
<a name="va-ready-events"></a>

Os eventos prontos para análise de voz têm o tipo de detalhe `VoiceAnalyticsStatus`. 

Use os conectores de voz do SDK do Amazon Chime para iniciar tarefas de análise. Ao receber um evento pronto para análise de voz, você pode acionar uma tarefa de busca de locutor ou análise do tom de voz para a chamada, identificada pelas seguintes propriedades:
+ `voiceConnectorId`
+ `transactionId`

**nota**  
Essa notificação é fornecida somente quando você tem uma configuração de pipeline do Media Insights com análise de voz habilitada e associada a um Voice Connector. Essa notificação NÃO é fornecida quando os clientes chamam a API `CreateMediaInsightsPipeline` e iniciam uma tarefa de busca de locutor ou uma tarefa de análise do tom de voz por meio do SDK de pipelines de mídia.

Os cabeçalhos SIP retornados por um Voice Connector contêm a `transactionId`. Se você não tiver acesso aos cabeçalhos SIP, o evento de notificação `AnalyticsReady` também conterá o `voiceConnectorId` e o `transactionId`. Isso permite que você receba programaticamente as informações e ligue para [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_StartSpeakerSearchTask](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_StartSpeakerSearchTask), ou. [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_StartVoiceToneAnalysis.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_StartVoiceToneAnalysis.html) APIs

Quando a análise de voz está pronta para processamento, o Voice Connector envia um evento `"detailStatus": "AnalyticsReady"` para o destino de notificação como um corpo JSON. Se você usa o Amazon SNS ou o Amazon SQS, esse corpo aparece no campo “Registros” na carga útil do Amazon SNS ou do Amazon SQS.

O exemplo a seguir mostra um típico corpo de JSON.

```
{
    "detail-type": "VoiceAnalyticsStatus",
    "version": "0",
    "id": "Id-f928dfe3-f44b-4965-8a17-612f9fb92d59",
    "source": "aws.chime",
    "account": "123456789012",
    "time": "2022-08-26T17:55:15.563441Z",
    "region": "us-east-1",
    "resources": [],
    "detail": {
        "detailStatus": "AnalyticsReady",
        "callDetails": {
            "isCaller": false,
            "transactionId": "daaeb6bf-2fe2-4e51-984e-d0fbf2f09436",
            "voiceConnectorId": "fuiopl1fsv9caobmqf2vy7"
        }
    }
}
```

Essa notificação permite que você acione retornos de chamada adicionais para seu aplicativo e atenda a quaisquer requisitos legais, como notificação e consentimento, antes de iniciar a tarefa APIs de análise de voz.

### Eventos de pesquisa de locutor
<a name="va-speaker-search-events"></a>

Os eventos de pesquisa de locutor têm o tipo de detalhe `SpeakerSearchStatus`.

Os conectores de voz do SDK do Amazon Chime enviam os seguintes eventos de pesquisa de locutor:
+ Identificação corresponde
+ Geração de incorporação de voz

Os eventos podem ter os seguintes status:
+ `IdentificationSuccessful`: identificou com sucesso pelo menos um ID de perfil de voz correspondente com uma alta pontuação de confiança em determinado domínio de perfil de voz.
+ `IdentificationFailure`: falha ao realizar a identificação. Causas: o chamador não fala por pelo menos 10 segundos, baixa qualidade de áudio.
+ `IdentificationNoMatchesFound`: não foi possível encontrar uma correspondência de alta confiança no domínio do perfil de voz fornecido. O chamador pode ser novo ou sua voz pode ter mudado.
+ `VoiceprintGenerationSuccessful`: o sistema gerou uma incorporação de voz usando 20 segundos de áudio não silencioso.
+ `VoiceprintGenerationFailure`: o sistema falhou ao gerar uma incorporação de voz. Causas: o chamador não fala por pelo menos 20 segundos, baixa qualidade de áudio.

#### Identificação corresponde
<a name="va-id-matches"></a>

Depois que a API [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_StartSpeakerSearchTask](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_StartSpeakerSearchTask) é chamada para um `transactionId` específico, o serviço Voice Connector exibe uma notificação de correspondência de identificação após dez segundos de fala não silenciosa. O serviço retorna as 10 melhores correspondências, junto com um ID de perfil de voz e uma pontuação de confiança que varia de [0, 1]. Quanto maior a pontuação de confiança, maior a probabilidade de o locutor da chamada corresponder ao ID do perfil de voz. Se o modelo de machine learning não encontrar correspondências, o campo `detailStatus` da notificação conterá `IdentificationNoMatchesFound`.

O exemplo a seguir mostra a notificação de uma correspondência bem-sucedida.

```
{    
    "version": "0",
    "id": "12345678-1234-1234-1234-111122223333",
    "detail-type": "SpeakerSearchStatus",
    "service-type": "VoiceAnalytics",
    "source": "aws.chime",
    "account": "111122223333",
    "time": "yyyy-mm-ddThh:mm:ssZ",
    "region": "us-east-1",
    "resources": [],
    "detail": {
        "taskId": "uuid",
        "detailStatus": "IdentificationSuccessful",
        "speakerSearchDetails" : {
            "results": [
                {
                    "voiceProfileId": "vp-505e0992-82da-49eb-9d4a-4b34772b96b6",
                    "confidenceScore": "0.94567856",
                },
                {
                    "voiceProfileId": "vp-fba9cbfa-4b8d-4f10-9e41-9dfdd66545ab",
                    "confidenceScore": "0.82783350",
                },
                {
                    "voiceProfileId": "vp-746995fd-16dc-45b9-8965-89569d1cf787",
                    "confidenceScore": "0.77136436",
                }
            ]
        },
        "isCaller": false,
        "voiceConnectorId": "abcdef1ghij2klmno3pqr4",
        "transactionId": "daaeb6bf-2fe2-4e51-984e-d0fbf2f09436"
    }
}
```

#### Geração de incorporação de voz
<a name="va-voice-print-generation"></a>

Depois de mais 10 segundos de fala não silenciosa, o Voice Connector envia uma notificação de geração de incorporação de voz para os destinos de notificação. Você pode inscrever novas incorporações de voz em um perfil de voz ou atualizar uma impressão que já está em um perfil de voz.

O exemplo a seguir mostra a notificação de uma correspondência bem-sucedida, o que significa que você pode atualizar o perfil de voz associado.

```
{
    "version": "0",
    "id": "12345678-1234-1234-1234-111122223333",
    "detail-type": "SpeakerSearchStatus",
    "service-type": "VoiceAnalytics",
    "source": "aws.chime",
    "account": "111122223333",
    "time": "yyyy-mm-ddThh:mm:ssZ",
    "region": "us-east-1",
    "resources": [],
    "detail": {
        "taskId": "guid",
        "detailStatus": "VoiceprintGenerationSuccess",
        "isCaller": false,
        "transactionId": "12345678-1234-1234",
        "voiceConnectorId": "abcdef1ghij2klmno3pqr"
    }
}
```

### Eventos de análise do tom de voz
<a name="va-tone-status"></a>

Os eventos de análise do tom de voz têm o tipo de detalhe `VoiceToneAnalysisStatus`. As análises podem retornar esses status:
+ `VoiceToneAnalysisSuccessful`: analisou com sucesso as vozes do chamador e do atendente em probabilidades de sentimento: positivo, negativo ou neutro.
+ `VoiceToneAnalysisFailure`: falha ao realizar a análise do tom. Isso pode acontecer se o chamador ficar sem falar por 10 segundos ou se a qualidade do áudio ficar muito ruim.
+ `VoiceToneAnalysisCompleted`: analisou com sucesso as vozes do usuário e do atendente quanto às probabilidades de sentimento durante toda a chamada. Esse é o evento final, enviado quando a análise do tom de voz é concluída.

O exemplo abaixo mostra um evento típico de análise do tom de voz.

```
{
  "detail-type": "VoiceToneAnalysisStatus",
  "service-type": "VoiceAnalytics",
  "source": "aws.chime",
  "account": "216539279014",
  "time": "2022-08-26T17:55:15.563441Z",
  "region": "us-east-1",
  "detail": {
    "taskId": "uuid",
    "detailStatus": "VoiceToneAnalysisSuccessful",
    "voiceToneAnalysisDetails": {
      "currentAverageVoiceTone": {
          "startTime": "2022-08-26T17:55:15.563Z",
          "endTime": "2022-08-26T17:55:45.720Z",
          "voiceToneLabel": "neutral",
          "voiceToneScore": {    
            "neutral": "0.83",    
            "positive": "0.13",    
            "negative": "0.04"
          }
      },
      "overallAverageVoiceTone": {
          "startTime": "2022-08-26T16:23:13.344Z",
          "endTime": "2022-08-26T17:55:45.720Z",
          "voiceToneLabel": "positive",
          "voiceToneScore": {    
            "neutral": "0.25",    
            "positive": "0.65",    
            "negative": "0.1"
          }
      }
    },
    "isCaller": true,
    "transactionId": "daaeb6bf-2fe2-4e51-984e-d0fbf2f09436",
    "voiceConnectorId": "fuiopl1fsv9caobmqf2vy7"
  },
  "version": "0",
  "id": "Id-f928dfe3-f44b-4965-8a17-612f9fb92d59"
}
```

# Cotas de serviço de analytics de chamadas do SDK do Amazon Chime
<a name="ca-regions"></a>

As tabelas nesta seção listam as service quotas de análise de chamadas do SDK do Amazon Chime.

Para obter mais informações sobre as regiões de análise de chamadas, consulte [Regiões da AWS disponíveis para o SDK do Amazon Chime](sdk-available-regions.md) anteriormente neste guia.

A análise de chamadas e a análise de voz do SDK do Amazon Chime têm as service quotas a seguir.


| Recurso | Limite-padrão | Ajustável | 
| --- | --- | --- | 
| Configurações do Media Insights Pipeline por região | 100 | Sim | 
| Pipelines do Active Media Insights por região | 20 | Sim | 
| Domínios de perfil de voz por região | 3 | Sim | 
| Perfis de voz por domínio de perfil de voz | 20 | Sim | 
| Tarefas ativas de pesquisa de alto-falantes por região | 25 | Sim | 
| Tarefas ativas de análise de tom de voz por região | 25 | Sim | 
| Chamadas do Active Voice Connector com análise de voz por região | 25 | Sim | 
| Tarefas ativas de pesquisa de locutores por chamada do conector de voz por ID de transação | 1 | Não | 
| Tarefa ativa de análise de tom de voz por chamada do Voice Connector por ID de transação | 1 | Não | 
| Máximo de chamadas de API simultâneas por domínio de perfil de voz | 1 | Sim | 
| Máximo de chamadas de API simultâneas por perfil de voz | 1 | Sim | 
| Máximo de chamadas de API simultâneas por tarefa de pesquisa de alto-falante | 1 | Sim | 
| Máximo de chamadas de API simultâneas por tarefa de análise de tom de voz | 1 | Sim | 

Para obter mais informações sobre taxas e cotas de API, consulte [Endpoints e cotas do SDK do Amazon Chime](https://docs.aws.amazon.com/general/latest/gr/chime-sdk.html) na *Referência geral da AWS *.

**nota**  
Se você exceder a cota de qualquer região, receberá uma exceção de **limite de recursos excedido**. Você pode usar a página **Service Quotas** no AWS console para solicitar um aumento ou entrar em contato com seu representante de [suporte ao cliente](https://docs.aws.amazon.com/awssupport/latest/user/getting-started.html).  
Várias análises de chamadas APIs criam recursos e solicitações de API para outros AWS serviços. Esses adicionais são contabilizados nas cotas da sua conta. Se você solicitar uma cota ou transactions-per-second aumento da análise de chamadas, também deverá solicitar aumentos para esses outros AWS serviços. Caso contrário, suas solicitações podem ser limitadas e falhar.