Wolfram Language

Treine uma rede para detectar eventos sonoros

Em alguns casos, você deseja treinar uma rede para localizar eventos de som em uma gravação, mas só tem acesso a dados "fracamente legendados", em que as legendas só indicam se um determinado evento estava presente em uma gravação, mas não onde. Apesar da limitação dos dados, é possível obter bons resultados na localização de eventos sonoros através de treinamento em dados fracamente legendados.

Extraia o conjunto de dados Audio Cats and Dogs do Wolfram Data Repository.

O conjunto de dados é composto por gravações anotadas de gatos e cães.

A duração das gravações varia entre um e 18 segundos.

Você pode manipular o conjunto de dados em um formato adequado para treinar uma rede neural e dividi-la em um subconjunto de treinamento e teste.

Inspecione a duração acumulada dos dados de treinamento.

E os dados de teste.

O codificador "AudioMelSpectrogram" é usado para alimentar o sinal de áudio na rede. Como a quantidade de dados é relativamente pequena, você pode realizar acréscimos de dados para tornar o treinamento mais eficaz.

A própria rede é baseada em um agrupamento de camadas recorrentes (GatedRecurrentLayer) e uma AggregationLayer para agrupar o resultado na dimensão de tempo. Isso permite que a rede produza um único resultado de classificação em vez de uma sequência.

Comece o treino.

Extraia a rede treinada e substitua o codificador por um sem acréscimos.

Produza um relatório do desempenho no conjunto de testes.

Ao remover a AggregationLayer e reconectar a SoftmaxLayer à rede fragmentada, você obtém uma rede que retorna uma sequência de probabilidades de classe em vez de um único resultado de classificação.

Defina uma função que receba a saída da rede e retorne uma associação de TimeSeries com as probabilidades das legendas possíveis.

Agora você pode testar essa rede resolvida no tempo. Construa um sinal juntando amostras de gatos e cães do conjunto de dados de teste.

mostre o input completo da Wolfram Language

Faça um gráfico das séries temporais das probabilidades calculadas pela rede.

Visualize os resultados da rede sobre o sinal de teste.

Defina uma função para calcular os intervalos de tempo em que a probabilidade de uma classe é maior que um limite e outra para calcular os retângulos correspondentes a esses intervalos.

Calcule os intervalos.

Visualize os intervalos sobre a forma de onda da gravação.

mostre o input completo da Wolfram Language

Exemplos Relacionados

de en es fr ja ko zh