nkululeko 0.82.3__tar.gz → 0.83.0__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.82.3 → nkululeko-0.83.0}/CHANGELOG.md +8 -0
  2. {nkululeko-0.82.3/nkululeko.egg-info → nkululeko-0.83.0}/PKG-INFO +9 -1
  3. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/constants.py +1 -1
  4. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/experiment.py +2 -2
  5. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/feat_extract/feats_hubert.py +14 -17
  6. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/feat_extract/feats_wavlm.py +17 -10
  7. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/modelrunner.py +4 -6
  8. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/reporter.py +14 -22
  9. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/reporting/reporter.py +7 -3
  10. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/test_predictor.py +18 -7
  11. {nkululeko-0.82.3 → nkululeko-0.83.0/nkululeko.egg-info}/PKG-INFO +9 -1
  12. {nkululeko-0.82.3 → nkululeko-0.83.0}/LICENSE +0 -0
  13. {nkululeko-0.82.3 → nkululeko-0.83.0}/README.md +0 -0
  14. {nkululeko-0.82.3 → nkululeko-0.83.0}/data/aesdd/process_database.py +0 -0
  15. {nkululeko-0.82.3 → nkululeko-0.83.0}/data/androids/process_database.py +0 -0
  16. {nkululeko-0.82.3 → nkululeko-0.83.0}/data/androids_orig/process_database.py +0 -0
  17. {nkululeko-0.82.3 → nkululeko-0.83.0}/data/androids_test/process_database.py +0 -0
  18. {nkululeko-0.82.3 → nkululeko-0.83.0}/data/ased/process_database.py +0 -0
  19. {nkululeko-0.82.3 → nkululeko-0.83.0}/data/asvp-esd/process_database.py +0 -0
  20. {nkululeko-0.82.3 → nkululeko-0.83.0}/data/baved/process_database.py +0 -0
  21. {nkululeko-0.82.3 → nkululeko-0.83.0}/data/cafe/process_database.py +0 -0
  22. {nkululeko-0.82.3 → nkululeko-0.83.0}/data/clac/process_database.py +0 -0
  23. {nkululeko-0.82.3 → nkululeko-0.83.0}/data/cmu-mosei/process_database.py +0 -0
  24. {nkululeko-0.82.3 → nkululeko-0.83.0}/data/demos/process_database.py +0 -0
  25. {nkululeko-0.82.3 → nkululeko-0.83.0}/data/ekorpus/process_database.py +0 -0
  26. {nkululeko-0.82.3 → nkululeko-0.83.0}/data/emns/process_database.py +0 -0
  27. {nkululeko-0.82.3 → nkululeko-0.83.0}/data/emofilm/convert_to_16k.py +0 -0
  28. {nkululeko-0.82.3 → nkululeko-0.83.0}/data/emofilm/process_database.py +0 -0
  29. {nkululeko-0.82.3 → nkululeko-0.83.0}/data/emorynlp/process_database.py +0 -0
  30. {nkululeko-0.82.3 → nkululeko-0.83.0}/data/emov-db/process_database.py +0 -0
  31. {nkululeko-0.82.3 → nkululeko-0.83.0}/data/emovo/process_database.py +0 -0
  32. {nkululeko-0.82.3 → nkululeko-0.83.0}/data/emozionalmente/create.py +0 -0
  33. {nkululeko-0.82.3 → nkululeko-0.83.0}/data/enterface/process_database.py +0 -0
  34. {nkululeko-0.82.3 → nkululeko-0.83.0}/data/esd/process_database.py +0 -0
  35. {nkululeko-0.82.3 → nkululeko-0.83.0}/data/gerparas/process_database.py +0 -0
  36. {nkululeko-0.82.3 → nkululeko-0.83.0}/data/iemocap/process_database.py +0 -0
  37. {nkululeko-0.82.3 → nkululeko-0.83.0}/data/jl/process_database.py +0 -0
  38. {nkululeko-0.82.3 → nkululeko-0.83.0}/data/jtes/process_database.py +0 -0
  39. {nkululeko-0.82.3 → nkululeko-0.83.0}/data/meld/process_database.py +0 -0
  40. {nkululeko-0.82.3 → nkululeko-0.83.0}/data/mesd/process_database.py +0 -0
  41. {nkululeko-0.82.3 → nkululeko-0.83.0}/data/mess/process_database.py +0 -0
  42. {nkululeko-0.82.3 → nkululeko-0.83.0}/data/mlendsnd/process_database.py +0 -0
  43. {nkululeko-0.82.3 → nkululeko-0.83.0}/data/msp-improv/process_database2.py +0 -0
  44. {nkululeko-0.82.3 → nkululeko-0.83.0}/data/msp-podcast/process_database.py +0 -0
  45. {nkululeko-0.82.3 → nkululeko-0.83.0}/data/oreau2/process_database.py +0 -0
  46. {nkululeko-0.82.3 → nkululeko-0.83.0}/data/portuguese/process_database.py +0 -0
  47. {nkululeko-0.82.3 → nkululeko-0.83.0}/data/ravdess/process_database.py +0 -0
  48. {nkululeko-0.82.3 → nkululeko-0.83.0}/data/ravdess/process_database_speaker.py +0 -0
  49. {nkululeko-0.82.3 → nkululeko-0.83.0}/data/savee/process_database.py +0 -0
  50. {nkululeko-0.82.3 → nkululeko-0.83.0}/data/shemo/process_database.py +0 -0
  51. {nkululeko-0.82.3 → nkululeko-0.83.0}/data/subesco/process_database.py +0 -0
  52. {nkululeko-0.82.3 → nkululeko-0.83.0}/data/tess/process_database.py +0 -0
  53. {nkululeko-0.82.3 → nkululeko-0.83.0}/data/thorsten-emotional/process_database.py +0 -0
  54. {nkululeko-0.82.3 → nkululeko-0.83.0}/data/urdu/process_database.py +0 -0
  55. {nkululeko-0.82.3 → nkululeko-0.83.0}/data/vivae/process_database.py +0 -0
  56. {nkululeko-0.82.3 → nkululeko-0.83.0}/docs/source/conf.py +0 -0
  57. {nkululeko-0.82.3 → nkululeko-0.83.0}/meta/demos/demo_best_model.py +0 -0
  58. {nkululeko-0.82.3 → nkululeko-0.83.0}/meta/demos/multiple_exeriments/do_experiments.py +0 -0
  59. {nkululeko-0.82.3 → nkululeko-0.83.0}/meta/demos/my_experiment.py +0 -0
  60. {nkululeko-0.82.3 → nkululeko-0.83.0}/meta/demos/my_experiment_local.py +0 -0
  61. {nkululeko-0.82.3 → nkululeko-0.83.0}/meta/demos/plot_faster_anim.py +0 -0
  62. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/__init__.py +0 -0
  63. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/aug_train.py +0 -0
  64. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/augment.py +0 -0
  65. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/augmenting/__init__.py +0 -0
  66. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/augmenting/augmenter.py +0 -0
  67. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/augmenting/randomsplicer.py +0 -0
  68. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/augmenting/randomsplicing.py +0 -0
  69. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/augmenting/resampler.py +0 -0
  70. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/autopredict/__init__.py +0 -0
  71. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/autopredict/ap_age.py +0 -0
  72. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/autopredict/ap_arousal.py +0 -0
  73. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/autopredict/ap_dominance.py +0 -0
  74. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/autopredict/ap_gender.py +0 -0
  75. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/autopredict/ap_mos.py +0 -0
  76. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/autopredict/ap_pesq.py +0 -0
  77. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/autopredict/ap_sdr.py +0 -0
  78. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/autopredict/ap_snr.py +0 -0
  79. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/autopredict/ap_stoi.py +0 -0
  80. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/autopredict/ap_valence.py +0 -0
  81. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/autopredict/estimate_snr.py +0 -0
  82. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/cacheddataset.py +0 -0
  83. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/data/__init__.py +0 -0
  84. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/data/dataset.py +0 -0
  85. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/data/dataset_csv.py +0 -0
  86. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/demo.py +0 -0
  87. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/demo_feats.py +0 -0
  88. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/demo_predictor.py +0 -0
  89. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/explore.py +0 -0
  90. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/export.py +0 -0
  91. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/feat_extract/__init__.py +0 -0
  92. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/feat_extract/feats_agender.py +0 -0
  93. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/feat_extract/feats_agender_agender.py +0 -0
  94. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/feat_extract/feats_analyser.py +0 -0
  95. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/feat_extract/feats_auddim.py +0 -0
  96. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/feat_extract/feats_audmodel.py +0 -0
  97. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/feat_extract/feats_clap.py +0 -0
  98. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/feat_extract/feats_import.py +0 -0
  99. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/feat_extract/feats_mld.py +0 -0
  100. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/feat_extract/feats_mos.py +0 -0
  101. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/feat_extract/feats_opensmile.py +0 -0
  102. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/feat_extract/feats_oxbow.py +0 -0
  103. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/feat_extract/feats_praat.py +0 -0
  104. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/feat_extract/feats_snr.py +0 -0
  105. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/feat_extract/feats_spectra.py +0 -0
  106. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/feat_extract/feats_spkrec.py +0 -0
  107. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/feat_extract/feats_squim.py +0 -0
  108. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/feat_extract/feats_trill.py +0 -0
  109. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/feat_extract/feats_wav2vec2.py +0 -0
  110. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/feat_extract/feats_whisper.py +0 -0
  111. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/feat_extract/featureset.py +0 -0
  112. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/feat_extract/feinberg_praat.py +0 -0
  113. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/feature_extractor.py +0 -0
  114. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/file_checker.py +0 -0
  115. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/filter_data.py +0 -0
  116. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/glob_conf.py +0 -0
  117. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/losses/__init__.py +0 -0
  118. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/losses/loss_ccc.py +0 -0
  119. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/losses/loss_softf1loss.py +0 -0
  120. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/models/__init__.py +0 -0
  121. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/models/model.py +0 -0
  122. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/models/model_bayes.py +0 -0
  123. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/models/model_cnn.py +0 -0
  124. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/models/model_gmm.py +0 -0
  125. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/models/model_knn.py +0 -0
  126. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/models/model_knn_reg.py +0 -0
  127. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/models/model_lin_reg.py +0 -0
  128. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/models/model_mlp.py +0 -0
  129. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/models/model_mlp_regression.py +0 -0
  130. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/models/model_svm.py +0 -0
  131. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/models/model_svr.py +0 -0
  132. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/models/model_tree.py +0 -0
  133. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/models/model_tree_reg.py +0 -0
  134. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/models/model_xgb.py +0 -0
  135. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/models/model_xgr.py +0 -0
  136. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/multidb.py +0 -0
  137. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/nkuluflag.py +0 -0
  138. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/nkululeko.py +0 -0
  139. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/plots.py +0 -0
  140. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/predict.py +0 -0
  141. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/reporting/__init__.py +0 -0
  142. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/reporting/defines.py +0 -0
  143. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/reporting/latex_writer.py +0 -0
  144. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/reporting/report.py +0 -0
  145. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/reporting/report_item.py +0 -0
  146. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/reporting/result.py +0 -0
  147. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/resample.py +0 -0
  148. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/runmanager.py +0 -0
  149. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/scaler.py +0 -0
  150. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/segment.py +0 -0
  151. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/segmenting/__init__.py +0 -0
  152. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/segmenting/seg_inaspeechsegmenter.py +0 -0
  153. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/segmenting/seg_silero.py +0 -0
  154. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/syllable_nuclei.py +0 -0
  155. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/test.py +0 -0
  156. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/utils/__init__.py +0 -0
  157. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/utils/files.py +0 -0
  158. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/utils/stats.py +0 -0
  159. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko/utils/util.py +0 -0
  160. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko.egg-info/SOURCES.txt +0 -0
  161. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko.egg-info/dependency_links.txt +0 -0
  162. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko.egg-info/requires.txt +0 -0
  163. {nkululeko-0.82.3 → nkululeko-0.83.0}/nkululeko.egg-info/top_level.txt +0 -0
  164. {nkululeko-0.82.3 → nkululeko-0.83.0}/pyproject.toml +0 -0
  165. {nkululeko-0.82.3 → nkululeko-0.83.0}/setup.cfg +0 -0
  166. {nkululeko-0.82.3 → nkululeko-0.83.0}/setup.py +0 -0
  167. {nkululeko-0.82.3 → nkululeko-0.83.0}/venv/bin/activate_this.py +0 -0
@@ -1,6 +1,14 @@
1
1
  Changelog
2
2
  =========
3
3
 
4
+ Version 0.83.0
5
+ --------------
6
+ * test module now prints out reports
7
+
8
+ Version 0.82.4
9
+ --------------
10
+ * fixed bug in wavlm
11
+
4
12
  Version 0.82.3
5
13
  --------------
6
14
  * fixed another audformat peculiarity to interprete time values as nanoseconds
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: nkululeko
3
- Version: 0.82.3
3
+ Version: 0.83.0
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
@@ -333,6 +333,14 @@ F. Burkhardt, Johannes Wagner, Hagen Wierstorf, Florian Eyben and Björn Schulle
333
333
  Changelog
334
334
  =========
335
335
 
336
+ Version 0.83.0
337
+ --------------
338
+ * test module now prints out reports
339
+
340
+ Version 0.82.4
341
+ --------------
342
+ * fixed bug in wavlm
343
+
336
344
  Version 0.82.3
337
345
  --------------
338
346
  * fixed another audformat peculiarity to interprete time values as nanoseconds
@@ -1,2 +1,2 @@
1
- VERSION="0.82.3"
1
+ VERSION="0.83.0"
2
2
  SAMPLING_RATE = 16000
@@ -23,7 +23,7 @@ from nkululeko.plots import Plots
23
23
  from nkululeko.reporting.report import Report
24
24
  from nkululeko.runmanager import Runmanager
25
25
  from nkululeko.scaler import Scaler
26
- from nkululeko.test_predictor import Test_predictor
26
+ from nkululeko.test_predictor import TestPredictor
27
27
  from nkululeko.utils.util import Util
28
28
 
29
29
 
@@ -672,7 +672,7 @@ class Experiment:
672
672
  def predict_test_and_save(self, result_name):
673
673
  model = self.runmgr.get_best_model()
674
674
  model.set_testdata(self.df_test, self.feats_test)
675
- test_predictor = Test_predictor(
675
+ test_predictor = TestPredictor(
676
676
  model, self.df_test, self.label_encoder, result_name
677
677
  )
678
678
  test_predictor.predict_and_store()
@@ -6,23 +6,26 @@
6
6
 
7
7
  import os
8
8
 
9
- import audeer
10
- import nkululeko.glob_conf as glob_conf
11
9
  import pandas as pd
12
10
  import torch
13
11
  import torchaudio
14
- from audformat.utils import map_file_path
15
- from nkululeko.feat_extract.featureset import Featureset
16
12
  from tqdm import tqdm
17
- from transformers import HubertModel, Wav2Vec2FeatureExtractor
13
+ from transformers import HubertModel
14
+ from transformers import Wav2Vec2FeatureExtractor
15
+
16
+ from nkululeko.feat_extract.featureset import Featureset
17
+ import nkululeko.glob_conf as glob_conf
18
18
 
19
19
 
20
20
  class Hubert(Featureset):
21
- """Class to extract HuBERT embedding)"""
21
+ """Class to extract HuBERT embedding)."""
22
22
 
23
23
  def __init__(self, name, data_df, feat_type):
24
- """Constructor. is_train is needed to distinguish from test/dev sets,
25
- because they use the codebook from the training"""
24
+ """Constructor.
25
+
26
+ Is_train is needed to distinguish from test/dev sets,
27
+ because they use the codebook from the training.
28
+ """
26
29
  super().__init__(name, data_df, feat_type)
27
30
  # check if device is not set, use cuda if available
28
31
  cuda = "cuda" if torch.cuda.is_available() else "cpu"
@@ -61,16 +64,12 @@ class Hubert(Featureset):
61
64
  """Extract the features or load them from disk if present."""
62
65
  store = self.util.get_path("store")
63
66
  storage = f"{store}{self.name}.pkl"
64
- extract = self.util.config_val(
65
- "FEATS", "needs_feature_extraction", False
66
- )
67
+ extract = self.util.config_val("FEATS", "needs_feature_extraction", False)
67
68
  no_reuse = eval(self.util.config_val("FEATS", "no_reuse", "False"))
68
69
  if extract or no_reuse or not os.path.isfile(storage):
69
70
  if not self.model_initialized:
70
71
  self.init_model()
71
- self.util.debug(
72
- "extracting Hubert embeddings, this might take a while..."
73
- )
72
+ self.util.debug("extracting Hubert embeddings, this might take a while...")
74
73
  emb_series = pd.Series(index=self.data_df.index, dtype=object)
75
74
  length = len(self.data_df.index)
76
75
  for idx, (file, start, end) in enumerate(
@@ -84,9 +83,7 @@ class Hubert(Featureset):
84
83
  assert sampling_rate == 16000
85
84
  emb = self.get_embeddings(signal, sampling_rate, file)
86
85
  emb_series.iloc[idx] = emb
87
- self.df = pd.DataFrame(
88
- emb_series.values.tolist(), index=self.data_df.index
89
- )
86
+ self.df = pd.DataFrame(emb_series.values.tolist(), index=self.data_df.index)
90
87
  self.df.to_pickle(storage)
91
88
  try:
92
89
  glob_conf.config["DATA"]["needs_feature_extraction"] = "false"
@@ -4,27 +4,32 @@
4
4
 
5
5
  import os
6
6
 
7
- import nkululeko.glob_conf as glob_conf
8
7
  import pandas as pd
9
8
  import torch
10
9
  import torchaudio
11
- from nkululeko.feat_extract.featureset import Featureset
12
10
  from tqdm import tqdm
13
- from transformers import Wav2Vec2FeatureExtractor, WavLMModel
11
+ from transformers import Wav2Vec2FeatureExtractor
12
+ from transformers import WavLMModel
13
+
14
+ from nkululeko.feat_extract.featureset import Featureset
15
+ import nkululeko.glob_conf as glob_conf
14
16
 
15
17
 
16
18
  class Wavlm(Featureset):
17
- """Class to extract WavLM embedding)"""
19
+ """Class to extract WavLM embedding)."""
20
+
21
+ def __init__(self, name, data_df, feats_type):
22
+ """Constructor.
18
23
 
19
- def __init__(self, name, data_df, feat_type):
20
- """Constructor. is_train is needed to distinguish from test/dev sets,
21
- because they use the codebook from the training"""
22
- super().__init__(name, data_df)
24
+ Is_train is needed to distinguish from test/dev sets,
25
+ because they use the codebook from the training.
26
+ """
27
+ super().__init__(name, data_df, feats_type)
23
28
  # check if device is not set, use cuda if available
24
29
  cuda = "cuda" if torch.cuda.is_available() else "cpu"
25
30
  self.device = self.util.config_val("MODEL", "device", cuda)
26
31
  self.model_initialized = False
27
- self.feat_type = feat_type
32
+ self.feat_type = feats_type
28
33
 
29
34
  def init_model(self):
30
35
  # load model
@@ -59,7 +64,9 @@ class Wavlm(Featureset):
59
64
  frame_offset=int(start.total_seconds() * 16000),
60
65
  num_frames=int((end - start).total_seconds() * 16000),
61
66
  )
62
- assert sampling_rate == 16000, f"sampling rate should be 16000 but is {sampling_rate}"
67
+ assert (
68
+ sampling_rate == 16000
69
+ ), f"sampling rate should be 16000 but is {sampling_rate}"
63
70
  emb = self.get_embeddings(signal, sampling_rate, file)
64
71
  emb_series.iloc[idx] = emb
65
72
  self.df = pd.DataFrame(emb_series.values.tolist(), index=self.data_df.index)
@@ -2,18 +2,16 @@
2
2
 
3
3
  import pandas as pd
4
4
 
5
- from nkululeko.utils.util import Util
6
5
  from nkululeko import glob_conf
7
- import nkululeko.glob_conf as glob_conf
6
+ from nkululeko.utils.util import Util
8
7
 
9
8
 
10
9
  class Modelrunner:
11
- """
12
- Class to model one run
13
- """
10
+ """Class to model one run."""
14
11
 
15
12
  def __init__(self, df_train, df_test, feats_train, feats_test, run):
16
- """Constructor setting up the dataframes
13
+ """Constructor setting up the dataframes.
14
+
17
15
  Args:
18
16
  df_train: train dataframe
19
17
  df_test: test dataframe
@@ -3,7 +3,6 @@
3
3
  This module contains the Reporter class which is responsible for generating reports.
4
4
  """
5
5
 
6
-
7
6
  import ast
8
7
  import glob
9
8
  import json
@@ -12,16 +11,14 @@ import math
12
11
  import matplotlib.pyplot as plt
13
12
  import numpy as np
14
13
  from scipy.stats import pearsonr
15
- from sklearn.metrics import (
16
- ConfusionMatrixDisplay,
17
- accuracy_score,
18
- classification_report,
19
- confusion_matrix,
20
- mean_absolute_error,
21
- mean_squared_error,
22
- r2_score,
23
- recall_score,
24
- )
14
+ from sklearn.metrics import ConfusionMatrixDisplay
15
+ from sklearn.metrics import accuracy_score
16
+ from sklearn.metrics import classification_report
17
+ from sklearn.metrics import confusion_matrix
18
+ from sklearn.metrics import mean_absolute_error
19
+ from sklearn.metrics import mean_squared_error
20
+ from sklearn.metrics import r2_score
21
+ from sklearn.metrics import recall_score
25
22
  from sklearn.utils import resample
26
23
 
27
24
  import nkululeko.glob_conf as glob_conf
@@ -70,11 +67,9 @@ class Reporter:
70
67
  else:
71
68
  # regression experiment
72
69
  if self.measure == "mse":
73
- self.result.test = mean_squared_error(
74
- self.truths, self.preds)
70
+ self.result.test = mean_squared_error(self.truths, self.preds)
75
71
  elif self.measure == "mae":
76
- self.result.test = mean_absolute_error(
77
- self.truths, self.preds)
72
+ self.result.test = mean_absolute_error(self.truths, self.preds)
78
73
  elif self.measure == "ccc":
79
74
  self.result.test = self.ccc(self.truths, self.preds)
80
75
  if math.isnan(self.result.test):
@@ -115,7 +110,7 @@ def plot_per_speaker(self, result_df, plot_name, function):
115
110
  Args:
116
111
  * result_df: a pandas dataframe with columns: preds, truths and speaker
117
112
  * plot_name: a string with the name of the plot
118
- * function: a string with the function to use for each speaker,
113
+ * function: a string with the function to use for each speaker,
119
114
  can be 'mode' or 'mean'
120
115
 
121
116
  Returns:
@@ -185,8 +180,7 @@ def plot_per_speaker(self, result_df, plot_name, function):
185
180
  reg_res = f", {self.MEASURE}: {self.result.test:.3f}"
186
181
 
187
182
  if epoch != 0:
188
- plt.title(
189
- f"Confusion Matrix, UAR: {uar:.3f}{reg_res}, Epoch: {epoch}")
183
+ plt.title(f"Confusion Matrix, UAR: {uar:.3f}{reg_res}, Epoch: {epoch}")
190
184
  else:
191
185
  plt.title(f"Confusion Matrix, UAR: {uar:.3f}{reg_res}")
192
186
  img_path = f"{fig_dir}{plot_name}.{self.format}"
@@ -265,8 +259,7 @@ def plot_per_speaker(self, result_df, plot_name, function):
265
259
  import imageio
266
260
 
267
261
  fig_dir = self.util.get_path("fig_dir")
268
- filenames = glob.glob(
269
- fig_dir + f"{self.util.get_plot_name()}*_?_???_cnf.png")
262
+ filenames = glob.glob(fig_dir + f"{self.util.get_plot_name()}*_?_???_cnf.png")
270
263
  images = []
271
264
  for filename in filenames:
272
265
  images.append(imageio.imread(filename))
@@ -322,8 +315,7 @@ def plot_per_speaker(self, result_df, plot_name, function):
322
315
  var_pred = np.var(prediction, 0)
323
316
  v_pred = prediction - mean_pred
324
317
  v_gt = ground_truth - mean_gt
325
- cor = sum(v_pred * v_gt) / \
326
- (np.sqrt(sum(v_pred**2)) * np.sqrt(sum(v_gt**2)))
318
+ cor = sum(v_pred * v_gt) / (np.sqrt(sum(v_pred**2)) * np.sqrt(sum(v_gt**2)))
327
319
  sd_gt = np.std(ground_truth)
328
320
  sd_pred = np.std(prediction)
329
321
  numerator = 2 * cor * sd_gt * sd_pred
@@ -55,6 +55,7 @@ class Reporter:
55
55
  self.run = run
56
56
  self.epoch = epoch
57
57
  self.__set_measure()
58
+ self.filenameadd = ""
58
59
  self.cont_to_cat = False
59
60
  if len(self.truths) > 0 and len(self.preds) > 0:
60
61
  if self.util.exp_is_classification():
@@ -206,7 +207,7 @@ class Reporter:
206
207
  f"Confusion Matrix, UAR: {uar_str} "
207
208
  + f"(+-{up_str}/{low_str}) {reg_res}"
208
209
  )
209
- img_path = f"{fig_dir}{plot_name}.{self.format}"
210
+ img_path = f"{fig_dir}{plot_name}{self.filenameadd}.{self.format}"
210
211
  plt.savefig(img_path)
211
212
  fig.clear()
212
213
  plt.close(fig)
@@ -228,14 +229,17 @@ class Reporter:
228
229
  )
229
230
  # print(rpt)
230
231
  self.util.debug(rpt)
231
- file_name = f"{res_dir}{self.util.get_exp_name()}_conf.txt"
232
+ file_name = f"{res_dir}{self.util.get_exp_name()}{self.filenameadd}_conf.txt"
232
233
  with open(file_name, "w") as text_file:
233
234
  text_file.write(rpt)
234
235
 
236
+ def set_filename_add(self, my_string):
237
+ self.filenameadd = f"_{my_string}"
238
+
235
239
  def print_results(self, epoch):
236
240
  """Print all evaluation values to text file."""
237
241
  res_dir = self.util.get_path("res_dir")
238
- file_name = f"{res_dir}{self.util.get_exp_name()}_{epoch}.txt"
242
+ file_name = f"{res_dir}{self.util.get_exp_name()}_{epoch}{self.filenameadd}.txt"
239
243
  if self.util.exp_is_classification():
240
244
  labels = glob_conf.labels
241
245
  try:
@@ -1,21 +1,25 @@
1
- """ test_predictor.py
1
+ """test_predictor.py.
2
+
2
3
  Predict targets from a model and save as csv file.
3
4
 
4
5
  """
5
6
 
6
- import nkululeko.glob_conf as glob_conf
7
- from nkululeko.utils.util import Util
7
+ import ast
8
+
9
+ import numpy as np
8
10
  import pandas as pd
11
+ from sklearn.preprocessing import LabelEncoder
12
+
9
13
  from nkululeko.data.dataset import Dataset
10
14
  from nkululeko.feature_extractor import FeatureExtractor
15
+ import nkululeko.glob_conf as glob_conf
11
16
  from nkululeko.scaler import Scaler
12
- import numpy as np
13
- from sklearn.preprocessing import LabelEncoder
17
+ from nkululeko.utils.util import Util
14
18
 
15
19
 
16
- class Test_predictor:
20
+ class TestPredictor:
17
21
  def __init__(self, model, orig_df, labenc, name):
18
- """Constructor setting up name and configuration"""
22
+ """Constructor setting up name and configuration."""
19
23
  self.model = model
20
24
  self.orig_df = orig_df
21
25
  self.label_encoder = labenc
@@ -49,7 +53,14 @@ class Test_predictor:
49
53
  df[self.target] = labelenc.inverse_transform(predictions.tolist())
50
54
  df.to_csv(self.name)
51
55
  else:
56
+ test_dbs = ast.literal_eval(glob_conf.config["DATA"]["tests"])
57
+ test_dbs_string = "_".join(test_dbs)
52
58
  predictions = self.model.get_predictions()
59
+ report = self.model.predict()
60
+ report.set_filename_add(f"test-{test_dbs_string}")
61
+ self.util.print_best_results([report])
62
+ report.plot_confmatrix(self.util.get_plot_name(), 0)
63
+ report.print_results(0)
53
64
  # print(predictions)
54
65
  # df = pd.DataFrame(index=self.orig_df.index)
55
66
  # df["speaker"] = self.orig_df["speaker"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: nkululeko
3
- Version: 0.82.3
3
+ Version: 0.83.0
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
@@ -333,6 +333,14 @@ F. Burkhardt, Johannes Wagner, Hagen Wierstorf, Florian Eyben and Björn Schulle
333
333
  Changelog
334
334
  =========
335
335
 
336
+ Version 0.83.0
337
+ --------------
338
+ * test module now prints out reports
339
+
340
+ Version 0.82.4
341
+ --------------
342
+ * fixed bug in wavlm
343
+
336
344
  Version 0.82.3
337
345
  --------------
338
346
  * fixed another audformat peculiarity to interprete time values as nanoseconds
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes