안녕하세요 저는 wav 오디오 파일의 샘플 속도를 44.1kHz에서 8kHz로 다운 샘플링해야합니다. 바이트 배열을 사용하여 모든 작업을 수동으로 수행해야합니다. 이는 학업 목적을위한 것입니다.Java - 다운 샘플링 wav 오디오 파일
현재 두 개의 클래스 인 Sink 및 Source를 사용하여 바이트 배열을 팝업하고 푸시합니다. 선형 보간법을 사용하여 데이터 청크를 다운 샘플링해야하는 부분에 도달하기 전까지는 모든 것이 잘 진행됩니다.
44100에서 8000Hz로 다운 샘플링 했으므로 128 000 000 바이트를 포함하는 바이트 배열을 어떻게 보간합니까? 지금은 i % 2 == 0, i % 2 == 1 및 i % 80 == 0에 따라 5, 6 또는 7 바이트를 팝핑하고 있으며이 5, 6 또는 7 바이트의 평균을 새 파일로 푸시합니다. .
실제로 결과는 원본보다 작지만 Windows Media Player에서 재생할 수 없습니다 (파일을 읽는 중에 오류가 있음). 올바른 트랙을들을 수는 있지만 많은 소음이 있습니다. 소음.
그래서, 요약하면 선형 보간 부분에 대한 도움이 필요합니다. 미리 감사드립니다.
지금 사용중인 코드를 게시하면 버그를 쉽게 찾을 수 있습니다. –