Autor/Mantenedor: Ignacio Heredia (CSIC)
Projeto: Este trabalho faz parte do projeto DEEP Hybrid-DataCloud que recebeu financiamento do programa de pesquisa e inovação Horizonte 2020 da União Europeia sob o acordo de subvenção nº 777435.
Esta é uma ferramenta plug-and-play para realizar classificação de áudio com Deep Learning. Ele permite ao usuário classificar suas amostras de áudio, bem como treinar seu próprio classificador para um problema personalizado. O classificador está atualmente pré-treinado nas 527 classes de alto nível do conjunto de dados AudioSet.
Você pode encontrar mais informações sobre isso no DEEP Marketplace.
Índice
Requisitos
Este projeto foi testado no Ubuntu 18.04 com Python 3.6.5. Outros requisitos do pacote estão descritos no arquivo
requirements.txt
.
- Para suportar uma ampla variedade de formatos de áudio, precisamos usar a biblioteca FFMPEG. Para instalá-lo no Linux execute:
apt-get install ffmpeg libavcodec-extra- É um requisito ter o Tensorflow>=1.14.0 instalado (no modo GPU ou CPU). Isso não está listado no
requirements.txt
porque interrompe o suporte da GPU.
Para começar a usar esta estrutura, clone o repositório e baixe os pesos padrão:
git clone https://github.com/deephdc/audio-classification-tf
cd audio-classification-tf
pip install -e .
curl -o ./models/default.tar.gz https://api.cloud.ifca.es:8080/swift/v1/audio-classification-tf/default.tar.gz
cd models && tar -zxvf default.tar.gz && rm default.tar.gz
agora execute DEEPaaS:
deepaas-run --listen-ip 0.0.0.0
e abra http://0.0.0.0:5000/ui e procure os métodos pertencentes ao módulo audioclas
.
Também preparamos um contêiner Docker pronto para usar para executar este módulo. Para executá-lo:
docker search deephdc
docker run -ti -p 5000:5000 -p 6006:6006 -p 8888:8888 deephdc/deep-oc-audio-classification-tf
Agora abra http://0.0.0.0:5000/ui e procure os métodos pertencentes ao módulo audioclas
.
Você pode treinar seu próprio classificador de áudio com seu conjunto de dados personalizado. Para isso você deve:
Coloque suas imagens na pasta ./data/audios
. Se você tiver seus dados em outro lugar, poderá usar esse local definindo o parâmetro dataset_directory
nos argumentos de treinamento. Use um formato de áudio padrão (como .mp3
ou .wav
).
Nota O classificador funciona em amostras de 10s. Portanto, se um arquivo de áudio for maior/menor que 10s, ele será concatenado em loop para durar um múltiplo de 10s. Portanto, um arquivo de áudio de 22 segundos criará 3 embeddings:
*-0.npy
,*-1.npy
e*-2.npy
.
Primeiro você precisa adicionar ao diretório ./data/dataset_files
os seguintes arquivos:
Arquivos obrigatórios | Arquivos opcionais |
---|---|
classes.txt , train.txt | val.txt , test.txt , info.txt |
Os arquivos train.txt
, val.txt
e test.txt
associam um nome de áudio (ou caminho relativo) a um número de rótulo (que deve começar em zero ). O arquivo classes.txt
traduz esses números de rótulos em nomes de rótulos. Finalmente o info.txt
permite fornecer informações (como número de arquivos de áudio no banco de dados) sobre cada aula.
Se você estiver usando a opção compute_embeddings=False
então o caminho do arquivo deve apontar para o caminho .npy
da incorporação em vez do arquivo de áudio original e o parâmetro dataset_directory
deve apontar para a pasta que contém os embeddings.
Você pode encontrar exemplos desses arquivos em ./data/demo-dataset_files
.
Acesse http://0.0.0.0:5000/ui e procure o método TRAIN
POST. Clique em 'Experimentar', altere os argumentos de treinamento desejados e clique em 'Executar'. O treinamento será lançado e você poderá acompanhar seu status executando o método TRAIN
GET que também fornecerá um histórico de todos os treinamentos executados anteriormente.
Caso o módulo possua algum tipo de monitoramento de treinamento configurado (como Tensorboard) você poderá acompanhá-lo em http://0.0.0.0:6006.
Acesse http://0.0.0.0:5000/ui e procure o método PREDICT
POST. Clique em 'Experimentar', altere os argumentos de teste desejados e clique em 'Executar'. Você pode fornecer:
data
com um caminho apontando para um arquivo de áudio ou arquivo compactado (por exemplo, zip, tar, ...) contendo arquivos de áudio.OU
url
com uma URL apontando para um arquivo de áudio ou arquivo compactado (por exemplo, zip, tar, ...) contendo arquivos de áudio. Aqui está um exemplo de URL que você pode usar para fins de teste. O código neste projeto é baseado no repositório original da IBM e implementa o artigo 'Modelo de atenção multinível para classificação de áudio fracamente supervisionada' de Yu et al.
As principais mudanças em relação ao repositório original são:
Se você considera este projeto útil, considere citar o projeto DEEP Hybrid DataCloud:
García, Álvaro López, et al. Uma estrutura baseada em nuvem para cargas de trabalho e aplicativos de aprendizado de máquina. Acesso IEEE 8 (2020): 18681-18692.
juntamente com qualquer uma das referências abaixo:
- Jort F. Gemmeke, et al., Conjunto de áudio: uma ontologia e conjunto de dados rotulados por humanos para eventos de áudio, IEEE ICASSP, 2017.
- Qiuqiang Kong, et al., Classificação de conjunto de áudio com modelo de atenção: uma perspectiva probabilística. Pré-impressão do arXiv arXiv:1711.00927 (2017).
- Changsong Yu, et al., Modelo de atenção multinível para classificação de áudio fracamente supervisionada. Pré-impressão do arXiv arXiv:1803.02353 (2018).
- S. Hershey, et al., Arquiteturas CNN para classificação de áudio em grande escala, pré-impressão arXiv arXiv:1609.09430, 2016.