sonusai 1.0.2__tar.gz → 1.0.4__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 (137) hide show
  1. {sonusai-1.0.2 → sonusai-1.0.4}/PKG-INFO +2 -1
  2. {sonusai-1.0.2 → sonusai-1.0.4}/pyproject.toml +2 -1
  3. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/genmixdb.py +6 -0
  4. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/mixture/effects.py +1 -1
  5. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/mixture/generation.py +2 -1
  6. {sonusai-1.0.2 → sonusai-1.0.4}/README.rst +0 -0
  7. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/__init__.py +0 -0
  8. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/aawscd_probwrite.py +0 -0
  9. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/audiofe.py +0 -0
  10. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/calc_metric_spenh.py +0 -0
  11. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/config/__init__.py +0 -0
  12. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/config/config.py +0 -0
  13. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/config/config.yml +0 -0
  14. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/config/constants.py +0 -0
  15. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/constants.py +0 -0
  16. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/data/__init__.py +0 -0
  17. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/data/genmixdb.yml +0 -0
  18. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/data/silero_vad_v5.1.jit +0 -0
  19. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/data/silero_vad_v5.1.onnx +0 -0
  20. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/data/speech_ma01_01.wav +0 -0
  21. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/data/whitenoise.wav +0 -0
  22. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/datatypes.py +0 -0
  23. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/deprecated/gentcst.py +0 -0
  24. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/deprecated/plot.py +0 -0
  25. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/deprecated/tplot.py +0 -0
  26. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/doc/__init__.py +0 -0
  27. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/doc/doc.py +0 -0
  28. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/doc.py +0 -0
  29. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/genft.py +0 -0
  30. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/genmetrics.py +0 -0
  31. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/genmix.py +0 -0
  32. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/ir_metric.py +0 -0
  33. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/lsdb.py +0 -0
  34. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/main.py +0 -0
  35. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/metrics/__init__.py +0 -0
  36. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/metrics/calc_audio_stats.py +0 -0
  37. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/metrics/calc_class_weights.py +0 -0
  38. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/metrics/calc_optimal_thresholds.py +0 -0
  39. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/metrics/calc_pcm.py +0 -0
  40. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/metrics/calc_pesq.py +0 -0
  41. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/metrics/calc_phase_distance.py +0 -0
  42. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/metrics/calc_sa_sdr.py +0 -0
  43. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/metrics/calc_sample_weights.py +0 -0
  44. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/metrics/calc_segsnr_f.py +0 -0
  45. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/metrics/calc_speech.py +0 -0
  46. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/metrics/calc_wer.py +0 -0
  47. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/metrics/calc_wsdr.py +0 -0
  48. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/metrics/class_summary.py +0 -0
  49. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/metrics/confusion_matrix_summary.py +0 -0
  50. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/metrics/one_hot.py +0 -0
  51. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/metrics/snr_summary.py +0 -0
  52. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/metrics_summary.py +0 -0
  53. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/mixture/__init__.py +0 -0
  54. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/mixture/audio.py +0 -0
  55. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/mixture/class_balancing.py +0 -0
  56. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/mixture/config.py +0 -0
  57. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/mixture/constants.py +0 -0
  58. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/mixture/data_io.py +0 -0
  59. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/mixture/db_datatypes.py +0 -0
  60. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/mixture/feature.py +0 -0
  61. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/mixture/helpers.py +0 -0
  62. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/mixture/ir_delay.py +0 -0
  63. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/mixture/ir_effects.py +0 -0
  64. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/mixture/log_duration_and_sizes.py +0 -0
  65. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/mixture/mixdb.py +0 -0
  66. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/mixture/pad_audio.py +0 -0
  67. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/mixture/resample.py +0 -0
  68. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/mixture/sox_effects.py +0 -0
  69. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/mixture/sox_help.py +0 -0
  70. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/mixture/spectral_mask.py +0 -0
  71. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/mixture/truth.py +0 -0
  72. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/mixture/truth_functions/__init__.py +0 -0
  73. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/mixture/truth_functions/crm.py +0 -0
  74. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/mixture/truth_functions/energy.py +0 -0
  75. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/mixture/truth_functions/file.py +0 -0
  76. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/mixture/truth_functions/metadata.py +0 -0
  77. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/mixture/truth_functions/metrics.py +0 -0
  78. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/mixture/truth_functions/phoneme.py +0 -0
  79. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/mixture/truth_functions/sed.py +0 -0
  80. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/mixture/truth_functions/target.py +0 -0
  81. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/mkwav.py +0 -0
  82. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/onnx_predict.py +0 -0
  83. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/queries/__init__.py +0 -0
  84. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/queries/queries.py +0 -0
  85. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/speech/__init__.py +0 -0
  86. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/speech/l2arctic.py +0 -0
  87. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/speech/librispeech.py +0 -0
  88. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/speech/mcgill.py +0 -0
  89. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/speech/textgrid.py +0 -0
  90. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/speech/timit.py +0 -0
  91. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/speech/types.py +0 -0
  92. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/speech/vctk.py +0 -0
  93. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/speech/voxceleb.py +0 -0
  94. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/summarize_metric_spenh.py +0 -0
  95. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/utils/__init__.py +0 -0
  96. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/utils/asl_p56.py +0 -0
  97. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/utils/asr.py +0 -0
  98. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/utils/asr_functions/__init__.py +0 -0
  99. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/utils/asr_functions/aaware_whisper.py +0 -0
  100. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/utils/audio_devices.py +0 -0
  101. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/utils/braced_glob.py +0 -0
  102. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/utils/calculate_input_shape.py +0 -0
  103. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/utils/choice.py +0 -0
  104. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/utils/compress.py +0 -0
  105. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/utils/convert_string_to_number.py +0 -0
  106. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/utils/create_timestamp.py +0 -0
  107. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/utils/create_ts_name.py +0 -0
  108. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/utils/dataclass_from_dict.py +0 -0
  109. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/utils/db.py +0 -0
  110. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/utils/docstring.py +0 -0
  111. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/utils/energy_f.py +0 -0
  112. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/utils/engineering_number.py +0 -0
  113. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/utils/evaluate_random_rule.py +0 -0
  114. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/utils/get_frames_per_batch.py +0 -0
  115. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/utils/get_label_names.py +0 -0
  116. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/utils/grouper.py +0 -0
  117. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/utils/human_readable_size.py +0 -0
  118. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/utils/keyboard_interrupt.py +0 -0
  119. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/utils/load_object.py +0 -0
  120. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/utils/max_text_width.py +0 -0
  121. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/utils/model_utils.py +0 -0
  122. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/utils/numeric_conversion.py +0 -0
  123. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/utils/onnx_utils.py +0 -0
  124. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/utils/parallel.py +0 -0
  125. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/utils/path_info.py +0 -0
  126. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/utils/print_mixture_details.py +0 -0
  127. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/utils/rand.py +0 -0
  128. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/utils/ranges.py +0 -0
  129. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/utils/read_predict_data.py +0 -0
  130. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/utils/reshape.py +0 -0
  131. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/utils/seconds_to_hms.py +0 -0
  132. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/utils/stacked_complex.py +0 -0
  133. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/utils/stratified_shuffle_split.py +0 -0
  134. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/utils/tokenized_shell_vars.py +0 -0
  135. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/utils/write_audio.py +0 -0
  136. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/utils/yes_or_no.py +0 -0
  137. {sonusai-1.0.2 → sonusai-1.0.4}/sonusai/vars.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: sonusai
