본문 바로가기
Python

[Python] librosa로 WAV 파일 무음 제거하기

by teamnova 2025. 8. 17.
728x90

 

안녕하세요 오늘은 파이썬에서 제공하는 오디오 처리 라이브러리인 librosa 를 활용해 wav 파일 앞뒤의 무음 제거를 해보도록 하겠습니다. 

 

 

WAV 파일이란

Waveform Audio File Format 의 약자로 무손실(raw) 방식의 오디오 파일 포맷을 의미합니다. 

단순한 PCM (펄스 부호 변조) 데이터로 오디오 처리에 작관적이며 원본에 가까운 소리를 보존하고 프레임 단위 접근이 가능하다는 장점이 있습니다. 단점으로는 용량이 일반적인 MP3 파일에 비해 훨씬 큽니다. 

 

 

WAV 파일의 사용 용도 

 

  • 음악 제작/편집: DAW(Logic, Cubase, Ableton 등)에서 작업 시 기본 포맷
  • 방송/미디어: 무손실 퀄리티 필요할 때
  • AI/머신러닝:
    • 음성 인식(ASR)
    • 텍스트-음성 변환(TTS)
    • 스피커 인식/감정 인식

 

 

AI 모델 학습에 활용되는 음성 데이터의 경우 보통 이 WAV 형식 파일을 사용합니다.

이 WAV 파일에는 앞뒤로 잡음이나 무음(silence) 이 길게 붙어 있는 경우가 많습니다. 특히 사람이 직접 녹음한 데이터에는 버튼 누르는 소리, 입 열기 전 공백 등이 자주 들어가는데요

이번 게시글에서는 librosa 를 사용해 WAV 파일의 앞뒤 무음을 자동으로 제거(trim) 하는 방법을 소개하고자 합니다.

 

 

1. 라이브러리 설치 

pip install librosa soundfile

 

 

2. 파이썬 파일 작성 

 

import librosa
import soundfile as sf
from pathlib import Path

# 입력/출력 경로 설정
INPUT_DIR = "input_wav"
OUTPUT_DIR = "trimmed_wav"
Path(OUTPUT_DIR).mkdir(exist_ok=True)

for wav_file in Path(INPUT_DIR).glob("*.wav"):
    # 1. 파일 로드
    audio, sr = librosa.load(wav_file, sr=None)

    # 2. 앞뒤 무음 제거 (top_db=30 기준)
    trimmed, _ = librosa.effects.trim(audio, top_db=30)

    # 3. 저장
    out_path = Path(OUTPUT_DIR) / wav_file.name
    sf.write(out_path, trimmed, sr)
    print(f"✅ {wav_file.name} → {out_path}")