-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.py
82 lines (66 loc) · 1.96 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
import cmd, sys, os
import numpy as np
import audio_utils as au
# allowed audio extensions
EXTENSIONS = ['.mp3', '.wav', '.MP3', '.WAV']
def is_audio_file(filepath):
if os.path.exists(filepath):
if any([filepath.endswith(e) for e in EXTENSIONS]):
return True
return False
class Main(cmd.Cmd):
intro = ''
prompt = '#'
def __init__(self):
super().__init__()
self.mode = None
self.output_path = None
def do_load_file(self, path):
'Carica un file singolo'
print("Carico %s..." % (path))
if is_audio_file(path):
self.cur_filename = path.split('/')[-1]
self.cur_data, self.cur_sr = au.load(path)
self.mode = 'single'
print("File caricato")
else:
print("Errore: specificare un file valido")
def do_load_dir(self, path):
'Pre-carica una cartella da processare in batch'
if not os.path.isdir(path):
print("Cartella non trovata")
return
file_list = os.listdir(path)
# filter by extension
self.input_path = path
self.file_list = [f for f in file_list if is_audio_file(os.path.join(path, f))]
N = len(self.file_list)
print("Trovati %d file" % (N))
self.mode = 'batch'
def do_save(self, arg):
'Salva il file caricato nella cartella specificata'
if self.output_path is None:
print("Errore: specificare un percorso di salvataggio valido con il comando set_output")
return
if self.mode == 'single':
print("Salvo %s..." % (self.cur_filename))
filepath = os.path.join(path, self.cur_filename)
au.write(filepath, self.cur_sr, self.cur_data)
else:
print("Non disponibile in modalità batch")
def do_set_output(self, path):
'Imposta la cartella di output per il salvataggio'
print("Percorso di output: "+path)
if not os.path.isdir(path):
os.makedirs(path)
self.output_path = path
def do_trim_silence(self, arg):
'Rimuove il silenzio iniziale'
print("TODO")
def do_quit(self, arg):
'Esce dal programma'
print("Ciao")
#self.close()
sys.exit()
if __name__ == '__main__':
Main().cmdloop()