nkululeko 0.93.12__py3-none-any.whl → 0.93.13__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/data/dataset.py +29 -58
- nkululeko/feat_extract/feats_analyser.py +4 -2
- nkululeko/feat_extract/feats_wav2vec2.py +1 -0
- nkululeko/plots.py +4 -1
- nkululeko-0.93.13.dist-info/METADATA +39 -0
- {nkululeko-0.93.12.dist-info → nkululeko-0.93.13.dist-info}/RECORD +11 -11
- nkululeko-0.93.12.dist-info/METADATA +0 -1491
- {nkululeko-0.93.12.dist-info → nkululeko-0.93.13.dist-info}/LICENSE +0 -0
- {nkululeko-0.93.12.dist-info → nkululeko-0.93.13.dist-info}/WHEEL +0 -0
- {nkululeko-0.93.12.dist-info → nkululeko-0.93.13.dist-info}/entry_points.txt +0 -0
- {nkululeko-0.93.12.dist-info → nkululeko-0.93.13.dist-info}/top_level.txt +0 -0
@@ -1,1491 +0,0 @@
|
|
1
|
-
Metadata-Version: 2.2
|
2
|
-
Name: nkululeko
|
3
|
-
Version: 0.93.12
|
4
|
-
Summary: Machine learning audio prediction experiments based on templates
|
5
|
-
Home-page: https://github.com/felixbur/nkululeko
|
6
|
-
Author: Felix Burkhardt
|
7
|
-
Author-email: fxburk@gmail.com
|
8
|
-
Classifier: Programming Language :: Python :: 3
|
9
|
-
Classifier: License :: OSI Approved :: MIT License
|
10
|
-
Classifier: Operating System :: OS Independent
|
11
|
-
Classifier: Development Status :: 3 - Alpha
|
12
|
-
Classifier: Topic :: Scientific/Engineering
|
13
|
-
Requires-Python: >=3.9
|
14
|
-
Description-Content-Type: text/markdown
|
15
|
-
License-File: LICENSE
|
16
|
-
Requires-Dist: audeer
|
17
|
-
Requires-Dist: audformat
|
18
|
-
Requires-Dist: audinterface
|
19
|
-
Requires-Dist: audiofile
|
20
|
-
Requires-Dist: audiomentations
|
21
|
-
Requires-Dist: audmetric
|
22
|
-
Requires-Dist: audonnx
|
23
|
-
Requires-Dist: confidence_intervals
|
24
|
-
Requires-Dist: datasets
|
25
|
-
Requires-Dist: imageio
|
26
|
-
Requires-Dist: matplotlib
|
27
|
-
Requires-Dist: numpy
|
28
|
-
Requires-Dist: opensmile
|
29
|
-
Requires-Dist: pandas
|
30
|
-
Requires-Dist: praat-parselmouth
|
31
|
-
Requires-Dist: scikit_learn
|
32
|
-
Requires-Dist: scipy
|
33
|
-
Requires-Dist: seaborn
|
34
|
-
Requires-Dist: sounddevice
|
35
|
-
Requires-Dist: torch
|
36
|
-
Requires-Dist: torchvision
|
37
|
-
Requires-Dist: transformers
|
38
|
-
Requires-Dist: umap-learn
|
39
|
-
Requires-Dist: xgboost
|
40
|
-
Requires-Dist: pylatex
|
41
|
-
|
42
|
-
|
43
|
-
- [Overview](#overview)
|
44
|
-
- [Confusion matrix](#confusion-matrix)
|
45
|
-
- [Epoch progression](#epoch-progression)
|
46
|
-
- [Feature importance](#feature-importance)
|
47
|
-
- [Feature distribution](#feature-distribution)
|
48
|
-
- [t-SNE plots](#t-sne-plots)
|
49
|
-
- [Data distribution](#data-distribution)
|
50
|
-
- [Bias checking](#bias-checking)
|
51
|
-
- [Uncertainty](#uncertainty)
|
52
|
-
- [Documentation](#documentation)
|
53
|
-
- [Installation](#installation)
|
54
|
-
- [Usage](#usage)
|
55
|
-
- [ini-file values](#ini-file-values)
|
56
|
-
- [Hello World example](#hello-world-example)
|
57
|
-
- [Features](#features)
|
58
|
-
- [License](#license)
|
59
|
-
- [Contributing](#contributing)
|
60
|
-
- [Citing](#citing)
|
61
|
-
|
62
|
-
|
63
|
-
## Overview
|
64
|
-
A project to detect speaker characteristics by machine learning experiments with a high-level interface.
|
65
|
-
|
66
|
-
The idea is to have a framework (based on e.g. sklearn and torch) that can be used to rapidly and automatically analyse audio data and explore machine learning models based on that data.
|
67
|
-
|
68
|
-
* NEW with nkululeko: [Ensemble learning](http://blog.syntheticspeech.de/2024/06/25/nkululeko-ensemble-classifiers-with-late-fusion/)
|
69
|
-
* NEW: [Finetune transformer-models](http://blog.syntheticspeech.de/2024/05/29/nkululeko-how-to-finetune-a-transformer-model/)
|
70
|
-
* The latest features can be seen in [the ini-file](./ini_file.md) options that are used to control Nkululeko
|
71
|
-
* Below is a [Hello World example](#helloworld) that should set you up fastly, also on [Google Colab](https://colab.research.google.com/drive/1GYNBd5cdZQ1QC3Jm58qoeMaJg3UuPhjw?usp=sharing#scrollTo=4G_SjuF9xeQf), and [with Kaggle](https://www.kaggle.com/felixburk/nkululeko-hello-world-example)
|
72
|
-
* [Here's a blog post on how to set up nkululeko on your computer.](http://blog.syntheticspeech.de/2021/08/30/how-to-set-up-your-first-nkululeko-project/)
|
73
|
-
* [Here is a slack channel to discuss issues related to nkululeko](https://join.slack.com/t/nkululekoworkspace/shared_invite/zt-2v3q3yfzk-XfNGoqLfp3ts9KfCZpfTyg). Please click the link if interested in contributing.
|
74
|
-
* [Here's a slide presentation about nkululeko](docs/nkululeko.pdf)
|
75
|
-
* [Here's a video presentation about nkululeko](https://www.youtube.com/playlist?list=PLRceVavtxLg0y2jiLmpnUfiMtfvkK912D)
|
76
|
-
* [Here's the 2022 LREC article on nkululeko](http://felix.syntheticspeech.de/publications/Nkululeko_LREC.pdf)
|
77
|
-
|
78
|
-
Here are some examples of typical output:
|
79
|
-
|
80
|
-
### Confusion matrix
|
81
|
-
Per default, Nkululeko displays results as a confusion matrix using binning with regression.
|
82
|
-
|
83
|
-
<img src="meta/images/conf_mat.png" width="500px"/>
|
84
|
-
|
85
|
-
### Epoch progression
|
86
|
-
The point when overfitting starts can sometimes be seen by looking at the results per epoch:
|
87
|
-
|
88
|
-
<img src="meta/images/epoch_progression.png" width="500px"/>
|
89
|
-
|
90
|
-
### Feature importance
|
91
|
-
Using the *explore* interface, Nkululeko analyses the importance of acoustic features:
|
92
|
-
|
93
|
-
<img src="meta/images/feat_importance.png" width="500px"/>
|
94
|
-
|
95
|
-
### Feature distribution
|
96
|
-
And can show the distribution of specific features per category:
|
97
|
-
|
98
|
-
<img src="meta/images/feat_dist.png" width="500px"/>
|
99
|
-
|
100
|
-
### t-SNE plots
|
101
|
-
A t-SNE plot can give you an estimate of whether your acoustic features are useful at all:
|
102
|
-
|
103
|
-
<img src="meta/images/tsne.png" width="500px"/>
|
104
|
-
|
105
|
-
### Data distribution
|
106
|
-
Sometimes, you only want to take a look at your data:
|
107
|
-
|
108
|
-
<img src="meta/images/data_plot.png" width="500px"/>
|
109
|
-
|
110
|
-
### Bias checking
|
111
|
-
In some cases, you might wonder if there's bias in your data. You can try to detect this with automatically estimated speech properties by visualizing the correlation of target labels and predicted labels.
|
112
|
-
|
113
|
-
<img src="meta/images/emotion-pesq.png" width="500px"/>
|
114
|
-
|
115
|
-
### Uncertainty
|
116
|
-
Nkululeko estimates the uncertainty of model decisions (only for classifiers) with entropy over the class probabilities or logits per sample.
|
117
|
-
|
118
|
-
<img src="meta/images/uncertainty.png" width="500px"/>
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
## Documentation
|
123
|
-
The documentation, along with extensions of installation, usage, INI file format, and examples, can be found [nkululeko.readthedocs.io](https://nkululeko.readthedocs.io).
|
124
|
-
|
125
|
-
## Installation
|
126
|
-
|
127
|
-
Create and activate a virtual Python environment and simply run
|
128
|
-
```
|
129
|
-
pip install nkululeko
|
130
|
-
```
|
131
|
-
We excluded some packages from the automatic installation because they might depend on your computer and some of them are only needed in special cases. So if the error
|
132
|
-
```
|
133
|
-
module x not found
|
134
|
-
```
|
135
|
-
appears, please try
|
136
|
-
```
|
137
|
-
pip install x
|
138
|
-
```
|
139
|
-
For many packages, you will need the missing torch package.
|
140
|
-
If you don't have a GPU (which is probably true if you don't know what that is), please use
|
141
|
-
```
|
142
|
-
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
|
143
|
-
```
|
144
|
-
else, you can use the default:
|
145
|
-
```
|
146
|
-
pip install torch torchvision torchaudio
|
147
|
-
```
|
148
|
-
|
149
|
-
Some functionalities require extra packages to be installed, which we didn't include automatically:
|
150
|
-
* the SQUIM model needs a special torch version:
|
151
|
-
```
|
152
|
-
pip uninstall -y torch torchvision torchaudio
|
153
|
-
pip install --pre torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/nightly/cpu
|
154
|
-
```
|
155
|
-
* the spotlight adapter needs spotlight:
|
156
|
-
```
|
157
|
-
pip install renumics-spotlight sliceguard
|
158
|
-
```
|
159
|
-
|
160
|
-
|
161
|
-
Some examples for *ini*-files (which you use to control nkululeko) are in the [tests folder](https://github.com/felixbur/nkululeko/tree/main/tests).
|
162
|
-
|
163
|
-
|
164
|
-
## Usage
|
165
|
-
|
166
|
-
### [ini-file values](./ini_file.md)
|
167
|
-
|
168
|
-
Nkululeko works by specifiying
|
169
|
-
|
170
|
-
|
171
|
-
Basically, you specify your experiment in an ["ini" file](./ini_file.md) (e.g. *experiment.ini*) and then call one of the Nkululeko interfaces to run the experiment like this:
|
172
|
-
* ```python -m nkululeko.nkululeko --config experiment.ini```
|
173
|
-
|
174
|
-
A basic configuration looks like this:
|
175
|
-
```
|
176
|
-
[EXP]
|
177
|
-
root = ./
|
178
|
-
name = exp_emodb
|
179
|
-
[DATA]
|
180
|
-
databases = ['emodb']
|
181
|
-
emodb = ./emodb/
|
182
|
-
emodb.split_strategy = speaker_split
|
183
|
-
target = emotion
|
184
|
-
labels = ['anger', 'boredom', 'disgust', 'fear']
|
185
|
-
[FEATS]
|
186
|
-
type = ['praat']
|
187
|
-
[MODEL]
|
188
|
-
type = svm
|
189
|
-
[EXPL]
|
190
|
-
model = tree
|
191
|
-
plot_tree = True
|
192
|
-
```
|
193
|
-
Read the [Hello World example](#hello-world-example) for initial usage with Emo-DB dataset.
|
194
|
-
|
195
|
-
Here is an overview of the interfaces/modules:
|
196
|
-
|
197
|
-
All of them take *--config <my_config.ini>* as an argument.
|
198
|
-
|
199
|
-
* **nkululeko.nkululeko**: do machine learning experiments combining features and learners
|
200
|
-
* **nkululeko.ensemble**: [combine several nkululeko experiments](http://blog.syntheticspeech.de/2024/06/25/nkululeko-ensemble-classifiers-with-late-fusion/) and report on late fusion results
|
201
|
-
* *--config*: which experiments (INI files) to combine
|
202
|
-
* *--method* (optional): majority_voting, mean (default), max, sum, uncertainty, uncertainty_weighted, confidence_weighted, performance_weighted
|
203
|
-
* *--threshold*: uncertainty threshold (1.0 means no threshold)
|
204
|
-
* *--weights*: weights for performance_weighted method (could be from previous UAR, ACC)
|
205
|
-
* *--outfile* (optional): name of CSV file for output (default: ensemble_result.csv)
|
206
|
-
* *--no_labels* (optional): indicate that no ground truth is given
|
207
|
-
* **nkululeko.multidb**: do [multiple experiments](http://blog.syntheticspeech.de/2024/01/02/nkululeko-compare-several-databases/), comparing several databases cross and in itself
|
208
|
-
* **nkululeko.demo**: [demo the current best model](http://blog.syntheticspeech.de/2022/01/24/nkululeko-try-out-demo-a-trained-model/) on the command line
|
209
|
-
* *--list* (optional) list of input files
|
210
|
-
* *--file* (optional) name of input file
|
211
|
-
* *--folder* (optional) parent folder for input files
|
212
|
-
* *--outfile* (optional) name of CSV file for output
|
213
|
-
* **nkululeko.test**: predict a [given data set](http://blog.syntheticspeech.de/2022/09/01/nkululeko-how-to-evaluate-a-test-set-with-a-given-best-model/) with the current best model
|
214
|
-
* **nkululeko.explore**: perform [data exploration](http://blog.syntheticspeech.de/2023/05/11/nkululeko-how-to-visualize-your-data-distribution/)
|
215
|
-
* **nkululeko.augment**: [augment](http://blog.syntheticspeech.de/2023/03/13/nkululeko-how-to-augment-the-training-set/) the current training data
|
216
|
-
* **nkululeko.aug_train**: augment the current training data [and do a training](http://blog.syntheticspeech.de/2023/03/13/nkululeko-how-to-augment-the-training-set/) including this data
|
217
|
-
* **nkululeko.predict**: [predict features](http://blog.syntheticspeech.de/2023/08/16/nkululeko-how-to-predict-labels-for-your-data-from-existing-models-and-check-them/) like SNR, MOS, arousal/valence, age/gender, with DNN models
|
218
|
-
* **nkululeko.segment**: [segment a database](http://blog.syntheticspeech.de/2023/07/14/nkululeko-segmenting-a-database/) based on VAD (voice activity detection)
|
219
|
-
* **nkululeko.resample**: check on all [sampling rates and change](http://blog.syntheticspeech.de/2023/08/31/how-to-fix-different-sampling-rates-in-a-dataset-with-nkululeko/) to 16kHz
|
220
|
-
* **nkululeko.nkuluflag**: a convenient module to specify configuration parameters on the command line. Usage:
|
221
|
-
|
222
|
-
```bash
|
223
|
-
$ python -m nkululeko.nkuluflag.py [-h] [--config CONFIG] [--data [DATA ...]] [--label [LABEL ...]] [--tuning_params [TUNING_PARAMS ...]] [--layers [LAYERS ...]] [--model MODEL] [--feat FEAT] [--set SET] [--with_os WITH_OS] [--target TARGET] [--epochs EPOCHS] [--runs RUNS] [--learning_rate LEARNING_RATE] [--drop DROP]
|
224
|
-
```
|
225
|
-
|
226
|
-
There's my [blog](http://blog.syntheticspeech.de/?s=nkululeko) with tutorials:
|
227
|
-
* [Introduction](http://blog.syntheticspeech.de/2021/08/04/machine-learning-experiment-framework/)
|
228
|
-
* [Nkulueko FAQ](http://blog.syntheticspeech.de/2022/07/07/nkululeko-faq/)
|
229
|
-
* [How to set up your first nkululeko project](http://blog.syntheticspeech.de/2021/08/30/how-to-set-up-your-first-nkululeko-project/)
|
230
|
-
* [Setting up a base nkululeko experiment](http://blog.syntheticspeech.de/2021/10/05/setting-up-a-base-nkululeko-experiment/)
|
231
|
-
* [How to import a database](http://blog.syntheticspeech.de/2022/01/27/nkululeko-how-to-import-a-database/)
|
232
|
-
* [Comparing classifiers and features](http://blog.syntheticspeech.de/2021/10/05/nkululeko-comparing-classifiers-and-features/)
|
233
|
-
* [Use Praat features](http://blog.syntheticspeech.de/2022/06/27/how-to-use-selected-features-from-praat-with-nkululeko/)
|
234
|
-
* [Combine feature sets](http://blog.syntheticspeech.de/2022/06/30/how-to-combine-feature-sets-with-nkululeko/)
|
235
|
-
* [Classifying continuous variables](http://blog.syntheticspeech.de/2022/01/26/nkululeko-classifying-continuous-variables/)
|
236
|
-
* [Try out / demo a trained model](http://blog.syntheticspeech.de/2022/01/24/nkululeko-try-out-demo-a-trained-model/)
|
237
|
-
* [Perform cross-database experiments](http://blog.syntheticspeech.de/2021/10/05/nkululeko-perform-cross-database-experiments/)
|
238
|
-
* [Meta parameter optimization](http://blog.syntheticspeech.de/2021/09/03/perform-optimization-with-nkululeko/)
|
239
|
-
* [How to set up wav2vec embedding](http://blog.syntheticspeech.de/2021/12/03/how-to-set-up-wav2vec-embedding-for-nkululeko/)
|
240
|
-
* [How to soft-label a database](http://blog.syntheticspeech.de/2022/01/24/how-to-soft-label-a-database-with-nkululeko/)
|
241
|
-
* [Re-generate the progressing confusion matrix animation wit a different framerate](demos/plot_faster_anim.py)
|
242
|
-
* [How to limit/filter a dataset](http://blog.syntheticspeech.de/2022/02/22/how-to-limit-a-dataset-with-nkululeko/)
|
243
|
-
* [Specifying database disk location](http://blog.syntheticspeech.de/2022/02/21/specifying-database-disk-location-with-nkululeko/)
|
244
|
-
* [Add dropout with MLP models](http://blog.syntheticspeech.de/2022/02/25/adding-dropout-to-mlp-models-with-nkululeko/)
|
245
|
-
* [Do cross-validation](http://blog.syntheticspeech.de/2022/03/23/how-to-do-cross-validation-with-nkululeko/)
|
246
|
-
* [Combine predictions per speaker](http://blog.syntheticspeech.de/2022/03/24/how-to-combine-predictions-per-speaker-with-nkululeko/)
|
247
|
-
* [Run multiple experiments in one go](http://blog.syntheticspeech.de/2022/03/28/how-to-run-multiple-experiments-in-one-go-with-nkululeko/)
|
248
|
-
* [Compare several MLP layer layouts with each other](http://blog.syntheticspeech.de/2022/04/11/how-to-compare-several-mlp-layer-layouts-with-each-other/)
|
249
|
-
* [Import features from outside the software](http://blog.syntheticspeech.de/2022/10/18/how-to-import-features-from-outside-the-nkululeko-software/)
|
250
|
-
* [Export acoustic features](http://blog.syntheticspeech.de/2024/05/30/nkululeko-export-acoustic-features/)
|
251
|
-
* [Explore feature importance](http://blog.syntheticspeech.de/2023/02/20/nkululeko-show-feature-importance/)
|
252
|
-
* [Plot distributions for feature values](http://blog.syntheticspeech.de/2023/02/16/nkululeko-how-to-plot-distributions-of-feature-values/)
|
253
|
-
* [Show feature importance](http://blog.syntheticspeech.de/2023/02/20/nkululeko-show-feature-importance/)
|
254
|
-
* [Augment the training set](http://blog.syntheticspeech.de/2023/03/13/nkululeko-how-to-augment-the-training-set/)
|
255
|
-
* [Visualize clusters of acoustic features](http://blog.syntheticspeech.de/2023/04/20/nkululeko-visualize-clusters-of-your-acoustic-features/)
|
256
|
-
* [Visualize your data distribution](http://blog.syntheticspeech.de/2023/05/11/nkululeko-how-to-visualize-your-data-distribution/)
|
257
|
-
* [Check your dataset](http://blog.syntheticspeech.de/2023/07/11/nkululeko-check-your-dataset/)
|
258
|
-
* [Segmenting a database](http://blog.syntheticspeech.de/2023/07/14/nkululeko-segmenting-a-database/)
|
259
|
-
* [Predict new labels for your data from public models and check bias](http://blog.syntheticspeech.de/2023/08/16/nkululeko-how-to-predict-labels-for-your-data-from-existing-models-and-check-them/)
|
260
|
-
* [Resample](http://blog.syntheticspeech.de/2023/08/31/how-to-fix-different-sampling-rates-in-a-dataset-with-nkululeko/)
|
261
|
-
* [Get some statistics on correlation and effect-size](http://blog.syntheticspeech.de/2023/09/05/nkululeko-get-some-statistics-on-correlation-and-effect-size/)
|
262
|
-
* [Automatic generation of a latex/pdf report](http://blog.syntheticspeech.de/2023/09/26/nkululeko-generate-a-latex-pdf-report/)
|
263
|
-
* [Inspect your data with Spotlight](http://blog.syntheticspeech.de/2023/10/31/nkululeko-inspect-your-data-with-spotlight/)
|
264
|
-
* [Automatically stratify your split sets](http://blog.syntheticspeech.de/2023/11/07/nkululeko-automatically-stratify-your-split-sets/)
|
265
|
-
* [re-name data column names](http://blog.syntheticspeech.de/2023/11/16/nkululeko-re-name-data-column-names/)
|
266
|
-
* [Oversample the training set](http://blog.syntheticspeech.de/2023/11/16/nkululeko-oversample-the-training-set/)
|
267
|
-
* [Compare several databases](http://blog.syntheticspeech.de/2024/01/02/nkululeko-compare-several-databases/)
|
268
|
-
* [Tweak the target variable for database comparison](http://blog.syntheticspeech.de/2024/03/13/nkululeko-how-to-tweak-the-target-variable-for-database-comparison/)
|
269
|
-
* [How to run multiple experiments in one go](http://blog.syntheticspeech.de/2022/03/28/how-to-run-multiple-experiments-in-one-go-with-nkululeko/)
|
270
|
-
* [How to finetune a transformer-model](http://blog.syntheticspeech.de/2024/05/29/nkululeko-how-to-finetune-a-transformer-model/)
|
271
|
-
* [Ensemble (combine) classifiers with late-fusion](http://blog.syntheticspeech.de/2024/06/25/nkululeko-ensemble-classifiers-with-late-fusion/)
|
272
|
-
|
273
|
-
|
274
|
-
### <a name="helloworld">Hello World example</a>
|
275
|
-
* NEW: [Here's a Google colab that runs this example out-of-the-box](https://colab.research.google.com/drive/1Up7t5Nn7VwDPCCEpTg2U7cpZ_PdoEgj-?usp=sharing), and here is the same [with Kaggle](https://www.kaggle.com/felixburk/nkululeko-hello-world-example)
|
276
|
-
* [I made a video to show you how to do this on Windows](https://www.youtube.com/playlist?list=PLRceVavtxLg0y2jiLmpnUfiMtfvkK912D)
|
277
|
-
* Set up Python on your computer, version >= 3.8
|
278
|
-
* Open a terminal/command line/console window
|
279
|
-
* Test python by typing ```python```, python should start with version >3 (NOT 2!). You can leave the Python Interpreter by typing *exit()*
|
280
|
-
* Create a folder on your computer for this example, let's call it `nkulu_work`
|
281
|
-
* Get a copy of the [Berlin emodb in audformat](https://zenodo.org/records/7447302/files/emodb.zip?download=1) and unpack inside the folder you just created (`nkulu_work`)
|
282
|
-
* Make sure the folder is called "emodb" and does contain the database files directly (not box-in-a-box)
|
283
|
-
* Also, in the `nkulu_work` folder:
|
284
|
-
* Create a Python environment
|
285
|
-
* ```python -m venv venv```
|
286
|
-
* Then, activate it:
|
287
|
-
* under Linux / mac
|
288
|
-
* ```source venv/bin/activate```
|
289
|
-
* under Windows
|
290
|
-
* ```venv\Scripts\activate.bat```
|
291
|
-
* if that worked, you should see a ```(venv)``` in front of your prompt
|
292
|
-
* Install the required packages in your environment
|
293
|
-
* ```pip install nkululeko```
|
294
|
-
* Repeat until all error messages vanish (or fix them, or try to ignore them)...
|
295
|
-
* Now you should have two folders in your *nkulu_work* folder:
|
296
|
-
* *emodb* and *venv*
|
297
|
-
* Download a copy of the file [exp_emodb.ini](meta/demos/exp_emodb.ini) to the current working directory (```nkulu_work```)
|
298
|
-
* Run the demo
|
299
|
-
* ```python -m nkululeko.nkululeko --config exp_emodb.ini```
|
300
|
-
* Find the results in the newly created folder exp_emodb
|
301
|
-
* Inspect ```exp_emodb/images/run_0/emodb_xgb_os_0_000_cnf.png```
|
302
|
-
* This is the main result of your experiment: a confusion matrix for the emodb emotional categories
|
303
|
-
* Inspect and play around with the [demo configuration file](meta/demos/exp_emodb.ini) that defined your experiment, then re-run.
|
304
|
-
* There are many ways to experiment with different classifiers and acoustic feature sets, [all described here](https://github.com/felixbur/nkululeko/blob/main/ini_file.md)
|
305
|
-
|
306
|
-
### Features
|
307
|
-
The framework is targeted at the speech domain and supports experiments where different classifiers are combined with different feature extractors.
|
308
|
-
|
309
|
-
* Classifiers: Naive Bayes, KNN, Tree, XGBoost, SVM, MLP
|
310
|
-
* Feature extractors: Praat, Opensmile, openXBOW BoAW, TRILL embeddings, Wav2vec2 embeddings, audModel embeddings, ...
|
311
|
-
* Feature scaling
|
312
|
-
* Label encoding
|
313
|
-
* Binning (continuous to categorical)
|
314
|
-
* Online demo interface for trained models
|
315
|
-
|
316
|
-
Here's a rough UML-like sketch of the framework (and [here's the real one done with pyreverse](meta/images/classes.png)).
|
317
|
-

|
318
|
-
|
319
|
-
Currently, the following linear classifiers are implemented (integrated from sklearn):
|
320
|
-
* SVM, SVR, XGB, XGR, Tree, Tree_regressor, KNN, KNN_regressor, NaiveBayes, GMM
|
321
|
-
and the following ANNs (artificial neural networks)
|
322
|
-
* MLP (multi-layer perceptron), CNN (convolutional neural network)
|
323
|
-
|
324
|
-
Here's [an animation that shows the progress of classification done with nkululeko](https://youtu.be/6Y0M382GjvM)
|
325
|
-
|
326
|
-
|
327
|
-
## License
|
328
|
-
Nkululeko can be used under the [MIT license](https://choosealicense.com/licenses/mit/).
|
329
|
-
|
330
|
-
|
331
|
-
## Contributing
|
332
|
-
Contributions are welcome and encouraged. To learn more about how to contribute to nkululeko, please refer to the [Contributing guidelines](./CONTRIBUTING.md).
|
333
|
-
|
334
|
-
## Citing
|
335
|
-
If you use it, please mention the Nkululeko paper:
|
336
|
-
|
337
|
-
> F. Burkhardt, Johannes Wagner, Hagen Wierstorf, Florian Eyben and Björn Schuller: Nkululeko: A Tool For Rapid Speaker Characteristics Detection, Proc. Proc. LREC, 2022
|
338
|
-
|
339
|
-
|
340
|
-
```
|
341
|
-
@inproceedings{Burkhardt:lrec2022,
|
342
|
-
title = {Nkululeko: A Tool For Rapid Speaker Characteristics Detection},
|
343
|
-
author = {Felix Burkhardt and Johannes Wagner and Hagen Wierstorf and Florian Eyben and Björn Schuller},
|
344
|
-
isbn = {9791095546726},
|
345
|
-
journal = {2022 Language Resources and Evaluation Conference, LREC 2022},
|
346
|
-
keywords = {machine learning,speaker characteristics,tools},
|
347
|
-
pages = {1925-1932},
|
348
|
-
publisher = {European Language Resources Association (ELRA)},
|
349
|
-
year = {2022},
|
350
|
-
}
|
351
|
-
```
|
352
|
-
|
353
|
-
Changelog
|
354
|
-
=========
|
355
|
-
|
356
|
-
Version 0.93.12
|
357
|
-
---------------
|
358
|
-
* bugfix: map_continuous_to_cat crashed on empty data
|
359
|
-
|
360
|
-
Version 0.93.11
|
361
|
-
---------------
|
362
|
-
* bugfix: silero segmenter assigned file duration values
|
363
|
-
|
364
|
-
Version 0.93.10
|
365
|
-
---------------
|
366
|
-
* added nan check for imported features
|
367
|
-
* added LOGO result output
|
368
|
-
|
369
|
-
Version 0.93.9
|
370
|
-
--------------
|
371
|
-
* added manual seed to torch models
|
372
|
-
|
373
|
-
Version 0.93.8
|
374
|
-
--------------
|
375
|
-
* fixed bugs in plot
|
376
|
-
* added import_files_append=False
|
377
|
-
|
378
|
-
Version 0.93.7
|
379
|
-
--------------
|
380
|
-
* added a safety to remove nan values after mapping
|
381
|
-
|
382
|
-
Version 0.93.6
|
383
|
-
--------------
|
384
|
-
* added error message and hint for data.target_tables_append
|
385
|
-
|
386
|
-
Version 0.93.5
|
387
|
-
--------------
|
388
|
-
* fixed bug in dataset loading
|
389
|
-
|
390
|
-
Version 0.93.4
|
391
|
-
--------------
|
392
|
-
* ccc in plots now configurable
|
393
|
-
|
394
|
-
Version 0.93.3
|
395
|
-
--------------
|
396
|
-
* bugfix in plot
|
397
|
-
|
398
|
-
Version 0.93.2
|
399
|
-
--------------
|
400
|
-
* changed class_label in plots to actual target
|
401
|
-
|
402
|
-
Version 0.93.1
|
403
|
-
--------------
|
404
|
-
* made explore module more robust
|
405
|
-
|
406
|
-
Version 0.93.0
|
407
|
-
--------------
|
408
|
-
* integrated pyannote for speaker prediction for predict module
|
409
|
-
|
410
|
-
Version 0.92.2
|
411
|
-
--------------
|
412
|
-
* added some output to automatic speaker id
|
413
|
-
|
414
|
-
Version 0.92.1
|
415
|
-
--------------
|
416
|
-
* added a speaker plot to pyannote results
|
417
|
-
|
418
|
-
Version 0.92.0
|
419
|
-
--------------
|
420
|
-
* added first version of automatic speaker prediction for segment module
|
421
|
-
|
422
|
-
Version 0.91.3
|
423
|
-
--------------
|
424
|
-
* some additions for robustness
|
425
|
-
|
426
|
-
Version 0.91.2
|
427
|
-
--------------
|
428
|
-
* making lint work by excluding constants from check
|
429
|
-
|
430
|
-
Version 0.91.1
|
431
|
-
--------------
|
432
|
-
* minor refactoring in ensemble module
|
433
|
-
|
434
|
-
Version 0.91.0
|
435
|
-
--------------
|
436
|
-
* fixed duration display in segmentation
|
437
|
-
* added possibility to use original segmentations (without max. duration)
|
438
|
-
|
439
|
-
Version 0.90.4
|
440
|
-
--------------
|
441
|
-
* added plot format for multidb
|
442
|
-
|
443
|
-
Version 0.90.3
|
444
|
-
--------------
|
445
|
-
* refactorings and documentations
|
446
|
-
|
447
|
-
Version 0.90.2
|
448
|
-
--------------
|
449
|
-
* added probability output to finetuning classification models
|
450
|
-
* switched path to prob. output from "store" to "results"
|
451
|
-
|
452
|
-
Version 0.90.1
|
453
|
-
--------------
|
454
|
-
* Add balancing for finetune and update data README
|
455
|
-
|
456
|
-
Version 0.90.0
|
457
|
-
--------------
|
458
|
-
* augmentation can now be done without target
|
459
|
-
* random splicing params configurable
|
460
|
-
* made kde default for plot continous/categorical plots
|
461
|
-
|
462
|
-
Version 0.89.2
|
463
|
-
--------------
|
464
|
-
* fix shap value calculation
|
465
|
-
|
466
|
-
Version 0.89.1
|
467
|
-
--------------
|
468
|
-
* print and save result of feature importance
|
469
|
-
|
470
|
-
Version 0.89.0
|
471
|
-
--------------
|
472
|
-
* added Roc plots and classification report on Debug
|
473
|
-
|
474
|
-
|
475
|
-
Version 0.88.12
|
476
|
-
---------------
|
477
|
-
* added n_jobs for sklearn processing
|
478
|
-
* re_named num_workers n_jobs
|
479
|
-
|
480
|
-
Version 0.88.11
|
481
|
-
--------------
|
482
|
-
* removed hack in Praat script
|
483
|
-
|
484
|
-
Version 0.88.10
|
485
|
-
--------------
|
486
|
-
* SVM C val defaults to 1
|
487
|
-
* fixed agender_agender naming bug
|
488
|
-
|
489
|
-
Version 0.88.9
|
490
|
-
--------------
|
491
|
-
* added performance_weighted ensemble
|
492
|
-
|
493
|
-
Version 0.88.8
|
494
|
-
--------------
|
495
|
-
* some cosmetics
|
496
|
-
|
497
|
-
Version 0.88.7
|
498
|
-
--------------
|
499
|
-
* added use_splits for multidb
|
500
|
-
|
501
|
-
Version 0.88.6
|
502
|
-
--------------
|
503
|
-
* added test speaker assign
|
504
|
-
|
505
|
-
Version 0.88.5
|
506
|
-
--------------
|
507
|
-
* add a unique name to the uncertainty plot
|
508
|
-
* fix error in speaker embedding (still need speechbrain < 1.0)
|
509
|
-
* add get_target_name function in util
|
510
|
-
|
511
|
-
Version 0.88.4
|
512
|
-
--------------
|
513
|
-
* added more ensemble methods, e.g. based on uncertainty
|
514
|
-
|
515
|
-
Version 0.88.3
|
516
|
-
--------------
|
517
|
-
* fixed bug in false uncertainty estimation
|
518
|
-
* changed demo live recording
|
519
|
-
|
520
|
-
Version 0.88.2
|
521
|
-
--------------
|
522
|
-
* changed combine speaker results to show speakers not samples
|
523
|
-
|
524
|
-
Version 0.88.1
|
525
|
-
--------------
|
526
|
-
* added obligatory scatter plot for regression
|
527
|
-
|
528
|
-
Version 0.88.0
|
529
|
-
--------------
|
530
|
-
* added ensemble late fusion and AST features
|
531
|
-
|
532
|
-
Version 0.87.0
|
533
|
-
--------------
|
534
|
-
* added class probability output and uncertainty analysis
|
535
|
-
|
536
|
-
Version 0.86.8
|
537
|
-
--------------
|
538
|
-
* handle single feature sets as strings in the config
|
539
|
-
|
540
|
-
Version 0.86.7
|
541
|
-
--------------
|
542
|
-
* handles now audformat tables where the target is in a file index
|
543
|
-
|
544
|
-
Version 0.86.6
|
545
|
-
--------------
|
546
|
-
* now best (not last) result is shown at end
|
547
|
-
|
548
|
-
Version 0.86.5
|
549
|
-
--------------
|
550
|
-
* fix audio path detection in data csv import
|
551
|
-
|
552
|
-
Version 0.86.4
|
553
|
-
--------------
|
554
|
-
* add finetuning to the demo module
|
555
|
-
|
556
|
-
Version 0.86.3
|
557
|
-
--------------
|
558
|
-
* bugfixed: nan in finetuned model and double saving
|
559
|
-
* import features now get multiindex automatically
|
560
|
-
|
561
|
-
Version 0.86.2
|
562
|
-
--------------
|
563
|
-
* plots epoch progression for finetuned models now
|
564
|
-
|
565
|
-
Version 0.86.1
|
566
|
-
--------------
|
567
|
-
* functionality to push to hub
|
568
|
-
* fixed bug that prevented wavlm finetuning
|
569
|
-
|
570
|
-
Version 0.86.0
|
571
|
-
--------------
|
572
|
-
* added regression to finetuning
|
573
|
-
* added other transformer models to finetuning
|
574
|
-
* added output the train/dev features sets actually used by the model
|
575
|
-
|
576
|
-
Version 0.85.2
|
577
|
-
--------------
|
578
|
-
* added data, and automatic task label detection
|
579
|
-
|
580
|
-
Version 0.85.1
|
581
|
-
--------------
|
582
|
-
* fixed bug in model_finetuned that label_num was constant 2
|
583
|
-
|
584
|
-
Version 0.85.0
|
585
|
-
--------------
|
586
|
-
* first version with finetuning wav2vec2 layers
|
587
|
-
|
588
|
-
Version 0.84.1
|
589
|
-
--------------
|
590
|
-
* made resample independent of config file
|
591
|
-
|
592
|
-
Version 0.84.0
|
593
|
-
--------------
|
594
|
-
* added SHAP analysis
|
595
|
-
* started with finetuning
|
596
|
-
|
597
|
-
Version 0.83.3
|
598
|
-
--------------
|
599
|
-
* fixed a naming error in trill features that prevented storage of experiment
|
600
|
-
|
601
|
-
Version 0.83.2
|
602
|
-
--------------
|
603
|
-
* added default cuda if present and not stated
|
604
|
-
|
605
|
-
Version 0.83.1
|
606
|
-
--------------
|
607
|
-
* add test module to nkuluflag
|
608
|
-
|
609
|
-
Version 0.83.0
|
610
|
-
--------------
|
611
|
-
* test module now prints out reports
|
612
|
-
|
613
|
-
Version 0.82.4
|
614
|
-
--------------
|
615
|
-
* fixed bug in wavlm
|
616
|
-
|
617
|
-
Version 0.82.3
|
618
|
-
--------------
|
619
|
-
* fixed another audformat peculiarity to interprete time values as nanoseconds
|
620
|
-
|
621
|
-
Version 0.82.2
|
622
|
-
--------------
|
623
|
-
* fixed audformat peculiarity that dataframes can have only one column
|
624
|
-
|
625
|
-
Version 0.82.1
|
626
|
-
--------------
|
627
|
-
* Add more test for GC action
|
628
|
-
|
629
|
-
Version 0.82.0
|
630
|
-
--------------
|
631
|
-
* added nkuluflag module
|
632
|
-
|
633
|
-
Version 0.81.7
|
634
|
-
--------------
|
635
|
-
* bugfixes
|
636
|
-
* added whisper feature extractor
|
637
|
-
|
638
|
-
Version 0.81.6
|
639
|
-
--------------
|
640
|
-
* updated documentation
|
641
|
-
* updated crema-d
|
642
|
-
* updated tests
|
643
|
-
|
644
|
-
Version 0.81.5
|
645
|
-
--------------
|
646
|
-
* added sex=gender for speaker mappings
|
647
|
-
|
648
|
-
Version 0.81.4
|
649
|
-
--------------
|
650
|
-
* fixed bug in demo module
|
651
|
-
* removed [MODEL] save
|
652
|
-
|
653
|
-
Version 0.81.3
|
654
|
-
--------------
|
655
|
-
* added confidence intervals to result reporting
|
656
|
-
|
657
|
-
Version 0.81.2
|
658
|
-
--------------
|
659
|
-
* added a parselmouth.Praat error if pitch out of range
|
660
|
-
* changed file path for demo_predictor
|
661
|
-
|
662
|
-
Version 0.81.1
|
663
|
-
--------------
|
664
|
-
* fixed bugs in demo module
|
665
|
-
* made kernel for SVM/SVR configurable
|
666
|
-
|
667
|
-
Version 0.81.0
|
668
|
-
--------------
|
669
|
-
* added test selection to test module
|
670
|
-
|
671
|
-
Version 0.80.4
|
672
|
-
--------------
|
673
|
-
* added test-file folder to demo file lists
|
674
|
-
|
675
|
-
Version 0.80.3
|
676
|
-
--------------
|
677
|
-
* made sounddevice use optional as Portaudio library causes difficulties
|
678
|
-
|
679
|
-
Version 0.80.2
|
680
|
-
--------------
|
681
|
-
* fixed bug that caused clash with GPU/CPU use
|
682
|
-
|
683
|
-
Version 0.80.1
|
684
|
-
--------------
|
685
|
-
* added support for string value in import_features
|
686
|
-
+ added support for multiple extra training databases when doing multi-db experiments
|
687
|
-
|
688
|
-
Version 0.80.0
|
689
|
-
--------------
|
690
|
-
* fixed bug no feature import
|
691
|
-
* add support for multiple import feature files
|
692
|
-
|
693
|
-
Version 0.79.5
|
694
|
-
--------------
|
695
|
-
* fixed bug on demo without in- or output
|
696
|
-
* fixed bug that demo with DL feature extractors did not work
|
697
|
-
|
698
|
-
Version 0.79.4
|
699
|
-
--------------
|
700
|
-
* added functionality in demo for regression
|
701
|
-
|
702
|
-
Version 0.79.3
|
703
|
-
--------------
|
704
|
-
* fixed bug that test module did not work
|
705
|
-
* fixed bug that demo module did not work for ANNs
|
706
|
-
* added csv output for demo mode and file lists
|
707
|
-
|
708
|
-
Version 0.79.2
|
709
|
-
--------------
|
710
|
-
* fixed bug and report number of epochs for early stopping
|
711
|
-
|
712
|
-
Version 0.79.1
|
713
|
-
--------------
|
714
|
-
* root directory does not have to end with /
|
715
|
-
|
716
|
-
Version 0.79.0
|
717
|
-
--------------
|
718
|
-
* added extra_train for multidb experiment
|
719
|
-
|
720
|
-
Version 0.78.2
|
721
|
-
--------------
|
722
|
-
* added transformer layer selection for wav2vec2
|
723
|
-
* removed best_model and epoch progression for non-DL models
|
724
|
-
|
725
|
-
Version 0.78.1
|
726
|
-
--------------
|
727
|
-
* added evaluation loss
|
728
|
-
|
729
|
-
Version 0.78.0
|
730
|
-
--------------
|
731
|
-
* added 3-d scatter plots
|
732
|
-
* removed epoch-plots if epoch_num=1
|
733
|
-
|
734
|
-
Version 0.77.14
|
735
|
-
--------------
|
736
|
-
* fixed bug preventing bin scaling to work
|
737
|
-
|
738
|
-
Version 0.77.13
|
739
|
-
--------------
|
740
|
-
* added bins scaler
|
741
|
-
|
742
|
-
Version 0.77.12
|
743
|
-
--------------
|
744
|
-
* fixed bug with scatter plots for numeric targets
|
745
|
-
* made type of numeric target distributions selectable, default "hist"
|
746
|
-
|
747
|
-
Version 0.77.11
|
748
|
-
--------------
|
749
|
-
* added simple target distribution plots
|
750
|
-
|
751
|
-
Version 0.77.10
|
752
|
-
--------------
|
753
|
-
* show the best and not the last result for multidb
|
754
|
-
|
755
|
-
Version 0.77.9
|
756
|
-
--------------
|
757
|
-
* added results text for multidb
|
758
|
-
|
759
|
-
Version 0.77.8
|
760
|
-
--------------
|
761
|
-
* added caption to multidb heatmap
|
762
|
-
* renamed datasets to databases in multidb
|
763
|
-
|
764
|
-
Version 0.77.7
|
765
|
-
--------------
|
766
|
-
* added multidb module
|
767
|
-
|
768
|
-
Version 0.77.6
|
769
|
-
--------------
|
770
|
-
* added functions to call modules with config file path directly
|
771
|
-
|
772
|
-
Version 0.77.5
|
773
|
-
--------------
|
774
|
-
* fixed augmentation bug for python version 10
|
775
|
-
|
776
|
-
Version 0.77.4
|
777
|
-
--------------
|
778
|
-
* made traditional augmentations (audiomentation module) configurable
|
779
|
-
|
780
|
-
Version 0.77.3
|
781
|
-
--------------
|
782
|
-
* added augment and train interface
|
783
|
-
|
784
|
-
Version 0.77.2
|
785
|
-
--------------
|
786
|
-
* added models for features importance computation
|
787
|
-
|
788
|
-
Version 0.77.1
|
789
|
-
--------------
|
790
|
-
* added permutation algorithm to compute feature importance
|
791
|
-
* shifted util.py to utils
|
792
|
-
|
793
|
-
Version 0.77.0
|
794
|
-
--------------
|
795
|
-
* added more latex report output
|
796
|
-
* got splitutils from a package
|
797
|
-
|
798
|
-
Version 0.76.0
|
799
|
-
--------------
|
800
|
-
* added possibility to aggregate feature importance models
|
801
|
-
|
802
|
-
Version 0.75.0
|
803
|
-
--------------
|
804
|
-
* added max val for reversing
|
805
|
-
* added xgb for feature importance
|
806
|
-
|
807
|
-
Version 0.74.6
|
808
|
-
--------------
|
809
|
-
* added standard Wav2vec2 model
|
810
|
-
|
811
|
-
Version 0.74.5
|
812
|
-
--------------
|
813
|
-
* added praat feature extractor for one sample
|
814
|
-
|
815
|
-
Version 0.74.4
|
816
|
-
--------------
|
817
|
-
* fixed bug combining augmentations
|
818
|
-
|
819
|
-
Version 0.74.3
|
820
|
-
--------------
|
821
|
-
* audiomentations interface changed
|
822
|
-
|
823
|
-
Version 0.74.2
|
824
|
-
--------------
|
825
|
-
* combined augmentation methods
|
826
|
-
|
827
|
-
Version 0.74.1
|
828
|
-
--------------
|
829
|
-
* fixed various bugs with augmentation
|
830
|
-
|
831
|
-
Version 0.74.0
|
832
|
-
--------------
|
833
|
-
* added patience (early stopping)
|
834
|
-
* added MAE loss and measure
|
835
|
-
|
836
|
-
Version 0.73.0
|
837
|
-
--------------
|
838
|
-
* added reverse and scale arguments to target variable
|
839
|
-
* also, the data store can now be csv
|
840
|
-
|
841
|
-
Version 0.72.0
|
842
|
-
--------------
|
843
|
-
* worked over explore value counts section
|
844
|
-
* added bin_reals for all columns
|
845
|
-
|
846
|
-
Version 0.71.4
|
847
|
-
--------------
|
848
|
-
* automatic epoch reset if not ANN
|
849
|
-
* scatter plots now show a regression line
|
850
|
-
|
851
|
-
Version 0.71.3
|
852
|
-
--------------
|
853
|
-
* enabled scatter plots for all variables
|
854
|
-
|
855
|
-
Version 0.71.2
|
856
|
-
--------------
|
857
|
-
* enabled scatter plots for continuous labels
|
858
|
-
|
859
|
-
Version 0.71.1
|
860
|
-
--------------
|
861
|
-
* made a wav2vec default
|
862
|
-
* renamed praat features, ommiting spaces
|
863
|
-
* fixed plot distribution bugs
|
864
|
-
* added feature plots for continuous targets
|
865
|
-
|
866
|
-
Version 0.71.0
|
867
|
-
--------------
|
868
|
-
* added explore visuals.
|
869
|
-
* all columns from databases should now be usable
|
870
|
-
|
871
|
-
Version 0.70.0
|
872
|
-
--------------
|
873
|
-
* added imb_learn balancing of training set
|
874
|
-
|
875
|
-
Version 0.69.0
|
876
|
-
--------------
|
877
|
-
* added CNN model and melspec extractor
|
878
|
-
|
879
|
-
Version 0.68.4
|
880
|
-
--------------
|
881
|
-
* bugfix: got_gender was uncorrectly set
|
882
|
-
|
883
|
-
Version 0.68.3
|
884
|
-
--------------
|
885
|
-
* Feinberg Praat scripts ignore error and log filename
|
886
|
-
|
887
|
-
Version 0.68.2
|
888
|
-
--------------
|
889
|
-
* column names in datasets are now configurable
|
890
|
-
|
891
|
-
Version 0.68.1
|
892
|
-
--------------
|
893
|
-
* added error message on file to praat extraction
|
894
|
-
|
895
|
-
Version 0.68.0
|
896
|
-
--------------
|
897
|
-
* added stratification framework for split balancing
|
898
|
-
|
899
|
-
Version 0.67.0
|
900
|
-
--------------
|
901
|
-
* added first version of spotlight integration
|
902
|
-
|
903
|
-
Version 0.66.13
|
904
|
-
---------------
|
905
|
-
* small changes related to github worker
|
906
|
-
|
907
|
-
Version 0.66.12
|
908
|
-
---------------
|
909
|
-
* fixed bug that prevented Praat features to be selected
|
910
|
-
|
911
|
-
Version 0.66.11
|
912
|
-
---------------
|
913
|
-
* removed torch from automatic install. depends on cpu/gpu machine
|
914
|
-
|
915
|
-
Version 0.66.10
|
916
|
-
---------------
|
917
|
-
* Removed print statements from feats_wav2vec2
|
918
|
-
|
919
|
-
Version 0.66.9
|
920
|
-
--------------
|
921
|
-
* Version that should install without requiring opensmile which seems not to be supported by all Apple processors (arm CPU (Apple M1))
|
922
|
-
|
923
|
-
Version 0.66.8
|
924
|
-
--------------
|
925
|
-
* forgot __init__.py in reporting module
|
926
|
-
|
927
|
-
Version 0.66.7
|
928
|
-
--------------
|
929
|
-
* minor changes to experiment class
|
930
|
-
|
931
|
-
Version 0.66.6
|
932
|
-
--------------
|
933
|
-
* minor cosmetics
|
934
|
-
|
935
|
-
Version 0.66.5
|
936
|
-
--------------
|
937
|
-
* Latex report now with images
|
938
|
-
|
939
|
-
Version 0.66.4
|
940
|
-
--------------
|
941
|
-
* Pypi version mixup
|
942
|
-
|
943
|
-
Version 0.66.3
|
944
|
-
--------------
|
945
|
-
* made path to PDF output relative to experiment root
|
946
|
-
|
947
|
-
Version 0.66.2
|
948
|
-
--------------
|
949
|
-
* enabled data-pacthes with quotes
|
950
|
-
* enabled missing category labels
|
951
|
-
* used tqdm for progress display
|
952
|
-
|
953
|
-
Version 0.66.1
|
954
|
-
--------------
|
955
|
-
* start on the latex report framework
|
956
|
-
|
957
|
-
Version 0.66.0
|
958
|
-
--------------
|
959
|
-
* added speechbrain speakerID embeddings
|
960
|
-
|
961
|
-
Version 0.65.9
|
962
|
-
--------------
|
963
|
-
* added a filter that ensures that the labels have the same size as the features
|
964
|
-
|
965
|
-
Version 0.65.8
|
966
|
-
--------------
|
967
|
-
* changed default behaviour of resampler to "keep original files"
|
968
|
-
|
969
|
-
Version 0.65.7
|
970
|
-
--------------
|
971
|
-
* more databases and force wav while resampling
|
972
|
-
|
973
|
-
Version 0.65.6
|
974
|
-
--------------
|
975
|
-
* minor catch for seaborn in plots
|
976
|
-
|
977
|
-
Version 0.65.5
|
978
|
-
--------------
|
979
|
-
* added fill_na in plot effect size
|
980
|
-
|
981
|
-
Version 0.65.4
|
982
|
-
--------------
|
983
|
-
* added datasets to distribution
|
984
|
-
* changes in wav2vec2
|
985
|
-
|
986
|
-
Version 0.65.3
|
987
|
-
--------------
|
988
|
-
* various bugfixes
|
989
|
-
|
990
|
-
Version 0.65.2
|
991
|
-
--------------
|
992
|
-
* fixed bug in dataset.csv that prevented correct paths for relative files
|
993
|
-
* fixed bug in export module concerning new file directory
|
994
|
-
|
995
|
-
Version 0.65.1
|
996
|
-
--------------
|
997
|
-
* small enhancements with transformer features
|
998
|
-
|
999
|
-
Version 0.65.0
|
1000
|
-
--------------
|
1001
|
-
* introduced export module
|
1002
|
-
|
1003
|
-
Version 0.64.4
|
1004
|
-
--------------
|
1005
|
-
* added num_speakers for reloaded data
|
1006
|
-
* re-formatted all with black
|
1007
|
-
|
1008
|
-
Version 0.64.3
|
1009
|
-
--------------
|
1010
|
-
* added number of speakers shown after data load
|
1011
|
-
|
1012
|
-
Version 0.64.2
|
1013
|
-
--------------
|
1014
|
-
* added __init__.py for submodules
|
1015
|
-
|
1016
|
-
Version 0.64.1
|
1017
|
-
--------------
|
1018
|
-
* fix error on csv
|
1019
|
-
|
1020
|
-
Version 0.64.0
|
1021
|
-
--------------
|
1022
|
-
* added bin_reals
|
1023
|
-
* added statistics for effect size and correlation to plots
|
1024
|
-
|
1025
|
-
Version 0.63.4
|
1026
|
-
--------------
|
1027
|
-
* fixed bug in split selection
|
1028
|
-
|
1029
|
-
Version 0.63.3
|
1030
|
-
--------------
|
1031
|
-
* Introduced data.audio_path
|
1032
|
-
|
1033
|
-
|
1034
|
-
Version 0.63.2
|
1035
|
-
--------------
|
1036
|
-
* re-introduced min and max_length for silero segmenatation
|
1037
|
-
|
1038
|
-
Version 0.63.1
|
1039
|
-
--------------
|
1040
|
-
* fixed bug in resample
|
1041
|
-
|
1042
|
-
Version 0.63.0
|
1043
|
-
--------------
|
1044
|
-
* added wavlm model
|
1045
|
-
* added error on filename for models
|
1046
|
-
|
1047
|
-
Version 0.62.1
|
1048
|
-
--------------
|
1049
|
-
* added min and max_length for silero segmenatation
|
1050
|
-
|
1051
|
-
Version 0.62.0
|
1052
|
-
--------------
|
1053
|
-
* fixed segment silero bug
|
1054
|
-
* added all Wav2vec2 models
|
1055
|
-
* added resampler module
|
1056
|
-
* added error on file for embeddings
|
1057
|
-
|
1058
|
-
Version 0.61.0
|
1059
|
-
--------------
|
1060
|
-
* added HUBERT embeddings
|
1061
|
-
|
1062
|
-
Version 0.60.0
|
1063
|
-
--------------
|
1064
|
-
* some bugfixes
|
1065
|
-
* new package structure
|
1066
|
-
* fixed wav2vec2 bugs
|
1067
|
-
* removed "cross_data" strategy
|
1068
|
-
|
1069
|
-
|
1070
|
-
Version 0.59.1
|
1071
|
-
--------------
|
1072
|
-
* bugfix, after fresh install, it seems some libraries have changed
|
1073
|
-
* added no_warnings
|
1074
|
-
* changed print() to util.debug()
|
1075
|
-
* added progress to opensmile extract
|
1076
|
-
|
1077
|
-
Version 0.59.0
|
1078
|
-
--------------
|
1079
|
-
* introduced SQUIM features
|
1080
|
-
* added SDR predict
|
1081
|
-
* added STOI predict
|
1082
|
-
|
1083
|
-
Version 0.58.0
|
1084
|
-
--------------
|
1085
|
-
* added dominance predict
|
1086
|
-
* added MOS predict
|
1087
|
-
* added PESQ predict
|
1088
|
-
|
1089
|
-
Version 0.57.0
|
1090
|
-
--------------
|
1091
|
-
* renamed autopredict predict
|
1092
|
-
* added arousal autopredict
|
1093
|
-
* added valence autopredict
|
1094
|
-
|
1095
|
-
|
1096
|
-
Version 0.56.0
|
1097
|
-
--------------
|
1098
|
-
* added autopredict module
|
1099
|
-
* added snr as feature extractor
|
1100
|
-
* added gender autopredict
|
1101
|
-
* added age autopredict
|
1102
|
-
* added snr autopredict
|
1103
|
-
|
1104
|
-
Version 0.55.1
|
1105
|
-
--------------
|
1106
|
-
* changed error message in plot class
|
1107
|
-
|
1108
|
-
Version 0.55.0
|
1109
|
-
--------------
|
1110
|
-
* added segmentation module
|
1111
|
-
|
1112
|
-
Version 0.54.0
|
1113
|
-
--------------
|
1114
|
-
* added audeering public age and gender model embeddings and age and gender predictions
|
1115
|
-
|
1116
|
-
Version 0.53.0
|
1117
|
-
--------------
|
1118
|
-
* added file checks: size in bytes and voice activity detection with silero
|
1119
|
-
|
1120
|
-
Version 0.52.1
|
1121
|
-
--------------
|
1122
|
-
* bugfix: min/max duration_of_sample was not working
|
1123
|
-
|
1124
|
-
Version 0.52.0
|
1125
|
-
--------------
|
1126
|
-
* added flexible value distribution plots
|
1127
|
-
|
1128
|
-
Version 0.51.0
|
1129
|
-
--------------
|
1130
|
-
* added datafilter
|
1131
|
-
|
1132
|
-
Version 0.50.1
|
1133
|
-
--------------
|
1134
|
-
* added caller information for debug and error messages in Util
|
1135
|
-
|
1136
|
-
Version 0.50.0
|
1137
|
-
--------------
|
1138
|
-
* removed loso and added pre-selected logo (leave-one-group-out), aka folds
|
1139
|
-
|
1140
|
-
Version 0.49.1
|
1141
|
-
--------------
|
1142
|
-
* bugfix: samples selection for augmentation didn't work
|
1143
|
-
|
1144
|
-
Version 0.49.0
|
1145
|
-
--------------
|
1146
|
-
* added random-splicing
|
1147
|
-
|
1148
|
-
Version 0.48.1
|
1149
|
-
--------------
|
1150
|
-
* bugfix: database object was not loaded when dataframe was reused
|
1151
|
-
|
1152
|
-
Version 0.48.0
|
1153
|
-
--------------
|
1154
|
-
* enabled specific feature selection for praat and opensmile features
|
1155
|
-
|
1156
|
-
Version 0.47.1
|
1157
|
-
--------------
|
1158
|
-
* enabled feature storage format csv for opensmile features
|
1159
|
-
|
1160
|
-
Version 0.47.0
|
1161
|
-
--------------
|
1162
|
-
* added praat speech rate features
|
1163
|
-
|
1164
|
-
Version 0.46.0
|
1165
|
-
--------------
|
1166
|
-
* added warnings for non-existent parameters
|
1167
|
-
* added sample selection for scatter plotting
|
1168
|
-
|
1169
|
-
Version 0.45.4
|
1170
|
-
--------------
|
1171
|
-
* added version attribute to setup.cfg
|
1172
|
-
|
1173
|
-
Version 0.45.4
|
1174
|
-
--------------
|
1175
|
-
* added __version__ attribute
|
1176
|
-
|
1177
|
-
|
1178
|
-
Version 0.44.1
|
1179
|
-
--------------
|
1180
|
-
* bugfixing: feature importance: https://github.com/felixbur/nkululeko/issues/23
|
1181
|
-
* bugfixing: loading csv database with filewise index https://github.com/felixbur/nkululeko/issues/24
|
1182
|
-
|
1183
|
-
Version 0.45.2
|
1184
|
-
--------------
|
1185
|
-
* bugfix: sample_selection in EXPL was required wrongly
|
1186
|
-
|
1187
|
-
Version 0.45.2
|
1188
|
-
--------------
|
1189
|
-
* added sample_selection for sample distribution plots
|
1190
|
-
|
1191
|
-
Version 0.45.1
|
1192
|
-
--------------
|
1193
|
-
* fixed dataframe.append bug
|
1194
|
-
|
1195
|
-
Version 0.45.0
|
1196
|
-
--------------
|
1197
|
-
* added auddim as features
|
1198
|
-
* added FEATS store_format
|
1199
|
-
* added device use to feat_audmodel
|
1200
|
-
|
1201
|
-
Version 0.44.1
|
1202
|
-
--------------
|
1203
|
-
* bugfixes
|
1204
|
-
|
1205
|
-
Version 0.44.0
|
1206
|
-
--------------
|
1207
|
-
* added scatter functions: tsne, pca, umap
|
1208
|
-
|
1209
|
-
Version 0.43.7
|
1210
|
-
--------------
|
1211
|
-
* added clap features
|
1212
|
-
|
1213
|
-
Version 0.43.6
|
1214
|
-
--------------
|
1215
|
-
* small bugs
|
1216
|
-
|
1217
|
-
|
1218
|
-
Version 0.43.5
|
1219
|
-
--------------
|
1220
|
-
* because of difficulties with numba and audiomentations importing audiomentations only when augmenting
|
1221
|
-
|
1222
|
-
Version 0.43.4
|
1223
|
-
--------------
|
1224
|
-
* added error when experiment type and predictor don't match
|
1225
|
-
|
1226
|
-
Version 0.43.3
|
1227
|
-
--------------
|
1228
|
-
* fixed further bugs and added augmentation to the test runs
|
1229
|
-
|
1230
|
-
Version 0.43.2
|
1231
|
-
--------------
|
1232
|
-
* fixed a bug when running continuous variable as classification problem
|
1233
|
-
|
1234
|
-
Version 0.43.1
|
1235
|
-
--------------
|
1236
|
-
* fixed test_runs
|
1237
|
-
|
1238
|
-
Version 0.43.0
|
1239
|
-
--------------
|
1240
|
-
* added augmentation module based on audiomentation
|
1241
|
-
|
1242
|
-
Version 0.42.0
|
1243
|
-
--------------
|
1244
|
-
* age labels should now be detected in databases
|
1245
|
-
|
1246
|
-
Version 0.41.0
|
1247
|
-
--------------
|
1248
|
-
* added feature tree plot
|
1249
|
-
|
1250
|
-
Version 0.40.1
|
1251
|
-
--------------
|
1252
|
-
* fixed a bug: additional test database was not label encoded
|
1253
|
-
|
1254
|
-
Version 0.40.0
|
1255
|
-
--------------
|
1256
|
-
* added EXPL section and first functionality
|
1257
|
-
* added test module (for test databases)
|
1258
|
-
|
1259
|
-
Version 0.39.0
|
1260
|
-
--------------
|
1261
|
-
* added feature distribution plots
|
1262
|
-
* added plot format
|
1263
|
-
|
1264
|
-
Version 0.38.3
|
1265
|
-
--------------
|
1266
|
-
* added demo mode with list argument
|
1267
|
-
|
1268
|
-
Version 0.38.2
|
1269
|
-
--------------
|
1270
|
-
* fixed a bug concerned with "no_reuse" evaluation
|
1271
|
-
|
1272
|
-
Version 0.38.1
|
1273
|
-
--------------
|
1274
|
-
* demo mode with file argument
|
1275
|
-
|
1276
|
-
Version 0.38.0
|
1277
|
-
--------------
|
1278
|
-
* fixed demo mode
|
1279
|
-
|
1280
|
-
Version 0.37.2
|
1281
|
-
--------------
|
1282
|
-
* mainly replaced pd.append with pd.concat
|
1283
|
-
|
1284
|
-
|
1285
|
-
Version 0.37.1
|
1286
|
-
--------------
|
1287
|
-
* fixed bug preventing praat feature extraction to work
|
1288
|
-
|
1289
|
-
Version 0.37.0
|
1290
|
-
--------------
|
1291
|
-
* fixed bug cvs import not detecting multiindex
|
1292
|
-
|
1293
|
-
Version 0.36.3
|
1294
|
-
--------------
|
1295
|
-
* published as a pypi module
|
1296
|
-
|
1297
|
-
Version 0.36.0
|
1298
|
-
--------------
|
1299
|
-
* added entry nkululeko.py script
|
1300
|
-
|
1301
|
-
|
1302
|
-
Version 0.35.0
|
1303
|
-
--------------
|
1304
|
-
* fixed bug that prevented scaling (normalization)
|
1305
|
-
|
1306
|
-
Version 0.34.2
|
1307
|
-
--------------
|
1308
|
-
* smaller bug fixed concerning the loss_string
|
1309
|
-
|
1310
|
-
Version 0.34.1
|
1311
|
-
--------------
|
1312
|
-
* smaller bug fixes and tried Soft_f1 loss
|
1313
|
-
|
1314
|
-
|
1315
|
-
Version 0.34.0
|
1316
|
-
--------------
|
1317
|
-
* smaller bug fixes and debug ouputs
|
1318
|
-
|
1319
|
-
Version 0.33.0
|
1320
|
-
--------------
|
1321
|
-
* added GMM as a model type
|
1322
|
-
|
1323
|
-
Version 0.32.0
|
1324
|
-
--------------
|
1325
|
-
* added audmodel embeddings as features
|
1326
|
-
|
1327
|
-
Version 0.31.0
|
1328
|
-
--------------
|
1329
|
-
* added models: tree and tree_reg
|
1330
|
-
|
1331
|
-
Version 0.30.0
|
1332
|
-
--------------
|
1333
|
-
* added models: bayes, knn and knn_reg
|
1334
|
-
|
1335
|
-
Version 0.29.2
|
1336
|
-
--------------
|
1337
|
-
* fixed hello world example
|
1338
|
-
|
1339
|
-
|
1340
|
-
Version 0.29.1
|
1341
|
-
--------------
|
1342
|
-
* bug fix for 0.29
|
1343
|
-
|
1344
|
-
|
1345
|
-
Version 0.29.0
|
1346
|
-
--------------
|
1347
|
-
* added a new FeatureExtractor class to import external data
|
1348
|
-
|
1349
|
-
Version 0.28.2
|
1350
|
-
--------------
|
1351
|
-
* removed some Pandas warnings
|
1352
|
-
* added no_reuse function to database.load()
|
1353
|
-
|
1354
|
-
Version 0.28.1
|
1355
|
-
--------------
|
1356
|
-
* with database.value_counts show only the data that is actually used
|
1357
|
-
|
1358
|
-
|
1359
|
-
Version 0.28.0
|
1360
|
-
--------------
|
1361
|
-
* made "label_data" configuration automatic and added "label_result"
|
1362
|
-
|
1363
|
-
|
1364
|
-
Version 0.27.0
|
1365
|
-
--------------
|
1366
|
-
* added "label_data" configuration to label data with trained model (so now there can be train, dev and test set)
|
1367
|
-
|
1368
|
-
Version 0.26.1
|
1369
|
-
--------------
|
1370
|
-
* Fixed some bugs caused by the multitude of feature sets
|
1371
|
-
* Added possibilty to distinguish between absolut or relative pathes in csv datasets
|
1372
|
-
|
1373
|
-
Version 0.26.0
|
1374
|
-
--------------
|
1375
|
-
* added the rename_speakers funcionality to prevent identical speaker names in datasets
|
1376
|
-
|
1377
|
-
Version 0.25.1
|
1378
|
-
--------------
|
1379
|
-
* fixed bug that no features were chosen if not selected
|
1380
|
-
|
1381
|
-
Version 0.25.0
|
1382
|
-
--------------
|
1383
|
-
* made selectable features universal for feature sets
|
1384
|
-
|
1385
|
-
Version 0.24.0
|
1386
|
-
--------------
|
1387
|
-
* added multiple feature sets (will simply be concatenated)
|
1388
|
-
|
1389
|
-
Version 0.23.0
|
1390
|
-
--------------
|
1391
|
-
* added selectable features for Praat interface
|
1392
|
-
|
1393
|
-
Version 0.22.0
|
1394
|
-
--------------
|
1395
|
-
* added David R. Feinberg's Praat features, praise also to parselmouth
|
1396
|
-
|
1397
|
-
Version 0.21.0
|
1398
|
-
--------------
|
1399
|
-
|
1400
|
-
* Revoked 0.20.0
|
1401
|
-
* Added support for only_test = True, to enable later testing of trained models with new test data
|
1402
|
-
|
1403
|
-
Version 0.20.0
|
1404
|
-
--------------
|
1405
|
-
|
1406
|
-
* implemented reuse of trained and saved models
|
1407
|
-
|
1408
|
-
Version 0.19.0
|
1409
|
-
--------------
|
1410
|
-
|
1411
|
-
* added "max_duration_of_sample" for datasets
|
1412
|
-
|
1413
|
-
|
1414
|
-
Version 0.18.6
|
1415
|
-
--------------
|
1416
|
-
|
1417
|
-
* added support for learning and dropout rate as argument
|
1418
|
-
|
1419
|
-
|
1420
|
-
Version 0.18.5
|
1421
|
-
--------------
|
1422
|
-
|
1423
|
-
* added support for epoch number as argument
|
1424
|
-
|
1425
|
-
Version 0.18.4
|
1426
|
-
--------------
|
1427
|
-
|
1428
|
-
* added support for ANN layers as arguments
|
1429
|
-
|
1430
|
-
Version 0.18.3
|
1431
|
-
--------------
|
1432
|
-
|
1433
|
-
* added reuse of test and train file sets
|
1434
|
-
* added parameter to scale continous target values: target_divide_by
|
1435
|
-
|
1436
|
-
|
1437
|
-
Version 0.18.2
|
1438
|
-
--------------
|
1439
|
-
|
1440
|
-
* added preference of local dataset specs to global ones
|
1441
|
-
|
1442
|
-
Version 0.18.1
|
1443
|
-
--------------
|
1444
|
-
|
1445
|
-
* added regression value display for confusion matrices
|
1446
|
-
|
1447
|
-
Version 0.18.0
|
1448
|
-
--------------
|
1449
|
-
|
1450
|
-
* added leave one speaker group out
|
1451
|
-
|
1452
|
-
Version 0.17.2
|
1453
|
-
--------------
|
1454
|
-
|
1455
|
-
* fixed scaler, added robust
|
1456
|
-
|
1457
|
-
|
1458
|
-
|
1459
|
-
Version 0.17.0
|
1460
|
-
--------------
|
1461
|
-
|
1462
|
-
* Added minimum duration for test samples
|
1463
|
-
|
1464
|
-
|
1465
|
-
Version 0.16.4
|
1466
|
-
--------------
|
1467
|
-
|
1468
|
-
* Added possibility to combine predictions per speaker (with mean or mode function)
|
1469
|
-
|
1470
|
-
Version 0.16.3
|
1471
|
-
--------------
|
1472
|
-
|
1473
|
-
* Added minimal sample length for databases
|
1474
|
-
|
1475
|
-
|
1476
|
-
Version 0.16.2
|
1477
|
-
--------------
|
1478
|
-
|
1479
|
-
* Added k-fold-cross-validation for linear classifiers
|
1480
|
-
|
1481
|
-
Version 0.16.1
|
1482
|
-
--------------
|
1483
|
-
|
1484
|
-
* Added leave-one-speaker-out for linear classifiers
|
1485
|
-
|
1486
|
-
|
1487
|
-
Version 0.16.0
|
1488
|
-
--------------
|
1489
|
-
|
1490
|
-
* Added random sample splits
|
1491
|
-
|