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 |
시간날때마다 틈틈이 이것저것 해보며 블로그에 글을 남깁니다.
블로그의 문서는 종종 최신 버전으로 업데이트됩니다.
여유 시간이 날때 진행하는 거라 언제 진행될지는 알 수 없습니다.
영화,책, 생각등을 올리는 블로그도 운영하고 있습니다.
https://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
@webnautes :: 멈춤보단 천천히라도
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!