도움말 Kaggle에 TensorFlow과 그레이트 배리어 리프 (Great Barrier Reef)를 보호하기 도전에 참여

오디오 분류

오디오가 나타내는 것을 식별하는 작업을 오디오 분류 라고 합니다 . 오디오 분류 모델은 다양한 오디오 이벤트를 인식하도록 훈련됩니다. 예를 들어, 박수 치기, 손가락 맞추기 및 입력의 세 가지 다른 이벤트를 나타내는 이벤트를 인식하도록 모델을 훈련시킬 수 있습니다. TensorFlow Lite는 모바일 애플리케이션에 배포 할 수있는 최적화 된 사전 학습 된 모델을 제공합니다. 여기에서 TensorFlow를 사용한 오디오 분류에 대해 자세히 알아보세요.

다음 이미지는 Android에서 오디오 분류 모델의 출력을 보여줍니다.

Android 예시 스크린 샷

시작하다

TensorFlow Lite를 처음 사용하고 Android로 작업하는 경우 시작하는 데 도움이되는 다음 예제 애플리케이션을 탐색하는 것이 좋습니다.

TensorFlow Lite Task Library의 기본 제공 API를 활용하여 단 몇 줄의 코드로 오디오 분류 모델을 통합 할 수 있습니다. TensorFlow Lite 지원 라이브러리를 사용하여 고유 한 사용자 지정 추론 파이프 라인을 구축 할 수도 있습니다.

아래의 Android 예제는 TFLite Task Library를 사용한 구현을 보여줍니다.

Android 예제보기

iOS 예보기

Android / iOS 이외의 플랫폼을 사용 중이거나 TensorFlow Lite API에 이미 익숙한 경우 시작 모델 및 지원 파일 (해당하는 경우)을 다운로드하세요.

TensorFlow Hub에서 스타터 모델 다운로드

모델 설명

YAMNet은 오디오 파형을 입력으로 사용하고 AudioSet 온톨로지에서 521 개 오디오 이벤트 각각에 대해 독립적 인 예측을 수행하는 오디오 이벤트 분류기입니다. 이 모델은 MobileNet v1 아키텍처를 사용하며 AudioSet 코퍼스를 사용하여 학습되었습니다. 이 모델은 원래 TensorFlow Model Garden에서 출시되었으며, 여기에는 모델 소스 코드, 원본 모델 체크 포인트 및 더 자세한 문서가 있습니다.

작동 원리

TFLite로 변환 된 YAMNet 모델에는 두 가지 버전이 있습니다.

  • YAMNet 은 전이 학습, 웹 및 모바일 배포에 적합한 동적 입력 크기를 가진 원래 오디오 분류 모델입니다. 또한 더 복잡한 출력이 있습니다.

  • YAMNet / classification 은 더 간단한 고정 길이 프레임 입력 (15600 개 샘플)이있는 양자화 된 버전이며 521 개의 오디오 이벤트 클래스에 대해 단일 점수 벡터를 반환합니다.

입력

이 모델은 [-1.0, +1.0] 범위의 모노 16kHz 샘플로 표시된 0.975 초 파형을 포함하는 길이 15600의 1D float32 Tensor 또는 NumPy 배열을받습니다.

출력

이 모델은 YAMNet에서 지원하는 AudioSet 온톨로지의 각 521 클래스에 대한 예측 점수를 포함하는 2D float32 모양의 Tensor (1, 521)를 반환합니다. 점수 텐서의 열 인덱스 (0-520)는 모델 파일에 압축 된 관련 파일 yamnet_label_list.txt 로 제공되는 YAMNet 클래스 맵을 사용하여 해당 AudioSet 클래스 이름에 매핑됩니다. 사용법은 아래를 참조하십시오.

적합한 용도

YAMNet을 사용할 수 있습니다.

  • 다양한 오디오 이벤트에 대해 합리적인 기준을 제공하는 독립형 오디오 이벤트 분류기입니다.
  • 고수준 특징 추출기로 : YAMNet의 1024-D 임베딩 출력은 다른 모델의 입력 특징으로 사용될 수 있으며 특정 작업에 대해 소량의 데이터에 대해 학습 될 수 있습니다. 이를 통해 많은 레이블이 지정된 데이터를 요구하지 않고 대규모 모델을 종단 간 훈련하지 않고도 전문 오디오 분류기를 신속하게 만들 수 있습니다.
  • 웜 스타트 : YAMNet 모델 매개 변수를 사용하여 더 큰 모델의 일부를 초기화하여 더 빠른 미세 조정 및 모델 탐색이 가능합니다.

한계

  • YAMNet의 분류기 출력은 여러 클래스에서 보정되지 않았으므로 출력을 확률로 직접 처리 할 수 ​​없습니다. 주어진 작업에 대해 적절한 클래스 별 점수 임계 값 및 스케일링을 할당 할 수있는 작업 별 데이터로 보정을 수행해야 할 가능성이 높습니다.
  • YAMNet은 수백만 개의 YouTube 동영상에 대해 교육을 받았으며 이러한 동영상은 매우 다양하지만 평균 YouTube 동영상과 주어진 작업에 대해 예상되는 오디오 입력간에 도메인 불일치가있을 수 있습니다. 빌드하는 모든 시스템에서 YAMNet을 사용할 수 있도록 약간의 미세 조정 및 보정을 수행해야합니다.

모델 사용자 정의

제공되는 사전 훈련 된 모델은 521 개의 서로 다른 오디오 클래스를 감지하도록 훈련되었습니다. 전체 클래스 목록은 모델 저장소 의 라벨 파일을 참조하세요.

전이 학습이라고하는 기술을 사용하여 모델을 다시 훈련하여 원래 세트에없는 클래스를 인식 할 수 있습니다. 예를 들어, 여러 개의 새 노래를 감지하도록 모델을 다시 훈련 할 수 있습니다. 이렇게하려면 훈련하려는 각 새 레이블에 대한 훈련 오디오 세트가 필요합니다. 권장되는 방법은 몇 줄의 코드로 사용자 지정 데이터 세트를 사용하여 TensorFlow Lite 모델 학습 프로세스를 단순화하는 TensorFlow Lite Model Maker 라이브러리를 사용하는 것입니다. 전이 학습을 사용하여 필요한 훈련 데이터의 양과 시간을 줄입니다. 전이 학습의 예로 오디오 인식 을위한 전이 학습에서 배울 수도 있습니다.

추가 읽기 및 리소스

오디오 분류와 관련된 개념에 대해 자세히 알아 보려면 다음 리소스를 사용하세요.