filippogiruzzi/voice_activity_detection

Voice Activity Detection based on Deep Learning & TensorFlow

해결하는 문제

이 프로젝트는 오디오 신호에서 음성과 노이즈를 구분하는 실시간 음성 활동 감지(VAD) 시스템을 구현합니다. 원시 오디오 처리, 딥러닝 모델 학습 및 사람의 목소리가 포함된 오디오 세그먼트를 식별하기 위한 추론을 수행하는 완전한 파이프라인을 제공합니다.

작동 방식

시스템은 특징 추출 및 분류 모델로 구성된 파이프라인을 사용합니다:

  1. 특징 추출: 1024개 샘플의 오디오 윈도우(16 kHz 기준)를 MFCC(Mel-frequency cepstral coefficients), MFCC deltas, MFCC delta-deltas 및 RMS 에너지(RMS energy)를 사용하여 특징 텐서로 변환합니다.
  2. 분류: 이러한 특징은 PyTorch로 구현된 1D-ResNet(Residual Network)에 입력됩니다. 모델은 1D 컨볼루션, 배치 정규화(batch normalization), 글로벌 평균 풀링(global average pooling)으로 구성된 스택형 잔차 블록을 사용하며, 음성 로짓(speech logit)을 출력하는 완전 연결 헤드(fully connected head)로 마무리됩니다.
  3. 추론: 시스템은 슬라이딩 윈도우 추론과 결과를 정교화하기 위한 선택적 사후 처리 평활화(post-processing smoothing)를 지원합니다.

대상 사용자

이 프로젝트는 오디오 처리 및 딥러닝에 관심이 있는 개발자와 연구자, 특히 PyTorch를 사용하여 경량 VAD 시스템을 구현하거나 실험하고자 하는 분들을 위해 설계되었습니다.

주요 특징

  • 높은 정확도: LibriSpeech 데이터셋에서 97%의 테스트 정확도를 달성했습니다.
  • 전체 파이프라인: 원시 오디오로부터의 데이터셋 생성, 학습 및 추론을 위한 도구를 포함합니다.
  • Docker 지원: 일관된 배포를 위해 CPU 및 GPU 지원 Docker 이미지를 제공합니다.
  • 유연한 아키텍처: 1D-ResNet 모델은 ModelConfig dataclass를 통해 구성할 수 있습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트