Skip to content
Snippets Groups Projects
Commit 5cccc9d9 authored by Stephane Chavin's avatar Stephane Chavin
Browse files

add filters hp and lp

parent 0a3b9f3c
No related branches found
No related tags found
No related merge requests found
......@@ -46,14 +46,26 @@ def process_recordings(data, img_per_rec, args):
for count in range(img_per_rec):
offset = count * (duration - overlap)
filename = str(i[0])
file_duration = sf.info().duration
while offset < file_duration:
try:
y, _ = librosa.load(filename, offset=offset, duration=duration, sr=args.sr)
create_spectrogram(y, args.directory, filename, offset, duration, args.window, args.hop)
info = sf.info(filename)
_, fs = info.duration, info.samplerate
sig, fs = sf.read(filename, start=int(offset*fs), stop=int((offset+duration)*fs), always_2d=True)
sig = sig[:,0]
sig = signal_processing(sig, args.sr, fs, args.up, args.low)
create_spectrogram(sig, args.directory, filename, offset, duration, args.window, args.hop)
except Exception:
print(f'`{filename}` cannot be open...')
def signal_processing(sig, sr, fs, up, low):
sig_r = signal.resample(sig, int(len(sig)*sr/fs)) # resample
sos = signal.butter(2, up/(sr/2), 'hp', output='sos') # create high pass filter
sos2 = signal.butter(1, low/(sr/2), 'lp', output='sos') # create low pass filter
filtered = signal.sosfilt(sos, sig_r) # apply high pass filter
filtered = signal.sosfilt(sos2, filtered) # create low pass filter
return(sig_r)
if __name__ == "__main__":
parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter, description='Extract spectrogram for each .wav file')
parser.add_argument('path_to_data', type=arg_directory, help='Path of the folder that contains the recordings')
......@@ -71,6 +83,8 @@ if __name__ == "__main__":
parser.add_argument('--window', type=int, help='Window size for the Fourier Transform', default=1024)
parser.add_argument('--hop', type=int, help='Hop lenght for the Fourier Transform', default=512)
parser.add_argument('--cpu', type=int, help='To speed up the process, write 2 or more', default=1)
parser.add_argument('--up', type=int, help='High Pass Filter value in Hz', default=10)
parser.add_argument('--low', type=int, help='Low Pass Filter value in Hz', default=None)
args = parser.parse_args()
if args.mode == 'multiple':
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment