Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to resample a .wav sound file which is being read using the wavfile.read?

I want to change the following two lines of my code:

clip, sample_rate = librosa.load(file_name)
clip = librosa.resample(clip, sample_rate, 2000)

I want to load the .wav file using wavfile.read() instead of using librosa.load() and then resample it using some technique other than the libroa.resample().

Any idea how to do it?

like image 491
Muhammad Arsalan Hassan Avatar asked Oct 28 '25 04:10

Muhammad Arsalan Hassan


1 Answers

So here is the answer folks! The below solution worked for me.

from scipy.io import wavfile
import scipy.signal as sps
from io import BytesIO

new_rate = 2000
# Read file
sample_rate, clip = wavfile.read(BytesIO(file_name))
       
# Resample data
number_of_samples = round(len(clip) * float(new_rate) / sample_rate)
clip = sps.resample(clip, number_of_samples)
like image 103
Muhammad Arsalan Hassan Avatar answered Oct 30 '25 09:10

Muhammad Arsalan Hassan