sonusai 1.0.7__tar.gz → 1.0.8__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 (136) hide show
  1. {sonusai-1.0.7 → sonusai-1.0.8}/PKG-INFO +1 -1
  2. {sonusai-1.0.7 → sonusai-1.0.8}/pyproject.toml +1 -1
  3. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/__init__.py +8 -7
  4. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/audiofe.py +1 -1
  5. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/calc_metric_spenh.py +9 -9
  6. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/genft.py +1 -1
  7. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/genmetrics.py +3 -3
  8. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/genmix.py +1 -1
  9. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/genmixdb.py +1 -1
  10. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/metrics_summary.py +7 -8
  11. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/mkwav.py +1 -1
  12. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/onnx_predict.py +1 -1
  13. {sonusai-1.0.7 → sonusai-1.0.8}/README.rst +0 -0
  14. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/aawscd_probwrite.py +0 -0
  15. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/config/__init__.py +0 -0
  16. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/config/config.py +0 -0
  17. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/config/config.yml +0 -0
  18. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/config/constants.py +0 -0
  19. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/constants.py +0 -0
  20. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/data/__init__.py +0 -0
  21. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/data/genmixdb.yml +0 -0
  22. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/data/silero_vad_v5.1.jit +0 -0
  23. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/data/silero_vad_v5.1.onnx +0 -0
  24. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/data/speech_ma01_01.wav +0 -0
  25. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/data/whitenoise.wav +0 -0
  26. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/datatypes.py +0 -0
  27. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/deprecated/gentcst.py +0 -0
  28. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/deprecated/plot.py +0 -0
  29. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/deprecated/tplot.py +0 -0
  30. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/doc/__init__.py +0 -0
  31. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/doc/doc.py +0 -0
  32. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/doc.py +0 -0
  33. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/ir_metric.py +0 -0
  34. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/lsdb.py +0 -0
  35. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/main.py +0 -0
  36. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/metrics/__init__.py +0 -0
  37. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/metrics/calc_audio_stats.py +0 -0
  38. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/metrics/calc_class_weights.py +0 -0
  39. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/metrics/calc_optimal_thresholds.py +0 -0
  40. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/metrics/calc_pcm.py +0 -0
  41. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/metrics/calc_pesq.py +0 -0
  42. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/metrics/calc_phase_distance.py +0 -0
  43. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/metrics/calc_sa_sdr.py +0 -0
  44. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/metrics/calc_sample_weights.py +0 -0
  45. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/metrics/calc_segsnr_f.py +0 -0
  46. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/metrics/calc_speech.py +0 -0
  47. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/metrics/calc_wer.py +0 -0
  48. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/metrics/calc_wsdr.py +0 -0
  49. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/metrics/class_summary.py +0 -0
  50. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/metrics/confusion_matrix_summary.py +0 -0
  51. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/metrics/one_hot.py +0 -0
  52. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/metrics/snr_summary.py +0 -0
  53. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/mixture/__init__.py +0 -0
  54. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/mixture/audio.py +0 -0
  55. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/mixture/class_balancing.py +0 -0
  56. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/mixture/config.py +0 -0
  57. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/mixture/constants.py +0 -0
  58. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/mixture/data_io.py +0 -0
  59. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/mixture/db_datatypes.py +0 -0
  60. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/mixture/effects.py +0 -0
  61. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/mixture/feature.py +0 -0
  62. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/mixture/generation.py +0 -0
  63. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/mixture/helpers.py +0 -0
  64. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/mixture/ir_delay.py +0 -0
  65. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/mixture/ir_effects.py +0 -0
  66. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/mixture/log_duration_and_sizes.py +0 -0
  67. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/mixture/mixdb.py +0 -0
  68. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/mixture/pad_audio.py +0 -0
  69. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/mixture/resample.py +0 -0
  70. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/mixture/sox_effects.py +0 -0
  71. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/mixture/sox_help.py +0 -0
  72. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/mixture/spectral_mask.py +0 -0
  73. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/mixture/truth.py +0 -0
  74. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/mixture/truth_functions/__init__.py +0 -0
  75. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/mixture/truth_functions/crm.py +0 -0
  76. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/mixture/truth_functions/energy.py +0 -0
  77. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/mixture/truth_functions/file.py +0 -0
  78. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/mixture/truth_functions/metadata.py +0 -0
  79. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/mixture/truth_functions/metrics.py +0 -0
  80. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/mixture/truth_functions/phoneme.py +0 -0
  81. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/mixture/truth_functions/sed.py +0 -0
  82. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/mixture/truth_functions/target.py +0 -0
  83. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/queries/__init__.py +0 -0
  84. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/queries/queries.py +0 -0
  85. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/speech/__init__.py +0 -0
  86. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/speech/l2arctic.py +0 -0
  87. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/speech/librispeech.py +0 -0
  88. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/speech/mcgill.py +0 -0
  89. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/speech/textgrid.py +0 -0
  90. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/speech/timit.py +0 -0
  91. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/speech/types.py +0 -0
  92. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/speech/vctk.py +0 -0
  93. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/speech/voxceleb.py +0 -0
  94. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/utils/__init__.py +0 -0
  95. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/utils/asl_p56.py +0 -0
  96. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/utils/asr.py +0 -0
  97. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/utils/asr_functions/__init__.py +0 -0
  98. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/utils/asr_functions/aaware_whisper.py +0 -0
  99. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/utils/audio_devices.py +0 -0
  100. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/utils/braced_glob.py +0 -0
  101. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/utils/calculate_input_shape.py +0 -0
  102. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/utils/choice.py +0 -0
  103. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/utils/compress.py +0 -0
  104. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/utils/convert_string_to_number.py +0 -0
  105. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/utils/create_timestamp.py +0 -0
  106. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/utils/create_ts_name.py +0 -0
  107. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/utils/dataclass_from_dict.py +0 -0
  108. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/utils/db.py +0 -0
  109. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/utils/docstring.py +0 -0
  110. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/utils/energy_f.py +0 -0
  111. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/utils/engineering_number.py +0 -0
  112. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/utils/evaluate_random_rule.py +0 -0
  113. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/utils/get_frames_per_batch.py +0 -0
  114. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/utils/get_label_names.py +0 -0
  115. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/utils/grouper.py +0 -0
  116. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/utils/human_readable_size.py +0 -0
  117. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/utils/keyboard_interrupt.py +0 -0
  118. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/utils/load_object.py +0 -0
  119. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/utils/max_text_width.py +0 -0
  120. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/utils/model_utils.py +0 -0
  121. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/utils/numeric_conversion.py +0 -0
  122. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/utils/onnx_utils.py +0 -0
  123. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/utils/parallel.py +0 -0
  124. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/utils/path_info.py +0 -0
  125. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/utils/print_mixture_details.py +0 -0
  126. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/utils/rand.py +0 -0
  127. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/utils/ranges.py +0 -0
  128. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/utils/read_predict_data.py +0 -0
  129. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/utils/reshape.py +0 -0
  130. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/utils/seconds_to_hms.py +0 -0
  131. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/utils/stacked_complex.py +0 -0
  132. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/utils/stratified_shuffle_split.py +0 -0
  133. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/utils/tokenized_shell_vars.py +0 -0
  134. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/utils/write_audio.py +0 -0
  135. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/utils/yes_or_no.py +0 -0
  136. {sonusai-1.0.7 → sonusai-1.0.8}/sonusai/vars.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: sonusai
3
- Version: 1.0.7
3
+ Version: 1.0.8
4
4
  Summary: Framework for building deep neural network models for sound, speech, and voice AI
5
5
  Home-page: https://aaware.com
6
6
  License: GPL-3.0-only
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "sonusai"
3
- version = "1.0.7"
3
+ version = "1.0.8"
4
4
  description = "Framework for building deep neural network models for sound, speech, and voice AI"
5
5
  authors = ["Chris Eddington <chris@aaware.com>", "Jason Calderwood <jason@aaware.com>"]
6
6
  maintainers = ["Chris Eddington <chris@aaware.com>", "Jason Calderwood <jason@aaware.com>"]
@@ -36,7 +36,7 @@ logger_db = logging.getLogger("sonusai_db")
36
36
  logger_db.setLevel(logging.DEBUG)
37
37
 
38
38
  # create file handler
39
- def create_file_handler(filename: str) -> None:
39
+ def create_file_handler(filename: str, verbose: bool = False) -> None:
40
40
  from pathlib import Path
41
41
 
42
42
  fh = logging.FileHandler(filename=filename, mode="w")
@@ -44,12 +44,13 @@ def create_file_handler(filename: str) -> None:
44
44
  fh.setFormatter(formatter)
45
45
  logger.addHandler(fh)
