I've been trying to use noisereduce pypi algorithm to reduce noise for an audio file but it is giving me an error :
Traceback (most recent call last):
File "C:/Users/Seif Koretum/Desktop/noise_reduce/main.py", line 22, in <module>
reduced_noise = nr.reduce_noise(y=data, sr=rate)
File "C:\Users\Seif Koretum\Desktop\noise_reduce\venv\lib\site-packages\noisereduce\noisereduce.py", line 594, in reduce_noise
return sg.get_traces()
File "C:\Users\Seif Koretum\Desktop\noise_reduce\venv\lib\site-packages\noisereduce\noisereduce.py", line 232, in get_traces
filtered_chunk = self.filter_chunk(start_frame=0, end_frame=end_frame)
File "C:\Users\Seif Koretum\Desktop\noise_reduce\venv\lib\site-packages\noisereduce\noisereduce.py", line 162, in filter_chunk
padded_chunk = self._read_chunk(i1, i2)
File "C:\Users\Seif Koretum\Desktop\noise_reduce\venv\lib\site-packages\noisereduce\noisereduce.py", line 154, in _read_chunk
chunk = np.zeros((self.n_channels, i2 - i1))
numpy.core._exceptions.MemoryError: Unable to allocate 98.6 GiB for an array with shape (220500, 60002) and data type float64
and my code is based on recording an audio file then remove noise then play this audio :
from scipy.io import wavfile as wav
from scipy.io.wavfile import write
import sounddevice as sd
from playsound import playsound
import noisereduce as nr
fs = 44100 # Sample rate
seconds = 5 # Duration of recording
myrecording = sd.rec(int(seconds * fs), samplerate=fs, channels=2)
sd.wait() # Wait until recording is finished
write('sample2.wav', fs, myrecording)
#SEARCH FOR NOISEREDUCE PYPI
# # load data
rate, data = wav.read("sample2.wav")
# perform noise reduction
reduced_noise = nr.reduce_noise(y=data, sr=rate)
filename = 'sample2.wav'
playsound(filename)