리눅스에서 고해상도 FLAC 리샘플링하는 방법

고해상도 Flac Sox 리샘플링 00 특징 이미지

고해상도 FLAC 파일은 하이파이 오디오 경험의 정점 중 하나입니다. 그러나 CD를 FLAC 파일로 변환하면 그 파일들이 특정 장비에서만 재생 가능한 경우가 많다는 것을 알게 될 수 있습니다. 이는 고해상도 오디오 트랙을 소유하지만 이를 제대로 재생할 도구가 없는 사용자에게 문제가 될 수 있습니다.

이 문제를 해결하는 한 가지 방법은 sox를 사용하여 고해상도 FLAC 파일을 리샘플링하는 것입니다. 이 튜토리얼에서는 sox의 기본 사항과 이를 사용하여 리눅스에서 FLAC 파일을 리샘플링하는 방법을 설명합니다.

: 다양한 오디오 형식에 혼란스러우시다면, MP3, AAC, FLAC 등 여러 형식 간의 차이를 이해하기 위한 이 가이드를 확인해 보세요.

목차

  • sox란 무엇이며 리샘플링은 어떻게 작동하는가?
  • sox를 사용하여 고해상도 FLAC 파일 리샘플링하기
  • 리샘플링 프로세스 자동화
  • 자주 묻는 질문

sox란 무엇이며 리샘플링은 어떻게 작동하는가?

sox는 기본적으로 명령줄 오디오 처리 프로그램입니다. Audacity와 달리 터미널에서 직접 오디오 파일을 조작할 수 있도록 해줍니다. 이로 인해 단순한 편집 작업이나 복잡한 오디오 작업을 자동화하고자 하는 사람들에게 유용합니다.

고해상도 Flac Sox 리샘플링 02 Sox 도움 화면

리샘플링은 반면에 복잡한 알고리즘을 사용하여 고음질 신호를 저음질 신호로 변환하는 과정입니다. 이 방법은 오디오 트랙의 품질을 유지하면서 컴퓨터에 저장하는 데이터 양을 줄여줍니다.

그 외에도 리샘플링을 통해 저사양 장치에서도 고해상도 FLAC 파일을 재생할 수 있습니다. 예를 들어, Rockbox iPod Video는 24비트 오디오 파일 재생 시 지연 및 버벅거림 현상을 겪을 수 있습니다.

고해상도 Flac Sox 리샘플링 04 Rockbox 로딩 화면

대안: sox 이외에도 flac2all을 사용하여 FLAC 파일을 다른 현대 오디오 형식으로 트랜스코딩할 수 있습니다.

sox를 사용하여 고해상도 FLAC 파일 리샘플링하기

참고: 아래 단계는 Ubuntu를 기준으로 하지만, 사용하는 리눅스 배포판에 관계없이 사용법은 동일합니다.

FLAC 파일을 리샘플링하는 첫 번째 단계는 sox 유틸리티와 그 의존성을 설치하는 것입니다. Debian 및 Ubuntu에서 다음 명령어를 실행하세요:

sudo apt install sox flac ffmpeg

고해상도 Flac Sox 리샘플링 05 Sox 설치중

정상적으로 설치되었는지 확인합니다: sox --version.

고해상도 Flac Sox 리샘플링 06 Sox 버전 확인

내 FLAC 파일의 비트 깊이와 샘플 속도를 찾으려면 내장된 file 프로그램을 사용하여 터미널에 이 세부 정보를 출력합니다:

file sample.flac

내 경우 FLAC 파일의 비트 깊이는 24비트이고 샘플 속도는 96 kHz입니다.

고해상도 Flac Sox 리샘플링 07 FLAC 비트 깊이 및 샘플 속도 확인

sox에 맞는 적절한 리샘플 속도 찾기

FLAC 파일에 맞는 적절한 리샘플 속도를 찾습니다. 리샘플링의 일반적인 규칙은 목표 리샘플 속도가 원래 샘플 속도를 2 또는 4로 나누어 떨어져야 한다는 것입니다.

고해상도 Flac Sox 리샘플링 08 나눌 수 있는 샘플 속도

192 kHz FLAC 파일은 왜곡 최소화 보장을 위해 96 또는 48 kHz로만 리샘플링해야 합니다.

고해상도 FLAC 파일의 리샘플링 최적화

사용할 올바른 리샘플 속도를 알게 되면, sox를 실행하여 FLAC 파일을 리샘플링할 수 있습니다. 내 경우 96 kHz 파일을 리샘플링하므로 다음 명령어를 실행합니다:

sox -S sample.flac -b 16 resample.flac rate -v -L 48000 dither
  • -b 플래그는 sox에게 출력 파일의 새로운 비트 깊이를 설정하라고 지시합니다. 예를 들어, 16의 값은 새로운 비트 깊이를 16비트로 설정합니다.
  • 반면에 rate 옵션은 sox에게 출력 파일의 새로운 샘플 속도를 설정하라고 지시합니다.
  • -v 플래그는 sox에게 “매우 높은 품질”의 리샘플링 알고리즘을 사용하라고 강제합니다.
  • -L 플래그는 sox에게 리샘플링 중 “선형 위상” 응답을 사용하라고 강제합니다. 이는 FLAC 파일의 “신호 에코“를 상쇄하려고 시도하는 필터입니다.
  • 마지막으로, dither 옵션은 전체 트랙에 작은 양의 잡음을 생성합니다. 이는 리샘플링 과정에서 발생하는 결점을 숨기기 위한 마스크 역할을 합니다.

고해상도 Flac Sox 리샘플링 09 단일 리샘플 작업

리샘플링 프로세스 자동화

sox를 개별 파일에 사용할 수 있지만 전체 프로세스를 셸을 사용하여 자동화할 수도 있습니다. (초보자용 셸 스크립팅 가이드를 확인하세요.) 이는 고해상도 FLAC 트랙의 전체 앨범을 리샘플링하고자 할 때 유용합니다.

리샘플링 프로세스를 자동화하는 가장 빠른 방법 중 하나는 Bash for 루프를 사용하는 것입니다. 예를 들어 다음 코드를 실행하여 FLAC 파일의 전체 폴더를 리샘플링할 수 있습니다:

mkdir -p ./flac-dir/resample && cd ./flac-dir  
for flac in *.flac; do sox -S "${flac}" -b 16 resample/"${flac}" rate -v -L 48000 dither; done

첫 번째 명령어는 새로운 FLAC 파일을 위한 출력 폴더를 생성하고 현재 작업 디렉터리를 변경합니다. 두 번째 명령어는 현재 폴더의 모든 파일을 순회하며 sox를 사용해 리샘플링을 수행합니다.

고해상도 Flac Sox 리샘플링 10 루프 리샘플 작업

자주 묻는 질문

sox를 사용하여 MP3 파일을 리샘플링할 수 있나요?

sox의 rate 명령은 손실 형식과 함께 작동하지 않으므로 MP3 파일을 리샘플링하는 데 사용할 수 없습니다.

“감지된 파일 형식에 대한 핸들러 없음” 오류가 발생합니다. sox가 고장났나요?

아니요! 이 오류는 sox가 고해상도 FLAC 파일을 읽고 디코딩할 수 없을 때 발생합니다. 이 문제의 가장 일반적인 원인은 누락된 시스템 라이브러리와 누락된 컴파일러 플래그입니다.

누락된 시스템 라이브러리를 수정하려면 다음 명령어를 실행하세요: sudo apt install libsox-fmt-all. 누락된 컴파일러 플래그를 수정하려면 현재 sox 패키지를 제거하고 소스에서 다시 컴파일해야 합니다.

sox가 고해상도 FLAC 파일이 클리핑된다고 보고합니다. 리샘플링이 실패했나요?

고해상도 FLAC 파일이 리샘플링 중 클리핑되는 것은 정상입니다. 리샘플링 과정에서 FLAC 파일의 높은 주파수 데이터 대부분이 생략됩니다.

그럼에도 불구하고 sox에게 리샘플링 중 발생할 수 있는 클리핑을 보상하도록 지시하는 것이 가능합니다. 이를 위해 sox 명령어에 -G 플래그를 추가합니다: sox -S sample.flac -G -b 16 resample.flac rate -v -L 48000 dither.

이미지 크레딧: Unsplash. 모든 변경 및 스크린샷은 Ramces Red에 의해 수행되었습니다.