Uma transcrição com rótulos precisa acertar as duas respostas, e como os rótulos ficam sobre as palavras, um rótulo errado pode ser corrigido sem tocar no texto.
Uma transcrição de reunião responde a duas perguntas ao mesmo tempo: o que foi dito e quem disse. O leitor enxerga uma tarefa só, um nome ao lado de cada fala. Por baixo, há dois problemas, cada um com suas próprias entradas e suas próprias formas de falhar.
O reconhecimento de fala presta atenção nas palavras. Ele transforma áudio em texto e, quando bem feito, informa o início e o fim de cada palavra. Não importa se a voz mudou no meio de uma frase; o trabalho dele é acertar a frase.
A diarização de locutores presta atenção nas vozes. Ela não conhece palavras. Seu trabalho é dividir a linha do tempo em turnos e dizer quais turnos pertencem à mesma pessoa: Locutor 1, Locutor 2. A palavra vem de "diary", que significa diário em inglês, e isso é uma boa imagem da saída: um registro de quem tinha a palavra e quando.
Três termos vizinhos costumam ser confundidos com ela. A diarização diz quem falou e quando, sem saber quem é ninguém. A identificação de locutores diz a qual pessoa conhecida um trecho de fala pertence, escolhendo entre um conjunto de vozes cadastradas. A verificação de locutores responde a uma pergunta de sim ou não: esta voz é realmente da pessoa X? As alegações dos fornecedores ficam mais fáceis de ler quando os três são separados, porque "rótulos de locutor" podem significar desde um palpite grosseiro sobre os limites dos turnos até nomes que acompanham uma pessoa de uma gravação para a outra. Para ver o que esses rótulos podem e não podem garantir, é preciso olhar por dentro do diarizador.
A maioria dos sistemas de diarização funciona em três etapas, nenhuma delas envolvendo linguagem.
Cada etapa pode falhar por conta própria. Um locutor baixinho é perdido. Duas vozes parecidas são fundidas. Uma pessoa que passa de calma a animada é dividida em duas.
A área avalia tudo isso com a taxa de erro de diarização, DER: a parcela do tempo de fala que foi perdida, detectada como fala por engano ou atribuída ao locutor errado, geralmente com uma margem de tolerância de cerca de um quarto de segundo em torno de cada limite. Essa margem existe porque ninguém, humano ou máquina, consegue situar uma troca de locutor com precisão de milissegundo. A tolerância serve para avaliar um diarizador isoladamente. Não serve para uma transcrição, em que um limite deslocado em um quarto de segundo cai sobre uma palavra.
É aqui que os dois problemas se encontram, e onde se decide a qualidade de uma transcrição com rótulos. Um diarizador posiciona seus limites com alguma imprecisão, muitas vezes uma fração de segundo para mais ou para menos. Um reconhecedor posiciona as palavras na mesma linha do tempo. Se você sobrepõe os dois de forma ingênua, um limite cai no meio de uma palavra, e metade de "amanhã" fica com o Locutor 1 enquanto a outra metade fica com o Locutor 2.
Os rótulos também podem estar errados por um tempo antes de ficarem certos. Um diarizador fica mais seguro de seus grupos quanto mais áudio ouviu, então um rótulo inicial pode parecer errado pelos padrões do que vem depois. Em uma transcrição ao vivo, um rótulo pode ser revisado depois que a linha já foi exibida: a API em tempo real do VocalStack envia uma mensagem transcript.amended que corrige o texto ou o locutor de uma linha já confirmada, no próprio lugar, para que o leitor veja a revisão e não uma contradição.
Mesmo um rótulo perfeitamente posicionado e estável ainda é apenas um número. Um número basta para acompanhar uma conversa; um nome é o que as pessoas querem ler.
Um rótulo vira nome de duas maneiras, e uma se apoia na outra.
A primeira é nomear dentro de uma gravação. Cada locutor que a transcrição encontra recebe um índice, contado a partir de 0. Quem tiver acesso pode dar nome a cada locutor durante ou depois da gravação. O nome é uma camada sobre as palavras, então pode ser definido, alterado ou removido sem tocar no texto. Pela API, isso é PUT /v1/recordings/{id}/speakers/{idx} com um name; um nome vazio remove o rótulo. Uma linha cujo speaker é -1 não tem rótulo, seja porque os rótulos estavam desligados, seja, em um rascunho ao vivo, porque a linha ainda não foi atribuída a ninguém.
A segunda é o reconhecimento entre gravações, o problema de identificação da primeira seção. Um diarizador só consegue dizer que duas vozes são diferentes, nunca quem elas são. Para ir de "diferentes" a "esta é a Ana", o sistema precisa de uma referência: uma voz salva, extraída de uma gravação dessa pessoa. Trinta segundos de fala limpa é o mínimo, e alguns minutos é melhor. A amostra também deve soar como as gravações com as quais será comparada: a mesma pessoa em um microfone de notebook e em um microfone de palco pode soar menos parecida para a máquina do que duas pessoas diferentes gravadas da mesma forma. Depois que uma voz é salva, cada locutor que uma transcrição ouve é comparado com ela, e uma correspondência leva o nome para a transcrição. No VocalStack, isso fica em Vozes; transcrições de arquivos e sessões ao vivo do Painel usam suas vozes salvas automaticamente, e uma sessão da API em tempo real reconhece apenas as vozes que você listar em identifyVoices.
Uma voz salva é um dado biométrico: ela pode reconhecer uma pessoa em qualquer gravação e, no VocalStack, também funciona como um clone capaz de ler as falas dela em voz alta. O Painel pede que você confirme ter a permissão da pessoa antes de salvar uma voz, e uma voz pode ser excluída a qualquer momento.
Tudo isso pressupõe que você quer rótulos. Muitas vezes, não quer.
Uma única pessoa lendo uma palestra não precisa de "Locutor 1" antes de cada linha. O público já sabe quem está com o microfone. Por isso, a configuração de rótulos de locutor tem três posições, e elas são as mesmas em uma sessão em tempo real, em uma transmissão, em uma transcrição e em uma gravação.
auto na API). As linhas recebem o rótulo do locutor assim que mais de uma voz é ouvida; uma gravação com um só locutor continua em texto simples, e uma segunda voz que entra mais tarde ainda é detectada. O formulário novo de transcrição ao vivo do Painel começa nesta posição.Um envio de arquivo usa a mesma opção speakerLabels, e a API em tempo real permite mudá-la durante o fluxo; os detalhes estão na referência da API. A separação e a nomeação de locutores nunca aumentam a fatura (a página de preços tem a tabela de tarifas), então a escolha depende do que o leitor deve ver, não do que custa.
Com a opção ligada, a diarização é boa, mas não é mágica. Duas situações ainda a superam.
A primeira é a sobreposição. Quando duas pessoas falam ao mesmo tempo, um trecho de áudio carrega duas vozes. Diarizadores com suporte a sobreposição existem na pesquisa e, cada vez mais, em produtos: a diarização neural de ponta a ponta (EEND), por exemplo, trata "quem está falando" como um conjunto de perguntas simultâneas de sim ou não, em vez de uma resposta única. A maioria dos sistemas de produção, porém, ainda atribui um locutor por trecho, e o reconhecedor que vem depois transcreve uma voz de cada vez. Diálogos cruzados em um painel acalorado são o áudio mais difícil da área, e os rótulos de todos os fornecedores pioram ali. Também é, com certeza, a parte que todo mundo quer citar depois.
A segunda é a de vozes muito parecidas. Irmãos podem produzir embeddings próximos demais para serem separados com segurança, ainda mais quando trocam turnos curtos durante uma hora. O áudio de telefone piora isso para todo mundo: uma linha de banda estreita é amostrada a 8 kHz e não carrega nada acima de cerca de 3,4 kHz, embora grande parte do que distingue uma voz de outra esteja acima desse corte. Duas pessoas na mesma linha telefônica soam mais parecidas para um diarizador do que soam para você.
O remédio mais prático para os dois casos está antes de qualquer modelo: dê a cada pessoa o próprio microfone. Com um canal por locutor, a diarização se reduz a perguntar qual canal está mais alto, a sobreposição vira duas faixas limpas em vez de uma faixa embaralhada, e os embeddings nunca precisam fazer a parte difícil. Um único microfone de mesa é mais barato e quase sempre é o que você tem, e é por isso que o resto deste artigo existe.
Nenhum dos dois limites precisa chegar ao leitor sem mudanças. Como os rótulos são uma camada sobre as palavras, um rótulo errado nunca custa o texto: nomes de locutores podem ser definidos ou removidos em uma gravação a qualquer momento, e, em uma transcrição ao vivo, o anfitrião pode reescrever qualquer palavra ou linha enquanto ela ainda está em andamento, com cada correção marcada e reversível.
Para o lado das palavras, o que a taxa de erro por palavra mede e o que ela deixa de fora trata em detalhe as camadas de correção; a WER está para o reconhecedor assim como a DER está para o diarizador, e uma transcrição precisa de ambas baixas.