요약
- 1:1 음성통화 녹음 51명을 실측했다. 여성이 8kHz 위 약 2dB, 12kHz 위 약 4dB 에너지가 더 많았다. 같은 성별 안에서 AAC 56k와 128k의 차이는 12kHz 위에서 최대 9dB로, 성별 차이만큼 컸다.
- 12kHz 위 에너지는 전체의 약 −50dB, 16kHz 위는 −70~−80dB로 사실상 없다. 48kHz 녹음은 학습용으로 과하고, 여성 목소리도 24kHz면 충분하다.
- 스펙트럼 판단을 표본 한 명으로 내리면 틀린다. 성별과 인코딩 비트레이트로 층을 나눠 봐야 한다.
본문
측정 대상 (관찰됨)
- 화자별로 분리 녹음된 1:1 음성통화. 클라우드 녹음 서비스의 개별 녹음 모드에서 나온 HLS(.ts 15초 조각)
- AAC-LC, 48kHz, 모노
- 비트레이트는 약 56kbps와 약 128kbps 두 그룹으로 갈린다(44명 중 19명 대 25명). 개별 녹음은 원본 송출 스트림을 따른다고 알려져 있어 앱 쪽 송출 설정 차이로 보이지만, 원인은 확인하지 않았다.
- MPEG-TS 컨테이너가 비트레이트와 무관하게 약 22~27kbps를 더 얹는다. 56k 파일에서는 이것만 약 30%다.
방법
- 최근 7일 통화에서 남녀 각 30명을 무작위로 뽑고, 1분 미만 통화는 제외했다(51명 남음).
- 화자별로 첫 조각을 빼고 다음 4조각(약 60초)을 이어 붙였다.
- ffmpeg
highpass를 3번 겹쳐 차단 주파수 위만 남긴 RMS와 전대역 RMS의 차이(dB)를 쟀다.
결과 (전대역 대비, 중앙값)
| 그룹 | 인원 | 4kHz 초과 | 8kHz 초과 | 12kHz 초과 | 16kHz 초과 |
|---|---|---|---|---|---|
| 여성, 128k | 13 | −22 | −34 | −49 | −73 |
| 여성, 56k | 10 | −23 | −36 | −51 | −75 |
| 남성, 128k | 13 | −21 | −33 | −49 | −69 |
| 남성, 56k | 15 | −23 | −38 | −58 | −81 |
| 여성 전체 | 23 | −23 | −34 | −50 | −73 |
| 남성 전체 | 28 | −22 | −36 | −54 | −77 |
해석
- 성별 차이는 "ㅅ·ㅆ" 같은 마찰음의 고음 성분 차이로 보인다(해석).
- 남성 56k 그룹이 유독 낮은 건 낮은 비트레이트에서 AAC 인코더가 고음을 더 잘라내는 효과로 보인다(추정, 인코더 설정은 확인하지 않음).
- 처음에 남성 56k 한 명만 쟀을 때는 12kHz 위가 −40dB로 나왔고, 이걸 근거로 "12~16kHz 안에 다 있다"고 판단했다. 결론 방향은 맞았지만, 가장 불리한 조건의 표본이었다.
용도별 판단
| 용도 | 권장 입력 | 지금 녹음 대비 |
|---|---|---|
| 인식·분석 | 16kHz | 8kHz 위는 −34~−36dB라 영향 없음 |
| 합성·생성 | 24kHz | 12kHz 위(−50dB)만 잘림 |
| 원본 보존 | 32kHz | 16kHz 위(−70dB 이하)만 잘림, 사실상 전부 보존 |
주의: 용량을 줄이는 손잡이는 샘플레이트가 아니다
AAC·Opus는 목표 비트레이트로 인코딩하므로 48kHz를 24kHz로 낮춰도 파일은 거의 줄지 않는다. 보관 용량을 줄이려면 비트레이트를 낮춰 재인코딩한다(예: Opus 32kbps). 샘플레이트는 학습 로더에서 리샘플하면 된다. 손실 압축을 한 번 더 거치므로 합성용 표본은 원본을 따로 남긴다.
한계
- 무음 구간을 포함한 RMS라, 조용한 구간의 잡음 영향이 조금 섞여 있다.
- 녹음에 담긴 것만 봤다. 앱 송출 단계에서 이미 잘렸을 가능성은 확인하지 않았다.
- 비트레이트가 85~98kbps인 4명은 56k 그룹에 넣었다.
관련 노트
- 목표 비트레이트로 인코딩하면 샘플링 레이트를 낮춰도 파일이 작아지지 않는다
- 나이퀴스트 정리는 샘플링 주파수를 정하는 좋은 기준이 된다
- 음성 AI 학습 입력은 인식·분석은 16kHz, 합성·대화는 24kHz 모노로 수렴한다
- 오디오 파일은 컨테이너, 스트림, 패킷으로 구성된다.
- Agora Server Gateway SDK의 encoded frame observer는 원본이 아닌 재인코딩된 Opus를 전달한다
참고
- Agora Cloud Recording 개별 녹음 모드: https://docs.agora.io/en/cloud-recording/develop/individual-mode
- ffmpeg highpass / astats 필터: https://ffmpeg.org/ffmpeg-filters.html