sox를 사용하여 변환 한 .dat 형식의 값은 정규화되지 않은 것 같습니다. 누군가 내가 잘못하고있는 것을 볼 수 있기를 바랍니다.sox를 사용하여 .dat 형식으로 변환 한 값이 정규화되지 않은 것 같습니다.
this great SO post about sox and gnuplot에 설명 된 것과 비슷한 작업을하려고합니다. (Java에서 처리하기 위해 값을 보내므로 약간 다른 컨텍스트). 문제는 내 .dat 파일에서 "작은 값"을 얻는 반면, 맨 페이지에서는 -1과 1 사이에서 정규화된다고 말합니다.
sox 및 mp3 처리 패키지를 설치 한 후 다음을 수행합니다. 테스트 :
sox elevator.mp3 -c 1 -r 11000 elevator_mediumres.dat
cat elevator_mediumres.dat |cut -c21-33 > elevator_mediumres_values_only.dat
sort -n elevator_mediumres_values_only.dat > elevator_mediumres_values_only_sorted.dat
# echo min $(head -1 elevator_mediumres_values_only_sorted.dat) max $(tail -1 elevator_mediumres_values_only_sorted.dat)
이렇게하면 출력이 "min -0.48370361 max 9.1552734e-05"가됩니다. 내가 dat 대신 wav에 첫 번째 명령을 내리면 wav 파일이 정상적으로 들립니다. (Aerosmith의 "Love in a elevator"의 11kHz 모노로도 가능합니다.) 물론 수동으로 데이터를 정상화 할 수는 있지만 더 좋고 더 직접적인 방법이 있기를 바라고 있습니다.
덕분에,
-S-
수동으로 Java로 정규화를 끝내었지만, 누가 더 나은 방법을 추가 할 수 있는지에 관심이있었습니다. – Sondre