O Whisper Notes identifica agora os oradores

28 de julho de 2026
·
8 min read
·Whisper Notes Team

Uma transcrição diz o que foi dito. Numa entrevista, reunião ou podcast, falta a outra metade: saber quem o disse. Na investigação da fala, este problema chama-se diarização de oradores. Desde as versões iPhone 1.8.5, Mac App Store 1.3.2 e Mac por descarga direta 1.5.1, o Whisper Notes executa a diarização inteiramente no dispositivo.

Neste artigo explicamos como funciona, mostramos os resultados do nosso benchmark face a uma referência gerada na cloud e descrevemos o único caso de falha que não conseguimos eliminar com engenharia — e o que fizemos em alternativa.

O que faz

Abra uma nota — uma gravação, um ficheiro de áudio ou vídeo importado, ou uma gravação de reunião — e carregue no botão dos oradores. Alguns segundos depois, cada parágrafo apresenta uma etiqueta de orador e uma marca temporal.

Diarização de oradores local no Whisper Notes para Mac: transcrição de podcast com etiquetas e marcas temporais, processada no dispositivo Etiquetas de orador no Whisper Notes para iPhone: transcrição com nomes e marcas temporais por pessoa

Etiquetas de orador no Mac e no iPhone. Tocar numa frase leva a reprodução até esse momento.

As etiquetas começam por Orador 1 e Orador 2. Ao mudar o nome de uma, toda a transcrição é atualizada. Toque em qualquer frase para levar a reprodução de áudio ao momento exato; assim é simples confirmar uma citação pela voz original.

Mudar o nome de um orador no Whisper Notes atualiza a etiqueta em toda a transcrição

Mudar o nome de um orador atualiza todos os parágrafos da nota.

Nas gravações de reuniões, a identificação dos oradores é executada automaticamente quando a chamada termina; pode ser desativada nas Definições. As etiquetas mantêm-se na exportação: Copiar transcrição com oradores leva-as para a área de transferência, e os ficheiros SRT e VTT incluem-nas nas legendas.

A diarização trabalha com vozes, não com palavras. Por isso, comporta-se da mesma forma nas mais de 100 línguas que a app transcreve.

Um modelo de 19 MB no Neural Engine

A diarização responde a «quem falou e quando» em três passos. Primeiro, divide o áudio em segmentos com voz. Depois, transforma cada segmento numa impressão vocal: um vetor compacto que descreve a voz, e não as palavras. Por fim, agrupa as impressões; os segmentos no mesmo grupo recebem a mesma etiqueta.

O Whisper Notes usa o pipeline community-1 da pyannote, convertido para Core ML para que ambas as fases sejam executadas no Neural Engine. A transferência única ocupa 19 MB, e uma conversa de 5.7 minutos demora 2 a 4 segundos num Mac da série M.

Áudio → segmentos com voz → impressões vocais → grupos → etiquetas

Todos os passos são executados no dispositivo.

Isto importa ainda mais na diarização do que na transcrição. Uma impressão vocal é um dado biométrico: identifica uma pessoa como uma impressão digital. Com processamento local, as impressões vocais suas, dos seus colegas e das pessoas que entrevista são calculadas, agrupadas e eliminadas no dispositivo. Nunca são enviadas para lado nenhum.

O que medimos

Mantemos um benchmark fixo de dois ficheiros para a diarização. A referência vem de um serviço cloud de ASR e diarização (ElevenLabs) e foi verificada manualmente. A pontuação atribui cada 10 ms de fala a um orador e escolhe a melhor correspondência entre o resultado e a referência. Dois ficheiros formam uma amostra pequena: tratamos estes números como indicativos, não definitivos.

O primeiro ficheiro representa o caso habitual: um podcast em inglês de cinco minutos, com duas vozes claramente diferentes. A maioria das entrevistas, dos podcasts e das reuniões a dois é assim.

Podcast em inglês com dois oradores (5 min) Resultado
Atribuição por frame (resolução de 10 ms) 96.7%
Precisão por frase (aquilo que lê) 99.1%
Tempo de processamento, Neural Engine da série M 2–4 s

Os 0.9% restantes correspondem a três oscilações nos limites das frases, num total de 3.4 segundos — à escala da resolução da própria referência. Neste tipo de material, o resultado no dispositivo corresponde ao serviço cloud que produziu a nossa referência.

