WAV파일에서 구간별로 볼륨을 구하고 싶습니다
글쓴이: aubin / 작성시간: 일, 2014/04/13 - 4:02오전
안드로이드로 Wav파일에 Gap이 있으면 자동으로 잘라주는 앱을 구현하고 있는중인데요
안드로이드로 하기전에 먼저 자바로 프로토타입을 만들고 있는데
wav파일을 읽어서 볼륨이 0에 가까운 부분을 자를려고 하는데
근데 이 wav파일에서 각각 볼륨을 어떻게 구해야할지 감이 안오네요.
샘플을 Byte단위로 잘라 출력한 값을 Goldwave랑 비교해 보려고 했지만 전혀 값이 일치하지를 않아서 애를 먹고 있습니다.
FFT를 써야한다는 얘기도 있는데 이걸 어떻게 적용해야할지 잘 모르겠네요.
구글에서 wav amplitude로 검색해봤지만 javax를 사용하는 방법이 대부분이던데 안드로이드에서는 javax를 쓰지 못하니까 도움이 되질 않더군요.
wav파일에서 각각 샘플단위별로? 볼륨을 구하는 방법을 알고계신 분께서는 알려주시면 감사하겠습니다.
Forums:
간단한 방법으로는.
분명 갖다 쓸 수 있는 라이브러리가 있을 걸로 생각이 됩니다만 정 힘들 경우..
일반 WAV의 경우는 무압축 PCM데이터가 그대로 저장돼있습니다. 따라서 적당한 시간단위(수십ms정도?)로 잘라낸 뒤 최댓값과 최솟값의 차이를 구하면 그것이 볼륨이 됩니다. 아날로그 신호의 진폭을 구하는 것과 같습니다.
순간적으로 튀는 값을 제거하려면 가중치를 적용하는 방식으로 해결할 수 있습니다.
--
댓글 달기