2009-11-27 4 views
1

wav 파일에서 사운드가없는 섹션을 추적하는 방법은 무엇입니까? 내가 개발하고 싶은 소규모 소프트웨어는 wav 파일을 포함하고 있으며, 볼륨 영역이없는 지점으로 간주합니다. wav 파일의 볼륨이 낮다는 것을 프로그램에서 어떻게 알 수 있습니까? Java 또는 MFC를 사용합니다.WAV 파일에서 사운드 영역을 추적하는 방법?

답변

2

글쎄, 웨이브 파일은 기본적으로 값의 목록으로, 약간의 비율 (보통 44100 Hz)로 신중하게 구분 된 음파를 나타냅니다. 침묵은 값이 0에 가까울 때 기본적으로 발생합니다. 일부 임계 값을 설정하고 값이 해당 임계 값 아래 인 연속적 (길이를 100ms로 가정) 영역을 찾습니다.

0

간단한 침묵 탐지는 결과적으로 사운드 청크와 일부 값 (레코드 품질에 따라 선택)을 비교함으로써 수행됩니다. 추천

예시 :

abs(track[position]) < 0.1 

또는

(track[position]) < 0.1) && (track[position]) > -0.1) 

우리가 덩어리가 [-1, 1] 플로트 가정한다면

.

소리가 표준화되면 더 잘 작동합니다.

7

나는 신호의 RMS를 계산함으로써 침묵 탐지에 성공했다. 이것은 (오디오 샘플의 배열을 가지고 가정) 다음과 같은 방식으로 이루어집니다 : RMS가 특정 임계 값 미만이면

long sumOfSquares = 0; 
    for (int i = startindex; i <= endindex; i++) { 
     sumOfSquares = sumOfSquares + samples[i] * samples[i]; 
    } 
    int numberOfSamples = endindex - startindex + 1; 
    long rms = Math.sqrt(sumOfSquares/(numberOfSamples)); 

는, 당신이 침묵하는 것을 고려할 수 있습니다.

관련 문제