AI 효과음, 생성 대신 코드로 만든 기록 — 크레딧 0에 음량(LUFS)까지 맞춘 방법 (2026)
AI 영상 두 편의 효과음과 배경음을 생성 서비스 없이 코드로 만들었습니다. 하나는 2분 20초짜리 3D 애니메이션, 다른 하나는 1분 58초짜리 건축 지식 쇼츠예요. 둘 다 생성 크레딧은 0이었고, 마지막에 음량을 LUFS 단위로 맞췄습니다.
코드로 만든 이유는 단순했습니다. 쇼츠 쪽은 저작권 걱정 없는 소리가 필요했고, 애니메이션 쪽은 당시 쓰던 환경에 음악을 생성할 수 있는 모델이 없었어요. 이 글은 그 과정과, 코드로 되는 것과 안 되는 것의 기록입니다.
AI 효과음, 코드로 만든 소리들
애니메이션에서 만든 효과음은 이랬습니다. 소리마다 “무엇을 어떻게 흔들면 그 소리가 되는지”를 정해 두고 파이썬(numpy)으로 찍어냈어요.
| 소리 | 만든 방법 | 들어간 자리 |
|---|---|---|
| 물방울 ‘똑’ | 910Hz에서 430Hz로 내려가는 짧은 음 + 1180Hz 울림 | 물방울이 떠오르는 장면 |
| 종이 구김 | 잘게 끊긴 잡음 42번 + 낮은 소리로 몸통 | 그림을 구기는 순간 |
| 문 열림 | 작은 ‘휙’ 소리 + 골판지가 휘는 소리 | 로켓 문이 열릴 때 |
| 표시등 비프 | D5(587Hz)→A5(880Hz) 두 음 전자음 | 빨간 불이 초록으로 바뀔 때 |
| 타이틀 저음 | 44Hz에서 24.5Hz로 떨어지는 아주 낮은 음 | 마지막 타이틀 |
여기에 방 공기 소리, 냉장고 같은 낮은 웅웅거림, 밤 소음 같은 배경 소리 일곱 겹을 깔았습니다. 같은 시드로 돌리면 매번 똑같은 소리가 나오게 해서, 다시 만들어도 결과가 바뀌지 않아요.
쇼츠 쪽은 더 단순합니다. 컷이 바뀔 때 ‘휙’, 그래픽이 뜰 때 ‘팝’, 숫자 라벨이 뜰 때 ‘딩’ 세 종류를 만들어 95번 깔았고, 배경음악은 도입·위기·해결 세 구간으로 나눠 합성했습니다.
소리로 장면을 설명하기
효과음을 장면에 맞춰 붙이기만 한 건 아니었습니다. 애니메이션에서는 소리가 이야기를 대신하는 자리를 몇 군데 만들었어요.
- 30.7초, 웅웅거림이 뚝 끊김. 방 안에서 계속 나던 낮은 소리가 0.035초 만에 끊기고, 남은 소리 전체도 13dB 내려갑니다. 웅웅거림이 빠진 몫까지 더해져서, 아래 그래프에서는 이 순간 음량이 20dB 넘게 떨어져 보여요. 그 직후 물방울이 떠오르는데, 소리가 먼저 “뭔가 이상하다”를 알리는 장치예요.
- 84.8초부터 청각 반전. 처음엔 냉장고 소리처럼 들리게 만든 웅웅거림이 서서히 우주 정거장의 기계음으로 바뀝니다.
- 107.5초, 가장 큰 소리. 정거장 돔에 도착하는 순간 배경음이 가장 커지도록 설계했습니다.

