Benchnote

AI 효과음, 생성 대신 코드로 만든 기록 — 크레딧 0에 음량(LUFS)까지 맞춘 방법 (2026)

AI 영상·이미지 생성 실무 2026년 10월 25일 발행 · 김재인
AI 효과음, 생성 대신 코드로 만든 기록 — 크레딧 0에 음량(LUFS)까지 맞춘 방법 (2026)
광고 자리 (top) — 애드센스 승인 후 활성화

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초, 가장 큰 소리. 정거장 돔에 도착하는 순간 배경음이 가장 커지도록 설계했습니다.

애니메이션 2분 20초 동안의 순간 음량 그래프. 처음 30초는 -23 LUFS 근처로 낮게 유지되다가 30.7초에 '험 뚝 끊김' 표시와 함께 -45까지 뚝 떨어진다. 이후 서서히 올라 84.8초 '청각 반전 시작' 뒤로 커지고, 107.5초 '돔 도착, 가장 큼'에서 약 -9로 가장 높다. 점선으로 통합 음량 -16.01 LUFS가 표시돼 있다.

음량은 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입니다
  • 효과음을 절대 시간에 깔면 컷 길이가 묶이고, 소리 파일을 합칠 때 길이 확인이 꼭 필요했습니다
  • 음악은 코드 목업으로는 질감이 부족해 아직 정하지 못했습니다
광고 자리 (bottom) — 애드센스 승인 후 활성화
참고한 자료