Recentemente, foi publicado um artigo muito interessante, "Speaker Recognition from raw waveform with SincNet", que descrevia a arquitetura de ponta a ponta de uma rede neural para reconhecer um alto-falante por voz. Uma característica fundamental dessa arquitetura são as camadas convolucionais unidimensionais especiais, que possuem apenas dois parâmetros com uma interpretação clara. A interpretação dos parâmetros de uma rede neural é uma questão bastante difícil, portanto, este artigo atraiu meu interesse.
Se você está interessado na descrição da idéia deste artigo, e também por que essa idéia tem um significado próximo da construção de espectrogramas de giz, você é bem-vindo ao gato.
Observo que todas as imagens usadas neste post são retiradas do artigo original ou podem ser obtidas usando o Jupyter Notebook armazenado neste repositório .
Os autores do artigo descrito publicaram o código fonte do github, que pode ser encontrado aqui .
Espectrogramas de giz
Para entender a essência deste artigo, vamos primeiro lembrar o que é um espectrograma de giz, como obtê-lo e qual é o seu significado. Se este tópico é familiar para você, esta parte não será muito interessante. É calculado pelo espectrograma usual construído usando a janela Transformada de Fourier:
A essência desta operação é a aplicação seqüencial da transformada de Fourier em partes curtas do sinal de voz multiplicadas por alguma função da janela. O resultado da aplicação da transformação de janela é uma matriz, em que cada coluna é o espectro de uma seção curta do sinal original. Veja o exemplo abaixo:
Experimentos de cientistas mostraram que o ouvido humano é mais sensível a mudanças no som em baixas frequências do que em altas. Ou seja, se a frequência do som mudar de 100 Hz para 120 Hz, é provável que uma pessoa note essa alteração. Mas se a frequência mudar de 10000 Hz para 10020 Hz, é improvável que possamos captar essa alteração.
Nesse sentido, foi introduzida uma nova unidade para medir o tom do som - giz. Baseia-se na percepção psicofisiológica do som por uma pessoa e depende logaritmicamente da frequência:
Na verdade, o espectrograma de giz é um espectrograma regular, onde a frequência é expressa não em Hz, mas em giz. A transição para o giz é realizada aplicando filtros de giz ao espectrograma original. Os filtros de giz são funções triangulares distribuídas uniformemente na escala de giz. Como exemplo, 10 filtros de giz são mostrados aqui (na prática, eles são usados mais, aqui são poucos para maior clareza):
Quando traduzidos para uma escala de frequência, os mesmos filtros terão a seguinte aparência:
Cada coluna do espectrograma inicial é multiplicada escalarmente por cada filtro de giz (localizado na escala de frequência), após o qual é obtido um vetor de números com tamanho igual ao número de filtros. A figura abaixo mostra uma das colunas do espectrograma (os valores de amplitude são convertidos em uma escala logarítmica para maior clareza, o que é codificado em cores na figura é mostrado ao longo do eixo das ordenadas) e dois filtros de giz com os quais você pode construir um espectrograma de giz:
Como resultado de tais transformações, os valores das baixas frequências do espectrograma permanecem quase inalterados no espectro de giz e, nas altas frequências, os valores são calculados a partir de uma faixa mais ampla. Como exemplo, proponho olhar o espectrograma de giz construído a partir do espectrograma anterior usando 64 filtros de giz:
Resumindo tudo o que foi dito acima: mais informações são armazenadas no espectrograma de giz, que é bem percebido e diferenciado pela pessoa do que no espectrograma usual. Em outras palavras, essa representação do som é mais focada nas baixas frequências e menos nas altas.
O que o SincNet tem a ver com isso?
Lembre-se de que a escala de giz foi criada com base na percepção psicofísica humana do som. Mas e se quisermos escolher outras faixas de frequência que nos interessam mais do que as outras em qualquer tarefa em particular? Como escolher o melhor conjunto de filtros para resolver um problema?
A arquitetura proposta pelos autores resolve precisamente esse problema.
Os autores consideram a seguinte função como um filtro:
nesta fórmula é uma função retangular . Esse filtro define a faixa de freqüência de antes . Aqui está a agenda dela:
Usando a conversão inversa de Fourier para esta função, você pode obter seu analógico no domínio do tempo:
Função - Essa é a resposta ao impulso de um filtro passa-banda ideal que não pode ser implementado na prática, e é por isso que os autores truncam essa função com uma janela Hamming . No processamento de sinal digital, essa abordagem é chamada síntese de janela.
Opção de função truncada da janela os autores sugerem o uso como modelo para todas as convoluções aplicadas aos dados de áudio não processados. Esta função é diferenciável por parâmetros. e , o que significa que ele pode ser usado para otimizar os parâmetros de rede pelo método de propagação reversa de erros.
Pelo teorema da convolução, convolução do sinal original com a função equivalente a multiplicar o espectro do sinal original por uma função . Grosso modo, realizando uma convolução do sinal original com a função , "chamamos a atenção" da rede neural para uma determinada faixa de frequência no sinal em consideração.
Obviamente, a transformação de Fourier não é aplicada aqui e os valores específicos do espectro no intervalo não são relatados explicitamente às redes neurais. . Aparentemente, a tarefa de extrair as características espectrais é atribuída aos seguintes blocos localizados na rede neural.
Das vantagens dessa abordagem, os autores observam o seguinte:
- Rápida convergência
- Um número muito menor de parâmetros. Em um bloco convolucional clássico, o número de parâmetros é igual ao comprimento da convolução. Com a abordagem descrita, o número de parâmetros não depende do comprimento da convolução e é igual a 2
- Interpretabilidade dos parâmetros
Conclusões
Existem muitos filtros com os quais os espectrogramas são convertidos. Por exemplo, além dos filtros de giz descritos, também existem filtros de casca (você pode ler aqui e aqui ). Pelo menos a casca também é um valor psicofísico, selecionado "para um homem".
Em seu estudo, os autores propuseram um método pelo qual a rede neural pode selecionar independentemente as faixas de frequência mais adequadas no processo de aprendizagem, dependendo do conjunto de dados. Quanto a mim, isso é muito semelhante ao processo de construção de um espectrograma de giz, no qual é dada maior prioridade às baixas frequências. Aqui estão apenas os espectrogramas de giz inventados com base na percepção humana do som e, no método proposto, a própria rede neural decide o que é importante e o que não é.