← Back to list

Agente para análise interpretativa de ligações de telemarketing

Neste post vamos criar um agente para extrair insights estruturados de ligações de telemarketing, transformando gravações de áudio em um…

Fellipe Gomes in Data Hackers · 2025-12-12 18:47 · 5 claps · 6.2 min read
#genai #langchain #agents #telemarketing #ai
Open on Medium ↗
Wiki topics: AGT · AI Agents AI · AI · General ECO · Economy · General

Agente para análise interpretativa de ligações de telemarketing

Neste post vamos criar um agente para extrair insights estruturados de ligações de telemarketing, transformando gravações de áudio em um relatório analítico

Post publicado originalmente em: https://gomesfellipe.github.io/post/2025-10-26-telemarketing-agent/

https://gomesfellipe.github.io

https://gomesfellipe.github.io

Por que analisar ligações de telemarketing com IA?

Quem nunca recebeu aquela ligação de telemarketing no momento mais inoportuno? Seja oferecendo um cartão de crédito, cobrando uma dívida ou tentando vender internet, essas ligações fazem parte do nosso cotidiano. Mas você já parou para pensar na quantidade de informações valiosas que existem nessas conversas?

Para empresas que operam call centers, analisar essas ligações manualmente é uma tarefa hercúlea. Imagine ter que ouvir centenas ou milhares de ligações por dia para:

  • Avaliar a qualidade do atendimento
  • Identificar problemas recorrentes
  • Detectar possíveis fraudes
  • Treinar equipes com base em casos reais
  • Garantir compliance e conformidade legal

O desafio vai além da transcrição de textos

Analisar ligações de telemarketing apresenta desafios que vão muito além da simples transcrição de áudio para texto. O grande volume de dados, a necessidade de identificar corretamente quem está falando em áudios mono (onde todas as vozes estão em um único canal) e a extração de informações relevantes a partir de conversas não estruturadas tornam o processo complexo e exigem soluções especializadas.

Entre os principais obstáculos técnicos estão: converter fala em texto com precisão mesmo diante de sotaques e ruídos, diarizar os speakers (diferenciar atendente e cliente), transformar transcrições em dados estruturados (como sentimento, tipo de ligação e problemas), além de garantir escalabilidade para processar milhares de ligações de forma eficiente, preferencialmente utilizando recursos como GPU.

Solução técnica: Abordagem em 4 etapas

Enquanto estudava para trablhar em um projeto com desafio semelhante, desenvolvi um pipeline em Python integrando três tecnologias de ponta, com foco em soluções gratuitas para estudo e prova de conceito. O projeto abrangeu desde a aquisição das ligações até a extração de insights estruturados, utilizando recursos pagos em ambiente de produção, mas priorizando ferramentas acessíveis para pesquisa e validação.

Fluxo de trabalho completo

As etapas principais foram:

  1. Coleta e preparação dos dados: Download e segmentação dos áudios com yt_dlp, pydub e ffmpeg.
  2. Transcrição dos áudios: Diarização/segmentação por locutor: Utilizando o modelo de diarização do Pyannote.audio e Reconhecimento automático de fala (ASR): Modelos gratuitos do Whisper da OpenAI hospedados na Hugging Face.
  3. Análise interpretativa: Extração de informações estruturadas com GPT da OpenAI e o framework LangChain .
  4. Abordagem analítica: Exploração dos dados, criação de dashboards e, eventualmente, construção de modelos preditivos (por exemplo, prever se a venda foi concluída).

Tecnologias Utilizadas:

  • **Whisper (OpenAI)**: Modelo state-of-the-art para transcrição de áudio
  • **Pyannote.audio**: Framework especializado em diarização de speakers
  • **LangChain**: Framework de LLMs para extração estruturada
  • Python: Orquestração de todo o pipeline
  • Google Colab: Ambiente com GPU gratuita

Este post vai cobrir apenas a terceira etapa do pipeline: a análise interpretativa das transcrições. Vamos mostrar como transformar o texto bruto das ligações em informações estruturadas e acionáveis usando agentes de GenAI, detalhando o processo de extração automática de sentimentos, problemas, resultados e respostas criativas a partir das conversas.

