nkululeko 0.88.9__tar.gz → 0.88.11__tar.gz

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.
Files changed (168) hide show
  1. {nkululeko-0.88.9 → nkululeko-0.88.11}/CHANGELOG.md +9 -0
  2. {nkululeko-0.88.9/nkululeko.egg-info → nkululeko-0.88.11}/PKG-INFO +13 -5
  3. {nkululeko-0.88.9 → nkululeko-0.88.11}/README.md +3 -4
  4. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/constants.py +1 -1
  5. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/explore.py +21 -0
  6. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/feat_extract/feats_agender_agender.py +5 -4
  7. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/feat_extract/feats_spkrec.py +1 -1
  8. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/feat_extract/feinberg_praat.py +4 -4
  9. nkululeko-0.88.11/nkululeko/models/model_gmm.py +37 -0
  10. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/multidb.py +7 -0
  11. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/plots.py +11 -10
  12. {nkululeko-0.88.9 → nkululeko-0.88.11/nkululeko.egg-info}/PKG-INFO +13 -5
  13. nkululeko-0.88.9/nkululeko/models/model_gmm.py +0 -20
  14. {nkululeko-0.88.9 → nkululeko-0.88.11}/LICENSE +0 -0
  15. {nkululeko-0.88.9 → nkululeko-0.88.11}/data/aesdd/process_database.py +0 -0
  16. {nkululeko-0.88.9 → nkululeko-0.88.11}/data/androids/process_database.py +0 -0
  17. {nkululeko-0.88.9 → nkululeko-0.88.11}/data/ased/process_database.py +0 -0
  18. {nkululeko-0.88.9 → nkululeko-0.88.11}/data/asvp-esd/process_database.py +0 -0
  19. {nkululeko-0.88.9 → nkululeko-0.88.11}/data/baved/process_database.py +0 -0
  20. {nkululeko-0.88.9 → nkululeko-0.88.11}/data/cafe/process_database.py +0 -0
  21. {nkululeko-0.88.9 → nkululeko-0.88.11}/data/clac/process_database.py +0 -0
  22. {nkululeko-0.88.9 → nkululeko-0.88.11}/data/cmu-mosei/process_database.py +0 -0
  23. {nkululeko-0.88.9 → nkululeko-0.88.11}/data/demos/process_database.py +0 -0
  24. {nkululeko-0.88.9 → nkululeko-0.88.11}/data/ekorpus/process_database.py +0 -0
  25. {nkululeko-0.88.9 → nkululeko-0.88.11}/data/emns/process_database.py +0 -0
  26. {nkululeko-0.88.9 → nkululeko-0.88.11}/data/emofilm/convert_to_16k.py +0 -0
  27. {nkululeko-0.88.9 → nkululeko-0.88.11}/data/emofilm/process_database.py +0 -0
  28. {nkululeko-0.88.9 → nkululeko-0.88.11}/data/emorynlp/process_database.py +0 -0
  29. {nkululeko-0.88.9 → nkululeko-0.88.11}/data/emov-db/process_database.py +0 -0
  30. {nkululeko-0.88.9 → nkululeko-0.88.11}/data/emovo/process_database.py +0 -0
  31. {nkululeko-0.88.9 → nkululeko-0.88.11}/data/emozionalmente/create.py +0 -0
  32. {nkululeko-0.88.9 → nkululeko-0.88.11}/data/enterface/process_database.py +0 -0
  33. {nkululeko-0.88.9 → nkululeko-0.88.11}/data/esd/process_database.py +0 -0
  34. {nkululeko-0.88.9 → nkululeko-0.88.11}/data/gerparas/process_database.py +0 -0
  35. {nkululeko-0.88.9 → nkululeko-0.88.11}/data/iemocap/process_database.py +0 -0
  36. {nkululeko-0.88.9 → nkululeko-0.88.11}/data/jl/process_database.py +0 -0
  37. {nkululeko-0.88.9 → nkululeko-0.88.11}/data/jtes/process_database.py +0 -0
  38. {nkululeko-0.88.9 → nkululeko-0.88.11}/data/meld/process_database.py +0 -0
  39. {nkululeko-0.88.9 → nkululeko-0.88.11}/data/mesd/process_database.py +0 -0
  40. {nkululeko-0.88.9 → nkululeko-0.88.11}/data/mess/process_database.py +0 -0
  41. {nkululeko-0.88.9 → nkululeko-0.88.11}/data/mlendsnd/process_database.py +0 -0
  42. {nkululeko-0.88.9 → nkululeko-0.88.11}/data/msp-improv/process_database2.py +0 -0
  43. {nkululeko-0.88.9 → nkululeko-0.88.11}/data/msp-podcast/process_database.py +0 -0
  44. {nkululeko-0.88.9 → nkululeko-0.88.11}/data/oreau2/process_database.py +0 -0
  45. {nkululeko-0.88.9 → nkululeko-0.88.11}/data/portuguese/process_database.py +0 -0
  46. {nkululeko-0.88.9 → nkululeko-0.88.11}/data/ravdess/process_database.py +0 -0
  47. {nkululeko-0.88.9 → nkululeko-0.88.11}/data/ravdess/process_database_speaker.py +0 -0
  48. {nkululeko-0.88.9 → nkululeko-0.88.11}/data/savee/process_database.py +0 -0
  49. {nkululeko-0.88.9 → nkululeko-0.88.11}/data/shemo/process_database.py +0 -0
  50. {nkululeko-0.88.9 → nkululeko-0.88.11}/data/subesco/process_database.py +0 -0
  51. {nkululeko-0.88.9 → nkululeko-0.88.11}/data/tess/process_database.py +0 -0
  52. {nkululeko-0.88.9 → nkululeko-0.88.11}/data/thorsten-emotional/process_database.py +0 -0
  53. {nkululeko-0.88.9 → nkululeko-0.88.11}/data/urdu/process_database.py +0 -0
  54. {nkululeko-0.88.9 → nkululeko-0.88.11}/data/vivae/process_database.py +0 -0
  55. {nkululeko-0.88.9 → nkululeko-0.88.11}/docs/source/conf.py +0 -0
  56. {nkululeko-0.88.9 → nkululeko-0.88.11}/meta/demos/demo_best_model.py +0 -0
  57. {nkululeko-0.88.9 → nkululeko-0.88.11}/meta/demos/my_experiment.py +0 -0
  58. {nkululeko-0.88.9 → nkululeko-0.88.11}/meta/demos/my_experiment_local.py +0 -0
  59. {nkululeko-0.88.9 → nkululeko-0.88.11}/meta/demos/plot_faster_anim.py +0 -0
  60. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/__init__.py +0 -0
  61. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/aug_train.py +0 -0
  62. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/augment.py +0 -0
  63. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/augmenting/__init__.py +0 -0
  64. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/augmenting/augmenter.py +0 -0
  65. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/augmenting/randomsplicer.py +0 -0
  66. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/augmenting/randomsplicing.py +0 -0
  67. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/augmenting/resampler.py +0 -0
  68. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/autopredict/__init__.py +0 -0
  69. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/autopredict/ap_age.py +0 -0
  70. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/autopredict/ap_arousal.py +0 -0
  71. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/autopredict/ap_dominance.py +0 -0
  72. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/autopredict/ap_gender.py +0 -0
  73. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/autopredict/ap_mos.py +0 -0
  74. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/autopredict/ap_pesq.py +0 -0
  75. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/autopredict/ap_sdr.py +0 -0
  76. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/autopredict/ap_snr.py +0 -0
  77. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/autopredict/ap_stoi.py +0 -0
  78. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/autopredict/ap_valence.py +0 -0
  79. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/autopredict/estimate_snr.py +0 -0
  80. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/cacheddataset.py +0 -0
  81. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/data/__init__.py +0 -0
  82. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/data/dataset.py +0 -0
  83. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/data/dataset_csv.py +0 -0
  84. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/demo.py +0 -0
  85. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/demo_feats.py +0 -0
  86. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/demo_predictor.py +0 -0
  87. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/ensemble.py +0 -0
  88. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/experiment.py +0 -0
  89. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/export.py +0 -0
  90. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/feat_extract/__init__.py +0 -0
  91. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/feat_extract/feats_agender.py +0 -0
  92. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/feat_extract/feats_analyser.py +0 -0
  93. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/feat_extract/feats_ast.py +0 -0
  94. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/feat_extract/feats_auddim.py +0 -0
  95. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/feat_extract/feats_audmodel.py +0 -0
  96. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/feat_extract/feats_clap.py +0 -0
  97. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/feat_extract/feats_hubert.py +0 -0
  98. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/feat_extract/feats_import.py +0 -0
  99. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/feat_extract/feats_mld.py +0 -0
  100. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/feat_extract/feats_mos.py +0 -0
  101. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/feat_extract/feats_opensmile.py +0 -0
  102. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/feat_extract/feats_oxbow.py +0 -0
  103. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/feat_extract/feats_praat.py +0 -0
  104. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/feat_extract/feats_snr.py +0 -0
  105. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/feat_extract/feats_spectra.py +0 -0
  106. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/feat_extract/feats_squim.py +0 -0
  107. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/feat_extract/feats_trill.py +0 -0
  108. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/feat_extract/feats_wav2vec2.py +0 -0
  109. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/feat_extract/feats_wavlm.py +0 -0
  110. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/feat_extract/feats_whisper.py +0 -0
  111. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/feat_extract/featureset.py +0 -0
  112. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/feature_extractor.py +0 -0
  113. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/file_checker.py +0 -0
  114. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/filter_data.py +0 -0
  115. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/glob_conf.py +0 -0
  116. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/losses/__init__.py +0 -0
  117. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/losses/loss_ccc.py +0 -0
  118. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/losses/loss_softf1loss.py +0 -0
  119. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/modelrunner.py +0 -0
  120. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/models/__init__.py +0 -0
  121. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/models/model.py +0 -0
  122. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/models/model_bayes.py +0 -0
  123. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/models/model_cnn.py +0 -0
  124. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/models/model_knn.py +0 -0
  125. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/models/model_knn_reg.py +0 -0
  126. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/models/model_lin_reg.py +0 -0
  127. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/models/model_mlp.py +0 -0
  128. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/models/model_mlp_regression.py +0 -0
  129. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/models/model_svm.py +0 -0
  130. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/models/model_svr.py +0 -0
  131. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/models/model_tree.py +0 -0
  132. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/models/model_tree_reg.py +0 -0
  133. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/models/model_tuned.py +0 -0
  134. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/models/model_xgb.py +0 -0
  135. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/models/model_xgr.py +0 -0
  136. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/nkuluflag.py +0 -0
  137. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/nkululeko.py +0 -0
  138. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/predict.py +0 -0
  139. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/reporting/__init__.py +0 -0
  140. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/reporting/defines.py +0 -0
  141. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/reporting/latex_writer.py +0 -0
  142. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/reporting/report.py +0 -0
  143. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/reporting/report_item.py +0 -0
  144. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/reporting/reporter.py +0 -0
  145. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/reporting/result.py +0 -0
  146. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/resample.py +0 -0
  147. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/runmanager.py +0 -0
  148. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/scaler.py +0 -0
  149. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/segment.py +0 -0
  150. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/segmenting/__init__.py +0 -0
  151. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/segmenting/seg_inaspeechsegmenter.py +0 -0
  152. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/segmenting/seg_silero.py +0 -0
  153. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/syllable_nuclei.py +0 -0
  154. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/test.py +0 -0
  155. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/test_predictor.py +0 -0
  156. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/test_pretrain.py +0 -0
  157. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/utils/__init__.py +0 -0
  158. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/utils/files.py +0 -0
  159. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/utils/stats.py +0 -0
  160. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko/utils/util.py +0 -0
  161. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko.egg-info/SOURCES.txt +0 -0
  162. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko.egg-info/dependency_links.txt +0 -0
  163. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko.egg-info/requires.txt +0 -0
  164. {nkululeko-0.88.9 → nkululeko-0.88.11}/nkululeko.egg-info/top_level.txt +0 -0
  165. {nkululeko-0.88.9 → nkululeko-0.88.11}/pyproject.toml +0 -0
  166. {nkululeko-0.88.9 → nkululeko-0.88.11}/setup.cfg +0 -0
  167. {nkululeko-0.88.9 → nkululeko-0.88.11}/setup.py +0 -0
  168. {nkululeko-0.88.9 → nkululeko-0.88.11}/venv/bin/activate_this.py +0 -0
@@ -1,6 +1,15 @@
1
1
  Changelog
2
2
  =========
3
3
 
4
+ Version 0.88.11
5
+ --------------
6
+ * removed hack in Praat script
7
+
8
+ Version 0.88.10
9
+ --------------
10
+ * SVM C val defaults to 1
11
+ * fixed agender_agender naming bug
12
+
4
13
  Version 0.88.9
5
14
  --------------
6
15
  * added performance_weighted ensemble
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: nkululeko
3
- Version: 0.88.9
3
+ Version: 0.88.11
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
@@ -192,8 +192,6 @@ type = svm
192
192
  [EXPL]
193
193
  model = tree
194
194
  plot_tree = True
195
- [PLOT]
196
- combine_per_speaker = mode
197
195
  ```
198
196
  Read the [Hello World example](#hello-world-example) for initial usage with Emo-DB dataset.
199
197
 
@@ -204,9 +202,10 @@ All of them take *--config <my_config.ini>* as an argument.
204
202
  * **nkululeko.nkululeko**: do machine learning experiments combining features and learners
205
203
  * **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
206
204
  * *configurations*: which experiments to combine
207
- * *--method* (optional): majority_voting, mean, max, sum, max_class, uncertainty_threshold, uncertainty_weighted, confidence_weighted
205
+ * *--method* (optional): majority_voting, mean (default), max, sum, uncertainty, uncertainty_weighted, confidence_weighted, performance_weighted
208
206
  * *--threshold*: uncertainty threshold (1.0 means no threshold)
209
- * *--outfile* (optional): name of CSV file for output
207
+ * *--weightes*: weights for performance_weighted method (could be from previous UAR, ACC)
208
+ * *--outfile* (optional): name of CSV file for output (default: ensemble_result.csv)
210
209
  * *--no_labels* (optional): indicate that no ground truth is given
211
210
  * **nkululeko.multidb**: do [multiple experiments](http://blog.syntheticspeech.de/2024/01/02/nkululeko-compare-several-databases/), comparing several databases cross and in itself
212
211
  * **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
@@ -360,6 +359,15 @@ F. Burkhardt, Johannes Wagner, Hagen Wierstorf, Florian Eyben and Björn Schulle
360
359
  Changelog
361
360
  =========
362
361
 
362
+ Version 0.88.11
363
+ --------------
364
+ * removed hack in Praat script
365
+
366
+ Version 0.88.10
367
+ --------------
368
+ * SVM C val defaults to 1
369
+ * fixed agender_agender naming bug
370
+
363
371
  Version 0.88.9
364
372
  --------------
365
373
  * added performance_weighted ensemble
@@ -148,8 +148,6 @@ type = svm
148
148
  [EXPL]
149
149
  model = tree
150
150
  plot_tree = True
151
- [PLOT]
152
- combine_per_speaker = mode
153
151
  ```
154
152
  Read the [Hello World example](#hello-world-example) for initial usage with Emo-DB dataset.
155
153
 
@@ -160,9 +158,10 @@ All of them take *--config <my_config.ini>* as an argument.
160
158
  * **nkululeko.nkululeko**: do machine learning experiments combining features and learners
161
159
  * **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
162
160
  * *configurations*: which experiments to combine
163
- * *--method* (optional): majority_voting, mean, max, sum, max_class, uncertainty_threshold, uncertainty_weighted, confidence_weighted
161
+ * *--method* (optional): majority_voting, mean (default), max, sum, uncertainty, uncertainty_weighted, confidence_weighted, performance_weighted
164
162
  * *--threshold*: uncertainty threshold (1.0 means no threshold)
165
- * *--outfile* (optional): name of CSV file for output
163
+ * *--weightes*: weights for performance_weighted method (could be from previous UAR, ACC)
164
+ * *--outfile* (optional): name of CSV file for output (default: ensemble_result.csv)
166
165
  * *--no_labels* (optional): indicate that no ground truth is given
167
166
  * **nkululeko.multidb**: do [multiple experiments](http://blog.syntheticspeech.de/2024/01/02/nkululeko-compare-several-databases/), comparing several databases cross and in itself
168
167
  * **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
@@ -1,2 +1,2 @@
1
- VERSION="0.88.9"
1
+ VERSION="0.88.11"
2
2
  SAMPLING_RATE = 16000
@@ -1,3 +1,24 @@
1
+ """
2
+ Explore the feature sets of a machine learning experiment.
3
+
4
+ This script is the entry point for the 'explore' module of the nkululeko framework.
5
+ It handles loading the experiment configuration, setting up the experiment, and
6
+ running various feature exploration techniques based on the configuration.
7
+
8
+ The script supports the following configuration options:
9
+ - `no_warnings`: If set to `True`, it will ignore all warnings during the exploration.
10
+ - `feature_distributions`: If set to `True`, it will generate plots of the feature distributions.
11
+ - `tsne`: If set to `True`, it will generate a t-SNE plot of the feature space.
12
+ - `scatter`: If set to `True`, it will generate a scatter plot of the feature space.
13
+ - `spotlight`: If set to `True`, it will generate a 'spotlight' plot of the feature space.
14
+ - `shap`: If set to `True`, it will generate SHAP feature importance plots.
15
+ - `model`: The type of model to use for the feature exploration (e.g. 'SVM').
16
+ - `plot_tree`: If set to `True`, it will generate a decision tree plot.
17
+
18
+ The script can be run from the command line with the `--config` argument to specify
19
+ the configuration file to use. If no configuration file is provided, it will look
20
+ for an `exp.ini` file in the same directory as the script.
21
+ """
1
22
  # explore.py
2
23
  # explore the feature sets
3
24
 
@@ -7,18 +7,19 @@ import nkululeko.glob_conf as glob_conf
7
7
  import audonnx
8
8
  import numpy as np
9
9
  import audinterface
10
+ import torch
10
11
 
11
-
12
- class AgenderAgenderSet(Featureset):
12
+ class Agender_agenderSet(Featureset):
13
13
  """
14
14
  Age and gender predictions from the wav2vec2. based model finetuned on agender, described in the paper
15
15
  "Speech-based Age and Gender Prediction with Transformers"
16
16
  https://arxiv.org/abs/2306.16962
17
17
  """
18
18
 
19
- def __init__(self, name, data_df):
20
- super().__init__(name, data_df)
19
+ def __init__(self, name, data_df, feats_type):
20
+ super().__init__(name, data_df, feats_type)
21
21
  self.model_loaded = False
22
+ self.feats_type = feats_type
22
23
 
23
24
  def _load_model(self):
24
25
  model_url = "https://zenodo.org/record/7761387/files/w2v2-L-robust-6-age-gender.25c844af-1.1.1.zip"
@@ -12,7 +12,7 @@ import pandas as pd
12
12
  import torch
13
13
  import torchaudio
14
14
  from nkululeko.feat_extract.featureset import Featureset
15
- from speechbrain.pretrained import EncoderClassifier
15
+ from speechbrain.inference import EncoderClassifier
16
16
  from tqdm import tqdm
17
17
 
18
18
  # from transformers import HubertModel, Wav2Vec2FeatureExtractor
@@ -380,11 +380,11 @@ def compute_features(file_index):
380
380
  )
381
381
 
382
382
  # add pca data
383
- pcaData = run_pca(df) # Run jitter and shimmer PCA
384
- df = pd.concat([df, pcaData], axis=1) # Add PCA data
383
+ pca_data = run_pca(df) # Run jitter and shimmer PCA
384
+ df = pd.concat([df, pca_data], axis=1) # Add PCA data
385
385
  # reload the data so it's all numbers
386
- df.to_csv("processed_results.csv", index=False)
387
- df = pd.read_csv("processed_results.csv", header=0)
386
+ # df.to_csv("processed_results.csv", index=False)
387
+ # df = pd.read_csv("processed_results.csv", header=0)
388
388
  # df.sort_values('voiceID').head(20)
389
389
  # ## Next we calculate the vocal-tract length estimates
390
390
 
@@ -0,0 +1,37 @@
1
+ # model_gmm.py
2
+
3
+ from sklearn import mixture
4
+ from nkululeko.models.model import Model
5
+ import pandas as pd
6
+
7
+ class GMM_model(Model):
8
+ """An GMM model"""
9
+
10
+ is_classifier = True
11
+
12
+ def __init__(self, df_train, df_test, feats_train, feats_test):
13
+ super().__init__(df_train, df_test, feats_train, feats_test)
14
+ self.name = "gmm"
15
+ self.n_components = int(self.util.config_val("MODEL", "GMM_components", "4"))
16
+ covariance_type = self.util.config_val("MODEL", "GMM_covariance_type", "full")
17
+ self.clf = mixture.GaussianMixture(
18
+ n_components=self.n_components,
19
+ covariance_type=covariance_type,
20
+ random_state = 42,
21
+ )
22
+ # set up the classifier
23
+
24
+ def get_predictions(self):
25
+ """Use the predict_proba method of the GaussianMixture model to get
26
+ probabilities. Create a DataFrame with these probabilities and return
27
+ it along with the predictions."""
28
+ probs = self.clf.predict_proba(self.feats_test)
29
+ preds = self.clf.predict(self.feats_test)
30
+
31
+ # Convert predictions to a list
32
+ preds = preds.tolist()
33
+
34
+ # Create a DataFrame for probabilities
35
+ proba_df = pd.DataFrame(probs, index=self.feats_test.index, columns=range(self.n_components))
36
+
37
+ return preds, proba_df
@@ -1,3 +1,10 @@
1
+ """
2
+ Demonstrates the usage of the ML-experiment framework for the nkululeko MULTIDB project.
3
+
4
+ The `main` function is the entry point of the script, which parses command-line arguments, reads a configuration file, and runs the nkululeko or aug_train functions based on the configuration.
5
+
6
+ The `plot_heatmap` function generates a heatmap plot of the results and saves it to a file, along with some summary statistics.
7
+ """
1
8
  # main.py
2
9
  # Demonstration code to use the ML-experiment framework
3
10
 
@@ -4,14 +4,14 @@ import ast
4
4
  import matplotlib.pyplot as plt
5
5
  import numpy as np
6
6
  import pandas as pd
7
- from scipy import stats
8
7
  import seaborn as sns
8
+ from scipy import stats
9
9
  from sklearn.manifold import TSNE
10
10
 
11
11
  import nkululeko.glob_conf as glob_conf
12
+ import nkululeko.utils.stats as su
12
13
  from nkululeko.reporting.defines import Header
13
14
  from nkululeko.reporting.report_item import ReportItem
14
- import nkululeko.utils.stats as su
15
15
  from nkululeko.utils.util import Util
16
16
 
17
17
 
@@ -32,9 +32,9 @@ class Plots:
32
32
  # plot the distribution of samples per speaker
33
33
  # one up because of the runs
34
34
  fig_dir = self.util.get_path("fig_dir") + "../"
35
- self.util.debug(f"plotting samples per speaker")
35
+ self.util.debug("plotting samples per speaker")
36
36
  if "gender" in df_speakers:
37
- filename = f"samples_value_counts"
37
+ filename = "samples_value_counts"
38
38
  ax = (
39
39
  df_speakers.groupby("samplenum")["gender"]
40
40
  .value_counts()
@@ -46,7 +46,7 @@ class Plots:
46
46
  rot=0,
47
47
  )
48
48
  )
49
- ax.set_ylabel(f"number of speakers")
49
+ ax.set_ylabel("number of speakers")
50
50
  ax.set_xlabel("number of samples")
51
51
  self.save_plot(
52
52
  ax,
@@ -58,7 +58,7 @@ class Plots:
58
58
 
59
59
  # fig.clear()
60
60
  else:
61
- filename = f"samples_value_counts"
61
+ filename = "samples_value_counts"
62
62
  ax = (
63
63
  df_speakers["samplenum"]
64
64
  .value_counts()
@@ -265,7 +265,8 @@ class Plots:
265
265
  """Plot relation of categorical distribution with continuous."""
266
266
  dist_type = self.util.config_val("EXPL", "dist_type", "hist")
267
267
  cats, cat_str, es = su.get_effect_size(df, cat_col, cont_col)
268
- if dist_type == "hist":
268
+ model_type = self.util.get_model_type()
269
+ if dist_type == "hist" and model_type != "tree":
269
270
  ax = sns.histplot(df, x=cont_col, hue=cat_col, kde=True)
270
271
  caption = f"{ylab} {df.shape[0]}. {cat_str} ({cats}):" f" {es}"
271
272
  ax.set_title(caption)
@@ -489,7 +490,7 @@ class Plots:
489
490
  glob_conf.report.add_item(
490
491
  ReportItem(
491
492
  Header.HEADER_EXPLORE,
492
- f"Scatter plot",
493
+ "Scatter plot",
493
494
  f"using {dimred_type}",
494
495
  filename,
495
496
  )
@@ -561,8 +562,8 @@ class Plots:
561
562
  glob_conf.report.add_item(
562
563
  ReportItem(
563
564
  Header.HEADER_EXPLORE,
564
- f"Tree plot",
565
- f"for feature importance",
565
+ "Tree plot",
566
+ "for feature importance",
566
567
  filename,
567
568
  )
568
569
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: nkululeko
3
- Version: 0.88.9
3
+ Version: 0.88.11
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
@@ -192,8 +192,6 @@ type = svm
192
192
  [EXPL]
193
193
  model = tree
194
194
  plot_tree = True
195
- [PLOT]
196
- combine_per_speaker = mode
197
195
  ```
198
196
  Read the [Hello World example](#hello-world-example) for initial usage with Emo-DB dataset.
199
197
 
@@ -204,9 +202,10 @@ All of them take *--config <my_config.ini>* as an argument.
204
202
  * **nkululeko.nkululeko**: do machine learning experiments combining features and learners
205
203
  * **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
206
204
  * *configurations*: which experiments to combine
207
- * *--method* (optional): majority_voting, mean, max, sum, max_class, uncertainty_threshold, uncertainty_weighted, confidence_weighted
205
+ * *--method* (optional): majority_voting, mean (default), max, sum, uncertainty, uncertainty_weighted, confidence_weighted, performance_weighted
208
206
  * *--threshold*: uncertainty threshold (1.0 means no threshold)
209
- * *--outfile* (optional): name of CSV file for output
207
+ * *--weightes*: weights for performance_weighted method (could be from previous UAR, ACC)
208
+ * *--outfile* (optional): name of CSV file for output (default: ensemble_result.csv)
210
209
  * *--no_labels* (optional): indicate that no ground truth is given
211
210
  * **nkululeko.multidb**: do [multiple experiments](http://blog.syntheticspeech.de/2024/01/02/nkululeko-compare-several-databases/), comparing several databases cross and in itself
212
211
  * **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
@@ -360,6 +359,15 @@ F. Burkhardt, Johannes Wagner, Hagen Wierstorf, Florian Eyben and Björn Schulle
360
359
  Changelog
361
360
  =========
362
361
 
362
+ Version 0.88.11
363
+ --------------
364
+ * removed hack in Praat script
365
+
366
+ Version 0.88.10
367
+ --------------
368
+ * SVM C val defaults to 1
369
+ * fixed agender_agender naming bug
370
+
363
371
  Version 0.88.9
364
372
  --------------
365
373
  * added performance_weighted ensemble
@@ -1,20 +0,0 @@
1
- # model_gmm.py
2
-
3
- from sklearn import mixture
4
- from nkululeko.models.model import Model
5
-
6
-
7
- class GMM_model(Model):
8
- """An GMM model"""
9
-
10
- is_classifier = True
11
-
12
- def __init__(self, df_train, df_test, feats_train, feats_test):
13
- super().__init__(df_train, df_test, feats_train, feats_test)
14
- self.name = "gmm"
15
- n_components = int(self.util.config_val("MODEL", "GMM_components", "4"))
16
- covariance_type = self.util.config_val("MODEL", "GMM_covariance_type", "full")
17
- self.clf = mixture.GaussianMixture(
18
- n_components=n_components, covariance_type=covariance_type
19
- )
20
- # set up the classifier
File without changes
File without changes
File without changes
File without changes