O blog da AWS

Como conhecer melhor os seus clientes através de análises de conversas – Transcrição de Áudio e Análise de Texto

Por Horacio Ferro, Arquiteto de Soluções na AWS México

 

Agora, mais do que nunca, as empresas estão convencidas de que trabalhar com uma abordagem centrada no cliente (Customer-Centric) é a única maneira de se diferenciar de seus concorrentes e assim, melhorar os índices de satisfação, transformando em melhores resultados para o negócio, tais como: ingresso por cliente (Share of wallet), clientes ativos (Loyalty & Churn reduction) e novos clientes (Positive References).

Nossos clientes, muitas vezes contam com recurso de gravação  de chamadas telefônicas para fim de auditoria, seja em centro de atendimento ao consumidor ou em conferencias, com as ferramentas e serviços da AWS, possibilita obter informações valiosas dessas gravações, ao transcrever o áudio, podemos obter frases chave, análise de sentimentos, detecção de entidades e classificação automática. Dessa forma, nossos clientes podem melhorar a satisfação dos seus clientes e entender as áreas de oportunidade, buscando padrões e assuntos recorrentes nestes atendimentos.

O Amazon Transcribe permite adicionar facilmente recursos de conversão de fala para texto, sem necessidade de conhecimento prévio em AI/ML (Inteligência Artificial e Machine Learning), basta enviar a o texto ou a localização do mesmo em um bucket do Amazon Simple Storage Service para o Transcribe e após alguns minutos, obteremos a transcrição do arquivo de áudio.

O serviço Amazon Comprehend como o Amazon Transcribe, permite que você execute análises sem necessidade de conhecimentos em AI/ML, basta enviar o texto ou sua localização dentro de um bucket do S3 para realizar a análise de sentimento e depois de alguns minutos, obteremos os resultados.

Com a arquitetura a seguir, automatizamos o processo de transcrição e análise de sentimentos de forma simples e escalável, mantendo eficiência operacional e de custos, utilizando os serviços serverless manteremos os custos ao mínimo, sem necessidade de gerenciar a infraestrutura. Para isso, usaremos o padrão de micro-serviços “Event Sourcing”.

 

 

Além dos serviços Amazon Transcribe e Amazon Comprehend, usaremos o Amazon Simple Storage Service para armazenar arquivos de áudio, transcrições e resultados. Pra então finalmente, ser visualizados com o Amazon QuickSight. Também utilizaremos o AWS Lambda para executar invocações aos serviços Transcribe e Comprehend, além de manter o status do processo em uma tabela do Amazon DynamoDB e gerar arquivos para análise no final do processo.

Usando o AWS SAM (Serverless Application Model), é possível gerar a maior parte da solução automaticamente. O único componente que não será gerado é o dashboard visual no Amazon QuickSight.

Abaixo encontramos os trechos do documento YAML para definir os eventos que iniciariam o processamento de funções do Lambda.

 AnalyticsFunction:
    Type: AWS::Serverless::Function
    Properties:
      ..
      Events:
        KeyPhrasesFinish:
          Type: S3
           Properties:
             Bucket: !Ref ProcessBucket
             Events: s3:ObjectCreated:*
             Filter:
               S3Key:
                Rules:
                   - Name: prefix
                    Value: keyPhrases/
          SentimentFinish:
            Type: S3
            Properties:
              Bucket: !Ref ProcessBucket
              Events: s3:ObjectCreated:*
              Filter:
                S3Key:
                  Rules:
                    - Name: prefix
                     Value: sentiment/
         EntitiesFinish:
            Type: S3
            Properties:
              Bucket: !Ref ProcessBucket
              Events: s3:ObjectCreated:*
              Filter:
                S3Key:
                  Rules:
                    - Name: prefix
                     Value: entities/
  ComprehendFunction:
    Type: AWS::Serverless::Function
    Properties:
      ..
      Events:
        TranscribeFinished:
          Type: EventBridgeRule
          Properties:
            Pattern:
              source:
                - aws.transcribe
              detail-type:
                - Transcribe Job State Change
              detail:
                TranscriptionJobStatus:
                  - COMPLETED
                  - FAILED
  TranscribeFunction:
    Type: AWS::Serverless::Function
    Properties:
      ..
      Events:
        AudioUpload:
          Type: S3
          Properties:
            Bucket: !Ref ProcessBucket
            Events: s3:ObjectCreated:*
            Filter:
              S3Key:
                Rules:
                  - Name: prefix
                    Value: audio/