3
- Version: 1.0.2
3
+ Version: 1.0.4
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
@@ -36,6 +36,7 @@ Requires-Dist: pyyaml (>=6.0.2,<7.0.0)
36
36
  Requires-Dist: requests (>=2.32.3,<3.0.0)
37
37
  Requires-Dist: rich (>=13.9.4,<14.0.0)
38
38
  Requires-Dist: samplerate (>=0.2.1,<0.3.0)
39
+ Requires-Dist: scikit-learn (>=1.6.1,<2.0.0)
39
40
  Requires-Dist: sh (>=2.2.2,<3.0.0)
40
41
  Requires-Dist: soundfile (>=0.12.1,<0.13.0)
41
42
  Requires-Dist: sox (>=1.5.0,<2.0.0)
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "sonusai"
3
- version = "1.0.2"
3
+ version = "1.0.4"
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>"]
@@ -42,6 +42,7 @@ pyyaml = "^6.0.2"
42
42
  requests = "^2.32.3"
43
43
  rich = "^13.9.4"
44
44
  samplerate = "^0.2.1"
45
+ scikit-learn = "^1.6.1"
45
46
  sh = "^2.2.2"
46
47
  soundfile = "^0.12.1"
47
48
  sox = "^1.5.0"
@@ -91,6 +91,9 @@ def genmixdb(
91
91
  if len([file for file in source_files if file.category == "primary"]) == 0:
92
92
  raise RuntimeError("Canceled due to no primary sources")
93
93
 
94
+ if logging:
95
+ logger.info("Populating source file table")
96
+
94
97
  populate_source_file_table(location, source_files, test)
95
98
 
96
99
  if logging:
@@ -123,6 +126,9 @@ def genmixdb(
123
126
  ir_files = get_ir_files(config, show_progress=show_progress)
124
127
  logger.info("")
125
128
 
129
+ if logging:
130
+ logger.info("Populating impulse response file table")
131
+
126
132
  populate_impulse_response_file_table(location, ir_files, test)
127
133
 
128
134
  if logging:
@@ -308,7 +308,7 @@ def evaluate_sai_random_ir(mixdb: MixtureDatabase, text: str) -> str:
308
308
  return m.group(1)
309
309
 
310
310
  if re.match(rand_pattern, text):
311
- return f"ir {randint(0, mixdb.num_ir_files)}" # noqa: S311
311
+ return f"ir {randint(0, mixdb.num_ir_files - 1)}" # noqa: S311
312
312
 
313
313
  if re.match(rand_range_pattern, text):
314
314
  try:
@@ -437,6 +437,7 @@ def populate_mixture_table(
437
437
  # Populate source table
438
438
  if logging:
439
439
  logger.info("Populating source table")
440
+ # TODO: refactor this to not load all sources into list; maybe us UNIQUE table modifier?
440
441
  sources: list[tuple[str, int, float, bool, float, float, bool, int]] = []
441
442
  for mixture in mixtures:
442
443
  for source in mixture.all_sources.values():
@@ -577,7 +578,7 @@ def _initialize_mixture_gains(mixdb: MixtureDatabase, mixture: Mixture, sources_
577
578
  # Special case for zeroing out noise data
578
579
  mixture.all_sources[category].snr_gain = 0
579
580
  elif category != "primary":
580
- if sources_energy["primary"] == 0:
581
+ if sources_energy["primary"] == 0 or sources_energy[category] == 0:
581
582
  # Avoid divide-by-zero
582
583
  mixture.all_sources[category].snr_gain = 1
583
584
  else:
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
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes