기록
[GPT가 알려주는] pcm 이란? 본문
짧고 정확하게!
PCM 파일이란?
- PCM(Pulse Code Modulation) = 압축하지 않은 원시(raw) 오디오 샘플들의 나열이에요.
- 보통 헤더가 없음(= 메타데이터가 없어 “샘플레이트, 비트깊이, 채널수”를 프로그램에 직접 알려줘야 재생/변환 가능).
- 반대로 WAV는 “PCM 데이터를 헤더(RIFF) 로 감싼 포맷”이라, 플레이어가 스스로 설정을 알아요.
꼭 알아야 할 5가지 속성
PCM을 다룰 땐 아래 정보를 알아야 합니다:
- 샘플레이트: 예) 16000 Hz(16 kHz), 48000 Hz 등
- 비트 깊이/형식: 예) s16le(signed 16-bit little-endian), f32le(float 32-bit)
- 채널 수: 1=모노, 2=스테레오(보통 L/R 인터리브)
- 엔디언: 보통 LE(little-endian)
- 부호: signed vs unsigned (대부분 signed)
예: “16kHz, 모노, 16-bit, little-endian, signed” = **s16le @ 16kHz mono**가 가장 흔해요(웹RTC/ASR에서도 표준급).
빠른 재생/변환 예시
(파일이 s16le/16kHz/모노라고 가정)
재생:
ffplay -f s16le -ar 16000 -ac 1 input.pcm
WAV로 변환:
ffmpeg -f s16le -ar 16000 -ac 1 -i input.pcm output.wav
WAV → PCM 추출:
ffmpeg -i input.wav -f s16le -ar 16000 -ac 1 output.pcm
흔한 함정
- 샘플레이트를 틀리게 지정하면 소리가 빠르거나 느리게 들려요.
- 비트깊이/엔디언이 맞지 않으면 지직거림/노이즈 발생.
- 헤더가 있는 WAV를 PCM처럼 읽으면 소음만 납니다(반대도 마찬가지).
감 잡기(대략 용량)
- 16kHz · s16le · 모노 → 1초 ≈ 32KB (16000샘플 × 2바이트).
- 스테레오면 ×2.
필요하면, 네가 가진 pcm의 “정확한 형식”을 알려주면 맞는 ffmpeg 명령을 딱 맞춰서 적어줄게!
'잡동사니 > GPT가 알려주는' 카테고리의 다른 글
| [GPT가 알려주는] SPA (Single Page Application)란? (0) | 2025.09.30 |
|---|---|
| [GPT가 알려주는] array spacing (2channel 선형 마이크 간격)을 물리적으로 변경할 수 없을 때 가청대역에서 beamforming 하는 방법 (0) | 2025.09.18 |
| [GPT가 알려주는] 오디오 로브 (lobe) (0) | 2025.09.17 |
| [GPT가 알려주는] adb shell sync (0) | 2025.09.17 |
| [GPT가 알려주는] 사이드 로브와 백 로브 (0) | 2025.09.17 |