O caso difícil

O segundo ficheiro é difícil de propósito: duas vozes masculinas semelhantes numa sala com reverberação e um apresentador que intervém 19 vezes, durante uma média de 2.3 segundos de cada vez. O convidado fala durante 272 segundos; o apresentador, 43. Este é o perfil acústico que faz falhar a diarização em qualquer idioma: vozes parecidas que alternam intervenções curtas.

Aqui, o agrupamento automático colapsa. As duas impressões vocais ficam tão próximas que o algoritmo as junta e atribui quase toda a conversa a uma só etiqueta. A gravação é, por acaso, um programa de entrevistas em chinês, o que nos permitiu testar a hipótese óbvia: um modelo especializado no idioma teria melhor desempenho. Comparámos num pipeline de CPU dois modelos de orador treinados especificamente com fala em chinês:

Modelo Podcast em inglês Caso difícil* Tempo (áudio de 5.7 min)
pyannote community-1 (nosso, Neural Engine) 96.7% 81–82% 2–4 s
CAM++ (treinado em chinês, CPU) 93.9% 81.2% 36–103 s
ERes2NetV2 (treinado em chinês, CPU) 80.5% 220–290 s

* Atribuição por frame no ficheiro difícil com o número de oradores indicado. Sem essa informação, todos os modelos convergem para um único orador.

Ambos colapsam da mesma forma, com 10 a 100 vezes mais processamento. A dificuldade é acústica, não linguística — o limite está no que as representações vocais atuais conseguem distinguir, em qualquer idioma.

Isto excluiu a correção óbvia e apontou para outra: dar ao pipeline um dado que não consegue inferir — o número de pessoas na sala. Com o número indicado (uma opção do menu, de 2 a 6), o ficheiro difícil passa do colapso para 89% de precisão por frase. A deteção automática continua a ser a predefinição, porque acerta em material habitual.

Executar novamente a deteção de oradores no Whisper Notes com um número específico e exportar SRT e VTT com etiquetas

Repetir a deteção com o número exato de oradores. O mesmo menu exporta SRT e VTT com as respetivas etiquetas.

Corrigir intervenções curtas

Com o número fixado, cerca de metade dos erros restantes estava em intervenções com menos de três segundos. Um excerto de dois segundos dá muito pouco sinal ao modelo de representação; em trocas rápidas, a sua impressão vocal também absorve parte da voz do orador seguinte.

Após o agrupamento, o pipeline volta por isso a analisar cada frase com menos de 3.5 segundos. Recalcula a impressão vocal com uma máscara exatamente sobre os frames dessa frase, compara-a com a âncora de cada orador — a média das suas intervenções mais longas — e só muda a etiqueta quando a diferença é decisiva. O modelo existente é reutilizado; não há outra transferência.

Precisão por frase de ponta a ponta Antes da correção Depois
Caso difícil (número de oradores indicado) 89.0% 94.8%
Podcast em inglês (automático) 98.5% 99.1%

O limiar é conservador: nos dois ficheiros, o corretor mudou 21 etiquetas sem introduzir novos erros.

Limitações

• As etiquetas aparecem quando a gravação termina, não durante a chamada. Se precisar de legendas em direto com o nome dos oradores enquanto a reunião decorre, um serviço cloud como o Otter ou o Notta é a ferramenta certa.

• Quando duas pessoas falam ao mesmo tempo, cada frase recebe apenas uma etiqueta.

• Vozes semelhantes continuam a ser difíceis. Os 94.8% no nosso ficheiro difícil são o limite atual com o número de oradores indicado, não um problema resolvido.

Disponibilidade

A identificação de oradores está incluída na compra única de $6.99, juntamente com os três motores de transcrição da app — Parakeet V3, Whisper Large V3 Turbo e SenseVoice — e edição local com IA. Não existe outro nível nem é preciso ter conta.

iPhone: App Store, versão 1.8.5 ou posterior.

Mac App Store: versão 1.3.2 ou posterior.

Descarga direta para Mac (DMG): versão 1.5.1 ou posterior em whispernotes.app, com teste gratuito.

Para saber como funciona a gravação de reuniões, consulte o nosso artigo sobre transcrição offline de reuniões.