WAV, MP3 파일을 일정 길이(단위 초)의 WAV 파일로 분할Python/Python - 오디오2024. 3. 16. 07:41
Table of Contents
반응형
WAV 파일 또는 MP3 파일을 일정 길이(단위 초)의 WAV 파일로 분할하는 코드입니다.
2023. 10. 20 최초작성
2024. 3. 16
import os import librosa import soundfile as sf def split_and_save(wav_path, output_dir, segment_length=30): """ - wav_path : 로드할 WAV 파일 또는 MP3 파일의 경로 - output_dir : WAV 파일들을 저장할 디렉토리 경로 - segment_length : 분할할 세그먼트의 길이 (초 단위, 기본값은 30초) """ # 출력 디렉토리가 존재하지 않으면 생성 if not os.path.exists(output_dir): os.makedirs(output_dir) # WAV 파일 또는 MP3 파일 로드합니다. sr을 None으로 하면 원본 샘플링 레이트를 사용한다는 의미입니다. # # 리턴값 : # y는 오디오의 시계열 데이터가 저장되어 있는 넘파이 배열입니다. # sr은 로드된 오디오 파일에 포함된 총 샘플 수를 나타냅니다. y, sr = librosa.load(wav_path, sr=None) # 샘플의 총 길이 계산 total_samples = len(y) # 전체 오디오를 segment_length 초 단위로 나눈 각 세그먼트의 샘플 수 계산 segment_samples = segment_length * sr # 지정된 길이 segment_samples로 분할하여 WAV 파일로 저장 for start_sample in range(0, total_samples, segment_samples): end_sample = start_sample + segment_samples output_path = f"{output_dir}/segment_{start_sample // segment_samples}.wav" # 여기서는 segment로 분할된 오디오 데이터를 WAV 파일로 저장한다. sf.write(output_path, y[start_sample:end_sample], sr) # 사용 예: wav_path = "input_file.wav" output_dir = "output_directory" split_and_save(wav_path, output_dir) |
반응형
'Python > Python - 오디오' 카테고리의 다른 글
마이크를 사용하여 녹음하는 Python 예제 (1) | 2024.10.03 |
---|---|
wav 파일을 지정한 샘플링 레이트로 변환하기 (0) | 2024.03.16 |