Classificação de áudio

A tarefa de identificar o que um áudio representa é chamada de classificação de áudio . Um modelo de classificação de áudio é treinado para reconhecer vários eventos de áudio. Por exemplo, você pode treinar um modelo para reconhecer eventos que representam três eventos diferentes: bater palmas, estalar os dedos e digitar. O TensorFlow Lite oferece modelos pré-treinados otimizados que você pode implantar em seus aplicativos móveis. Saiba mais sobre a classificação de áudio usando o TensorFlow aqui .

A imagem a seguir mostra a saída do modelo de classificação de áudio no Android.

Captura de tela do exemplo do Android

iniciar

Se você é novo no TensorFlow Lite e está trabalhando com Android, recomendamos explorar os aplicativos de exemplo a seguir que podem ajudá-lo a começar.

Você pode aproveitar a API pronta para uso da Biblioteca de tarefas do TensorFlow Lite para integrar modelos de classificação de áudio em apenas algumas linhas de código. Você também pode criar seu próprio pipeline de inferência personalizado usando a Biblioteca de suporte do TensorFlow Lite .

O exemplo do Android abaixo demonstra a implementação usando a Biblioteca de Tarefas TFLite

Veja o exemplo do Android

Veja o exemplo do iOS

Se você estiver usando uma plataforma diferente do Android/iOS ou se já estiver familiarizado com as APIs do TensorFlow Lite , baixe o modelo inicial e os arquivos de suporte (se aplicável).

Baixe o modelo inicial do TensorFlow Hub

Descrição do modelo

YAMNet é um classificador de eventos de áudio que recebe a forma de onda de áudio como entrada e faz previsões independentes para cada um dos 521 eventos de áudio da ontologia AudioSet . O modelo utiliza a arquitetura MobileNet v1 e foi treinado utilizando o corpus AudioSet. Esse modelo foi lançado originalmente no TensorFlow Model Garden, onde está o código-fonte do modelo, o ponto de verificação do modelo original e uma documentação mais detalhada.

Como funciona

Existem duas versões do modelo YAMNet convertido em TFLite:

  • YAMNet É o modelo original de classificação de áudio, com tamanho de entrada dinâmico, adequado para Transfer Learning, Web e Mobile. Ele também tem uma saída mais complexa.

  • YAMNet/classification é uma versão quantizada com uma entrada de frame de comprimento fixo mais simples (15600 samples) e retorna um único vetor de pontuações para 521 classes de eventos de áudio.

Entradas

O modelo aceita uma matriz de Tensor ou NumPy 1-D float32 de comprimento 15600 contendo uma forma de onda de 0,975 segundo representada como amostras mono de 16 kHz na faixa [-1.0, +1.0] .

Saídas

O modelo retorna um tensor 2-D float32 de forma (1, 521) contendo as pontuações previstas para cada uma das 521 classes na ontologia AudioSet que são suportadas pelo YAMNet. O índice de coluna (0-520) do tensor de pontuação é mapeado para o nome da classe AudioSet correspondente usando o Mapa de Classe YAMNet, que está disponível como um arquivo associado yamnet_label_list.txt compactado no arquivo de modelo. Veja abaixo para uso.

Usos adequados

YAMNet pode ser usado

  • como um classificador de eventos de áudio autônomo que fornece uma linha de base razoável em uma ampla variedade de eventos de áudio.
  • como um extrator de recursos de alto nível: a saída de incorporação 1024-D do YAMNet pode ser usada como recursos de entrada de outro modelo que pode ser treinado em uma pequena quantidade de dados para uma tarefa específica. Isso permite a criação rápida de classificadores de áudio especializados sem exigir muitos dados rotulados e sem ter que treinar um grande modelo de ponta a ponta.
  • como um início a quente: os parâmetros do modelo YAMNet podem ser usados ​​para inicializar parte de um modelo maior, o que permite um ajuste fino e uma exploração mais rápida do modelo.

Limitações

  • As saídas do classificador do YAMNet não foram calibradas entre as classes, portanto, você não pode tratar diretamente as saídas como probabilidades. Para qualquer tarefa, você provavelmente precisará realizar uma calibração com dados específicos da tarefa que permitem atribuir limites e escala de pontuação por classe adequados.
  • O YAMNet foi treinado em milhões de vídeos do YouTube e, embora sejam muito diversos, ainda pode haver uma incompatibilidade de domínio entre o vídeo médio do YouTube e as entradas de áudio esperadas para qualquer tarefa. Você deve esperar fazer algum ajuste fino e calibração para tornar o YAMNet utilizável em qualquer sistema que você construir.

Personalização do modelo

Os modelos pré-treinados fornecidos são treinados para detectar 521 classes de áudio diferentes. Para obter uma lista completa de classes, consulte o arquivo de rótulos no repositório do modelo .

Você pode usar uma técnica conhecida como transferência de aprendizado para treinar novamente um modelo para reconhecer classes que não estão no conjunto original. Por exemplo, você pode treinar novamente o modelo para detectar vários cantos de pássaros. Para fazer isso, você precisará de um conjunto de áudios de treinamento para cada um dos novos rótulos que deseja treinar. A maneira recomendada é usar a biblioteca do TensorFlow Lite Model Maker , que simplifica o processo de treinamento de um modelo do TensorFlow Lite usando um conjunto de dados personalizado, em poucas linhas de códigos. Ele usa o aprendizado de transferência para reduzir a quantidade de dados e tempo de treinamento necessários. Você também pode aprender com Transferência de aprendizagem para reconhecimento de áudio como um exemplo de transferência de aprendizagem.

Leitura adicional e recursos

Use os seguintes recursos para saber mais sobre os conceitos relacionados à classificação de áudio: