O que é diarização de locutores? Como funciona e casos de uso
- Escrito por
- Jack Limebear
- Publicado
- Última atualização
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 rotulados: locutor A de 0:00 a 0:42, locutor B de 0:42 a 1:15 e 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 em toda a gravação.
Esse processo torna utilizável o áudio com vários locutores. Anotações 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 de código aberto a realizam 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, produzindo turnos de fala rotulados sem identificar ninguém pelo nome.
- 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 conforme quem está falando. Uma transcrição com diarização de locutores rotula cada segmento de áudio com uma identidade de locutor. Em resumo, ela responde à pergunta: "Quem falou quando?"
Uma transcrição bruta de uma reunião fornece 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 restante: silêncio, ruído de fundo, música, ou cliques de teclado. Apenas os segmentos de áudio que contêm fala de fato passam para a próxima etapa.
Quaisquer erros nessa etapa se propagam pelas etapas seguintes.
Segmentação
Esses segmentos que contêm fala são divididos nos pontos em que há probabilidade de troca de locutor, por exemplo, uma mudança no tom de voz, uma pausa entre turnos ou uma alteração no padrão de altura. A maioria dos sistemas detecta esses pontos de mudança diretamente, comparando as características acústicas em cada lado de um possível limite.
Algumas ferramentas de segmentação dividem o áudio em janelas curtas e uniformes, como trechos de dois segundos, e então 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
Em seguida, os embeddings são agrupados para que segmentos do mesmo locutor compartilhem um rótulo. Em geral, o sistema não sabe antecipadamente quantos locutores há, então o algoritmo de agrupamento precisa inferir isso e decidir se um segmento com som levemente diferente é de um novo locutor ou da mesma pessoa falando com outro tom.

