Ravi
Ravi

Reputation: 151

Dividing audio clips using Python

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

Answers (2)

Anna Andreeva Rogotulka
Anna Andreeva Rogotulka

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

Rajat M
Rajat M

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

Related Questions