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…
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
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:
- Coleta e preparação dos dados: Download e segmentação dos áudios com
yt_dlp,pydubeffmpeg. - 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.
- Análise interpretativa: Extração de informações estruturadas com GPT da OpenAI e o framework LangChain .
- 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.
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.

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:
- Meu post sobre Agentes Multiagente — LangChain em ação
- Detecção de Linguagem Tóxica — LLMs para análise de texto
- Análise de Sentimentos com LLM — Processamento de linguagem natural
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