nkululeko 0.95.0__py3-none-any.whl → 0.95.1__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/autopredict/tests/__init__.py +0 -0
- nkululeko/autopredict/tests/test_whisper_transcriber.py +122 -0
- nkululeko/balance.py +222 -0
- nkululeko/constants.py +1 -1
- nkululeko/feat_extract/feats_praat.py +3 -3
- nkululeko/feat_extract/{feinberg_praat.py → feats_praat_core.py} +0 -2
- nkululeko/feat_extract/tests/__init__.py +1 -0
- nkululeko/feat_extract/tests/test_feats_opensmile.py +162 -0
- nkululeko/feat_extract/tests/test_feats_praat_core.py +507 -0
- nkululeko/modelrunner.py +15 -48
- nkululeko/models/tests/test_model_knn.py +49 -0
- nkululeko/models/tests/test_model_mlp.py +153 -0
- nkululeko/models/tests/test_model_xgb.py +33 -0
- nkululeko/predict.py +3 -2
- nkululeko/reporting/reporter.py +12 -0
- nkululeko/test_predictor.py +7 -1
- nkululeko/tests/__init__.py +1 -0
- nkululeko/tests/test_balancing.py +270 -0
- nkululeko/utils/util.py +5 -5
- {nkululeko-0.95.0.dist-info → nkululeko-0.95.1.dist-info}/METADATA +1 -1
- {nkululeko-0.95.0.dist-info → nkululeko-0.95.1.dist-info}/RECORD +25 -15
- nkululeko/feat_extract/feats_opensmile copy.py +0 -93
- {nkululeko-0.95.0.dist-info → nkululeko-0.95.1.dist-info}/WHEEL +0 -0
- {nkululeko-0.95.0.dist-info → nkululeko-0.95.1.dist-info}/entry_points.txt +0 -0
- {nkululeko-0.95.0.dist-info → nkululeko-0.95.1.dist-info}/licenses/LICENSE +0 -0
- {nkululeko-0.95.0.dist-info → nkululeko-0.95.1.dist-info}/top_level.txt +0 -0
@@ -1,93 +0,0 @@
|
|
1
|
-
# opensmileset.py
|
2
|
-
import os
|
3
|
-
|
4
|
-
import opensmile
|
5
|
-
import pandas as pd
|
6
|
-
|
7
|
-
import nkululeko.glob_conf as glob_conf
|
8
|
-
from nkululeko.feat_extract.featureset import Featureset
|
9
|
-
|
10
|
-
|
11
|
-
class Opensmileset(Featureset):
|
12
|
-
def __init__(self, name, data_df, feats_type=None, config_file=None):
|
13
|
-
super().__init__(name, data_df, feats_type)
|
14
|
-
self.featset = self.util.config_val("FEATS", "set", "eGeMAPSv02")
|
15
|
-
try:
|
16
|
-
self.feature_set = eval(f"opensmile.FeatureSet.{self.featset}")
|
17
|
-
# 'eGeMAPSv02, ComParE_2016, GeMAPSv01a, eGeMAPSv01a':
|
18
|
-
except AttributeError:
|
19
|
-
self.util.error(f"something is wrong with feature set: {self.featset}")
|
20
|
-
self.featlevel = self.util.config_val("FEATS", "level", "functionals")
|
21
|
-
try:
|
22
|
-
self.featlevel = self.featlevel.replace("lld", "LowLevelDescriptors")
|
23
|
-
self.featlevel = self.featlevel.replace("functionals", "Functionals")
|
24
|
-
self.feature_level = eval(f"opensmile.FeatureLevel.{self.featlevel}")
|
25
|
-
except AttributeError:
|
26
|
-
self.util.error(f"something is wrong with feature level: {self.featlevel}")
|
27
|
-
|
28
|
-
def extract(self):
|
29
|
-
"""Extract the features based on the initialized dataset or re-open them when found on disk."""
|
30
|
-
store = self.util.get_path("store")
|
31
|
-
store_format = self.util.config_val("FEATS", "store_format", "pkl")
|
32
|
-
storage = f"{store}{self.name}.{store_format}"
|
33
|
-
extract = eval(
|
34
|
-
self.util.config_val("FEATS", "needs_feature_extraction", "False")
|
35
|
-
)
|
36
|
-
no_reuse = eval(self.util.config_val("FEATS", "no_reuse", "False"))
|
37
|
-
if extract or not os.path.isfile(storage) or no_reuse:
|
38
|
-
self.util.debug("extracting openSmile features, this might take a while...")
|
39
|
-
smile = opensmile.Smile(
|
40
|
-
feature_set=self.feature_set,
|
41
|
-
feature_level=self.feature_level,
|
42
|
-
num_workers=self.n_jobs,
|
43
|
-
verbose=True,
|
44
|
-
)
|
45
|
-
if isinstance(self.data_df.index, pd.MultiIndex):
|
46
|
-
self.df = smile.process_index(self.data_df.index)
|
47
|
-
self.df = self.df.set_index(self.data_df.index)
|
48
|
-
else:
|
49
|
-
self.df = smile.process_files(self.data_df.index)
|
50
|
-
self.df.index = self.df.index.droplevel(1)
|
51
|
-
self.df.index = self.df.index.droplevel(1)
|
52
|
-
self.util.write_store(self.df, storage, store_format)
|
53
|
-
try:
|
54
|
-
glob_conf.config["DATA"]["needs_feature_extraction"] = "False"
|
55
|
-
except KeyError:
|
56
|
-
pass
|
57
|
-
else:
|
58
|
-
self.util.debug(f"reusing extracted OS features: {storage}.")
|
59
|
-
self.df = self.util.get_store(storage, store_format)
|
60
|
-
|
61
|
-
def extract_sample(self, signal, sr):
|
62
|
-
smile = opensmile.Smile(
|
63
|
-
feature_set=self.feature_set,
|
64
|
-
feature_level=opensmile.FeatureLevel.Functionals,
|
65
|
-
)
|
66
|
-
feats = smile.process_signal(signal, sr)
|
67
|
-
return feats.to_numpy()
|
68
|
-
|
69
|
-
# def filter(self):
|
70
|
-
# # use only the features that are indexed in the target dataframes
|
71
|
-
# self.df = self.df[self.df.index.isin(self.data_df.index)]
|
72
|
-
# try:
|
73
|
-
# # use only some features
|
74
|
-
# selected_features = ast.literal_eval(
|
75
|
-
# glob_conf.config["FEATS"]["os.features"]
|
76
|
-
# )
|
77
|
-
# self.util.debug(f"selecting features from opensmile: {selected_features}")
|
78
|
-
# sel_feats_df = pd.DataFrame()
|
79
|
-
# hit = False
|
80
|
-
# for feat in selected_features:
|
81
|
-
# try:
|
82
|
-
# sel_feats_df[feat] = self.df[feat]
|
83
|
-
# hit = True
|
84
|
-
# except KeyError:
|
85
|
-
# pass
|
86
|
-
# if hit:
|
87
|
-
# self.df = sel_feats_df
|
88
|
-
# self.util.debug(
|
89
|
-
# "new feats shape after selecting opensmile features:"
|
90
|
-
# f" {self.df.shape}"
|
91
|
-
# )
|
92
|
-
# except KeyError:
|
93
|
-
# pass
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|