nkululeko 0.92.0__tar.gz → 0.92.2__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 (173) hide show
  1. {nkululeko-0.92.0 → nkululeko-0.92.2}/CHANGELOG.md +8 -0
  2. {nkululeko-0.92.0/nkululeko.egg-info → nkululeko-0.92.2}/PKG-INFO +9 -1
  3. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/constants.py +1 -1
  4. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/plots.py +27 -4
  5. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/segment.py +38 -25
  6. {nkululeko-0.92.0 → nkululeko-0.92.2/nkululeko.egg-info}/PKG-INFO +9 -1
  7. {nkululeko-0.92.0 → nkululeko-0.92.2}/LICENSE +0 -0
  8. {nkululeko-0.92.0 → nkululeko-0.92.2}/README.md +0 -0
  9. {nkululeko-0.92.0 → nkululeko-0.92.2}/data/aesdd/process_database.py +0 -0
  10. {nkululeko-0.92.0 → nkululeko-0.92.2}/data/androids/process_database.py +0 -0
  11. {nkululeko-0.92.0 → nkululeko-0.92.2}/data/ased/process_database.py +0 -0
  12. {nkululeko-0.92.0 → nkululeko-0.92.2}/data/asvp-esd/process_database.py +0 -0
  13. {nkululeko-0.92.0 → nkululeko-0.92.2}/data/baved/process_database.py +0 -0
  14. {nkululeko-0.92.0 → nkululeko-0.92.2}/data/cafe/process_database.py +0 -0
  15. {nkululeko-0.92.0 → nkululeko-0.92.2}/data/clac/process_database.py +0 -0
  16. {nkululeko-0.92.0 → nkululeko-0.92.2}/data/cmu-mosei/process_database.py +0 -0
  17. {nkululeko-0.92.0 → nkululeko-0.92.2}/data/demos/process_database.py +0 -0
  18. {nkululeko-0.92.0 → nkululeko-0.92.2}/data/ekorpus/process_database.py +0 -0
  19. {nkululeko-0.92.0 → nkululeko-0.92.2}/data/emns/process_database.py +0 -0
  20. {nkululeko-0.92.0 → nkululeko-0.92.2}/data/emofilm/convert_to_16k.py +0 -0
  21. {nkululeko-0.92.0 → nkululeko-0.92.2}/data/emofilm/process_database.py +0 -0
  22. {nkululeko-0.92.0 → nkululeko-0.92.2}/data/emorynlp/process_database.py +0 -0
  23. {nkululeko-0.92.0 → nkululeko-0.92.2}/data/emov-db/process_database.py +0 -0
  24. {nkululeko-0.92.0 → nkululeko-0.92.2}/data/emovo/process_database.py +0 -0
  25. {nkululeko-0.92.0 → nkululeko-0.92.2}/data/emozionalmente/create.py +0 -0
  26. {nkululeko-0.92.0 → nkululeko-0.92.2}/data/enterface/process_database.py +0 -0
  27. {nkululeko-0.92.0 → nkululeko-0.92.2}/data/esd/process_database.py +0 -0
  28. {nkululeko-0.92.0 → nkululeko-0.92.2}/data/gerparas/process_database.py +0 -0
  29. {nkululeko-0.92.0 → nkululeko-0.92.2}/data/iemocap/process_database.py +0 -0
  30. {nkululeko-0.92.0 → nkululeko-0.92.2}/data/jl/process_database.py +0 -0
  31. {nkululeko-0.92.0 → nkululeko-0.92.2}/data/jtes/process_database.py +0 -0
  32. {nkululeko-0.92.0 → nkululeko-0.92.2}/data/meld/process_database.py +0 -0
  33. {nkululeko-0.92.0 → nkululeko-0.92.2}/data/mesd/process_database.py +0 -0
  34. {nkululeko-0.92.0 → nkululeko-0.92.2}/data/mess/process_database.py +0 -0
  35. {nkululeko-0.92.0 → nkululeko-0.92.2}/data/mlendsnd/process_database.py +0 -0
  36. {nkululeko-0.92.0 → nkululeko-0.92.2}/data/msp-improv/process_database2.py +0 -0
  37. {nkululeko-0.92.0 → nkululeko-0.92.2}/data/msp-podcast/process_database.py +0 -0
  38. {nkululeko-0.92.0 → nkululeko-0.92.2}/data/oreau2/process_database.py +0 -0
  39. {nkululeko-0.92.0 → nkululeko-0.92.2}/data/portuguese/process_database.py +0 -0
  40. {nkululeko-0.92.0 → nkululeko-0.92.2}/data/ravdess/process_database.py +0 -0
  41. {nkululeko-0.92.0 → nkululeko-0.92.2}/data/ravdess/process_database_speaker.py +0 -0
  42. {nkululeko-0.92.0 → nkululeko-0.92.2}/data/savee/process_database.py +0 -0
  43. {nkululeko-0.92.0 → nkululeko-0.92.2}/data/shemo/process_database.py +0 -0
  44. {nkululeko-0.92.0 → nkululeko-0.92.2}/data/subesco/process_database.py +0 -0
  45. {nkululeko-0.92.0 → nkululeko-0.92.2}/data/tess/process_database.py +0 -0
  46. {nkululeko-0.92.0 → nkululeko-0.92.2}/data/thorsten-emotional/process_database.py +0 -0
  47. {nkululeko-0.92.0 → nkululeko-0.92.2}/data/urdu/process_database.py +0 -0
  48. {nkululeko-0.92.0 → nkululeko-0.92.2}/data/vivae/process_database.py +0 -0
  49. {nkululeko-0.92.0 → nkululeko-0.92.2}/docs/source/conf.py +0 -0
  50. {nkululeko-0.92.0 → nkululeko-0.92.2}/meta/demos/demo_best_model.py +0 -0
  51. {nkululeko-0.92.0 → nkululeko-0.92.2}/meta/demos/my_experiment.py +0 -0
  52. {nkululeko-0.92.0 → nkululeko-0.92.2}/meta/demos/my_experiment_local.py +0 -0
  53. {nkululeko-0.92.0 → nkululeko-0.92.2}/meta/demos/plot_faster_anim.py +0 -0
  54. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/__init__.py +0 -0
  55. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/aug_train.py +0 -0
  56. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/augment.py +0 -0
  57. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/augmenting/__init__.py +0 -0
  58. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/augmenting/augmenter.py +0 -0
  59. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/augmenting/randomsplicer.py +0 -0
  60. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/augmenting/randomsplicing.py +0 -0
  61. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/augmenting/resampler.py +0 -0
  62. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/autopredict/__init__.py +0 -0
  63. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/autopredict/ap_age.py +0 -0
  64. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/autopredict/ap_arousal.py +0 -0
  65. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/autopredict/ap_dominance.py +0 -0
  66. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/autopredict/ap_gender.py +0 -0
  67. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/autopredict/ap_mos.py +0 -0
  68. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/autopredict/ap_pesq.py +0 -0
  69. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/autopredict/ap_sdr.py +0 -0
  70. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/autopredict/ap_sid.py +0 -0
  71. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/autopredict/ap_snr.py +0 -0
  72. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/autopredict/ap_stoi.py +0 -0
  73. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/autopredict/ap_valence.py +0 -0
  74. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/autopredict/estimate_snr.py +0 -0
  75. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/cacheddataset.py +0 -0
  76. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/data/__init__.py +0 -0
  77. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/data/dataset.py +0 -0
  78. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/data/dataset_csv.py +0 -0
  79. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/demo-ft.py +0 -0
  80. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/demo.py +0 -0
  81. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/demo_feats.py +0 -0
  82. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/demo_predictor.py +0 -0
  83. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/ensemble.py +0 -0
  84. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/experiment.py +0 -0
  85. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/explore.py +0 -0
  86. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/export.py +0 -0
  87. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/feat_extract/__init__.py +0 -0
  88. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/feat_extract/feats_agender.py +0 -0
  89. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/feat_extract/feats_agender_agender.py +0 -0
  90. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/feat_extract/feats_analyser.py +0 -0
  91. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/feat_extract/feats_ast.py +0 -0
  92. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/feat_extract/feats_auddim.py +0 -0
  93. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/feat_extract/feats_audmodel.py +0 -0
  94. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/feat_extract/feats_clap.py +0 -0
  95. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/feat_extract/feats_hubert.py +0 -0
  96. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/feat_extract/feats_import.py +0 -0
  97. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/feat_extract/feats_mld.py +0 -0
  98. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/feat_extract/feats_mos.py +0 -0
  99. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/feat_extract/feats_opensmile.py +0 -0
  100. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/feat_extract/feats_oxbow.py +0 -0
  101. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/feat_extract/feats_praat.py +0 -0
  102. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/feat_extract/feats_snr.py +0 -0
  103. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/feat_extract/feats_spectra.py +0 -0
  104. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/feat_extract/feats_spkrec.py +0 -0
  105. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/feat_extract/feats_squim.py +0 -0
  106. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/feat_extract/feats_trill.py +0 -0
  107. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/feat_extract/feats_wav2vec2.py +0 -0
  108. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/feat_extract/feats_wavlm.py +0 -0
  109. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/feat_extract/feats_whisper.py +0 -0
  110. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/feat_extract/featureset.py +0 -0
  111. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/feat_extract/feinberg_praat.py +0 -0
  112. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/feat_extract/transformer_feature_extractor.py +0 -0
  113. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/feature_extractor.py +0 -0
  114. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/file_checker.py +0 -0
  115. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/filter_data.py +0 -0
  116. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/fixedsegment.py +0 -0
  117. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/glob_conf.py +0 -0
  118. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/losses/__init__.py +0 -0
  119. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/losses/loss_ccc.py +0 -0
  120. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/losses/loss_softf1loss.py +0 -0
  121. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/modelrunner.py +0 -0
  122. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/models/__init__.py +0 -0
  123. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/models/model.py +0 -0
  124. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/models/model_bayes.py +0 -0
  125. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/models/model_cnn.py +0 -0
  126. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/models/model_gmm.py +0 -0
  127. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/models/model_knn.py +0 -0
  128. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/models/model_knn_reg.py +0 -0
  129. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/models/model_lin_reg.py +0 -0
  130. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/models/model_mlp.py +0 -0
  131. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/models/model_mlp_regression.py +0 -0
  132. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/models/model_svm.py +0 -0
  133. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/models/model_svr.py +0 -0
  134. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/models/model_tree.py +0 -0
  135. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/models/model_tree_reg.py +0 -0
  136. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/models/model_tuned.py +0 -0
  137. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/models/model_xgb.py +0 -0
  138. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/models/model_xgr.py +0 -0
  139. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/multidb.py +0 -0
  140. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/nkuluflag.py +0 -0
  141. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/nkululeko.py +0 -0
  142. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/predict.py +0 -0
  143. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/reporting/__init__.py +0 -0
  144. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/reporting/defines.py +0 -0
  145. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/reporting/latex_writer.py +0 -0
  146. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/reporting/report.py +0 -0
  147. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/reporting/report_item.py +0 -0
  148. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/reporting/reporter.py +0 -0
  149. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/reporting/result.py +0 -0
  150. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/resample.py +0 -0
  151. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/runmanager.py +0 -0
  152. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/scaler.py +0 -0
  153. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/segmenting/__init__.py +0 -0
  154. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/segmenting/seg_inaspeechsegmenter.py +0 -0
  155. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/segmenting/seg_pyannote.py +0 -0
  156. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/segmenting/seg_silero.py +0 -0
  157. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/syllable_nuclei.py +0 -0
  158. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/test.py +0 -0
  159. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/test_predictor.py +0 -0
  160. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/test_pretrain.py +0 -0
  161. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/utils/__init__.py +0 -0
  162. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/utils/files.py +0 -0
  163. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/utils/stats.py +0 -0
  164. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko/utils/util.py +0 -0
  165. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko.egg-info/SOURCES.txt +0 -0
  166. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko.egg-info/dependency_links.txt +0 -0
  167. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko.egg-info/entry_points.txt +0 -0
  168. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko.egg-info/requires.txt +0 -0
  169. {nkululeko-0.92.0 → nkululeko-0.92.2}/nkululeko.egg-info/top_level.txt +0 -0
  170. {nkululeko-0.92.0 → nkululeko-0.92.2}/pyproject.toml +0 -0
  171. {nkululeko-0.92.0 → nkululeko-0.92.2}/setup.cfg +0 -0
  172. {nkululeko-0.92.0 → nkululeko-0.92.2}/setup.py +0 -0
  173. {nkululeko-0.92.0 → nkululeko-0.92.2}/venv/bin/activate_this.py +0 -0
