nkululeko 0.88.11__py3-none-any.whl → 0.88.12__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- nkululeko/constants.py +1 -1
- nkululeko/feat_extract/feats_agender.py +4 -3
- nkululeko/feat_extract/feats_auddim.py +2 -3
- nkululeko/feat_extract/feats_audmodel.py +2 -3
- nkululeko/feat_extract/feats_opensmile.py +1 -1
- nkululeko/feat_extract/feats_oxbow.py +6 -10
- nkululeko/feat_extract/featureset.py +1 -0
- nkululeko/models/model.py +42 -35
- nkululeko/models/model_cnn.py +4 -4
- nkululeko/models/model_mlp.py +1 -1
- nkululeko/models/model_mlp_regression.py +2 -2
- nkululeko/utils/util.py +4 -3
- {nkululeko-0.88.11.dist-info → nkululeko-0.88.12.dist-info}/METADATA +6 -1
- {nkululeko-0.88.11.dist-info → nkululeko-0.88.12.dist-info}/RECORD +17 -17
- {nkululeko-0.88.11.dist-info → nkululeko-0.88.12.dist-info}/LICENSE +0 -0
- {nkululeko-0.88.11.dist-info → nkululeko-0.88.12.dist-info}/WHEEL +0 -0
- {nkululeko-0.88.11.dist-info → nkululeko-0.88.12.dist-info}/top_level.txt +0 -0
nkululeko/constants.py
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
VERSION="0.88.
|
1
|
+
VERSION="0.88.12"
|
2
2
|
SAMPLING_RATE = 16000
|
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
from nkululeko.feat_extract.featureset import Featureset
|
4
4
|
import os
|
5
|
+
|
5
6
|
# import pandas as pd
|
6
7
|
import audeer
|
7
8
|
import nkululeko.glob_conf as glob_conf
|
@@ -10,6 +11,7 @@ import numpy as np
|
|
10
11
|
import audinterface
|
11
12
|
import torch
|
12
13
|
|
14
|
+
|
13
15
|
class AgenderSet(Featureset):
|
14
16
|
"""
|
15
17
|
Embeddings from the wav2vec2. based model finetuned on agender data, described in the paper
|
@@ -30,8 +32,7 @@ class AgenderSet(Featureset):
|
|
30
32
|
if not os.path.isdir(model_root):
|
31
33
|
cache_root = audeer.mkdir("cache")
|
32
34
|
model_root = audeer.mkdir(model_root)
|
33
|
-
archive_path = audeer.download_url(
|
34
|
-
model_url, cache_root, verbose=True)
|
35
|
+
archive_path = audeer.download_url(model_url, cache_root, verbose=True)
|
35
36
|
audeer.extract_archive(archive_path, model_root)
|
36
37
|
cuda = "cuda" if torch.cuda.is_available() else "cpu"
|
37
38
|
device = self.util.config_val("MODEL", "device", cuda)
|
@@ -62,7 +63,7 @@ class AgenderSet(Featureset):
|
|
62
63
|
},
|
63
64
|
sampling_rate=16000,
|
64
65
|
resample=True,
|
65
|
-
num_workers=
|
66
|
+
num_workers=self.n_jobs,
|
66
67
|
verbose=True,
|
67
68
|
)
|
68
69
|
self.df = hidden_states.process_index(self.data_df.index)
|
@@ -32,8 +32,7 @@ class AuddimSet(Featureset):
|
|
32
32
|
if not os.path.isdir(model_root):
|
33
33
|
cache_root = audeer.mkdir("cache")
|
34
34
|
model_root = audeer.mkdir(model_root)
|
35
|
-
archive_path = audeer.download_url(
|
36
|
-
model_url, cache_root, verbose=True)
|
35
|
+
archive_path = audeer.download_url(model_url, cache_root, verbose=True)
|
37
36
|
audeer.extract_archive(archive_path, model_root)
|
38
37
|
cuda = "cuda" if torch.cuda.is_available() else "cpu"
|
39
38
|
device = self.util.config_val("MODEL", "device", cuda)
|
@@ -63,7 +62,7 @@ class AuddimSet(Featureset):
|
|
63
62
|
},
|
64
63
|
sampling_rate=16000,
|
65
64
|
resample=True,
|
66
|
-
num_workers=
|
65
|
+
num_workers=self.n_jobs,
|
67
66
|
verbose=True,
|
68
67
|
)
|
69
68
|
self.df = logits.process_index(self.data_df.index)
|
@@ -30,8 +30,7 @@ class AudmodelSet(Featureset):
|
|
30
30
|
if not os.path.isdir(model_root):
|
31
31
|
cache_root = audeer.mkdir("cache")
|
32
32
|
model_root = audeer.mkdir(model_root)
|
33
|
-
archive_path = audeer.download_url(
|
34
|
-
model_url, cache_root, verbose=True)
|
33
|
+
archive_path = audeer.download_url(model_url, cache_root, verbose=True)
|
35
34
|
audeer.extract_archive(archive_path, model_root)
|
36
35
|
cuda = "cuda" if torch.cuda.is_available() else "cpu"
|
37
36
|
device = self.util.config_val("MODEL", "device", cuda)
|
@@ -61,7 +60,7 @@ class AudmodelSet(Featureset):
|
|
61
60
|
},
|
62
61
|
sampling_rate=16000,
|
63
62
|
resample=True,
|
64
|
-
num_workers=
|
63
|
+
num_workers=self.n_jobs,
|
65
64
|
verbose=True,
|
66
65
|
)
|
67
66
|
self.df = hidden_states.process_index(self.data_df.index)
|
@@ -22,17 +22,15 @@ class Openxbow(Featureset):
|
|
22
22
|
self.feature_set = eval(f"opensmile.FeatureSet.{self.featset}")
|
23
23
|
store = self.util.get_path("store")
|
24
24
|
storage = f"{store}{self.name}_{self.featset}.pkl"
|
25
|
-
extract = self.util.config_val(
|
26
|
-
"FEATS", "needs_feature_extraction", False)
|
25
|
+
extract = self.util.config_val("FEATS", "needs_feature_extraction", False)
|
27
26
|
no_reuse = eval(self.util.config_val("FEATS", "no_reuse", "False"))
|
28
27
|
if extract or no_reuse or not os.path.isfile(storage):
|
29
28
|
# extract smile features first
|
30
|
-
self.util.debug(
|
31
|
-
"extracting openSmile features, this might take a while...")
|
29
|
+
self.util.debug("extracting openSmile features, this might take a while...")
|
32
30
|
smile = opensmile.Smile(
|
33
31
|
feature_set=self.feature_set,
|
34
32
|
feature_level=opensmile.FeatureLevel.LowLevelDescriptors,
|
35
|
-
num_workers=
|
33
|
+
num_workers=self.n_jobs,
|
36
34
|
)
|
37
35
|
if isinstance(self.data_df.index, pd.MultiIndex):
|
38
36
|
is_multi_index = True
|
@@ -51,13 +49,11 @@ class Openxbow(Featureset):
|
|
51
49
|
# save the smile features
|
52
50
|
smile_df.to_csv(lld_name, sep=";", header=False)
|
53
51
|
# get the path of the xbow java jar file
|
54
|
-
xbow_path = self.util.config_val(
|
55
|
-
"FEATS", "xbow.model", "openXBOW")
|
52
|
+
xbow_path = self.util.config_val("FEATS", "xbow.model", "openXBOW")
|
56
53
|
# check if JAR file exist
|
57
54
|
if not os.path.isfile(f"{xbow_path}/openXBOW.jar"):
|
58
55
|
# download using wget if not exist and locate in xbow_path
|
59
|
-
os.system(
|
60
|
-
f"git clone https://github.com/openXBOW/openXBOW")
|
56
|
+
os.system(f"git clone https://github.com/openXBOW/openXBOW")
|
61
57
|
# get the size of the codebook
|
62
58
|
size = self.util.config_val("FEATS", "size", 500)
|
63
59
|
# get the number of assignements
|
@@ -87,7 +83,7 @@ class Openxbow(Featureset):
|
|
87
83
|
smile = opensmile.Smile(
|
88
84
|
feature_set=opensmile.FeatureSet.eGeMAPSv02, # always use eGemaps for this
|
89
85
|
feature_level=opensmile.FeatureLevel.Functionals,
|
90
|
-
num_workers=
|
86
|
+
num_workers=self.n_jobs,
|
91
87
|
)
|
92
88
|
if isinstance(self.data_df.index, pd.MultiIndex):
|
93
89
|
is_multi_index = True
|
nkululeko/models/model.py
CHANGED
@@ -3,6 +3,7 @@ import ast
|
|
3
3
|
import pickle
|
4
4
|
import random
|
5
5
|
|
6
|
+
from joblib import parallel_backend
|
6
7
|
import numpy as np
|
7
8
|
import pandas as pd
|
8
9
|
from sklearn.model_selection import GridSearchCV
|
@@ -34,6 +35,7 @@ class Model:
|
|
34
35
|
self.epoch = 0
|
35
36
|
self.logo = self.util.config_val("MODEL", "logo", False)
|
36
37
|
self.xfoldx = self.util.config_val("MODEL", "k_fold_cross", False)
|
38
|
+
self.n_jobs = int(self.util.config_val("MODEL", "n_jobs", "8"))
|
37
39
|
|
38
40
|
def set_model_type(self, type):
|
39
41
|
self.model_type = type
|
@@ -75,7 +77,8 @@ class Model:
|
|
75
77
|
):
|
76
78
|
train_x = feats.iloc[train_index].to_numpy()
|
77
79
|
train_y = targets[train_index]
|
78
|
-
|
80
|
+
with parallel_backend("threading", n_jobs=self.n_jobs):
|
81
|
+
self.clf.fit(train_x, train_y)
|
79
82
|
truth_x = feats.iloc[test_index].to_numpy()
|
80
83
|
truth_y = targets[test_index]
|
81
84
|
predict_y = self.clf.predict(truth_x)
|
@@ -141,7 +144,8 @@ class Model:
|
|
141
144
|
):
|
142
145
|
train_x = feats.iloc[train_index].to_numpy()
|
143
146
|
train_y = targets.iloc[train_index]
|
144
|
-
|
147
|
+
with parallel_backend("threading", n_jobs=self.n_jobs):
|
148
|
+
self.clf.fit(train_x, train_y)
|
145
149
|
|
146
150
|
truth_x = feats.iloc[test_index].to_numpy()
|
147
151
|
truth_y = targets.iloc[test_index]
|
@@ -171,7 +175,7 @@ class Model:
|
|
171
175
|
)
|
172
176
|
|
173
177
|
def train(self):
|
174
|
-
"""Train the model"""
|
178
|
+
"""Train the model."""
|
175
179
|
# # first check if the model already has been trained
|
176
180
|
# if os.path.isfile(self.store_path):
|
177
181
|
# self.load(self.run, self.epoch)
|
@@ -204,22 +208,39 @@ class Model:
|
|
204
208
|
)
|
205
209
|
|
206
210
|
tuning_params = self.util.config_val("MODEL", "tuning_params", False)
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
self.clf
|
221
|
-
|
222
|
-
|
211
|
+
with parallel_backend("threading", n_jobs=self.n_jobs):
|
212
|
+
if tuning_params:
|
213
|
+
# tune the model meta parameters
|
214
|
+
tuning_params = ast.literal_eval(tuning_params)
|
215
|
+
tuned_params = {}
|
216
|
+
try:
|
217
|
+
scoring = glob_conf.config["MODEL"]["scoring"]
|
218
|
+
except KeyError:
|
219
|
+
self.util.error("got tuning params but no scoring")
|
220
|
+
for param in tuning_params:
|
221
|
+
values = ast.literal_eval(glob_conf.config["MODEL"][param])
|
222
|
+
tuned_params[param] = values
|
223
|
+
self.util.debug(f"tuning on {tuned_params}")
|
224
|
+
self.clf = GridSearchCV(
|
225
|
+
self.clf, tuned_params, refit=True, verbose=3, scoring=scoring
|
226
|
+
)
|
227
|
+
try:
|
228
|
+
class_weight = eval(
|
229
|
+
self.util.config_val("MODEL", "class_weight", "False")
|
230
|
+
)
|
231
|
+
if class_weight:
|
232
|
+
self.util.debug("using class weight")
|
233
|
+
self.clf.fit(
|
234
|
+
feats,
|
235
|
+
self.df_train[self.target],
|
236
|
+
sample_weight=self.classes_weights,
|
237
|
+
)
|
238
|
+
else:
|
239
|
+
self.clf.fit(feats, self.df_train[self.target])
|
240
|
+
except KeyError:
|
241
|
+
self.clf.fit(feats, self.df_train[self.target])
|
242
|
+
self.util.debug(f"winner parameters: {self.clf.best_params_}")
|
243
|
+
else:
|
223
244
|
class_weight = self.util.config_val("MODEL", "class_weight", False)
|
224
245
|
if class_weight:
|
225
246
|
self.util.debug("using class weight")
|
@@ -229,22 +250,8 @@ class Model:
|
|
229
250
|
sample_weight=self.classes_weights,
|
230
251
|
)
|
231
252
|
else:
|
232
|
-
|
233
|
-
|
234
|
-
self.clf.fit(feats, self.df_train[self.target])
|
235
|
-
self.util.debug(f"winner parameters: {self.clf.best_params_}")
|
236
|
-
else:
|
237
|
-
class_weight = self.util.config_val("MODEL", "class_weight", False)
|
238
|
-
if class_weight:
|
239
|
-
self.util.debug("using class weight")
|
240
|
-
self.clf.fit(
|
241
|
-
feats,
|
242
|
-
self.df_train[self.target],
|
243
|
-
sample_weight=self.classes_weights,
|
244
|
-
)
|
245
|
-
else:
|
246
|
-
labels = self.df_train[self.target]
|
247
|
-
self.clf.fit(feats, labels)
|
253
|
+
labels = self.df_train[self.target]
|
254
|
+
self.clf.fit(feats, labels)
|
248
255
|
|
249
256
|
def get_predictions(self):
|
250
257
|
# predictions = self.clf.predict(self.feats_test.to_numpy())
|
nkululeko/models/model_cnn.py
CHANGED
@@ -80,7 +80,7 @@ class CNNModel(Model):
|
|
80
80
|
# batch size
|
81
81
|
self.batch_size = int(self.util.config_val("MODEL", "batch_size", 8))
|
82
82
|
# number of parallel processes
|
83
|
-
self.num_workers =
|
83
|
+
self.num_workers = self.n_jobs
|
84
84
|
|
85
85
|
# set up the data_loaders
|
86
86
|
|
@@ -100,13 +100,13 @@ class CNNModel(Model):
|
|
100
100
|
train_set,
|
101
101
|
batch_size=self.batch_size,
|
102
102
|
shuffle=True,
|
103
|
-
num_workers=self.
|
103
|
+
num_workers=self.n_jobs,
|
104
104
|
)
|
105
105
|
self.testloader = torch.utils.data.DataLoader(
|
106
106
|
test_set,
|
107
107
|
batch_size=self.batch_size,
|
108
108
|
shuffle=False,
|
109
|
-
num_workers=self.
|
109
|
+
num_workers=self.n_jobs,
|
110
110
|
)
|
111
111
|
|
112
112
|
class Dataset_image(Dataset):
|
@@ -136,7 +136,7 @@ class CNNModel(Model):
|
|
136
136
|
test_set,
|
137
137
|
batch_size=self.batch_size,
|
138
138
|
shuffle=False,
|
139
|
-
num_workers=self.
|
139
|
+
num_workers=self.n_jobs,
|
140
140
|
)
|
141
141
|
|
142
142
|
def reset_test(self, df_test, feats_test):
|
nkululeko/models/model_mlp.py
CHANGED
@@ -71,7 +71,7 @@ class MLPModel(Model):
|
|
71
71
|
# batch size
|
72
72
|
self.batch_size = int(self.util.config_val("MODEL", "batch_size", 8))
|
73
73
|
# number of parallel processes
|
74
|
-
self.num_workers =
|
74
|
+
self.num_workers = self.n_jobs
|
75
75
|
if feats_train.isna().to_numpy().any():
|
76
76
|
self.util.debug(
|
77
77
|
f"Model, train: replacing {feats_train.isna().sum().sum()} NANs"
|
@@ -64,7 +64,7 @@ class MLP_Reg_model(Model):
|
|
64
64
|
# batch size
|
65
65
|
self.batch_size = int(self.util.config_val("MODEL", "batch_size", 8))
|
66
66
|
# number of parallel processes
|
67
|
-
self.num_workers =
|
67
|
+
self.num_workers = self.n_jobs
|
68
68
|
# set up the data_loaders
|
69
69
|
if feats_train.isna().to_numpy().any():
|
70
70
|
self.util.debug(
|
@@ -117,7 +117,7 @@ class MLP_Reg_model(Model):
|
|
117
117
|
dataset=data_set,
|
118
118
|
batch_size=self.batch_size,
|
119
119
|
shuffle=shuffle,
|
120
|
-
num_workers=self.
|
120
|
+
num_workers=self.n_jobs,
|
121
121
|
)
|
122
122
|
return loader
|
123
123
|
|
nkululeko/utils/util.py
CHANGED
@@ -27,6 +27,7 @@ class Util:
|
|
27
27
|
"pkl",
|
28
28
|
"eGeMAPSv02",
|
29
29
|
"functionals",
|
30
|
+
"n_jobs",
|
30
31
|
]
|
31
32
|
|
32
33
|
def __init__(self, caller=None, has_config=True):
|
@@ -150,7 +151,7 @@ class Util:
|
|
150
151
|
# self.logged_configs.clear()
|
151
152
|
|
152
153
|
def get_save_name(self):
|
153
|
-
"""Return a relative path to a name to save the experiment"""
|
154
|
+
"""Return a relative path to a name to save the experiment."""
|
154
155
|
store = self.get_path("store")
|
155
156
|
return f"{store}/{self.get_exp_name()}.pkl"
|
156
157
|
|
@@ -161,7 +162,7 @@ class Util:
|
|
161
162
|
return f"{store}/pred_{target}_{pred_name}.csv"
|
162
163
|
|
163
164
|
def is_categorical(self, pd_series):
|
164
|
-
"""Check if a dataframe column is categorical"""
|
165
|
+
"""Check if a dataframe column is categorical."""
|
165
166
|
return pd_series.dtype.name == "object" or isinstance(
|
166
167
|
pd_series.dtype, pd.CategoricalDtype
|
167
168
|
)
|
@@ -307,7 +308,7 @@ class Util:
|
|
307
308
|
self.config[section][key] = str(value)
|
308
309
|
|
309
310
|
def check_df(self, i, df):
|
310
|
-
"""Check a dataframe"""
|
311
|
+
"""Check a dataframe."""
|
311
312
|
print(f"check {i}: {df.shape}")
|
312
313
|
print(df.head(1))
|
313
314
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: nkululeko
|
3
|
-
Version: 0.88.
|
3
|
+
Version: 0.88.12
|
4
4
|
Summary: Machine learning audio prediction experiments based on templates
|
5
5
|
Home-page: https://github.com/felixbur/nkululeko
|
6
6
|
Author: Felix Burkhardt
|
@@ -359,6 +359,11 @@ F. Burkhardt, Johannes Wagner, Hagen Wierstorf, Florian Eyben and Björn Schulle
|
|
359
359
|
Changelog
|
360
360
|
=========
|
361
361
|
|
362
|
+
Version 0.88.12
|
363
|
+
--------------
|
364
|
+
* added n_jobs for sklearn processing
|
365
|
+
* re_named num_workers n_jobs
|
366
|
+
|
362
367
|
Version 0.88.11
|
363
368
|
--------------
|
364
369
|
* removed hack in Praat script
|
@@ -2,7 +2,7 @@ nkululeko/__init__.py,sha256=62f8HiEzJ8rG2QlTFJXUCMpvuH3fKI33DoJSj33mscc,63
|
|
2
2
|
nkululeko/aug_train.py,sha256=YhuZnS_WVWnun9G-M6g5n6rbRxoVREz6Zh7k6qprFNQ,3194
|
3
3
|
nkululeko/augment.py,sha256=4MG0apTAG5RgkuJrYEjGgDdbodZWi_HweSPNI1JJ5QA,3051
|
4
4
|
nkululeko/cacheddataset.py,sha256=lIJ6hUo5LoxSrzXtWV8mzwO7wRtUETWnOQ4ws2XfL1E,969
|
5
|
-
nkululeko/constants.py,sha256=
|
5
|
+
nkululeko/constants.py,sha256=7-twiCGYx2fTsGKDZex9QsUXRhaudHMRFwoV8HehRcg,40
|
6
6
|
nkululeko/demo.py,sha256=bLuHkeEl5rOfm7ecGHCcWATiPK7-njNbtrGljxzNzFs,5088
|
7
7
|
nkululeko/demo_feats.py,sha256=sAeGFojhEj9WEDFtG3SzPBmyYJWLF2rkbpp65m8Ujo4,2025
|
8
8
|
nkululeko/demo_predictor.py,sha256=zs1bjhpnKuNCPLJeiyDm19ME1NEDOQT3QNeyVKJq9Yc,4882
|
@@ -49,19 +49,19 @@ nkululeko/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
49
49
|
nkululeko/data/dataset.py,sha256=xaawk5QthuVStWjHWTFBtorcIe71lbPQgC6mHzSXGeI,29286
|
50
50
|
nkululeko/data/dataset_csv.py,sha256=UGEpi__eT2KFS6Fop6N4HkMrzO-u5VP71gt44kwZavo,4588
|
51
51
|
nkululeko/feat_extract/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
52
|
-
nkululeko/feat_extract/feats_agender.py,sha256=
|
52
|
+
nkululeko/feat_extract/feats_agender.py,sha256=tMK3_qs8adylNNSR0CS1RjU9RxmpumLqmuyzmc2ZYjA,3184
|
53
53
|
nkululeko/feat_extract/feats_agender_agender.py,sha256=19NoRT0KJ8WoZ3EabTYexXymD7bDy58-H20jYmdqjD0,3498
|
54
54
|
nkululeko/feat_extract/feats_analyser.py,sha256=Y9hMpZ9WsQOrxTP3B1diHnzMeOgwbVpVFWVlIyhHMJs,12722
|
55
55
|
nkululeko/feat_extract/feats_ast.py,sha256=ycJn5eSVOxcEpmeHVk0FPB8q5XiTC8VSKz61L9n0Wa4,4638
|
56
|
-
nkululeko/feat_extract/feats_auddim.py,sha256=
|
57
|
-
nkululeko/feat_extract/feats_audmodel.py,sha256=
|
56
|
+
nkululeko/feat_extract/feats_auddim.py,sha256=ulP_o4SGeQDFTs8YYCGKgccARAo6-wcjPK6-hhGjmn8,3155
|
57
|
+
nkululeko/feat_extract/feats_audmodel.py,sha256=aRGTBDKdYaTT_9xDaFZqpuyPhzxSNN_3b1PJDUHtYW4,3180
|
58
58
|
nkululeko/feat_extract/feats_clap.py,sha256=nR6eEIRdsMHcfmD1bNtt5WfDvkxKjvEbukSSrXHm-HU,3489
|
59
59
|
nkululeko/feat_extract/feats_hubert.py,sha256=cLoUzSLjSYBkQnftjacSL7ES3O7Ysh_KrPYvZtLX_TU,5196
|
60
60
|
nkululeko/feat_extract/feats_import.py,sha256=WiU5lCkJsmFNTDyPV0qIh8mJssa6bpgP7AYw_ClKfWM,1674
|
61
61
|
nkululeko/feat_extract/feats_mld.py,sha256=Vvu7GZOkn7Vda8eIOXqHjg78zegkFe3vTUaCXyVM0eA,2021
|
62
62
|
nkululeko/feat_extract/feats_mos.py,sha256=KXNt7QYEfxkvr6UyVhig2aWQBaIvovlrR4gPuP03gmo,4174
|
63
|
-
nkululeko/feat_extract/feats_opensmile.py,sha256=
|
64
|
-
nkululeko/feat_extract/feats_oxbow.py,sha256=
|
63
|
+
nkululeko/feat_extract/feats_opensmile.py,sha256=oP5ZWuddPN3_Sa59uyVJisCBd6e2By-IZZ9gVo7NtpE,4038
|
64
|
+
nkululeko/feat_extract/feats_oxbow.py,sha256=djPH5k_pBzTV7yaY0eD4qVmYAnKoDu3_Cbaypx_V4vM,4932
|
65
65
|
nkululeko/feat_extract/feats_praat.py,sha256=kZrS6srzH7WoWEd2prp1Dxw6g9JklFQGTNq5zzPpHzg,3105
|
66
66
|
nkululeko/feat_extract/feats_snr.py,sha256=9dqZ-4RpK98iJEssM3ttozNd18LWlZYM_QVXvp5xDcs,2829
|
67
67
|
nkululeko/feat_extract/feats_spectra.py,sha256=5Pex8awIQC3cjQRHSu4NQFmg4quamG0RL3V3Yd0pJHs,3670
|
@@ -71,21 +71,21 @@ nkululeko/feat_extract/feats_trill.py,sha256=K2ahhdpwpjgg3WZS1POg3UMP2U44i8cLZZv
|
|
71
71
|
nkululeko/feat_extract/feats_wav2vec2.py,sha256=XyxD4NcrF4VFWSeHkXCKWdEOdr8VMzgVUz8N4mwhdyo,5248
|
72
72
|
nkululeko/feat_extract/feats_wavlm.py,sha256=O9cfc39VF5aPJRRATKb37pHT4W11i2cu5O1mY9LOjIA,4755
|
73
73
|
nkululeko/feat_extract/feats_whisper.py,sha256=0N7Vj65OVi2PNoB_NrDjWT5lP6xZNKxFOZZIoxkJvcA,4533
|
74
|
-
nkululeko/feat_extract/featureset.py,sha256=
|
74
|
+
nkululeko/feat_extract/featureset.py,sha256=WV4Lm2VXNZlEDOUaS2e3KyId-LP8bOX0jnhWnRtJqfY,1613
|
75
75
|
nkululeko/feat_extract/feinberg_praat.py,sha256=_8MwVikn0vjcyv1ygjScfjIJijOr_IN-o2ZQW1VVZtg,21310
|
76
76
|
nkululeko/losses/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
77
77
|
nkululeko/losses/loss_ccc.py,sha256=NOK0y0fxKUnU161B5geap6Fmn8QzoPl2MqtPiV8IuJE,976
|
78
78
|
nkululeko/losses/loss_softf1loss.py,sha256=5gW-PuiqeAZcRgfwjueIOQtMokOjZWgQnVIv59HKTCo,1309
|
79
79
|
nkululeko/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
80
|
-
nkululeko/models/model.py,sha256=
|
80
|
+
nkululeko/models/model.py,sha256=LpoJOj1LEFrxpK8WQOfusPBeQfBUnPtAANOKBJoQ8Iw,13010
|
81
81
|
nkululeko/models/model_bayes.py,sha256=WJFZ8wFKwWATz6MhmjeZIi1Pal1viU549WL_PjXDSy8,406
|
82
|
-
nkululeko/models/model_cnn.py,sha256
|
82
|
+
nkululeko/models/model_cnn.py,sha256=-VTKi9aiI5ubn7-kTQCFkgh1CpPOYEiiHvlvP_zsgAQ,10573
|
83
83
|
nkululeko/models/model_gmm.py,sha256=m1ONBql-T0La8Cv0awB7lPUG-kgbygoWmbuqzDzmj-Y,1337
|
84
84
|
nkululeko/models/model_knn.py,sha256=KlnrJfwiVnmXZrAaYGFrKA2f5sznvTzSJQ8-5etOP0k,599
|
85
85
|
nkululeko/models/model_knn_reg.py,sha256=j7YFfVm6xOR2d9yBYdQiwwqYfqkX0JynX_qLCvkr1fk,610
|
86
86
|
nkululeko/models/model_lin_reg.py,sha256=0D7mSnSwK82lNWDMwHYRyq3FmGa6y-DHDGg4qUe85q4,422
|
87
|
-
nkululeko/models/model_mlp.py,sha256=
|
88
|
-
nkululeko/models/model_mlp_regression.py,sha256=
|
87
|
+
nkululeko/models/model_mlp.py,sha256=CaR0PCRBcdCo_hhC5r9Q6IbVIApvtoRVrUdZsgzbx1M,10516
|
88
|
+
nkululeko/models/model_mlp_regression.py,sha256=YMHMWRlWL6iL8HdYe6rTAoAW6GwHBx3PDvysCZYj5tQ,10186
|
89
89
|
nkululeko/models/model_svm.py,sha256=AzWksBRbIdpUuMbDnAh_YAXebewR5POj9AkB9VC40pI,1010
|
90
90
|
nkululeko/models/model_svr.py,sha256=_YZeksqB3eBENGlg3g9RwYFlk9rQQ-XCeNBKLlGGVoE,725
|
91
91
|
nkululeko/models/model_tree.py,sha256=rf16faUm4o2LJgkoYpeY998b8DQIvXZ73_m1IS3TnnE,417
|
@@ -106,9 +106,9 @@ nkululeko/segmenting/seg_silero.py,sha256=lLytS38KzARS17omwv8VBw-zz60RVSXGSvZ5Ev
|
|
106
106
|
nkululeko/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
107
107
|
nkululeko/utils/files.py,sha256=UiGAtZRWYjHSvlmPaTMtzyNNGE6qaLaxQkybctS7iRM,4021
|
108
108
|
nkululeko/utils/stats.py,sha256=eC9dMO-by6CDnGLHDBQu-2B4-BudZNJ0nnWGhKYdUMA,2968
|
109
|
-
nkululeko/utils/util.py,sha256=
|
110
|
-
nkululeko-0.88.
|
111
|
-
nkululeko-0.88.
|
112
|
-
nkululeko-0.88.
|
113
|
-
nkululeko-0.88.
|
114
|
-
nkululeko-0.88.
|
109
|
+
nkululeko/utils/util.py,sha256=CY45KIhpYsfYa9qXyqOYErjhS2fjYfaVzRTfOZZKzaQ,16709
|
110
|
+
nkululeko-0.88.12.dist-info/LICENSE,sha256=0zGP5B_W35yAcGfHPS18Q2B8UhvLRY3dQq1MhpsJU_U,1076
|
111
|
+
nkululeko-0.88.12.dist-info/METADATA,sha256=46Vj4H4faGcNqc-dMMpyDo_BB9q6yczjYaPpKtsXgNc,40494
|
112
|
+
nkululeko-0.88.12.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
|
113
|
+
nkululeko-0.88.12.dist-info/top_level.txt,sha256=DPFNNSHPjUeVKj44dVANAjuVGRCC3MusJ08lc2a8xFA,10
|
114
|
+
nkululeko-0.88.12.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|