Como identificar oradores em transcrições.

Guillaume Goyon, 16 Junho 2020

COMPARTILHAR :

Esse artigo vai tratar do processo de diarização de locutores em um arquivo de áudio para transcrição adicionando tags aos oradores. Essa é uma descrição rápida das técnicas de trabalho com vetores de locutores e de como usar a nossa ferramenta com esse propósito.

O que é diarização de locutores (Adição de speaker tags)?

A tarefa de diarização consiste em adicionar rótulos aos locutores e responder a pergunta “quem falou o quê?”

Essa não é uma tarefa tão simples como parece porque os algoritmos não tem, nem de perto, a mesma capacidade de reconhecer os sons que nós temos. O desafio inclui identificar o número de oradores e quando eles falaram usando um sinal de ondas sonoras.

É preciso entrar em sistemas ASR de reconhecimento automático de voz para organizar a transcrição e receber informações adicionais sobre o áudio.

Na Amberscript, nós usamos estratégias distintas e integramos as melhores em nosso produto. Nesse post, você descobrirá alguns dos elementos dssas técnicas, seguido de um guia rapido de como usar o nosso produto.

Por que a diarização é uma tarefa complicada?

diarization pipeline diagram

Adicionar rótulos aos oradores não é uma tarefa fácil porque envolve muitos passos. Vamos descrever rapidamente como funciona o processo:

Primeiro, você precisa dividir o áudio em fragmentos de voz. Isso significa remover as partes do discurso sem fala e dividir os segmentos do áudio de acordo com os turnos dos oradores. Assim, você terminará com segmentos com apenas um orador.

Depois da divisão, você precisa encontrar uma maneira de reagrupar os segmentos que pertencem ao mesmo orador sob a mesma etiqueta (rótulo). Essa etapa é dividida em vários passos.

Você precisa extrair um vetor de locutor para os segmentos e aí agrega-los para finalmente reagrupá-los no mesmo núcleo com o mesmo rotulo. O nível de dificuldade dessa tarefa é o que originou o desafio de diarização conhecido como DIHARD.

Agora, vamos à extração dos chamados vetores de locutores.

Geração automática de vetores de locutores

Geralmente, criar os segmentos de atividades não é a parte mais difícil. Isso é conhecido como atividade de detecção de fala (Speech Activity Detention – SAD) ou Atividade de detecção de voz (VAD). Isso é feito, normalmente, usando como referência um certo momento no áudio.

O que é mais complicado é a tarefa de criar os vetores de oradores dos segmentos obtidos. Para isso, você precisa usar técnicas diferentes para extrair o vetor (conhecida como speaker embedding). Veja na tabela abaixo:

NOMEFERRAMENTA INTERNA
i-vectorsModelos estatísticos
x-vectorsTempo de atraso da rede neural
d-vectorsRedes neurais recorrentes
ClusterGANRedes generativas antagônicas

A lista completa é bem mais extensa, mas podemos nos limitar a essa técnicas mais comuns.

Os sistemas de x-vector e d-vector são baseados nas redes neurais treinadas para reconhecer um grupo de oradores. Esses sistemas são melhores em termos de performance, mas requerem mais treinamento de dados e implementação. Essas ferramentas são utilizadas como vetores de oradores.

ClusterGAN leva esse processo um passo adiante e tenta transformar um vetor de oradores existente em outro que contenha melhores informações usando 3 redes neurais que competem umas com as outras.

Quando esse passo é completado, terminamos com um vetor de orador para cada segmento.

Agregando os vetores de oradores

Depois de conseguir todos esses vetores de oradores, você precisa agrupá-los. Isso significa agrupar vetores de oradores que sejam parecidos e portanto provavelmente pertencem ao mesmo orador.

O problema aqui é que você não necessariamente sabe quantos oradores estão em um mesmo arquivo (ou grupo de arquivos), então fica mais difícil saber quantos grupos você deveria obter. Um algoritmo pode tentar adivinharmas a margem de erro é grande.

Repito: existem muitos algoritmos que podem executar essa tarfea. Os mais populares estão abaixo:

NOMEFERRAMENTA INTERNA
K-meansAgrupamento interativo
PLDAModelos estatísticos
UIS-RNN
Redes neurais recorrentes

PLDA remete a uma tecnica de pontuação usada por outro algoritmo. K-means normalmente é o método mais comum usado para agrupamento, mas você precisa definir a distância entre dois vetores de oradores e, nesse caso, o PLDA é o mais recomendado.

UIS-RNN é uma técnica mais recente que permite a decodificação, adiconando mais oradores conforme eles aparecem. Esssa é uma tecnica muito promissora.

Depois do passo de agrupamento, você pode adicionar os rótulos de oradores aos segmentos que pertencem aos mesmo grupo, terminando com rótulos para cada segmento.

O que falta depois da diarização para uma transcrição completa?

Quando esse passo estiver completo, terminamos com vetores de oradores para cada segmento.

O resultado da transcrição será um texto completo com as palavras ditas no audio mais a informação de qual orador está associado com cada fala.

Como adicionar rótulos de oradores usando a ferramenta Amberscript?

Agora vamos a uma pergunta prática: como adicionar rótulos de oradores sem executar todas essas etapas técnicas descritas acima?

Você pode simplesmente ir para o nosse website e criar uma conta. Depois disso, carregue um arquivo, selecione o número de oradores (para melhor precisão) e deixe o algoritmo fazer o seu trabalho!

Você não precisa se preocupar em escolher a melhor técnica. Depois de alguns minutos, o seu arquivo estará completamente transcrito e você poderá checar no editor se os oradores foram marcados corretamente.

Caso hajam erros, você pode alterar os oradores manualmente.

Conclusão

Para concluir, podemos dizer que existem muitas técnicas de diarização de locutor disponíveis e que esse processo é super complicado. A boa notícia é que nós contruimos uma ferramenta fácil de usar usando as técnicas mais avançadas para identificar oradores e adicionar rótulos.