@@ -1,6 +1,14 @@
1
1
  Changelog
2
2
  =========
3
3
 
4
+ Version 0.92.2
5
+ --------------
6
+ * added some output to automatic speaker id
7
+
8
+ Version 0.92.1
9
+ --------------
10
+ * added a speaker plot to pyannote results
11
+
4
12
  Version 0.92.0
5
13
  --------------
6
14
  * added first version of automatic speaker prediction/segmentation
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: nkululeko
3
- Version: 0.92.0
3
+ Version: 0.92.2
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
@@ -355,6 +355,14 @@ F. Burkhardt, Johannes Wagner, Hagen Wierstorf, Florian Eyben and Björn Schulle
355
355
  Changelog
356
356
  =========
357
357
 
358
+ Version 0.92.2
359
+ --------------
360
+ * added some output to automatic speaker id
361
+
362
+ Version 0.92.1
363
+ --------------
364
+ * added a speaker plot to pyannote results
365
+
358
366
  Version 0.92.0
359
367
  --------------
360
368
  * added first version of automatic speaker prediction/segmentation
@@ -1,2 +1,2 @@
1
- VERSION="0.92.0"
1
+ VERSION="0.92.2"
2
2
  SAMPLING_RATE = 16000
@@ -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
- import seaborn as sns
8
7
  from scipy import stats