O resultado é um conjunto de rótulos de locutor associados a intervalos de tempo, geralmente junto com uma transcrição. Por exemplo, uma transcrição diarizada de uma chamada entre duas pessoas seria:
- [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 abordamos 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, o que faz com que os três conceitos sejam frequentemente confundidos.
Cada um resolve um problema um pouco diferente, portanto entender essa distinção é importante ao avaliar ferramentas.
Como explicamos antes, a segmentação de locutores é uma etapa inicial do pipeline de diarização. Ela encontra os limites em que o locutor muda de uma voz para outra, sem atribuir rótulos. A segmentação informa que ocorreu uma mudança em 0:42. A diarização parte disso, agrupando os segmentos resultantes e produzindo uma saída totalmente rotulada, 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 combinado a ela. A identificação determina quem são esses locutores de fato. 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 passam a ser "Fergal" e "Eric".
Muitos produtos combinam essas ferramentas para gerar uma transcrição final mais completa. Uma ferramenta de reuniões pode fazer isso automaticamente — possivelmente até usando nomes definidos no Teams ou Meet — para atribuir pelo nome a contribuição de cada participante, sem revisão manual.

Ferramentas e bibliotecas populares de código aberto para diarização de locutores
Vale considerar ferramentas de código aberto para 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 — chamadas telefônicas, reuniões, podcasts ou transmissões —, dos seus requisitos de latência e do tempo de engenharia que pode investir.
Estas são algumas das opções mais populares.
Pyannote.audio
Pyannote.audio é um toolkit baseado em PyTorch, criado especificamente para diarização de locutores e uma das opções de código aberto 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 camada de diarização em projetos maiores de transcrição.
WhisperX
WhisperX combina o Whisper da OpenAI ASR com diarização e alinhamento forçado. O Whisper, sozinho, produz boas transcrições, mas não atribui rótulos de locutor, e seus carimbos de tempo são apenas aproximados. O WhisperX adiciona alinhamento de carimbos de tempo no nível de palavra e integra diarização baseada em pyannote, produzindo transcrições em que cada palavra tem um carimbo de tempo preciso e um rótulo de locutor.
NVIDIA NeMo
NVIDIA NeMo inclui diarização como parte de sua estrutura mais ampla 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 desenvolvem sistemas de fala personalizados em escala na infraestrutura de GPU.
Cada uma dessas ferramentas exige que você gerencie a infraestrutura de diarização, incluindo implantação de modelos, escalabilidade, monitoramento e atualizações. 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 cuidar de todo o pipeline de diarização, sendo adequadas para casos de uso em produção, como análises de atendimento 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 é muito mais difícil do que a diarização de uma gravação finalizada, pois o sistema precisa tomar decisões com contexto incompleto.
Um sistema offline vê a gravação inteira antes de se comprometer com qualquer decisão. Ele pode comparar uma voz no minuto 2 com uma voz no minuto 40 e decidir com segurança que são do 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 rotular a fala no instante em que ela chega, sem acesso ao que será dito depois 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 a capacidade de analisar toda a conversa, cumprir limites de tempo de resposta mais rígidos compromete diretamente a precisão.
- Fala sobreposta: Quando as pessoas falam umas sobre as outras, um sistema que pudesse reprocessar o áudio talvez conseguisse separá-las. Um sistema em tempo real precisa forçar tudo em um único rótulo ou recorrer, na hora, a modelos especializados em sobreposições.
- Enunciados curtos: Um "sim" ou "pode falar" rápido mal fornece voz suficiente para o sistema analisar e, sem contexto ao redor em que se apoiar, 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 locutor enquanto as pessoas falam. Software de contact center que mostra orientações aos agentes durante a chamada precisa saber, em tempo real, quais palavras o cliente está usando. Agentes de voz que lidam com chamadas de vários participantes precisam acompanhar quem está perguntando o quê sem demora. Em todos esses casos, um sistema um pouco menos preciso, mas imediato, supera outro mais preciso, porém atrasado.
Para cargas de trabalho que realmente não exigem 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 escolha, pois é muito mais precisa.
Como avaliar o desempenho da diarização de locutores
Duas métricas são mais importantes para 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:
- Fala de alarme falso: O sistema rotulou um segmento como fala quando ninguém estava falando.
- Fala não detectada: Alguém estava falando, mas o sistema rotulou o segmento como silêncio.
- Confusão de locutor: A fala foi detectada, mas atribuída ao locutor errado.
DER = (alarme falso + fala não detectada + confusão de locutor) / 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; as pontuações só são comparáveis 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 nível de sobreposição da gravação.
A taxa de erro de Jaccard (JER) mede a precisão da diarização para 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 de sobreposição correta com o tempo total atribuído a qualquer um dos dois locutores.
Por exemplo, imagine uma reunião de 60 minutos em que o locutor A fala por 50 minutos e o locutor B por 10. Um sistema de diarização rotula corretamente 48 dos 50 minutos do locutor A, mas apenas 4 dos 10 minutos do locutor B. A 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 de suas pontuações.
JER_speaker = 1 - (correct_overlap / (ref_time + sys_time - correct_overlap))
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 aqueles que falam com menos frequência.
Testes com áudio representativo da produção
Ao avaliar um sistema de diarização de locutores, calcule DER e JER em áudios que correspondam às suas condições reais de implantação: número típico de locutores, qualidade de áudio e volume de falas sobrepostas.
Pontuações de benchmark publicadas 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 chamadas ou reuniões ao vivo. Um sistema que tem bom desempenho em benchmarks ainda pode apresentar desempenho significativamente inferior em áudios reais, ruidosos e com sobreposições. 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 áudio ao endpoint com diarize=true, e a resposta JSON rotulará cada palavra com um ID de locutor, para até 32 locutores, em mais de 90 idiomas, em arquivos de até 10 horas.
Duas opções ampliam a saída padrão de diarização. Para gravações de chamadas, detect_speaker_roles=true rotula os locutores como agente e cliente, em vez de números anônimos. Se seu workspace tiver perfis de locutor cadastrados, use_speaker_library=true poderá associar locutores detectados a vozes registradas, 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 excessivamente e unir locutores. E, quando seus locutores já estão isolados em canais de áudio separados, como em gravações estéreo de chamadas, transcrição multicanal atribui locutores por canal e dispensa totalmente a diarização.
O guia de início rápido de Speech to Text explica passo a passo a primeira integração. 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.
Pronto para integrar a diarização de locutores aos seus sistemas? Comece obtendo sua chave de API ou consulte a Documentação da ElevenLabs para saber mais.
Perguntas frequentes
Jack Limebear faz parte do time de Growth, atuando como redator e estrategista de conteúdo no blog e nas páginas de insights. Antes da ElevenLabs, ele passou mais de dez anos liderando estratégias de conteúdo em organizações que vão de startups SaaS em rápido crescimento a empresas da Fortune 500. Ele é mestre em Literatura Inglesa pela Universidade de Cambridge.