No fragmento anterior, a execução das diferentes funções lambda é configurada a partir de determinados eventos S3 e EventBridge, no caso de AnalyticsFunction esta função é executada na criação do objeto com o prefixo “KeyPhrases/”, “entities/” e “sentiment/”. No caso da função ComprehEndFunction, sua execução é iniciada por um evento EventBridge gerado pela AmazonTranscribe e no caso da TranscribeFunction, sua execução é iniciada ao criar objetos com o prefixo “audio/”.

Lembre-se que você pode baixar o código completo e instruções de implementação da solução para fazer seus próprios testes a partir deste repositório git, no repositório você pode encontrar mais detalhes da implementação.

Basta instalar o AWS SAM CLI e executar os seguintes comandos para implantar a solução:

$ sam build
$ sam package --output-template-file package.yaml --s3-bucket [ARTIFACTS_BUCKET_NAME] --s3-prefix transcribe-sentiment
$ sam deploy --template-file package.yaml --stack-name transcribe-sentiment --capabilities

Agora, podemos explorar as informações obtidas a partir do Amazon QuickSight, para isso criaremos um dashboard de visualização simples no qual podemos ver a tendência de sentimento em conversas, frases-chave usadas com maior frequência e entidades detectadas dentro das conversas.

Primeiro vamos verificar se o QuickSight tem permissões para ler o conteúdo do bucket do S3 com os resultados das análises. No QuickSight, na seção Gerenciar (Manage QuickSight), você encontrará a seção Segurança e Permissões (Security & Permissions), nesta seção você encontrará as permissões para outros Serviços da AWS (acesso do QuickSight aos serviços da AWS).

 

 

Selecione Add ou remove para adicionar acesso ao bucket do S3. Será necessário selecionar Detalhes no Amazon S3 para fazer modificações nos buckets selecionados, clique em Select S3 buckets para adicionar o bucket de análise. Uma vez selecionado, não se esqueça de clicar em Finish e Update.

 

 

Agora é necessário registrar a fonte de dados (data source), para esta atividade é necessário retornar ao dashboard principal do QuickSight e selecionar conjuntos de dados (Datasets) no menu. Nesta tela vamos gerar um novo conjunto de dados (New Dataset) e selecionaremos S3 a partir das opções disponíveis.

 

 

Para usar os arquivos gerados pelo processo, é necessário criar três arquivos de manifesto para o S3, que serão incluídos ao gerar as fontes de dados, abaixo estão os exemplos:

{
    "fileLocations": [
        {
            "URIPrefixes": [
                "s3://NOMBRE_BUCKET/analytics/entities/"
            ]
        }
    ],
    "globalUploadSettings": {
        "format": "CSV"
    }
}

{
    "fileLocations": [
        {
            "URIPrefixes": [
                "s3://NOMBRE_BUCKET/analytics/keyPhrases/"
            ]
        }
    ],
    "globalUploadSettings": {
        "format": "CSV"
    }
}

{
    "fileLocations": [
        {
            "URIPrefixes": [
                "s3://NOMBRE_BUCKET/analytics/sentiment/"
            ]
        }
    ],
    "globalUploadSettings": {
        "format": "CSV"
    }
}

