짧은 답
320kbit/s MP3라면 해롭지 않으니, 이미 가진 파일을 그대로 올리세요. 2026년 10월 5일에 같은 녹음을 무손실 오디오로 한 번, MP3와 AAC로 인코딩했다가 다시 디코딩한 뒤 한 번 더 채보했어요. 엔진은 세 가지예요. 기타 녹음 12개에는 Spotify의 Basic Pitch, 피아노 연주 50개에는 피아노 솔로 모델, 밴드 곡 하나에는 Mirelo를 썼어요. 320kbit/s MP3는 0에서 1까지의 척도에서 각 엔진의 온셋 F1을 최대 0.002 움직였고, 음은 수천 개 중 몇 개만 달라졌으며, 모든 파일의 길이를 샘플 단위까지 그대로 유지했어요. 192kbit/s MP3와 256kbit/s AAC는 점수를 최대 0.008 움직였는데, 올라간 경우와 내려간 경우가 비슷했고, AAC 파일은 최대 733샘플 더 길게 돌아왔어요.
MP3가 왜 음을 바꿀 수 있을까요?
MP3와 AAC는 귀가 알아차리기 어려운 세부를 버려요. 주로 큰 소리 옆의 작은 소리와 높은 주파수 대역이에요. Basic Pitch 같은 모델은 오디오를 시간-주파수 표현으로 읽는데, 사람이 못 듣는 세부를 모델도 똑같이 무시한다는 보장은 없어요. 그래서 모델의 임계값 근처에 있는 음은 스펙트럼이 조금만 달라져도 생기거나 사라질 수 있어요.
앞선 연구는 영향이 작다고 봐요. Urbano 연구진은 손실 인코딩에서 MFCC 특징이 약 160kbit/s부터 안정적이고, 피치 클래스(옥타브를 뺀 음이름)를 따르는 크로마 특징은 코덱이나 비트레이트의 영향을 거의 받지 않는다는 것을 확인했어요(ISMIR 2014). 이들이 측정한 것은 특징이고, 저희가 알고 싶었던 것은 채보된 음이었어요.
현실적인 이유도 있었어요. 녹음과 그 재생용 음원의 무손실 사본이 악보 저장 용량의 77%를 차지했고, 정확도에 손해가 없을 때만 더 작은 사본을 쓰고 싶었어요.
테스트 방법
모든 녹음을 FFmpeg 8.1.1로 각 코덱에 통과시켰어요(LAME은 고정 비트레이트 320 또는 192kbit/s, FFmpeg 자체 AAC 인코더는 256kbit/s). 그런 다음 업로드된 파일을 읽을 때와 같은 코드로 디코딩했어요. 대조군으로는 무손실 오디오를 0.01dB만 바꿨어요. 아무도 들을 수 없는 변화예요. 코덱이 전혀 없을 때 측정값이 얼마나 움직이는지 보려는 거예요. 세 엔진 모두 결정론적이라 같은 입력이면 같은 음이 나와요.
| 엔진 | 녹음 | 기준 음 |
|---|---|---|
| 악기 하나용으로 ScoreStarling이 실행하는 Basic Pitch | GuitarSet 녹음 12개(연주자 여섯 명이 각각 솔로 하나와 반주 하나), Slakh2100 밴드 곡의 처음 60초, 저희가 직접 쓰고 합성한 58초짜리 밴드 곡 | 데이터셋의 어노테이션 |
| Kong 연구진의 피아노 솔로 모델 | 피아노 곡 25곡(퍼블릭 도메인 악보 24곡과 저희가 쓴 1곡). 곡마다 루바토를 다르게 해서 두 번씩 연주하고 SoundFont 피아노와 서스테인 페달로 렌더링한 연주 50개 | 연주된 음 |
| Mirelo의 Audio-to-MIDI(a2m-1.1) | 같은 60초 Slakh 밴드 곡, 무손실과 MP3 320만 | 곡의 MIDI |
온셋(음의 시작점) F1은 채보된 음의 음높이가 기준 음과 50센트 이내이고 시작 시점이 50ms 이내일 때 맞은 음으로 세는 지표예요. 빠뜨린 음과 잘못 더한 음을 똑같이 감점하고, 1.0이 만점이에요. 이 지표는 저희 정확도 글에서 자세히 설명해요.
악기 하나일 때는 무엇이 달라졌나요?
거의 없어요. 기타 녹음 12개에서 Basic Pitch의 온셋 F1은 어떤 형식에서도 0.761에서 0.764 사이에 머물렀고, 스테레오 파일은 WAV의 14–23%로 줄었어요.
| 측정 항목 | 무손실 | 대조군 | MP3 320 | AAC 256 | MP3 192 |
|---|---|---|---|---|---|
| 온셋 F1, 기타 | 0.7626 | 0.7627 | 0.7611 | 0.7644 | 0.7616 |
| 온셋+오프셋 F1, 기타 | 0.5224 | 0.5222 | 0.5212 | 0.5228 | 0.5210 |
| 온셋 F1, Slakh 곡 | 0.5204 | 0.5210 | 0.5204 | 0.5240 | 0.5227 |
| 온셋 F1, 저희 밴드 곡 | 0.7136 | 0.7136 | 0.7123 | 0.7089 | 0.7054 |
| 찾은 음, 기준 음 3,893개 중 | 2,741 | 2,742 | 2,739 | 2,744 | 2,737 |
| 찾은 음 중 달라진 것 | — | 1 | 10 | 17 | 14 |
| 어노테이션과 같은 조 | 12개 중 10개 | 12개 중 10개 | 12개 중 10개 | 12개 중 10개 | 12개 중 10개 |
| 템포 유지 | — | 14개 중 14개 | 14개 중 14개 | 14개 중 14개 | 14개 중 14개 |
| 길이 변화(샘플) | — | 0 | 0 | +16에서 +733 | 0 |
| 신호 대 잡음비, dB(중앙값) | — | 58.4 | 53.2 | 39.4 | 30.3 |
| 크기, 모노 / 스테레오 | 100% | 100% | 45% / 23% | 23% / 17% | 27% / 14% |
무손실 점수는 10월 3일 글의 0.744가 아니라 0.763이에요. 10월 4일부터 ScoreStarling이 악기 하나를 한 줄로 적게 되면서 솔로 다섯 곡이 달라졌기 때문이에요. 두 번 모두 Basic Pitch 0.4.0을 썼어요.
피아노 솔로는 어땠나요?
피아노 모델은 어떤 형식에서도 같은 음을 들었어요. 연주된 음에 대한 온셋 F1은 무손실 0.9427, 대조군 0.9426, MP3 320 0.9428, MP3 192 0.9433이었고, 어떤 형식에서도 적힌 음의 약 92.2%를 찾아냈어요.
그 음에서 박과 마디선을 읽어 내는 단계는 덜 안정적이었는데, 원인은 코덱이 아니었어요. 들리지 않는 대조군 변환 뒤에는 연주 50개 중 5개에서, MP3 320 뒤에는 7개에서 마디선 위치가 달라졌고, 그중 4개는 대조군과 같은 연주였어요. 이 단계는 어떤 변화에든 반응하기 때문에, MP3 때문에 생긴 손실이 아니라 측정에 섞인 잡음으로 봐요. 피아노에는 AAC를 돌리지 않았어요.
밴드 전체는 어땠나요?
Mirelo로는 60초짜리 밴드 곡으로 유료 비교를 한 번 했어요. 무손실 파일과 MP3 모두 음과 드럼 타격 842개가 나왔고, 그중 829개(98.5%)는 무손실 결과에서 같은 음이 시작한 시점과 50ms 이내였어요.
| 측정 항목 | 무손실 | MP3 320 |
|---|---|---|
| 온셋 F1, 음높이가 있는 음(곡에 703개) | 0.6707 | 0.6687 |
| 드럼 온셋 F1(타격 423개) | 0.6983 | 0.7023 |
| 베이스 / 기타 / 피아노 온셋 F1 | 0.455 / 0.681 / 0.827 | 0.471 / 0.678 / 0.832 |
| 템포, BPM | 133.0 | 133.0 |
왜 일부 음이 달라졌을까요?
입력이 조금이라도 바뀌면, 모델의 임계값 바로 언저리에 있는 음 몇 개가 움직여요. Basic Pitch가 찾은 약 2,740개 음 가운데, 들리지 않는 대조군은 1개, MP3 320은 10개, AAC는 17개, MP3 192는 14개를 움직였고, 한 녹음에서 7개를 넘은 적은 없어요. MP3 320은 비교 다섯 건 중 세 건에서 근소하게 낮았고(0.0013–0.0020), 한 건은 같았고, 한 건은 근소하게 높았어요. AAC와 MP3 192는 기타와 Slakh 곡에서는 올라가고 저희가 합성한 밴드 곡에서는 내려갔는데, 폭은 최대 0.008이에요. 정확도를 정말 깎는 코덱이라면 어디서나 뚜렷하게 떨어졌을 텐데, 그런 경우는 없었어요.
코덱이 정말 바꾸는 것은 양 끝의 타이밍이에요. AAC 인코더는 맨 앞에 소리 없는 프라이밍 샘플을 넣고 끝은 한 프레임이 되도록 채워요. Apple 문서에는 지연이 2112샘플이라고 나와 있어요. 저희 AAC 파일은 디코딩하면 16–733샘플 더 길었어요. FFmpeg는 인코더 지연을 기록하는 Xing/LAME 헤더를 붙여 MP3를 쓰는데, 저희 MP3 파일은 원래 길이 그대로 디코딩됐어요. 악보를 녹음과 맞춰 재생할 때는 이 점이 중요해요.
어떤 파일을 올려야 할까요?
- 이미 가진 파일이에요. WAV를 먼저 MP3로 바꿔도 얻는 것이 없고, MP3를 WAV로 되돌려도 잃은 것이 돌아오지 않아요.
- 꼭 압축해야 한다면 320kbit/s MP3가 신호 대 잡음비 기준으로 원본에 가장 가까웠고, 정확한 길이도 유지했어요.
- 낮은 비트레이트는 측정하지 않았어요. 192kbit/s까지만 했으니, 녹음 앱이 어떤 설정으로 저장하는지 확인해 보세요.
- 형식보다 녹음하는 방식이 훨씬 중요해요. 또렷한 파트 하나, 적은 리버브, 배경 음악 없음이 기본이에요. 확인할 점은 저희 음성 메모 가이드에 있어요.
ScoreStarling은 이제 이렇게 동작해요. 2026년 10월 5일부터 WAV, AIFF, FLAC로 올린 파일은 320kbit/s MP3로 보관되고 그 사본으로 채보해요. 이렇게 하면 스테레오 녹음이 WAV 크기의 23%로 저장돼요. MP3, M4A, Ogg, 동영상 파일은 받은 그대로 보관하니, MP3 악보 변환을 할 때도 가진 파일을 그대로 올리세요.
이 테스트로 알 수 없는 것
- Mirelo는 밴드 곡 하나뿐이었고, 피아노도 실제 피아노 녹음이 아니라 합성한 소리예요.
- 노래 녹음은 포함하지 않았어요. 저희가 직접 녹음한 테이크는 비공개이고 이미 AAC 파일이어서 무손실 기준으로 쓸 수 없었어요.
- 형식마다 인코더는 하나씩만 썼고, 192kbit/s보다 낮은 비트레이트는 없어요.
- 온셋 F1은 음이 들렸는지를 말해 줄 뿐, 적힌 악보가 읽기 좋은지는 말해 주지 않아요.
출처
- What Is the Effect of Audio Quality on the Robustness of MFCCs and Chroma Features? — Urbano, Bogdanov, Herrera, Gómez and Serra, ISMIR 2014
- GuitarSet 1.1.0 — Xi, Bittner, Pauwels, Ye and Bello, Zenodo (CC BY 4.0)
- Slakh2100 — Manilow, Wichern, Seetharaman and Le Roux, Zenodo (CC BY 4.0)
- A Lightweight Instrument-Agnostic Model for Polyphonic Note Transcription and Multipitch Estimation — Bittner et al., Spotify, 2022 (Basic Pitch)
- High-resolution Piano Transcription with Pedals by Regressing Onset and Offset Times — Kong, Li, Song, Wan and Wang, 2020
- mir_eval.transcription — mir_eval 문서
- FFmpeg formats: the mp3 muxer — FFmpeg 문서
- TN2258: AAC Audio, Encoder Delay and Synchronization — Apple
질문과 답변
채보하려면 WAV와 MP3 중 어느 쪽을 올려야 하나요?
어느 쪽이든 괜찮아요. 2026년 10월 5일 테스트에서 320kbit/s MP3는 서로 다른 엔진 세 개 모두에서 원본 WAV와 온셋 F1 차이가 0.002 이내였어요. 녹음기나 편집 프로그램이 내 준 파일을 먼저 변환하지 말고 그대로 올리세요. 192kbit/s MP3와 256kbit/s AAC 파일도 0.008 이내였어요. 더 낮은 비트레이트는 테스트하지 않았어요.
MP3 비트레이트가 낮아지면 음이 달라지나요?
몇 개는 달라져요. 방향도 올라가는 쪽과 내려가는 쪽이 모두 있어요. 녹음 14개에서 찾은 음 약 2,740개 가운데 192kbit/s에서는 14개, 320kbit/s에서는 10개, 들리지 않는 볼륨 변화에서는 1개가 달라졌어요. 온셋 F1은 192kbit/s에서 최대 0.008, 320kbit/s에서는 최대 0.002 움직였어요. 192kbit/s보다 낮은 비트레이트는 측정하지 않았어요.
AAC 파일은 왜 WAV보다 조금 길게 나오나요?
AAC 인코더는 맨 앞에 소리 없는 프라이밍 샘플을 넣고, 끝은 한 프레임이 되도록 채워요. Apple은 프라이밍 지연이 2112샘플이라고 문서에 밝혀 두었어요. 플레이어나 디코더가 이를 잘라 내지 않으면 오디오가 조금 길어져요. 저희 테스트에서 AAC 파일은 디코딩하면 16–733샘플 더 길었어요. FFmpeg가 Xing/LAME 헤더와 함께 쓴 MP3는 정확한 길이로 디코딩됐어요.
ScoreStarling은 제 WAV를 MP3로 변환하나요?
네. 2026년 10월 5일부터 WAV, AIFF, FLAC로 올린 파일은 여기서 측정한 설정인 320kbit/s MP3로 보관되고, 그 사본으로 채보해요. MP3, M4A, Ogg, 동영상으로 올린 파일은 받은 그대로 보관돼요.



