forked from song-wenjie/JEM
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSpectrumCorrection_5fold.py
113 lines (92 loc) · 3.64 KB
/
SpectrumCorrection_5fold.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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
import numpy as np
import librosa
import glob
import sys
vad_option = '5' # choose which fold as the test set
if vad_option=='1':
filenames = np.concatenate((glob.glob('dataset/ICBHI/vad3/*/*'),
glob.glob('dataset/ICBHI/vad4/*/*'),
glob.glob('dataset/ICBHI/vad5/*/*')))
elif vad_option=='2':
filenames = np.concatenate((glob.glob('dataset/ICBHI/vad1/*/*'),
glob.glob('dataset/ICBHI/vad4/*/*'),
glob.glob('dataset/ICBHI/vad5/*/*')))
elif vad_option=='3':
filenames = np.concatenate((glob.glob('dataset/ICBHI/vad1/*/*'),
glob.glob('dataset/ICBHI/vad2/*/*'),
glob.glob('dataset/ICBHI/vad5/*/*')))
elif vad_option=='4':
filenames = np.concatenate((glob.glob('dataset/ICBHI/vad1/*/*'),
glob.glob('dataset/ICBHI/vad2/*/*'),
glob.glob('dataset/ICBHI/vad3/*/*')))
elif vad_option=='5':
filenames = np.concatenate((glob.glob('dataset/ICBHI/vad2/*/*'),
glob.glob('dataset/ICBHI/vad3/*/*'),
glob.glob('dataset/ICBHI/vad4/*/*')))
AKGC417L = []
Meditron = []
Litt3200 = []
LittC2SE = []
for i in range(len(filenames)):
wav, sr = librosa.load(filenames[i], sr=None)
D = np.abs(librosa.stft(wav, n_fft=256, hop_length=64)) ** 2
D = np.mean(D, axis=1)
name = str(filenames[i]).split('/')
name = name[-1]
if name[-8] == 'L':
AKGC417L.append(D)
elif name[-8]=='n':
Meditron.append(D)
elif name[-8] == '0':
Litt3200.append(D)
else:
LittC2SE.append(D)
AKGC417L = np.array(AKGC417L)
Meditron = np.array(Meditron)
Litt3200 = np.array(Litt3200)
LittC2SE = np.array(LittC2SE)
AKGC417L = np.mean(AKGC417L, axis=0)
Meditron = np.mean(Meditron, axis=0)
Litt3200 = np.mean(Litt3200, axis=0)
LittC2SE = np.mean(LittC2SE, axis=0)
reference = (AKGC417L + Meditron + Litt3200 + LittC2SE)/4
AKGC417L = reference/AKGC417L
Meditron = reference/Meditron
Litt3200 = reference/Litt3200
LittC2SE = reference/LittC2SE
np.save('spectrum_correction/vad'+vad_option+'/AKGC417L.npy', AKGC417L)
np.save('spectrum_correction/vad'+vad_option+'/Meditron.npy', Meditron)
np.save('spectrum_correction/vad'+vad_option+'/Litt3200.npy', Litt3200)
np.save('spectrum_correction/vad'+vad_option+'/LittC2SE.npy', LittC2SE)
filenames = glob.glob('/home/songwenjie/PycharmProjects/HF_Lung_V1_split/*')
Littmann = []
HF_Type = []
for i in range(len(filenames)):
wav, sr = librosa.load(filenames[i], sr=None)
D = np.abs(librosa.stft(wav, n_fft=256, hop_length=64)) ** 2
D = np.mean(D, axis=1)
name = str(filenames[i]).split('/')
name = name[-1]
if name[0] == 's':
Littmann.append(D)
else:
HF_Type.append(D)
Littmann = np.array(Littmann)
HF_Type = np.array(HF_Type)
Littmann = np.mean(Littmann, axis=0)
HF_Type = np.mean(HF_Type, axis=0)
Littmann = reference/Littmann
HF_Type = reference/HF_Type
np.save('spectrum_correction/vad'+vad_option+'/HF_Type.npy', HF_Type)
np.save('spectrum_correction/vad'+vad_option+'/Littmann.npy', Littmann)
filenames = glob.glob('/home/songwenjie/PycharmProjects/covid/*')
crowdsource = []
for i in range(len(filenames)):
wav, sr = librosa.load(filenames[i], sr=None)
D = np.abs(librosa.stft(wav, n_fft=256, hop_length=64)) ** 2
D = np.mean(D, axis=1)
crowdsource.append(D)
crowdsource = np.array(crowdsource)
crowdsource = np.mean(crowdsource, axis=0)
crowdsource = reference/crowdsource
np.save('spectrum_correction/vad'+vad_option+'/crowdsource.npy', crowdsource)