음량은 LUFS로 맞췄다
마지막 단계는 음량이었습니다. 소리가 너무 작으면 휴대폰에서 안 들리고, 너무 크면 깨지니까요. 기준은 LUFS 단위로 잡았고, 측정은 ffmpeg로 했습니다.
| 3D 애니메이션 | 건축 지식 쇼츠 | |
|---|---|---|
| 목표 | 전체를 고르게, 깨지지 않게 | −14 LUFS |
| 결과 | −16.01 LUFS, 트루피크 −2.98 | −14.1 LUFS |
| 맞춘 방법 | 직접 게인을 올리고 → 넘치면 리미터로 눌러 주고 → 다시 재기를 4번 반복 | 정규화 |
| 배경음 크기 | 배경 소리는 음악보다 9.5dB 작게 | 배경음악 −26dB |
음량을 재고 맞추는 데는 ffmpeg를 썼습니다. ffmpeg 공식 문서에 따르면 loudnorm 필터는 EBU R128 기준으로 음량을 정규화하고, 동적·선형 두 가지 방식을 지원해요. 애니메이션은 loudnorm으로 재고, 게인과 리미터 조정은 직접 하면서 네 번 반복해 목표에 수렴시켰습니다.
참고로 쇼츠를 만들 때 참고한 채널을 작업 중에 재 보니 −10~−13 LUFS 정도로, 제 결과보다 조금 더 컸습니다.
효과음을 깔면 컷 길이가 묶인다
효과음을 절대 시간에 맞춰 깔면 생기는 제약이 있었습니다. 애니메이션은 효과음 8개가 정해진 초에 물려 있어서, 컷 하나가 1프레임만 늘어도 그 뒤 소리가 전부 밀렸어요.
그래서 컷을 고칠 때는 전체 길이를 그대로 두는 방법만 썼습니다. 빠져 있던 그림 컷을 되살릴 때도 바로 앞 컷에서 28프레임을 떼어 와서 총 3,375프레임을 유지했어요. 이 과정은 매치컷 글에 자세히 적었습니다.
반대로 위험했던 순간도 있습니다. 영상과 소리를 합치는 단계에서 예전 버전의 소리 파일을 물고, 짧은 쪽에 맞춰 자르는 옵션(-shortest)이 걸려 있었어요. 그대로 최종본을 만들었다면 41.2초, 전체의 29%가 잘려 나갈 뻔했습니다. 발견하고 나서 최신 소리 파일로 바꾸고, 합친 결과의 길이를 확인하는 단계를 넣었습니다.
코드로 안 된 것 — 음악
효과음과 배경 소리는 코드로 충분했지만, 음악은 부족했습니다. 애니메이션용으로 3분짜리 목업 다섯 곡을 만들었고 규격(−14 LUFS, 48kHz)은 맞췄지만, 실제 연주를 녹음한 질감에는 못 미쳤어요.
그래서 선택지를 세 가지로 정리해 두었습니다. 목업을 그대로 쓰기, 라이선스 음원 사이트에서 곡을 구하기(후보 20곡 준비), 다른 음악 생성 방법 찾기. 아직 어느 쪽으로 갈지는 정하지 않았습니다. 이 애니메이션을 만든 전체 순서는 AI 애니메이션 만들기 글에 있습니다.
정리 — AI 효과음, 코드로 만들 때
| 단계 | 한 일 |
|---|---|
| 소리 정하기 | 소리마다 주파수·잡음·길이로 만드는 방법을 정함 |
| 합성 | 파이썬으로 생성, 같은 시드로 언제든 같은 결과 |
| 배치 | 장면 시각에 맞춰 깔고, 소리로 장면을 설명하는 자리를 따로 설계 |
| 음량 | LUFS로 측정해 목표에 맞추고, 트루피크로 깨짐 확인 |
| 합치기 | 최신 소리 파일인지, 합친 길이가 맞는지 확인 |
| 음악 | 코드 목업은 질감 한계. 실제 곡은 따로 정해야 함 |
직접 해보니
애니메이션에는 소리로 장면을 만드는 요청도 있었습니다. “동생이 이 표정 등장 전에 누군가 노크하는 소리를 듣고 삐진 표정에서 살짝 놀라는 씬 하나 추가해줘”처럼요. 그래서 효과음을 장면에 덧붙이는 게 아니라, 소리가 장면의 원인이 되도록 설계하는 쪽으로 갔습니다.
크레딧은 두 편 모두 0이었고, 음량도 숫자로 맞췄습니다. 다만 음악은 코드 목업으로 끝났고, 실제 곡을 쓸지는 아직 결정하지 못했습니다.
자주 묻는 질문
AI 효과음을 생성 서비스 없이 만들 수 있나요?
제 경우 파이썬으로 소리를 직접 합성했습니다. 물방울은 주파수가 내려가는 짧은 음, 종이 구김은 잘게 끊긴 잡음, 표시등은 두 음짜리 전자음처럼 소리마다 만드는 방법을 정해 두고 코드로 찍어냈습니다. 생성 크레딧은 들지 않았습니다.
영상 음량은 몇 LUFS로 맞췄나요?
3D 애니메이션은 −16.01 LUFS, 트루피크 −2.98로 맞췄고, 건축 지식 쇼츠는 −14 LUFS를 목표로 해서 −14.1이 나왔습니다. 작업 중에 재 본 참고 채널은 −10~−13 LUFS 정도였습니다.
배경음악도 코드로 만들 수 있나요?
만들 수는 있었지만 실제 연주 녹음의 질감에는 못 미쳤습니다. 애니메이션용으로 다섯 곡의 목업을 만들었고, 실제 곡으로 바꿀지는 아직 정하지 않았습니다.
효과음을 넣고 나서 컷을 바꿔도 되나요?
효과음을 절대 시간에 맞춰 깔았다면 조심해야 합니다. 제 애니메이션은 효과음 8개가 정해진 시각에 물려 있어서, 빠진 컷을 되살릴 때 바로 앞 컷에서 28프레임을 떼어 와 전체 길이를 그대로 유지했습니다.
정리
- AI 영상 두 편의 효과음과 배경음을 생성 서비스 없이 코드로 합성했고, 크레딧은 0이었습니다
- 소리마다 주파수와 잡음으로 만드는 방법을 정해 두고, 같은 시드로 언제든 같은 결과가 나오게 했습니다
- 음량은 LUFS로 맞췄습니다. 애니메이션 −16.01, 쇼츠 −14.1입니다
- 효과음을 절대 시간에 깔면 컷 길이가 묶이고, 소리 파일을 합칠 때 길이 확인이 꼭 필요했습니다
- 음악은 코드 목업으로는 질감이 부족해 아직 정하지 못했습니다