8
+ import seaborn as sns
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
13
12
  from nkululeko.reporting.defines import Header
14
13
  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
 
@@ -30,8 +30,6 @@ class Plots:
30
30
  df_speaker["samplenum"] = df_speaker.shape[0]
31
31
  df_speakers = pd.concat([df_speakers, df_speaker.head(1)])
32
32
  # plot the distribution of samples per speaker
33
- # one up because of the runs
34
- fig_dir = self.util.get_path("fig_dir") + "../"
35
33
  self.util.debug("plotting samples per speaker")
36
34
  if "gender" in df_speakers:
37
35
  filename = "samples_value_counts"
@@ -319,6 +317,31 @@ class Plots:
319
317
  img_path = f"{fig_dir}{filename}_{sample_selection}.{self.format}"
320
318
  plt.savefig(img_path)
321
319
  plt.close(fig)
320
+ self.util.debug(f"plotted durations to {img_path}")
321
+ glob_conf.report.add_item(
322
+ ReportItem(
323
+ Header.HEADER_EXPLORE,
324
+ caption,
325
+ title,
326
+ img_path,
327
+ )
328
+ )
329
+
330
+ def plot_speakers(self, df, sample_selection):
331
+ filename = "speakers"
332
+ caption = "speakers"
333
+ # one up because of the runs
334
+ fig_dir = self.util.get_path("fig_dir") + "../"
335
+ sns.set_style("whitegrid") # Set style for chart
336
+ ax = df["speaker"].value_counts().plot(kind="pie", autopct="%1.1f%%")
337
+ title = f"Speaker distr. for {sample_selection} {df.shape[0]}."
338
+ ax.set_title(title)
339
+ fig = ax.figure
340
+ # plt.tight_layout()
341
+ img_path = f"{fig_dir}{filename}_{sample_selection}.{self.format}"
342
+ plt.savefig(img_path)
343
+ plt.close(fig)
344
+ self.util.debug(f"plotted speakers to {img_path}")
322
345
  glob_conf.report.add_item(
323
346
  ReportItem(
324
347
  Header.HEADER_EXPLORE,
@@ -23,6 +23,8 @@ import os
23
23
 
24
24
  import pandas as pd
25
25
 
26
+ import audformat
27
+
26
28
  from nkululeko.constants import VERSION
27
29
  from nkululeko.experiment import Experiment
28
30
  import nkululeko.glob_conf as glob_conf
@@ -63,7 +65,7 @@ def main():
63
65
  # segment
64
66
  segmented_file = util.config_val("SEGMENT", "result", "segmented.csv")
65
67
 
66
- segmenter = util.config_val("SEGMENT", "method", "silero")
68
+ method = util.config_val("SEGMENT", "method", "silero")
67
69
  sample_selection = util.config_val("SEGMENT", "sample_selection", "all")
68
70
  if sample_selection == "all":
69
71
  df = pd.concat([expr.df_train, expr.df_test])
@@ -76,19 +78,33 @@ def main():
76
78
  f"unknown segmentation selection specifier {sample_selection},"
77
79
  " should be [all | train | test]"
78
80
  )
79
- util.debug(f"segmenting {sample_selection}: {df.shape[0]} samples with {segmenter}")
80
- if segmenter == "silero":
81
- from nkululeko.segmenting.seg_silero import Silero_segmenter
82
-
83
- segmenter = Silero_segmenter()
84
- df_seg = segmenter.segment_dataframe(df)
85
- elif segmenter == "pyannote":
86
- from nkululeko.segmenting.seg_pyannote import Pyannote_segmenter
87
-
88
- segmenter = Pyannote_segmenter(config)
89
- df_seg = segmenter.segment_dataframe(df)
81
+ result_file = f"{expr.data_dir}/{segmented_file}"
82
+ if os.path.exists(result_file):
83
+ util.debug(f"reusing existing result file: {result_file}")
84
+ df_seg = audformat.utils.read_csv(result_file)
90
85
  else:
91
- util.error(f"unknown segmenter: {segmenter}")
86
+ util.debug(
87
+ f"segmenting {sample_selection}: {df.shape[0]} samples with {method}"
88
+ )
89
+ if method == "silero":
90
+ from nkululeko.segmenting.seg_silero import Silero_segmenter
91
+
92
+ segmenter = Silero_segmenter()
93
+ df_seg = segmenter.segment_dataframe(df)
94
+ elif method == "pyannote":
95
+ from nkululeko.segmenting.seg_pyannote import Pyannote_segmenter
96
+
97
+ segmenter = Pyannote_segmenter(config)
98
+ df_seg = segmenter.segment_dataframe(df)
99
+ else:
100
+ util.error(f"unknown segmenter: {method}")
101
+ # remove encoded labels
102
+ target = util.config_val("DATA", "target", None)
103
+ if "class_label" in df_seg.columns:
104
+ df_seg = df_seg.drop(columns=[target])
105
+ df_seg = df_seg.rename(columns={"class_label": target})
106
+ # save file
107
+ df_seg.to_csv(f"{expr.data_dir}/{segmented_file}")
92
108
 
93
109
  def calc_dur(x):
94
110
  starts = x[1]
@@ -100,6 +116,11 @@ def main():
100
116
  df_seg["duration"] = df_seg.index.to_series().map(lambda x: calc_dur(x))
101
117
  num_before = df.shape[0]
102
118
  num_after = df_seg.shape[0]
119
+ util.debug(
120
+ f"saved {segmented_file} to {expr.data_dir}, {num_after} samples (was"
121
+ f" {num_before})"
122
+ )
123
+
103
124
  # plot distributions
104
125
  from nkululeko.plots import Plots
105
126
 
@@ -110,18 +131,10 @@ def main():
110
131
  plots.plot_durations(
111
132
  df_seg, "segmented_durations", sample_selection, caption="Segmented durations"
112
133
  )
113
- print("")
114
- # remove encoded labels
115
- target = util.config_val("DATA", "target", None)
116
- if "class_label" in df_seg.columns:
117
- df_seg = df_seg.drop(columns=[target])
118
- df_seg = df_seg.rename(columns={"class_label": target})
119
- # save file
120
- df_seg.to_csv(f"{expr.data_dir}/{segmented_file}")
121
- util.debug(
122
- f"saved {segmented_file} to {expr.data_dir}, {num_after} samples (was"
123
- f" {num_before})"
124
- )
134
+ if method == "pyannote":
135
+ util.debug(df_seg[["speaker", "duration"]].groupby(["speaker"]).sum())
136
+ plots.plot_speakers(df_seg, sample_selection)
137
+
125
138
  glob_conf.report.add_item(
126
139
  ReportItem(
127
140
  "Data",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: nkululeko
3
- Version: 0.92.0
3
+ Version: 0.92.2
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
@@ -355,6 +355,14 @@ F. Burkhardt, Johannes Wagner, Hagen Wierstorf, Florian Eyben and Björn Schulle
355
355
  Changelog
356
356
  =========
357
357
 
358
+ Version 0.92.2
359
+ --------------
360
+ * added some output to automatic speaker id
361
+
362
+ Version 0.92.1
363
+ --------------
364
+ * added a speaker plot to pyannote results
365
+
358
366
  Version 0.92.0
359
367
  --------------
360
368
  * added first version of automatic speaker prediction/segmentation
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes