Reputation: 151
I have an audio clip of a duration of 20 secs. I would like to clip this audio clip and create four sub-audio clip with a duration of 5 sec each. How can I do this using librosa
library of Python
. So far, I have written the following codes:
import os
import librosa
import librosa.display
import IPython.display as ipd
import numpy as np
import IPython.display
Audio= "clip.mp3"
Any idea of how to do this using libersoa
library? Thanks in advance
Upvotes: 0
Views: 743
Reputation: 1636
you can use librosa
, the task is to split array on chunks which size exactly equals sample rate multimplies 5 seconds
import librosa
import soundfile as sf
audio_file = "example.mp3"
y, sr = librosa.load(audio_file, sr=None)
# chunk duration 5 seconds
chunk_duration = 5
chunk_samples = int(chunk_duration * sr)
chunks = [y[i:i + chunk_samples] for i in range(0, len(y), chunk_samples)]
for i, chunk in enumerate(chunks):
output_file = f"chunk_{i}.mp3"
sf.write(output_file, chunk, sr)
Upvotes: 0
Reputation: 31
from moviepy.video.io.ffmpeg_tools import ffmpeg_extract_subclip
count = 1
duration_of_clip = 3 #in seconds, duration of final audio clip
src_duration = 36 #in seconds, the duration of the original audio
for i in range(0, src_duration, duration_of_clip):
ffmpeg_extract_subclip("src_audio.wav", i, i + 3,
targetname=f'results/audio_clip_{count}.wav')
count += 1
Upvotes: 1