46
46
 
47
- filename_db = Path(filename)
48
- filename_db = filename_db.parent / (filename_db.stem + "_dbtrace" + filename_db.suffix)
49
- fh = logging.FileHandler(filename=filename_db, mode="w")
50
- fh.setLevel(logging.DEBUG)
51
- fh.setFormatter(formatter_db)
52
- logger_db.addHandler(fh)
47
+ if verbose:
48
+ filename_db = Path(filename)
49
+ filename_db = filename_db.parent / (filename_db.stem + "_dbtrace" + filename_db.suffix)
50
+ fh = logging.FileHandler(filename=filename_db, mode="w")
51
+ fh.setLevel(logging.DEBUG)
52
+ fh.setFormatter(formatter_db)
53
+ logger_db.addHandler(fh)
53
54
 
54
55
 
55
56
  # update console handler
@@ -77,7 +77,7 @@ def main() -> None:
77
77
  from sonusai.utils import load_ort_session
78
78
 
79
79
  # Setup logging file
80
- create_file_handler("audiofe.log")
80
+ create_file_handler("audiofe.log", verbose)
81
81
  update_console_handler(verbose)
82
82
  initial_log_messages("audiofe")
83
83
 
@@ -531,10 +531,10 @@ def _process_mixture(
531
531
  pesq_speech = calc_pesq(target_est_wav, target_fi)
532
532
  csig_tg, cbak_tg, covl_tg = calc_speech(target_est_wav, target_fi, pesq=pesq_speech)
533
533
  metrics = mixdb.mixture_metrics(m_id, ["mxpesq", "mxcsig", "mxcbak", "mxcovl"])
534
- pesq_mx = metrics["mxpesq"][0] if isinstance(metrics["mxpesq"], list) else metrics["mxpesq"]
535
- csig_mx = metrics["mxcsig"][0] if isinstance(metrics["mxcsig"], list) else metrics["mxcsig"]
536
- cbak_mx = metrics["mxcbak"][0] if isinstance(metrics["mxcbak"], list) else metrics["mxcbak"]
537
- covl_mx = metrics["mxcovl"][0] if isinstance(metrics["mxcovl"], list) else metrics["mxcovl"]
534
+ pesq_mx = metrics["mxpesq"]["primary"] if isinstance(metrics["mxpesq"], dict) else metrics["mxpesq"]
535
+ csig_mx = metrics["mxcsig"]["primary"] if isinstance(metrics["mxcsig"], dict) else metrics["mxcsig"]
536
+ cbak_mx = metrics["mxcbak"]["primary"] if isinstance(metrics["mxcbak"], dict) else metrics["mxcbak"]
537
+ covl_mx = metrics["mxcovl"]["primary"] if isinstance(metrics["mxcovl"], dict) else metrics["mxcovl"]
538
538
  # pesq_speech_tst = calc_pesq(hypothesis=target_est_wav, reference=target)
539
539
  # pesq_mixture_tst = calc_pesq(hypothesis=mixture, reference=target)
540
540
  # pesq improvement
@@ -560,11 +560,11 @@ def _process_mixture(
560
560
  if asr_method is not None and mixdb.mixture(m_id).noise.snr >= -96: # noise only, ignore/reset target ASR
561
561
  asr_mx_name = f"mxasr.{asr_method}"
562
562
  wer_mx_name = f"mxwer.{asr_method}"
563
- asr_tt_name = f"tasr.{asr_method}"
563
+ asr_tt_name = f"sasr.{asr_method}"
564
564
  metrics = mixdb.mixture_metrics(m_id, [asr_mx_name, wer_mx_name, asr_tt_name])
565
- asr_mx = metrics[asr_mx_name][0] if isinstance(metrics[asr_mx_name], list) else metrics[asr_mx_name]
566
- wer_mx = metrics[wer_mx_name][0] if isinstance(metrics[wer_mx_name], list) else metrics[wer_mx_name]
567
- asr_tt = metrics[asr_tt_name][0] if isinstance(metrics[asr_tt_name], list) else metrics[asr_tt_name]
565
+ asr_mx = metrics[asr_mx_name]["primary"] if isinstance(metrics[asr_mx_name], dict) else metrics[asr_mx_name]
566
+ wer_mx = metrics[wer_mx_name]["primary"] if isinstance(metrics[wer_mx_name], dict) else metrics[wer_mx_name]
567
+ asr_tt = metrics[asr_tt_name]["primary"] if isinstance(metrics[asr_tt_name], dict) else metrics[asr_tt_name]
568
568
 
569
569
  if asr_tt:
570
570
  noiseadd = None # TBD add as switch, default -30
@@ -849,7 +849,7 @@ def main():
849
849
  logger.info(f"Found predict log {basename(predict_logfile[0])} in predict location.")
850
850
 
851
851
  # Setup logging file
852
- create_file_handler(join(predict_location, "calc_metric_spenh.log"))
852
+ create_file_handler(join(predict_location, "calc_metric_spenh.log"), verbose)
853
853
  update_console_handler(verbose)
854
854
  initial_log_messages("calc_metric_spenh")
855
855
 
@@ -138,7 +138,7 @@ def main() -> None:
138
138
 
139
139
  start_time = time.monotonic()
140
140
 
141
- create_file_handler(join(location, "genft.log"))
141
+ create_file_handler(join(location, "genft.log"), verbose)
142
142
  update_console_handler(verbose)
143
143
  initial_log_messages("genft")
144
144
 
@@ -1,14 +1,14 @@
1
1
  """sonusai genmetrics
2
2
 
3
- usage: genmetrics [-hvusd] [-i MIXID] [-n INCLUDE] [-p NUMPROC] [-x EXCLUDE] LOC
3
+ usage: genmetrics [-hvusd] [-i MIXID] [-n INCLUDE] [-x EXCLUDE] [-p NUMPROC] LOC
4
4
 
5
5
  options:
6
6
  -h, --help
7
7
  -v, --verbose Be verbose.
8
8
  -i MIXID, --mixid MIXID Mixture ID(s) to generate. [default: *].
9
9
  -n INCLUDE, --include INCLUDE Metrics to include. [default: all]
10
- -p NUMPROC, --nproc NUMPROC Number of parallel processes to use. Default single thread.
11
10
  -x EXCLUDE, --exclude EXCLUDE Metrics to exclude. [default: none]
11
+ -p NUMPROC, --nproc NUMPROC Number of parallel processes to use. Default single thread.
12
12
  -u, --update Update metrics (do not regenerate existing metrics).
13
13
  -s, --supported Show list of supported metrics.
14
14
  -d, --dryrun Show list of metrics that will be generated and exit.
@@ -97,7 +97,7 @@ def main() -> None:
97
97
  start_time = time.monotonic()
98
98
 
99
99
  # Setup logging file
100
- create_file_handler(join(location, "genmetrics.log"))
100
+ create_file_handler(join(location, "genmetrics.log"), verbose)
101
101
  update_console_handler(verbose)
102
102
  initial_log_messages("genmetrics")
103
103
 
@@ -144,7 +144,7 @@ def main() -> None:
144
144
 
145
145
  start_time = time.monotonic()
146
146
 
147
- create_file_handler(join(location, "genmix.log"))
147
+ create_file_handler(join(location, "genmix.log"), verbose)
148
148
  update_console_handler(verbose)
149
149
  initial_log_messages("genmix")
150
150
 
@@ -314,7 +314,7 @@ def main() -> None:
314
314
 
315
315
  makedirs(location, exist_ok=True)
316
316
 
317
- create_file_handler(join(location, "genmixdb.log"))
317
+ create_file_handler(join(location, "genmixdb.log"), verbose)
318
318
  update_console_handler(verbose)
319
319
  initial_log_messages("genmixdb")
320
320
 
@@ -55,13 +55,13 @@ def _process_mixture(
55
55
 
56
56
  all_metrics = mixdb.mixture_metrics(m_id, all_metric_names)
57
57
 
58
- # replace lists with first value (ignore mixup)
58
+ # replace dict with 'primary' value (ignore mixup)
59
59
  scalar_metrics = {
60
- key: all_metrics[key][0] if isinstance(all_metrics[key], list) else all_metrics[key]
60
+ key: all_metrics[key]["primary"] if isinstance(all_metrics[key], dict) else all_metrics[key]
61
61
  for key in scalar_metric_names
62
62
  }
63
63
  string_metrics = {
64
- key: all_metrics[key][0] if isinstance(all_metrics[key], list) else all_metrics[key]
64
+ key: all_metrics[key]["primary"] if isinstance(all_metrics[key], dict) else all_metrics[key]
65
65
  for key in string_metric_names
66
66
  }
67
67
 
@@ -133,7 +133,7 @@ def main() -> None:
133
133
  timestamp = create_timestamp() # string good for embedding into filenames
134
134
  mixdb_fname = basename(location)
135
135
  if verbose:
136
- create_file_handler(join(location, "metrics_summary.log"))
136
+ create_file_handler(join(location, "metrics_summary.log"), verbose)
137
137
  update_console_handler(verbose)
138
138
  initial_log_messages("metrics_summary")
139
139
  logger.info(f"Logging summary of SonusAI mixture database at {location}")
@@ -168,10 +168,9 @@ def main() -> None:
168
168
  for metric in metrics_present:
169
169
  metval = all_metrics[metric] # get metric value
170
170
  logger.debug(f"First mixid {mixids[0]} metric {metric} = {metval}")
171
- if isinstance(metval, list):
172
- if len(metval) > 1:
173
- logger.warning(f"Mixid {mixids[0]} metric {metric} has a list with more than 1 element, using first.")
174
- metval = metval[0] # remove any list
171
+ if isinstance(metval, dict):
172
+ logger.warning(f"Mixid {mixids[0]} metric {metric} is a dict, using 'primary'.")
173
+ metval = metval["primary"] # remove any dict
175
174
  if isinstance(metval, float | int):
176
175
  logger.debug(f"Metric is scalar {type(metval)}, entering in summary table.")
177
176
  scalar_metric_names.append(metric)
@@ -86,7 +86,7 @@ def main() -> None:
86
86
 
87
87
  start_time = time.monotonic()
88
88
 
89
- create_file_handler(join(location, "mkwav.log"))
89
+ create_file_handler(join(location, "mkwav.log"), verbose)
90
90
  update_console_handler(verbose)
91
91
  initial_log_messages("mkwav")
92
92
 
@@ -210,7 +210,7 @@ def main() -> None:
210
210
  if mixdb_path is not None or len(pfiles) > 1: # log file only if mixdb or more than one file
211
211
  makedirs(output_dir, exist_ok=True)
212
212
  # Setup logging file
213
- create_file_handler(join(output_dir, "onnx-predict.log"))
213
+ create_file_handler(join(output_dir, "onnx-predict.log"), verbose)
214
214
  update_console_handler(verbose)
215
215
  initial_log_messages("onnx_predict")
216
216
  # print some previous messages
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes