O que é diarização de locutores? Como funciona e casos de uso
- Escrito por
- Jack Limebear
- Publicado
OuvirOuça este artigo
A diarização de locutores recebe um fluxo de áudio com um número desconhecido de pessoas falando e produz uma linha do tempo de segmentos identificados: locutor A de 0:00 a 0:42, locutor B de 0:42 a 1:15, locutor A novamente a partir de 1:15. O sistema não sabe quem são os locutores, mas sabe que são pessoas diferentes e mantém os rótulos consistentes ao longo de toda a gravação.
Esse processo é o que torna o áudio com várias pessoas falando utilizável. Atas de reuniões, análises de call center, transcrições de entrevistas, edição de podcasts e registros jurídicos dependem de saber não apenas o que foi dito, mas também quem disse.
Este guia explica como a diarização funciona, como ela difere de técnicas relacionadas, como segmentação e identificação, quais ferramentas open source realizam essa tarefa e como medir se um sistema de diarização está funcionando bem.
Resumo
- A diarização de locutores segmenta uma gravação de áudio conforme quem está falando, gerando turnos de fala identificados sem nomear ninguém.
- A diarização de locutores difere da segmentação de locutores, que identifica quando os locutores mudam, e da identificação de locutores, que associa vozes a nomes reais.
- O desempenho da diarização é medido pela taxa de erro de diarização (DER), para a precisão geral, e pela taxa de erro de Jaccard (JER), para verificar se essa precisão se mantém para todos os locutores.
O que é diarização de locutores e como ela funciona?
A diarização de locutores é o processo de dividir um fluxo de áudio em segmentos de acordo com quem está falando. Uma transcrição com diarização de locutores identifica cada segmento de áudio com uma identidade de locutor. Em resumo, ela responde à pergunta: “Quem falou quando?”
A transcrição bruta de uma reunião traz as palavras, enquanto uma transcrição diarizada informa que o locutor 1 fez a pergunta, o locutor 2 respondeu e o locutor 3 interrompeu no meio.
A maioria dos sistemas de diarização de locutores segue um pipeline com quatro etapas:

Vamos detalhar melhor essas etapas.
Detecção de atividade de voz (VAD)
A detecção de atividade de voz separa a fala de todo o resto: silêncio, ruído de fundo, música ou cliques do teclado. Apenas os segmentos de áudio que contêm fala de fato passam para a próxima etapa.
Erros nessa etapa se propagam para todas as etapas seguintes.
Segmentação
Os segmentos que contêm fala são então divididos nos pontos em que o locutor provavelmente muda, como uma alteração no tom de voz, uma pausa entre turnos de fala ou uma mudança no padrão de altura. A maioria dos sistemas detecta esses pontos de mudança diretamente ao comparar as características acústicas de cada lado de um possível limite.
Algumas ferramentas de segmentação dividem o áudio em janelas curtas e uniformes, como blocos de dois segundos, e depois usam a etapa de agrupamento para unir janelas adjacentes que pertencem ao mesmo locutor.
Extração de embeddings
Cada segmento de fala é convertido em um embedding de locutor, ou seja, um vetor numérico que captura as características vocais de quem está falando naquele segmento. Embeddings do mesmo locutor ficam próximos no espaço vetorial, enquanto embeddings de locutores diferentes ficam mais distantes.
Agrupamento
Os embeddings são então agrupados para que segmentos do mesmo locutor compartilhem um rótulo. Em geral, o sistema não sabe antecipadamente o número de locutores, portanto o algoritmo de agrupamento precisa inferi-lo, decidindo se um segmento com som ligeiramente diferente pertence a um novo locutor ou à mesma pessoa falando em outro tom.

O resultado é um conjunto de rótulos de locutores associados a intervalos de tempo, normalmente acompanhado de uma transcrição. Por exemplo, uma transcrição diarizada de uma ligação entre duas pessoas seria assim:
- [speaker_0] Obrigado por ligar. Como posso ajudar?
- [speaker_1] Olá, estou ligando sobre minha fatura do mês passado.
- [speaker_0] Claro, vou verificar isso.
Os rótulos são anônimos e internamente consistentes. Speaker_0 é a mesma voz sempre que aparece, mas o sistema não sabe que speaker_0 se chama Fergal. Associar identidades reais é uma tarefa diferente, que explicamos a seguir.
Principais diferenças entre segmentação e identificação de locutores
A segmentação e a identificação de locutores se sobrepõem bastante à diarização, por isso as três costumam ser confundidas.
Cada uma resolve um problema um pouco diferente, então entender essa distinção é importante ao avaliar ferramentas.
Como explicamos antes, a segmentação de locutores é uma etapa da diarização que ocorre no início do pipeline. Ela encontra os limites em que o locutor muda de uma voz para outra, sem atribuir rótulos. A segmentação informa que uma mudança aconteceu em 0:42. A diarização vai além, agrupando os segmentos resultantes e gerando uma saída completamente identificada, para que você saiba que a voz em 1:15 é a mesma que falou no início da gravação.
A identificação de locutores é um recurso separado da diarização, mas frequentemente é combinada com ela. A identificação determina quem esses locutores realmente são. Um sistema de identificação compara vozes com impressões vocais cadastradas e usa uma referência de locutores conhecidos para retornar identidades. Após a identificação, speaker_0 e speaker_1 se tornam “Fergal” e “Eric”.
Muitos produtos combinam essas ferramentas para produzir uma transcrição final mais completa. Uma ferramenta de reuniões pode fazer isso automaticamente — possivelmente até usando informações como o nome que a pessoa definiu no Teams ou Meet — para atribuir pelo nome a contribuição de cada participante, sem revisão manual.

