nkululeko 0.79.5__tar.gz → 0.80.1__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 (167) hide show
  1. {nkululeko-0.79.5 → nkululeko-0.80.1}/CHANGELOG.md +11 -1
  2. {nkululeko-0.79.5/nkululeko.egg-info → nkululeko-0.80.1}/PKG-INFO +27 -11
  3. {nkululeko-0.79.5 → nkululeko-0.80.1}/README.md +15 -9
  4. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/constants.py +1 -1
  5. nkululeko-0.80.1/nkululeko/demo_feats.py +71 -0
  6. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/experiment.py +1 -1
  7. nkululeko-0.80.1/nkululeko/feat_extract/feats_import.py +43 -0
  8. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/multidb.py +14 -9
  9. {nkululeko-0.79.5 → nkululeko-0.80.1/nkululeko.egg-info}/PKG-INFO +27 -11
  10. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko.egg-info/SOURCES.txt +1 -0
  11. nkululeko-0.79.5/nkululeko/feat_extract/feats_import.py +0 -45
  12. {nkululeko-0.79.5 → nkululeko-0.80.1}/LICENSE +0 -0
  13. {nkululeko-0.79.5 → nkululeko-0.80.1}/data/aesdd/process_database.py +0 -0
  14. {nkululeko-0.79.5 → nkululeko-0.80.1}/data/androids/process_database.py +0 -0
  15. {nkululeko-0.79.5 → nkululeko-0.80.1}/data/androids_orig/process_database.py +0 -0
  16. {nkululeko-0.79.5 → nkululeko-0.80.1}/data/androids_test/process_database.py +0 -0
  17. {nkululeko-0.79.5 → nkululeko-0.80.1}/data/ased/process_database.py +0 -0
  18. {nkululeko-0.79.5 → nkululeko-0.80.1}/data/asvp-esd/process_database.py +0 -0
  19. {nkululeko-0.79.5 → nkululeko-0.80.1}/data/baved/process_database.py +0 -0
  20. {nkululeko-0.79.5 → nkululeko-0.80.1}/data/cafe/process_database.py +0 -0
  21. {nkululeko-0.79.5 → nkululeko-0.80.1}/data/clac/process_database.py +0 -0
  22. {nkululeko-0.79.5 → nkululeko-0.80.1}/data/cmu-mosei/process_database.py +0 -0
  23. {nkululeko-0.79.5 → nkululeko-0.80.1}/data/crema-d/process_database.py +0 -0
  24. {nkululeko-0.79.5 → nkululeko-0.80.1}/data/demos/process_database.py +0 -0
  25. {nkululeko-0.79.5 → nkululeko-0.80.1}/data/ekorpus/process_database.py +0 -0
  26. {nkululeko-0.79.5 → nkululeko-0.80.1}/data/emns/process_database.py +0 -0
  27. {nkululeko-0.79.5 → nkululeko-0.80.1}/data/emofilm/convert_to_16k.py +0 -0
  28. {nkululeko-0.79.5 → nkululeko-0.80.1}/data/emofilm/process_database.py +0 -0
  29. {nkululeko-0.79.5 → nkululeko-0.80.1}/data/emorynlp/process_database.py +0 -0
  30. {nkululeko-0.79.5 → nkululeko-0.80.1}/data/emov-db/process_database.py +0 -0
  31. {nkululeko-0.79.5 → nkululeko-0.80.1}/data/emovo/process_database.py +0 -0
  32. {nkululeko-0.79.5 → nkululeko-0.80.1}/data/emozionalmente/create.py +0 -0
  33. {nkululeko-0.79.5 → nkululeko-0.80.1}/data/enterface/process_database.py +0 -0
  34. {nkululeko-0.79.5 → nkululeko-0.80.1}/data/esd/process_database.py +0 -0
  35. {nkululeko-0.79.5 → nkululeko-0.80.1}/data/gerparas/process_database.py +0 -0
  36. {nkululeko-0.79.5 → nkululeko-0.80.1}/data/iemocap/process_database.py +0 -0
  37. {nkululeko-0.79.5 → nkululeko-0.80.1}/data/jl/process_database.py +0 -0
  38. {nkululeko-0.79.5 → nkululeko-0.80.1}/data/jtes/process_database.py +0 -0
  39. {nkululeko-0.79.5 → nkululeko-0.80.1}/data/meld/process_database.py +0 -0
  40. {nkululeko-0.79.5 → nkululeko-0.80.1}/data/mesd/process_database.py +0 -0
  41. {nkululeko-0.79.5 → nkululeko-0.80.1}/data/mess/process_database.py +0 -0
  42. {nkululeko-0.79.5 → nkululeko-0.80.1}/data/mlendsnd/process_database.py +0 -0
  43. {nkululeko-0.79.5 → nkululeko-0.80.1}/data/msp-improv/process_database2.py +0 -0
  44. {nkululeko-0.79.5 → nkululeko-0.80.1}/data/msp-podcast/process_database.py +0 -0
  45. {nkululeko-0.79.5 → nkululeko-0.80.1}/data/oreau2/process_database.py +0 -0
  46. {nkululeko-0.79.5 → nkululeko-0.80.1}/data/portuguese/process_database.py +0 -0
  47. {nkululeko-0.79.5 → nkululeko-0.80.1}/data/ravdess/process_database.py +0 -0
  48. {nkululeko-0.79.5 → nkululeko-0.80.1}/data/ravdess/process_database_speaker.py +0 -0
  49. {nkululeko-0.79.5 → nkululeko-0.80.1}/data/savee/process_database.py +0 -0
  50. {nkululeko-0.79.5 → nkululeko-0.80.1}/data/shemo/process_database.py +0 -0
  51. {nkululeko-0.79.5 → nkululeko-0.80.1}/data/subesco/process_database.py +0 -0
  52. {nkululeko-0.79.5 → nkululeko-0.80.1}/data/tess/process_database.py +0 -0
  53. {nkululeko-0.79.5 → nkululeko-0.80.1}/data/thorsten-emotional/process_database.py +0 -0
  54. {nkululeko-0.79.5 → nkululeko-0.80.1}/data/urdu/process_database.py +0 -0
  55. {nkululeko-0.79.5 → nkululeko-0.80.1}/data/vivae/process_database.py +0 -0
  56. {nkululeko-0.79.5 → nkululeko-0.80.1}/docs/source/conf.py +0 -0
  57. {nkululeko-0.79.5 → nkululeko-0.80.1}/meta/demos/demo_best_model.py +0 -0
  58. {nkululeko-0.79.5 → nkululeko-0.80.1}/meta/demos/multiple_exeriments/do_experiments.py +0 -0
  59. {nkululeko-0.79.5 → nkululeko-0.80.1}/meta/demos/multiple_exeriments/parse_nkulu.py +0 -0
  60. {nkululeko-0.79.5 → nkululeko-0.80.1}/meta/demos/my_experiment.py +0 -0
  61. {nkululeko-0.79.5 → nkululeko-0.80.1}/meta/demos/my_experiment_local.py +0 -0
  62. {nkululeko-0.79.5 → nkululeko-0.80.1}/meta/demos/plot_faster_anim.py +0 -0
  63. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/__init__.py +0 -0
  64. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/aug_train.py +0 -0
  65. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/augment.py +0 -0
  66. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/augmenting/__init__.py +0 -0
  67. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/augmenting/augmenter.py +0 -0
  68. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/augmenting/randomsplicer.py +0 -0
  69. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/augmenting/randomsplicing.py +0 -0
  70. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/augmenting/resampler.py +0 -0
  71. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/autopredict/__init__.py +0 -0
  72. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/autopredict/ap_age.py +0 -0
  73. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/autopredict/ap_arousal.py +0 -0
  74. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/autopredict/ap_dominance.py +0 -0
  75. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/autopredict/ap_gender.py +0 -0
  76. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/autopredict/ap_mos.py +0 -0
  77. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/autopredict/ap_pesq.py +0 -0
  78. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/autopredict/ap_sdr.py +0 -0
  79. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/autopredict/ap_snr.py +0 -0
  80. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/autopredict/ap_stoi.py +0 -0
  81. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/autopredict/ap_valence.py +0 -0
  82. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/autopredict/estimate_snr.py +0 -0
  83. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/cacheddataset.py +0 -0
  84. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/data/__init__.py +0 -0
  85. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/data/dataset.py +0 -0
  86. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/data/dataset_csv.py +0 -0
  87. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/demo.py +0 -0
  88. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/demo_predictor.py +0 -0
  89. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/explore.py +0 -0
  90. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/export.py +0 -0
  91. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/feat_extract/__init__.py +0 -0
  92. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/feat_extract/feats_agender.py +0 -0
  93. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/feat_extract/feats_agender_agender.py +0 -0
  94. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/feat_extract/feats_analyser.py +0 -0
  95. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/feat_extract/feats_audmodel.py +0 -0
  96. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/feat_extract/feats_audmodel_dim.py +0 -0
  97. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/feat_extract/feats_clap.py +0 -0
  98. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/feat_extract/feats_hubert.py +0 -0
  99. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/feat_extract/feats_mld.py +0 -0
  100. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/feat_extract/feats_mos.py +0 -0
  101. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/feat_extract/feats_opensmile.py +0 -0
  102. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/feat_extract/feats_oxbow.py +0 -0
  103. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/feat_extract/feats_praat.py +0 -0
  104. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/feat_extract/feats_snr.py +0 -0
  105. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/feat_extract/feats_spectra.py +0 -0
  106. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/feat_extract/feats_spkrec.py +0 -0
  107. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/feat_extract/feats_squim.py +0 -0
  108. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/feat_extract/feats_trill.py +0 -0
  109. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/feat_extract/feats_wav2vec2.py +0 -0
  110. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/feat_extract/feats_wavlm.py +0 -0
  111. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/feat_extract/featureset.py +0 -0
  112. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/feat_extract/feinberg_praat.py +0 -0
  113. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/feature_extractor.py +0 -0
  114. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/file_checker.py +0 -0
  115. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/filter_data.py +0 -0
  116. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/glob_conf.py +0 -0
  117. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/losses/__init__.py +0 -0
  118. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/losses/loss_ccc.py +0 -0
  119. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/losses/loss_softf1loss.py +0 -0
  120. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/modelrunner.py +0 -0
  121. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/models/__init__.py +0 -0
  122. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/models/model.py +0 -0
  123. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/models/model_bayes.py +0 -0
  124. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/models/model_cnn.py +0 -0
  125. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/models/model_gmm.py +0 -0
  126. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/models/model_knn.py +0 -0
  127. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/models/model_knn_reg.py +0 -0
  128. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/models/model_lin_reg.py +0 -0
  129. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/models/model_mlp.py +0 -0
  130. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/models/model_mlp_regression.py +0 -0
  131. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/models/model_svm.py +0 -0
  132. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/models/model_svr.py +0 -0
  133. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/models/model_tree.py +0 -0
  134. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/models/model_tree_reg.py +0 -0
  135. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/models/model_xgb.py +0 -0
  136. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/models/model_xgr.py +0 -0
  137. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/nkululeko.py +0 -0
  138. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/plots.py +0 -0
  139. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/predict.py +0 -0
  140. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/reporter.py +0 -0
  141. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/reporting/__init__.py +0 -0
  142. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/reporting/defines.py +0 -0
  143. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/reporting/latex_writer.py +0 -0
  144. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/reporting/report.py +0 -0
  145. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/reporting/report_item.py +0 -0
  146. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/resample.py +0 -0
  147. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/result.py +0 -0
  148. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/runmanager.py +0 -0
  149. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/scaler.py +0 -0
  150. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/segment.py +0 -0
  151. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/segmenting/__init__.py +0 -0
  152. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/segmenting/seg_inaspeechsegmenter.py +0 -0
  153. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/segmenting/seg_silero.py +0 -0
  154. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/syllable_nuclei.py +0 -0
  155. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/test.py +0 -0
  156. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/test_predictor.py +0 -0
  157. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/utils/__init__.py +0 -0
  158. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/utils/files.py +0 -0
  159. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/utils/stats.py +0 -0
  160. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko/utils/util.py +0 -0
  161. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko.egg-info/dependency_links.txt +0 -0
  162. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko.egg-info/requires.txt +0 -0
  163. {nkululeko-0.79.5 → nkululeko-0.80.1}/nkululeko.egg-info/top_level.txt +0 -0
  164. {nkululeko-0.79.5 → nkululeko-0.80.1}/pyproject.toml +0 -0
  165. {nkululeko-0.79.5 → nkululeko-0.80.1}/setup.cfg +0 -0
  166. {nkululeko-0.79.5 → nkululeko-0.80.1}/setup.py +0 -0
  167. {nkululeko-0.79.5 → nkululeko-0.80.1}/venv/bin/activate_this.py +0 -0
@@ -1,6 +1,16 @@
1
1
  Changelog
2
2
  =========
3
3
 
4
+ Version 0.80.1
5
+ --------------
6
+ * added support for string value in import_features
7
+ + added support for multiple extra training databases when doing multi-db experiments
8
+
9
+ Version 0.80.0
10
+ --------------
11
+ * fixed bug no feature import
12
+ * add support for multiple import feature files
13
+
4
14
  Version 0.79.5
5
15
  --------------
6
16
  * fixed bug on demo without in- or output
@@ -8,7 +18,7 @@ Version 0.79.5
8
18
 
9
19
  Version 0.79.4
10
20
  --------------
11
- * added funcionality in demo for regression
21
+ * added functionality in demo for regression
12
22
 
13
23
  Version 0.79.3
14
24
  --------------
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: nkululeko
3
- Version: 0.79.5
3
+ Version: 0.80.1
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
@@ -188,16 +188,22 @@ combine_per_speaker = mode
188
188
  Read the [Hello World example](#hello-world-example) for initial usage with Emo-DB dataset.
189
189
 
190
190
  Here is an overview of the interfaces/modules:
191
+
192
+ All of them take *--config <my_config.ini>* as an argument.
193
+
191
194
  * **nkululeko.nkululeko**: do machine learning experiments combining features and learners
192
- * **nkululeko.multidb**: do multiple experiments, comparing several databases cross and in itself
193
- * **nkululeko.demo**: demo the current best model on the command line
194
- * **nkululeko.test**: predict a series of files with the current best model
195
- * **nkululeko.explore**: perform data exploration
196
- * **nkululeko.augment**: augment the current training data
197
- * **nkululeko.aug_train**: augment the current training data and do a training including this data
198
- * **nkululeko.predict**: predict features like SNR, MOS, arousal/valence, age/gender, with DNN models
199
- * **nkululeko.segment**: segment a database based on VAD (voice activity detection)
200
- * **nkululeko.resample**: check on all sampling rates and change to 16kHz
195
+ * **nkululeko.multidb**: do [multiple experiments](http://blog.syntheticspeech.de/2024/01/02/nkululeko-compare-several-databases/), comparing several databases cross and in itself
196
+ * **nkululeko.demo**: [demo the current best model](http://blog.syntheticspeech.de/2022/09/01/nkululeko-how-to-evaluate-a-test-set-with-a-given-best-model/) on the command line
197
+ * *--list* (optional) list of input files
198
+ * *--file* (optional) name of input file
199
+ * *--outfile* (optional) name of CSV file for output
200
+ * **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
201
+ * **nkululeko.explore**: perform [data exploration](http://blog.syntheticspeech.de/2023/05/11/nkululeko-how-to-visualize-your-data-distribution/)
202
+ * **nkululeko.augment**: [augment](http://blog.syntheticspeech.de/2023/03/13/nkululeko-how-to-augment-the-training-set/) the current training data
203
+ * **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
204
+ * **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
205
+ * **nkululeko.segment**: [segment a database](http://blog.syntheticspeech.de/2023/07/14/nkululeko-segmenting-a-database/) based on VAD (voice activity detection)
206
+ * **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
201
207
 
202
208
  There's my [blog](http://blog.syntheticspeech.de/?s=nkululeko) with tutorials:
203
209
  * [Introduction](http://blog.syntheticspeech.de/2021/08/04/machine-learning-experiment-framework/)
@@ -317,6 +323,16 @@ F. Burkhardt, Johannes Wagner, Hagen Wierstorf, Florian Eyben and Björn Schulle
317
323
  Changelog
318
324
  =========
319
325
 
326
+ Version 0.80.1
327
+ --------------
328
+ * added support for string value in import_features
329
+ + added support for multiple extra training databases when doing multi-db experiments
330
+
331
+ Version 0.80.0
332
+ --------------
333
+ * fixed bug no feature import
334
+ * add support for multiple import feature files
335
+
320
336
  Version 0.79.5
321
337
  --------------
322
338
  * fixed bug on demo without in- or output
@@ -324,7 +340,7 @@ Version 0.79.5
324
340
 
325
341
  Version 0.79.4
326
342
  --------------
327
- * added funcionality in demo for regression
343
+ * added functionality in demo for regression
328
344
 
329
345
  Version 0.79.3
330
346
  --------------
@@ -142,16 +142,22 @@ combine_per_speaker = mode
142
142
  Read the [Hello World example](#hello-world-example) for initial usage with Emo-DB dataset.
143
143
 
144
144
  Here is an overview of the interfaces/modules:
145
+
146
+ All of them take *--config <my_config.ini>* as an argument.
147
+
145
148
  * **nkululeko.nkululeko**: do machine learning experiments combining features and learners
146
- * **nkululeko.multidb**: do multiple experiments, comparing several databases cross and in itself
147
- * **nkululeko.demo**: demo the current best model on the command line
148
- * **nkululeko.test**: predict a series of files with the current best model
149
- * **nkululeko.explore**: perform data exploration
150
- * **nkululeko.augment**: augment the current training data
151
- * **nkululeko.aug_train**: augment the current training data and do a training including this data
152
- * **nkululeko.predict**: predict features like SNR, MOS, arousal/valence, age/gender, with DNN models
153
- * **nkululeko.segment**: segment a database based on VAD (voice activity detection)
154
- * **nkululeko.resample**: check on all sampling rates and change to 16kHz
149
+ * **nkululeko.multidb**: do [multiple experiments](http://blog.syntheticspeech.de/2024/01/02/nkululeko-compare-several-databases/), comparing several databases cross and in itself
150
+ * **nkululeko.demo**: [demo the current best model](http://blog.syntheticspeech.de/2022/09/01/nkululeko-how-to-evaluate-a-test-set-with-a-given-best-model/) on the command line
151
+ * *--list* (optional) list of input files
152
+ * *--file* (optional) name of input file
153
+ * *--outfile* (optional) name of CSV file for output
154
+ * **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
155
+ * **nkululeko.explore**: perform [data exploration](http://blog.syntheticspeech.de/2023/05/11/nkululeko-how-to-visualize-your-data-distribution/)
156
+ * **nkululeko.augment**: [augment](http://blog.syntheticspeech.de/2023/03/13/nkululeko-how-to-augment-the-training-set/) the current training data
157
+ * **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
158
+ * **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
159
+ * **nkululeko.segment**: [segment a database](http://blog.syntheticspeech.de/2023/07/14/nkululeko-segmenting-a-database/) based on VAD (voice activity detection)
160
+ * **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
155
161
 
156
162
  There's my [blog](http://blog.syntheticspeech.de/?s=nkululeko) with tutorials:
157
163
  * [Introduction](http://blog.syntheticspeech.de/2021/08/04/machine-learning-experiment-framework/)
@@ -1,2 +1,2 @@
1
- VERSION="0.79.5"
1
+ VERSION="0.80.1"
2
2
  SAMPLING_RATE = 16000
@@ -0,0 +1,71 @@
1
+ # demo_feats.py
2
+ # Test some features extracted
3
+
4
+ from nkululeko.experiment import Experiment
5
+ import configparser
6
+ from nkululeko.utils.util import Util
7
+ from nkululeko.constants import VERSION
8
+ import argparse
9
+ import os
10
+
11
+
12
+ def main(src_dir):
13
+ parser = argparse.ArgumentParser(description="Call the nkululeko framework.")
14
+ parser.add_argument("--config", default="exp.ini", help="The base configuration")
15
+ parser.add_argument(
16
+ "--file", help="A file that should be processed (16kHz mono wav)"
17
+ )
18
+ parser.add_argument(
19
+ "--list",
20
+ help=(
21
+ "A file with a list of files, one per line, that should be"
22
+ " processed (16kHz mono wav)"
23
+ ),
24
+ nargs="?",
25
+ default=None,
26
+ )
27
+ parser.add_argument(
28
+ "--outfile",
29
+ help=("A filename to store the results in CSV"),
30
+ nargs="?",
31
+ default=None,
32
+ )
33
+ args = parser.parse_args()
34
+ if args.config is not None:
35
+ config_file = args.config
36
+ else:
37
+ config_file = f"{src_dir}/exp.ini"
38
+
39
+ # test if the configuration file exists
40
+ if not os.path.isfile(config_file):
41
+ print(f"ERROR: no such file: {config_file}")
42
+ exit()
43
+
44
+ # load one configuration per experiment
45
+ config = configparser.ConfigParser()
46
+ config.read(config_file)
47
+
48
+ # create a new experiment
49
+ expr = Experiment(config)
50
+ module = "demo_feats"
51
+ expr.set_module(module)
52
+ util = Util(module)
53
+ util.debug(
54
+ f"running {expr.name} from config {config_file}, nkululeko version"
55
+ f" {VERSION}"
56
+ )
57
+
58
+ if args.file is None and args.list is None:
59
+ expr.demo_feats(None, False, args.outfile)
60
+ else:
61
+ if args.list is None:
62
+ expr.demo_feats(args.file, False, args.outfile)
63
+ else:
64
+ expr.demo_feats(args.list, True, args.outfile)
65
+
66
+ print("DONE")
67
+
68
+
69
+ if __name__ == "__main__":
70
+ cwd = os.path.dirname(os.path.abspath(__file__))
71
+ main(cwd) # use this if you want to state the config file path on command line
@@ -357,7 +357,7 @@ class Experiment:
357
357
  self.df_train = self.df_train[
358
358
  self.df_train.index.isin(self.feats_train.index)
359
359
  ]
360
- self.util.warn(f"mew train labels shape: {self.df_train.shape[0]}")
360
+ self.util.warn(f"new train labels shape: {self.df_train.shape[0]}")
361
361
  if self.feats_test.shape[0] < self.df_test.shape[0]:
362
362
  self.util.warn(
363
363
  f"test feats ({self.feats_test.shape[0]}) != test labels"
@@ -0,0 +1,43 @@
1
+ # feats_import.py
2
+
3
+ import os
4
+ import ast
5
+ import audformat
6
+ import pandas as pd
7
+ from nkululeko.utils.util import Util
8
+ from nkululeko.feat_extract.featureset import Featureset
9
+
10
+
11
+ class Importset(Featureset):
12
+ """Class to import features that have been compiled elsewhere"""
13
+
14
+ def __init__(self, name, data_df):
15
+ super().__init__(name, data_df)
16
+
17
+ def extract(self):
18
+ """Import the features."""
19
+ self.util.debug(f"importing features for {self.name}")
20
+ try:
21
+ feat_import_files = self.util.config_val("FEATS", "import_file", False)
22
+ feat_import_files = ast.literal_eval(feat_import_files)
23
+ except ValueError as e:
24
+ self.util.error(
25
+ "feature type == import needs import_file = ['file1', 'filex']"
26
+ )
27
+ except SyntaxError as se:
28
+ if type(feat_import_files) == str:
29
+ feat_import_files = [feat_import_files]
30
+ else:
31
+ self.util.error(f"import_file is wrong: {feat_import_files}")
32
+
33
+ feat_df = pd.DataFrame()
34
+ for feat_import_file in feat_import_files:
35
+ if not os.path.isfile(feat_import_file):
36
+ self.util.error(f"no import file: {feat_import_file}")
37
+ df = audformat.utils.read_csv(feat_import_file)
38
+ df = df[df.index.isin(self.data_df.index)]
39
+ feat_df = pd.concat([feat_df, df])
40
+ if feat_df.shape[0] == 0:
41
+ self.util.error(f"Imported features for data set {self.name} not found!")
42
+ # and assign to be the "official" feature set
43
+ self.df = feat_df
@@ -9,7 +9,6 @@ import matplotlib.pyplot as plt
9
9
  import matplotlib.cm as cm
10
10
  import numpy as np
11
11
  import os
12
- import audeer
13
12
  from nkululeko.experiment import Experiment
14
13
  import configparser
15
14
  from nkululeko.utils.util import Util
@@ -41,9 +40,9 @@ def main(src_dir):
41
40
  last_epochs = np.zeros(dim * dim).reshape([dim, dim])
42
41
  # check if some data should be added to training
43
42
  try:
44
- extra_train = config["CROSSDB"]["train_extra"]
43
+ extra_trains = config["CROSSDB"]["train_extra"]
45
44
  except KeyError:
46
- extra_train = False
45
+ extra_trains = False
47
46
 
48
47
  for i in range(dim):
49
48
  for j in range(dim):
@@ -54,9 +53,12 @@ def main(src_dir):
54
53
  if i == j:
55
54
  dataset = datasets[i]
56
55
  print(f"running {dataset}")
57
- if extra_train:
58
- config["DATA"]["databases"] = f"['{dataset}', '{extra_train}']"
59
- config["DATA"][f"{extra_train}.split_strategy"] = "train"
56
+ if extra_trains:
57
+ extra_trains_1 = extra_trains.removeprefix("[").removesuffix("]")
58
+ config["DATA"]["databases"] = f"['{dataset}', {extra_trains_1}]"
59
+ extra_trains_2 = ast.literal_eval(extra_trains)
60
+ for extra_train in extra_trains_2:
61
+ config["DATA"][f"{extra_train}.split_strategy"] = "train"
60
62
  else:
61
63
  config["DATA"]["databases"] = f"['{dataset}']"
62
64
  config["EXP"]["name"] = dataset
@@ -64,13 +66,16 @@ def main(src_dir):
64
66
  train = datasets[i]
65
67
  test = datasets[j]
66
68
  print(f"running train: {train}, test: {test}")
67
- if extra_train:
69
+ if extra_trains:
70
+ extra_trains_1 = extra_trains.removeprefix("[").removesuffix("]")
68
71
  config["DATA"][
69
72
  "databases"
70
- ] = f"['{train}', '{test}', '{extra_train}']"
73
+ ] = f"['{train}', '{test}', {extra_trains_1}]"
71
74
  config["DATA"][f"{test}.split_strategy"] = "test"
72
75
  config["DATA"][f"{train}.split_strategy"] = "train"
73
- config["DATA"][f"{extra_train}.split_strategy"] = "train"
76
+ extra_trains_2 = ast.literal_eval(extra_trains)
77
+ for extra_train in extra_trains_2:
78
+ config["DATA"][f"{extra_train}.split_strategy"] = "train"
74
79
  else:
75
80
  config["DATA"]["databases"] = f"['{train}', '{test}']"
76
81
  config["DATA"][f"{test}.split_strategy"] = "test"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: nkululeko
3
- Version: 0.79.5
3
+ Version: 0.80.1
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
@@ -188,16 +188,22 @@ combine_per_speaker = mode
188
188
  Read the [Hello World example](#hello-world-example) for initial usage with Emo-DB dataset.
189
189
 
190
190
  Here is an overview of the interfaces/modules:
191
+
192
+ All of them take *--config <my_config.ini>* as an argument.
193
+
191
194
  * **nkululeko.nkululeko**: do machine learning experiments combining features and learners
192
- * **nkululeko.multidb**: do multiple experiments, comparing several databases cross and in itself
193
- * **nkululeko.demo**: demo the current best model on the command line
194
- * **nkululeko.test**: predict a series of files with the current best model
195
- * **nkululeko.explore**: perform data exploration
196
- * **nkululeko.augment**: augment the current training data
197
- * **nkululeko.aug_train**: augment the current training data and do a training including this data
198
- * **nkululeko.predict**: predict features like SNR, MOS, arousal/valence, age/gender, with DNN models
199
- * **nkululeko.segment**: segment a database based on VAD (voice activity detection)
200
- * **nkululeko.resample**: check on all sampling rates and change to 16kHz
195
+ * **nkululeko.multidb**: do [multiple experiments](http://blog.syntheticspeech.de/2024/01/02/nkululeko-compare-several-databases/), comparing several databases cross and in itself
196
+ * **nkululeko.demo**: [demo the current best model](http://blog.syntheticspeech.de/2022/09/01/nkululeko-how-to-evaluate-a-test-set-with-a-given-best-model/) on the command line
197
+ * *--list* (optional) list of input files
198
+ * *--file* (optional) name of input file
199
+ * *--outfile* (optional) name of CSV file for output
200
+ * **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
201
+ * **nkululeko.explore**: perform [data exploration](http://blog.syntheticspeech.de/2023/05/11/nkululeko-how-to-visualize-your-data-distribution/)
202
+ * **nkululeko.augment**: [augment](http://blog.syntheticspeech.de/2023/03/13/nkululeko-how-to-augment-the-training-set/) the current training data
203
+ * **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
204
+ * **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
205
+ * **nkululeko.segment**: [segment a database](http://blog.syntheticspeech.de/2023/07/14/nkululeko-segmenting-a-database/) based on VAD (voice activity detection)
206
+ * **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
201
207
 
202
208
  There's my [blog](http://blog.syntheticspeech.de/?s=nkululeko) with tutorials:
203
209
  * [Introduction](http://blog.syntheticspeech.de/2021/08/04/machine-learning-experiment-framework/)
@@ -317,6 +323,16 @@ F. Burkhardt, Johannes Wagner, Hagen Wierstorf, Florian Eyben and Björn Schulle
317
323
  Changelog
318
324
  =========
319
325
 
326
+ Version 0.80.1
327
+ --------------
328
+ * added support for string value in import_features
329
+ + added support for multiple extra training databases when doing multi-db experiments
330
+
331
+ Version 0.80.0
332
+ --------------
333
+ * fixed bug no feature import
334
+ * add support for multiple import feature files
335
+
320
336
  Version 0.79.5
321
337
  --------------
322
338
  * fixed bug on demo without in- or output
@@ -324,7 +340,7 @@ Version 0.79.5
324
340
 
325
341
  Version 0.79.4
326
342
  --------------
327
- * added funcionality in demo for regression
343
+ * added functionality in demo for regression
328
344
 
329
345
  Version 0.79.3
330
346
  --------------
@@ -60,6 +60,7 @@ nkululeko/augment.py
60
60
  nkululeko/cacheddataset.py
61
61
  nkululeko/constants.py
62
62
  nkululeko/demo.py
63
+ nkululeko/demo_feats.py
63
64
  nkululeko/demo_predictor.py
64
65
  nkululeko/experiment.py
65
66
  nkululeko/explore.py
@@ -1,45 +0,0 @@
1
- # feats_import.py
2
-
3
- from nkululeko.utils.util import Util
4
- from nkululeko.feat_extract.featureset import Featureset
5
- import os
6
- import pandas as pd
7
- import audformat
8
-
9
-
10
- class Importset(Featureset):
11
- """Class to import features that have been compiled elsewhere"""
12
-
13
- def __init__(self, name, data_df):
14
- super().__init__(name, data_df)
15
-
16
- def extract(self):
17
- """Import the features or load them from disk if present."""
18
- store = self.util.get_path("store")
19
- storage = f"{store}{self.name}.pkl"
20
- extract = eval(self.util.config_val("FEATS", "needs_feature_extraction", False))
21
- no_reuse = eval(self.util.config_val("FEATS", "no_reuse", "False"))
22
- feat_import_file = self.util.config_val("FEATS", "import_file", False)
23
- if not os.path.isfile(feat_import_file):
24
- self.util.warn(f"no import file: {feat_import_file}")
25
- if extract or no_reuse or not os.path.isfile(storage):
26
- self.util.debug(f"importing features for {self.name}")
27
- # df = pd.read_csv(feat_import_file, sep=',', header=0,
28
- # index_col=['file', 'start', 'end'])
29
- df = audformat.utils.read_csv(feat_import_file)
30
- # scale features before use?
31
- # from sklearn.preprocessing import StandardScaler
32
- # scaler = StandardScaler()
33
- # scaled_features = scaler.fit_transform(df.values)
34
- # df = pd.DataFrame(scaled_features, index=df.index, columns=df.columns)
35
- # use only the rows from the data index
36
- # df = self.data_df.join(df).drop(columns=self.data_df.columns)
37
- df = df.loc[self.data_df.index]
38
- # df = pd.concat([self.data_df, df], axis=1, join="inner").drop(columns=self.data_df.columns)
39
- # in any case, store to disk for later use
40
- df.to_pickle(storage)
41
- # and assign to be the "official" feature set
42
- self.df = df
43
- else:
44
- self.util.debug("reusing imported features.")
45
- self.df = pd.read_pickle(storage)
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes