2013-11-25 2 views
1

사람들이 말하는이 오디오 파일에 일시 중지 및 다시 말하기가 포함되어 있습니다. 그들이 말하는 동안 그리고 그들이 말하는 동안, 배경에서 때때로 우는 아이들, 차가 부러지는 소리, 밖에서있을 때 들리는 것들이 있습니다.음성 탐지 알고리즘의 정확도 향상

내 목표는 말하고있을 때 그 부분을 유지하고 말하지 않을 때 그 부분을 자르는 것입니다. 배경 소음을 필터링 할 필요는 없습니다.

기본적으로 내 최종 목표는 내가 시도 이것이

Start in seconds, End in seconds 

같은 컷 목록을 가지고있다?

  1. 나는 수동으로
  2. 내가 수동으로 소음은 함께 연설을 포함하지 않는 모든 부분을 맞춤으로써 파일을 생성 한 음성 만. 함께 연설을 포함하는 모든 부분을 맞춤으로써 파일 (십초) 생성 I는 고속 푸리에 변환을 적용하여, 그 주파수 + 진폭
  3. 변환되었다
  4. . (50초)는 I 각 100 밀리 오디오 파일을 걷고 FFT 스냅 샷을
  5. 전에서 (하나의 샷의 모든 값을 넣어 내 경우 512)를 목록에 입력하고 기계 학습 알고리즘 (numl) (첫 번째 경우에는 voice = true이고 두 번째 경우에는 voice = false)
  6. 그럼 기본 오디오 파일을 사용하지만 기본적으로 동일한 작업을하지만 이번에는 내 기계 학습 모델의 결과를 사용하여 그것은 스피치이든 아니든간에 그리고 그것을 실현하는 시간을 초 단위로 출력합니다.

내 문제는 잘못된 양성 및 거짓 음란성이 많다는 점입니다. 아무도 없을 때 음성을 인식하는 것처럼 보이고 그 반대도 마찬가지입니다.

이것은 아마도 심하게 훈련 된 모델 (의사 결정 트리를 사용합니다)의 이유입니까, 아니면 더 나은 결과를 얻기 위해 다른 조치를 취해야합니까?

+0

를 사용하여 A PCA는 기본 스피커와 배경 잡음을 분리 로 시작하는 더 나은 데이터를 제공해야합니다. – greeness

답변

0

음성에 대한 일반적인 오해는 데이터 프레임의 무관 한 시퀀스로 취급된다는 것입니다. 음성의 핵심 특성은 일련의 데이터 포인트뿐만 아니라 시간적으로 연속적인 프로세스라는 것입니다.

합리적인 VAD는이를 고려하여 HMM과 같은 시간 중심 분류자를 사용해야합니다. 당신의 경우에 시간을 고려하는 분류 자라면 누구나 백그라운드 레벨을 모니터링하는 간단한 에너지 기반 음성 활동 감지 일 것이거나 GMM-HMM 기반 VAD가 모든 정적 분류기보다 나은 방법 일 것입니다.

간단한 알고리즘에 대한 설명은 Wikipedia을 확인하십시오.

당신이 좋은 정교한 VAD 구현을 찾고 있다면, 당신은 한 WebRTC 프로젝트 하나를 찾을 수 있습니다,이 VAD는 구글에 의해 개발되었다 :

https://code.google.com/p/webrtc/source/browse/trunk/webrtc/common_audio/vad/

+0

C#을 구현 했습니까? – Gewinn

+0

C#의 C 코드는 interop을 통해 플러그인하여 사용할 수 있습니다. C/C++/Matlab에서 구현되기 때문에 C#에서 좋은 VAD를 찾을 수있는 가능성은 거의 없습니다. –

+0

회신을 편집하여 모든 사람이 볼 수 있도록이 VAD를 사용하는 방법을 Google에서 C#으로 공유하십시오. – Gewinn