Voltando ao QuickSight na tela de criação da fonte de dados, criaremos três fontes de dados usando cada um dos arquivos gerados anteriormente. É necessário criar novas fontes de dados S3, abaixo veremos como criar essa fonte passo a passo.

1. Selecione a nova origem S3.

 

2. Se o arquivo estiver correto, podemos ver a seguinte janela de confirmação, se clicarmos em Editar/Visualizar podemos ver os dados carregados no QuickSight.

 

 

Repita as etapas anteriores para as outras duas fontes de dados.

Uma vez concluída a importação de todas as três fontes de dados, criaremos uma nova análise. Na tela inicial do QuickSight, selecione Analyses e clique em New analysis.

 

 

Agora é necessário importar um conjunto de dados para começar com a criação da análise, vamos selecionar o conjunto de dados Entidades:

 

 

Em seguida, clique em “Create analysis“ e importe os conjuntos de dados restantes:

 

 

Para importar os conjuntos de dados restantes vamos clicar no ícone de edição ao lado de Data set, que podemos encontrar no canto superior esquerdo sobre o nome do conjunto de dados (Entidades):

 

 

Selecione o conjunto de dados de FrasesClave e clique em Select:

 

 

Repetimos o passo anterior agora para Sentimento.

Neste exemplo, vamos criar três gráficos para entender o que é falado nas gravações:

1. Selecionar o conjunto de dados Entidades criará um gráfico de barras para entender a distribuição das entidades, adicionalmente vamos agregar um nível de drill-down com o texto das entidades, desta forma podemos entender ainda melhor como essas entidades são distribuídas. Selecionamos o gráfico existente e na parte inferior esquerda, selecione o gráfico de barras, na seção superior do eixo X arraste o campo type e, em seguida, arraste o texto sob o tipo. Devemos obter um resultado semelhante à imagem abaixo.

 

 

2. Para entender a sensação detectada nas transcrições, selecione o conjunto de dados Sentimento, adicione um novo elemento visual clicando em Add e selecionando Add Visual. Na seção tipo de gráfico, selecionamos pie e arraste o campo “sentiment” em GroupColor. No final teremos um gráfico semelhante ao da imagem.

 

 

3. Agora vamos visualizar as frases-chave mais frequentes, vamos agora selecionar KeyFrases, adicionamos um elemento visual e na seção de tipo de gráfico selecionamos Word Cloud, arraste Phrase para a seção Group By. Desta forma, vamos obter um gráfico semelhante ao da imagem a seguir.

 

 

Conclusão:

Usando esta arquitetura, é possível integrar essa funcionalidade em qualquer fonte de áudio, como um call center, reuniões por chime ou qualquer outro meio que permita a gravação de ligações e conferências. Desta forma, nossos clientes agora podem aprender mais sobre sua interação com os seus clientes e criar estratégias de forma rápida e precisa.

 

Próximas etapas:

Neste post foi criado um fluxo de trabalho para ser capaz de fazer transcrição e análise de sentimentos, também é possível treinar classificadores para poder segmentar a análise por área de interesse, por exemplo, produtos, área de atenção, tópicos de interesse, etc.

 

Mais informações:

https://docs.aws.amazon.com/transcribe/latest/dg/what-is-transcribe.html

https://docs.aws.amazon.com/comprehend/latest/dg/comprehend-general.html

https://docs.aws.amazon.com/quicksight/latest/user/creating-an-analysis.html

https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-install.html

https://github.com/aws-samples/transcribe-comprehend-quicksight-demo

 

Este artigo foi traduzido do Blog da AWS em Espanhol.

 


Sobre o autor

Horacio Ferro é Arquiteto de Soluções na AWS México.

 

 

 

 

 

Sobre os revisores

Enrique Valladares é Arquiteto de Soluções Sr. na AWS México.

 

 

 

 

 

Enrique Compañ é Arquiteto de Soluções na AWS México.

 

 

 

 

 

Osmar Bento é Arquiteto de Soluções Sr. na AWS Brasil.