Dados utilizados

Para este experimento, selecionei alguns vídeos de esquetes de comédia sobre telemarketing disponíveis no YouTube e extraí um arquivo de áudio para cada ligação, segmentando as conversas individualmente. Veja um exemplo no post original no blog.

A transcrição dos áudios foi realizada utilizando Whisper para reconhecimento de fala e Pyannote para diarização dos locutores. Desenvolvi um script que integra essas ferramentas utilizando recursos de GPU em ambientes como Kaggle e Google Colab, o que permite processar grandes volumes de áudio gratuitamente.

Veja como ficou o resultado após a atribuição dos speakers no pós-processamento:

SPEAKER_00: Eu gostaria de falar com o Eliel Clayton de Oliveira.
SPEAKER_01: Ele não tá, tá pra fazenda. Liga amanhã, ele deixou o celular.
SPEAKER_00: Ah, tudo bem. Eu posso deixar o telefone pra contato com ele no internet? Quem é você? Você é namorada dele? Não, eu sou uma da assessoria de cobrança.
SPEAKER_01: Da onde? Da outra fazenda? Da fazenda Bonança?
SPEAKER_00: Não, senhora. Eu sou da assessoria da bebê financeira. Ah, estavam então da Bahia, né? Vou falar pra ele que ligaram pra ele então, tá?
SPEAKER_01: É da bebê financeira, assessoria da bebê financeira.
SPEAKER_00: Você teve um bebê com ele? Aonde você tá, minha filha? Não, senhora, assessoria da bebê financeira.
SPEAKER_01: Estão falando que tem uma mulher que tem um bebê do Eliel.
SPEAKER_00: Acho melhor você ligar amanhã então, pra ver com ele, pra ver o DNA.

⚠️ Naturalmente, todo modelo de transcrição apresenta uma taxa de acerto que pode variar conforme a qualidade do áudio, sotaques e presença de ruídos.

Neste post o foco está na construção do agente de análise interpretativa, assumindo que as transcrições já estão disponíveis e prontas para uso. Na versão do projeto que foi para produção, utilizamos uma ferramenta diferente para a etapa de transcrição, mas como prova de conceito até que achei o resultado bem descente.

Análise estruturada com Agente de GenAI

É aqui que a mágica realmente acontece: com o poder do LangChain e o recurso de Structured Output, conseguimos transformar transcrições brutas de ligações em dados estruturados e acionáveis. Em vez de apenas ler textos longos e desorganizados, extraímos automaticamente sentimentos, problemas, resultados e até respostas criativas. Tudo pronto para análise, visualização ou integração com sistemas de negócio.

A ideia central se baseia no conceito de saída estruturada (Pydantic models) para fornecer ferramentas que forçam o modelo a devolver um JSON consistente que depois é facilmente consumido por pipelines e dashboards.

***Ver código***

Para criar o agente de análise interpretativa, encapsulamos toda a configuração do modelo de linguagem, defindo o schema de saída estruturada e estabelecendo as instruções para que o agente atue como um verdadeiro especialista em ligações de telemarketing. Com essa abordagem, garantimos que apenas informações realmente presentes na transcrição sejam extraídas, tornando o processo robusto, auditável e pronto para uso em escala, ou seja, para protótipos ou aplicações em produção.

Instanciando o agente (exemplo)

def instance_agent(api_key: str):
    model = ChatOpenAI(model="gpt-4o", api_key=api_key, temperature=0)
    agent = create_agent(
        model=model,
        tools=[],
        response_format=ToolStrategy(
            schema=RelatorioLigacao,
            handle_errors=True
        ),
        system_prompt=(
            "Você é um especialista em análise de ligações de telemarketing.\n"
            "Dado uma transcrição, preencha somente os blocos do relatório que fizerem sentido.\n"
            "- Se não houver problema, deixe 'problema' como null.\n"
            "- Se não houver respostas criativas, deixe 'respostas_criativas' como null.\n"
            "- Seja conservador: só preencha quando tiver evidência no texto."
        ),
    )
    return agent
agent = instance_agent(api_key=OPENAI_API_KEY)
result = agent.invoke({
    "messages": [{"role": "user", "content": transcriptions['audio_00']}]
})
result["structured_response"].model_dump()

Veja qual foi a saída obtida aplicando no nosso exemplo de áudio:

{
 'sentimento': {
   'sentimento_cliente': 'irritado',
   'sentimento_atendente': 'impaciente',
   'nivel_conflito': 'alto'
 },
 'informacao': {
   'tipo_ligacao': 'cobranca',
   'empresa_mencionada': None,
   'produto_servico': None,
   'resultado_ligacao': 'nao_resolvido',
   'cliente_interessado': False
 },
 'problema': None,
 'respostas_criativas': {
   'teve_resposta_criativa': True,
   'tipo_resposta': 'humor',
   'citacao': 'Eu agora, eu tô tomando é uma Heineken, uma hora dessa. Tá entendendo?'
 }
}

Loop para processar todos os áudios (Ver código)

Insights estruturados

Após processar todos os áudios podemos criar um dashboard que transforma as extrações em KPIs acionáveis, permitindo visualizar rapidamente métricas como taxa de ligações não resolvidas, distribuição dos tipos de ligação, níveis de conflito, frequência de respostas criativas e outros indicadores essenciais para tomada de decisão e melhoria contínua dos processos.

*Ver código do Dashboard*

Fluxo de trabalho completo

Benefícios Práticos e ROI Mensurável

Para equipes que operam call centers e compliance, os ganhos são claros:

  • Automação de QA (Análise de 100% das ligações vs. amostragem manual);
  • Redução drástica no tempo de análise;
  • Detecção precoce de problemas e fraudes;
  • Treinamento baseado em casos reais e dados;
  • Evidências estruturadas para auditoria;
  • KPIs em tempo real e otimização de scripts (A/B testing).

Para empresas, isso significa decisões mais rápidas, menos custos com retrabalho e ROI tangível na operação.

Ética, licença e privacidade

O dataset aqui usado é público (sketches de comédia) e foi apenas para fins pessoal/educacional. Para qualquer uso comercial:

  • Verifique licença dos materiais originais;
  • Obtenha consentimento quando necessário;
  • Anonimizar dados pessoais;
  • Adotar práticas de privacidade e conformidade (LGPD / GDPR).

Conclusão: O futuro da análise de conversas

O que começou como um experimento com ligações de telemarketing se transformou em uma demonstração poderosa do que é possível quando combinamos as melhores tecnologias de IA disponíveis hoje. Em menos de 4 minutos, processamos 13 ligações e extraímos insights que levariam horas para analistas humanos descobrirem.

Recursos adicionais

Tutoriais Complementares:

Sobre o autor

Me chamo Fellipe Gomes, sou formado em estatística e atuo como cientista de dados desde 2018. Compartilho meus estudos e evolução por meio de artigos, tutoriais e projetos de código aberto. Se quiser saber mais sobre meu trabalho, sinta-se à vontade para entrar em contato através das minhas redes sociais LinkedIn, GitHub e Kaggle.

Gostou do conteúdo? Compartilhe e deixe suas dúvidas nos comentários. Sua experiência e feedback são fundamentais para continuar criando conteúdo de qualidade!


메타데이터
post_id
068e8b7547d1
slug
agente-para-análise-interpretativa-de-ligações-de-telemarketing-068e8b7547d1
url
https://medium.com/data-hackers/agente-para-an%C3%A1lise-interpretativa-de-liga%C3%A7%C3%B5es-de-telemarketing-068e8b7547d1
canonical_url
https://medium.com/data-hackers/agente-para-an%C3%A1lise-interpretativa-de-liga%C3%A7%C3%B5es-de-telemarketing-068e8b7547d1
author_url
https://medium.com/@gomesfellipe
status
ok
fetched_at
2026-06-11 15:16:29