diff --git a/get_spectrogram.py b/get_spectrogram.py
new file mode 100644
index 0000000000000000000000000000000000000000..83b29bf1defb4ace971d2522dc7c1eaa42a32761
--- /dev/null
+++ b/get_spectrogram.py
@@ -0,0 +1,78 @@
+import os
+import pandas as pd
+import librosa
+import numpy as np
+import matplotlib.pyplot as plt
+from tqdm import tqdm
+import ipdb
+import argparse
+from p_tqdm import p_map
+import warnings
+warnings.filterwarnings('ignore')
+
+def arg_directory(path):
+    if os.path.isdir(path):
+        return path
+    else:
+        raise argparse.ArgumentTypeError(f'`{path}` is not a valid path')
+
+parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter, description='TODO')
+parser.add_argument('-f','--file', type=str,required=True,help = 'Name of the file that contain the recording to print')
+parser.add_argument('-p','--path_to_data', type=arg_directory, help = 'Path of the folder that contain the recordings',required=True)
+parser.add_argument('-d','--direction', type=arg_directory, help = 'Directory to wich spectrogram will be stored',required=True)
+parser.add_argument('-m','--mode', type=str,choices=['unique','multiple'], help = 'Direction of the saved spectrogram',required=True)
+parser.add_argument('-n','--columns_name', type=str, help = 'Name of the columns that contain the path of the .wav',required=True)
+args = parser.parse_args()
+
+path_to_data = args.path_to_data
+direction = args.direction
+folder = 'Spectrogram/'
+DURATION = 5
+OVERLAP = 0 #2
+if args.mode == 'multiple':
+    NB_IMG_PER_REC = 30 #10
+    
+elif args.mode == 'unique': 
+    NB_IMG_PER_REC = 1
+
+df = pd.read_csv(args.file,low_memory=False)
+df['Path'] = df[args.columns_name]
+
+def process(x):
+    _, (i) = x
+
+    for count, j in enumerate(range (NB_IMG_PER_REC)): #30*8 secondes - 30*2 secondes (overlap) = 180 secondes affichées sur 30 images : n'affiche que les 3 premières minutes d'un enregistrement
+    
+        filename = str(i[0])
+        offset = count * (DURATION - OVERLAP)
+        try:
+            y, sr = librosa.load(filename, offset = offset, duration = DURATION)
+        except Exception:
+            print(filename)
+            continue
+        window_size = 1024
+        window = np.hanning(window_size)
+        stft  = librosa.core.spectrum.stft(y, n_fft=window_size, hop_length=512, window=window)
+
+        plt.close()
+        plt.figure()
+
+        vmin = np.flipud(np.log10(np.abs(stft))).mean()
+        vmax = np.flipud(np.log10(np.abs(stft))).max()
+
+        plt.imshow(np.flipud(np.log10(np.abs(stft))),aspect = "auto",interpolation = None,cmap = 'jet',vmin = vmin,vmax = vmax)
+
+        plt.subplots_adjust(top=1, bottom=0, left=0, right=1)
+
+        name = str(i[0].replace('/','_').split('.')[0]+'_'+str(count))
+        try :
+            plt.savefig(os.path.join(direction,folder, str(name+'.jpg')))
+
+        except FileNotFoundError:
+
+            os.mkdir(os.path.join(direction,folder))
+            plt.savefig(os.path.join(direction,folder, str(name+'.jpg')))
+        
+
+p_map(process, enumerate(df.groupby('Path')), num_cpus=10) #la colonne dir correspond au path
+print('saved to ',str(direction+folder))