저자/관리자: Ignacio Heredia(CSIC)
프로젝트: 이 작업은 보조금 계약 번호 777435에 따라 유럽 연합의 Horizon 2020 연구 및 혁신 프로그램으로부터 자금을 지원받은 DEEP Hybrid-DataCloud 프로젝트의 일부입니다.
이는 딥러닝을 통해 오디오 분류를 수행하는 플러그 앤 플레이 도구입니다. 이를 통해 사용자는 오디오 샘플을 분류할 수 있을 뿐만 아니라 사용자 정의 문제에 대해 자체 분류기를 훈련할 수도 있습니다. 분류자는 현재 AudioSet 데이터 세트의 527개 상위 수준 클래스에 대해 사전 훈련되어 있습니다.
이에 대한 자세한 내용은 DEEP Marketplace에서 확인할 수 있습니다.
목차
요구사항
이 프로젝트는 Python 3.6.5가 설치된 Ubuntu 18.04에서 테스트되었습니다. 추가 패키지 요구 사항은
requirements.txt
파일에 설명되어 있습니다.
- 광범위한 오디오 형식을 지원하려면 FFMPEG 라이브러리를 사용해야 합니다. Linux에 설치하려면 다음을 실행하십시오.
apt-get install ffmpeg libavcodec-extra- Tensorflow>=1.14.0이 설치되어 있어야 합니다(gpu 또는 CPU 모드). 이는 GPU 지원을 중단하므로
requirements.txt
에 나열되지 않습니다.
이 프레임워크를 사용하려면 저장소를 복제하고 기본 가중치를 다운로드하세요.
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
이제 DEEPaaS를 실행하세요.
deepaas-run --listen-ip 0.0.0.0
http://0.0.0.0:5000/ui를 열고 audioclas
모듈에 속하는 메소드를 찾으세요.
또한 이 모듈을 실행하기 위해 즉시 사용 가능한 Docker 컨테이너를 준비했습니다. 실행하려면:
docker search deephdc
docker run -ti -p 5000:5000 -p 6006:6006 -p 8888:8888 deephdc/deep-oc-audio-classification-tf
이제 http://0.0.0.0:5000/ui를 열고 audioclas
모듈에 속하는 메소드를 찾으십시오.
사용자 정의 데이터 세트를 사용하여 자신만의 오디오 분류자를 훈련할 수 있습니다. 이를 위해서는 다음을 수행해야 합니다.
이미지를 ./data/audios
폴더에 넣으세요. 데이터가 다른 곳에 있는 경우 훈련 인수에서 dataset_directory
매개변수를 설정하여 해당 위치를 사용할 수 있습니다. 표준 오디오 형식(예: .mp3
또는 .wav
)을 사용하세요.
참고 분류자는 10초 샘플에서 작동합니다. 따라서 오디오 파일이 10초보다 길거나 짧다면 10초의 배수로 지속되도록 루프로 연결됩니다. 따라서 22초 길이의 오디오 파일은
*-0.npy
,*-1.npy
및*-2.npy
라는 3개의 임베딩을 생성합니다.
먼저 ./data/dataset_files
디렉터리에 다음 파일을 추가해야 합니다.
필수 파일 | 선택적 파일 |
---|---|
classes.txt , train.txt | val.txt , test.txt , info.txt |
train.txt
, val.txt
및 test.txt
파일은 오디오 이름(또는 상대 경로)을 레이블 번호( 0에서 시작 해야 함)에 연결합니다. classes.txt
파일은 해당 레이블 번호를 레이블 이름으로 변환합니다. 마지막으로 info.txt
를 사용하면 각 클래스에 대한 정보(예: 데이터베이스의 오디오 파일 수)를 제공할 수 있습니다.
compute_embeddings=False
옵션을 사용하는 경우 파일 경로는 원본 오디오 파일 대신 임베딩의 .npy
경로를 가리켜야 하며 dataset_directory
매개변수는 임베딩이 포함된 폴더를 가리켜야 합니다.
./data/demo-dataset_files
에서 이러한 파일의 예를 찾을 수 있습니다.
http://0.0.0.0:5000/ui로 이동하여 TRAIN
POST 방법을 찾으세요. 'Try it out'을 클릭하고 원하는 교육 인수를 변경한 다음 'Execute'를 클릭하세요. 훈련이 시작되고 이전에 실행된 모든 훈련의 기록을 제공하는 TRAIN
GET 메소드를 실행하여 상태를 추적할 수 있습니다.
모듈에 Tensorboard와 같은 일종의 훈련 모니터링이 구성된 경우 http://0.0.0.0:6006에서 이를 따라갈 수 있습니다.
http://0.0.0.0:5000/ui로 이동하여 PREDICT
POST 메서드를 찾으세요. 'Try it out'을 클릭하고 원하는 테스트 인수를 변경한 다음 'Execute'를 클릭하세요. 다음 중 하나 를 제공할 수 있습니다.
data
인수입니다.또는
url
인수. 다음은 테스트 목적으로 사용할 수 있는 URL의 예입니다. 이 프로젝트의 코드는 IBM의 원본 저장소를 기반으로 하며 Yu 외 연구진의 '약한 감독 오디오 분류를 위한 다중 레벨 주의 모델' 논문을 구현합니다.
원본 저장소와 관련된 주요 변경 사항은 다음과 같습니다.
이 프로젝트가 유용하다고 생각되면 DEEP Hybrid DataCloud 프로젝트를 인용해 보세요.
가르시아, 알바로 로페스, 그 외 여러분. 기계 학습 워크로드 및 애플리케이션을 위한 클라우드 기반 프레임워크입니다. IEEE 액세스 8(2020): 18681-18692.
아래 참고자료와 함께:
- Jort F. Gemmeke 외, 오디오 세트: 오디오 이벤트에 대한 온톨로지 및 사람이 라벨링한 데이터세트, IEEE ICASSP, 2017.
- Qiuqiang Kong 외, 주의 모델을 사용한 오디오 세트 분류: 확률론적 관점. arXiv 사전 인쇄 arXiv:1711.00927 (2017).
- Changsong Yu, et al., 약한 지도 오디오 분류를 위한 다단계 주의 모델. arXiv 사전 인쇄 arXiv:1803.02353 (2018).
- S. Hershey 외, 대규모 오디오 분류를 위한 CNN 아키텍처, arXiv 사전 인쇄 arXiv:1609.09430, 2016.