Ferramentas e bibliotecas open source populares para diarização de locutores
Vale considerar ferramentas open source de diarização de locutores quando você precisa de controle, flexibilidade ou implantação local. A melhor escolha depende do tipo de áudio que você processa — ligações telefônicas, reuniões, podcasts ou transmissões —, dos seus requisitos de latência e de quanto tempo de engenharia você pode investir.
Estas são algumas das opções mais populares.
Pyannote.audio
Pyannote.audio é um kit de ferramentas baseado em PyTorch, criado especificamente para diarização de locutores e uma das opções open source mais usadas. Ele oferece pipelines pré-treinados que abrangem toda a pilha de diarização, incluindo VAD, segmentação, embeddings e agrupamento, além dos componentes necessários para treinar ou fazer Finetune de modelos com seus próprios dados.
Seus modelos pré-treinados são distribuídos pelo Hugging Face e costumam ser usados como a camada de diarização em projetos maiores de transcrição.
WhisperX
WhisperX combina a transcrição Whisper da OpenAI com diarização e alinhamento forçado. O Whisper sozinho gera boas transcrições, mas não atribui rótulos de locutores e seus timestamps são apenas aproximados. O WhisperX adiciona alinhamento de timestamps no nível das palavras e integra diarização baseada em pyannote, produzindo transcrições em que cada palavra tem tanto um timestamp preciso quanto um rótulo de locutor.
NVIDIA NeMo
NVIDIA NeMo inclui diarização como parte de seu framework mais amplo de IA conversacional. Ele oferece modelos de diarização treináveis, incluindo abordagens end-to-end que lidam com fala sobreposta, e foi projetado para equipes que criam sistemas de fala personalizados em escala usando infraestrutura de GPU.
Cada uma dessas ferramentas exige que você gerencie a infraestrutura de diarização, incluindo implantação, escalabilidade, monitoramento e atualizações de modelos. Para equipes que não querem essa sobrecarga operacional, APIs gerenciadas de diarização de fala oferecem uma alternativa mais simples. Elas podem se integrar a workflows existentes ou lidar com todo o pipeline de diarização, sendo adequadas para casos de uso em produção, como análises de suporte ao cliente, transcrição de reuniões e processamento de podcasts.
Diarização em tempo real: desafios e casos de uso
A diarização em tempo real é consideravelmente mais difícil do que a diarização de uma gravação concluída, pois o sistema precisa tomar decisões com contexto incompleto.
Um sistema offline analisa toda a gravação antes de tomar qualquer decisão. Ele pode comparar uma voz no minuto 2 com outra no minuto 40 e concluir com segurança que pertencem ao mesmo locutor, pois tem os dois momentos disponíveis ao mesmo tempo. Um sistema em tempo real não tem esse privilégio: ele precisa identificar a fala assim que ela chega, sem acesso ao que será dito em seguida e com pouca ou nenhuma chance de revisar uma decisão depois de tomada.
Essa falta de contexto futuro torna três problemas específicos muito mais difíceis de resolver em tempo real:
- Latência vs. precisão: Sem poder analisar toda a conversa em ambas as direções, atender a requisitos mais rigorosos de tempo de resposta prejudica diretamente a precisão.
- Fala sobreposta: Quando as pessoas falam ao mesmo tempo, um sistema que pudesse reprocessar o áudio talvez conseguisse separá-las. Um sistema em tempo real precisa forçar a fala em um único rótulo ou recorrer, na hora, a modelos especializados que reconhecem sobreposições.
- Enunciados curtos: Um “sim” ou “pode falar” rápido quase não dá ao sistema voz suficiente para analisar e, sem contexto ao redor como apoio, ele ainda precisa atribuir um rótulo imediatamente.
Apesar da dificuldade, algumas aplicações não podem esperar uma gravação terminar. Legendas ao vivo para reuniões e transmissões precisam de rótulos de locutores conforme as pessoas falam. Software de contact center que oferece orientações aos agentes durante a ligação precisa saber, em tempo real, quais palavras o cliente está usando. Agentes de voz que lidam com ligações de vários participantes precisam acompanhar quem pergunta o quê sem atrasos. Em todos esses casos, um sistema um pouco menos preciso, mas imediato, é melhor do que um mais preciso, mas atrasado.
Para workloads que não exigem de fato rótulos em tempo real, como análises, revisão de conformidade e geração de transcrições, a diarização em lote continua sendo a melhor opção, pois é muito mais precisa.
Como avaliar o desempenho da diarização de locutores
Duas métricas são mais importantes ao medir a precisão da diarização: a taxa de erro de diarização (DER), que captura a precisão geral, e a taxa de erro de Jaccard (JER), que verifica se essa precisão se mantém para todos os locutores.
A DER calcula especificamente a fração do tempo total de fala atribuída incorretamente. Ela combina três tipos de erro:
- Falso alarme de fala: O sistema identificou um segmento como fala quando ninguém estava falando.
- Fala não detectada: Alguém estava falando, mas o sistema identificou o trecho como silêncio.
- Confusão de locutores: A fala foi detectada, mas atribuída ao locutor errado.
DER = (falso alarme + fala não detectada + confusão de locutores) / duração total da fala
Uma DER de 10% significa que os erros equivalem a um décimo do tempo total de fala, considerando esses três tipos. Quanto menor, melhor, e as pontuações só podem ser comparadas quando medidas nos mesmos dados e nas mesmas condições. A DER varia muito conforme a qualidade do áudio, o número de locutores e o grau de sobreposição na gravação.
A taxa de erro de Jaccard (JER) mede a precisão da diarização de cada locutor separadamente e depois calcula a média entre todos eles. Para cada locutor de referência, o avaliador associa o rótulo de locutor mais próximo do sistema e compara o tempo em que eles se sobrepõem corretamente com o tempo total atribuído a qualquer um dos dois.
Por exemplo, imagine uma reunião de 60 minutos em que o locutor A fala por 50 minutos e o locutor B fala por 10. Um sistema de diarização identifica corretamente 48 dos 50 minutos do locutor A, mas apenas 4 dos 10 minutos do locutor B. Sua DER geral ainda pode parecer relativamente boa porque a maior parte da reunião pertence ao locutor A. A JER faz com que o resultado ruim do locutor B tenha o mesmo peso, pois avalia os locutores A e B de forma independente antes de calcular a média das pontuações.
JER_speaker = 1 - (sobreposição_correta / (tempo_ref + tempo_sis - sobreposição_correta))
A JER final é a média dessas taxas de erro por locutor:
JER = (1 / N) * Σ[JER_speaker_i] para i = 1..N
Acompanhar DER e JER oferece uma visão mais completa da precisão da diarização: DER para a precisão geral e JER para verificar se essa precisão se mantém entre todos os participantes, inclusive os que falam com menos frequência.
Testes com áudio representativo da produção
Ao avaliar um sistema de diarização de locutores, calcule tanto a DER quanto a JER em áudios que correspondam às suas condições reais de implantação: o número típico de locutores, a qualidade do áudio e a quantidade de sobreposição de falas.
As pontuações de benchmarks publicados podem ser medidas em conjuntos de dados limpos e controlados, como gravações de estúdio, que raramente correspondem ao som de gravações reais de ligações ou reuniões ao vivo. Um sistema que tem boa pontuação em benchmarks ainda pode apresentar desempenho significativamente inferior em áudios do mundo real, com ruído e sobreposição de falas. Teste com seus próprios dados antes de escolher um produto de diarização.
Comece a usar a ElevenAPI para diarização de locutores
Se você está pronto para criar um recurso de transcrição com suporte a vários locutores, Scribe v2 da ElevenLabs disponibiliza diarização de locutores por meio de uma única API de Speech to Text. Envie o áudio ao endpoint com diarize=true, e a resposta JSON identifica cada palavra com um ID de locutor, para até 32 locutores, em mais de 90 idiomas e em arquivos de até 10 horas.
Duas opções ampliam a saída padrão da diarização. Para gravações de ligações, detect_speaker_roles=true identifica os locutores como agente e cliente em vez de usar números anônimos. Se seu workspace tiver perfis de locutores registrados, use_speaker_library=true poderá comparar os locutores detectados com vozes cadastradas, reunindo diarização e identificação em uma única solicitação.
Um parâmetro de limite de diarização permite ajustar o equilíbrio entre dividir demais e unir locutores. E quando os locutores já estão isolados em canais de áudio separados, como em gravações estéreo de ligações, transcrição multicanal atribui locutores por canal e dispensa completamente a diarização.
O guia de início rápido do Speech to Text mostra a primeira integração passo a passo. Para implantações regulamentadas, a plataforma está em conformidade com SOC 2, ISO 27001, PCI DSS L1 e HIPAA, com residência de dados na UE e modo de retenção zero disponíveis.
Quer incluir diarização de locutores nos seus sistemas? Comece obtendo sua chave de API ou consulte a documentação da ElevenLabs para saber mais.


