sonusai 0.14.1__tar.gz → 0.14.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 (119) hide show
  1. {sonusai-0.14.1 → sonusai-0.14.2}/PKG-INFO +2 -1
  2. {sonusai-0.14.1 → sonusai-0.14.2}/pyproject.toml +2 -1
  3. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/mixture/audio.py +6 -2
  4. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/mixture/torchaudio_audio.py +2 -2
  5. {sonusai-0.14.1 → sonusai-0.14.2}/README.rst +0 -0
  6. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/__init__.py +0 -0
  7. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/aawscd_probwrite.py +0 -0
  8. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/calc_metric_spenh.py +0 -0
  9. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/data/__init__.py +0 -0
  10. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/data/genmixdb.yml +0 -0
  11. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/data/speech_ma01_01.wav +0 -0
  12. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/data/whitenoise.wav +0 -0
  13. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/data_generator/__init__.py +0 -0
  14. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/data_generator/dataset_from_mixdb.py +0 -0
  15. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/data_generator/keras_from_mixdb.py +0 -0
  16. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/data_generator/torch_from_mixdb.py +0 -0
  17. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/evaluate.py +0 -0
  18. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/genft.py +0 -0
  19. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/genmix.py +0 -0
  20. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/genmixdb.py +0 -0
  21. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/gentcst.py +0 -0
  22. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/keras_onnx.py +0 -0
  23. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/keras_predict.py +0 -0
  24. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/keras_train.py +0 -0
  25. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/lsdb.py +0 -0
  26. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/main.py +0 -0
  27. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/metrics/__init__.py +0 -0
  28. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/metrics/calc_class_weights.py +0 -0
  29. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/metrics/calc_optimal_thresholds.py +0 -0
  30. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/metrics/calc_pcm.py +0 -0
  31. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/metrics/calc_pesq.py +0 -0
  32. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/metrics/calc_sa_sdr.py +0 -0
  33. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/metrics/calc_sample_weights.py +0 -0
  34. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/metrics/calc_wer.py +0 -0
  35. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/metrics/calc_wsdr.py +0 -0
  36. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/metrics/class_summary.py +0 -0
  37. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/metrics/confusion_matrix_summary.py +0 -0
  38. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/metrics/one_hot.py +0 -0
  39. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/metrics/snr_summary.py +0 -0
  40. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/mixture/__init__.py +0 -0
  41. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/mixture/augmentation.py +0 -0
  42. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/mixture/class_count.py +0 -0
  43. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/mixture/config.py +0 -0
  44. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/mixture/constants.py +0 -0
  45. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/mixture/feature.py +0 -0
  46. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/mixture/generation.py +0 -0
  47. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/mixture/helpers.py +0 -0
  48. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/mixture/log_duration_and_sizes.py +0 -0
  49. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/mixture/mapped_snr_f.py +0 -0
  50. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/mixture/mixdb.py +0 -0
  51. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/mixture/sox_audio.py +0 -0
  52. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/mixture/sox_augmentation.py +0 -0
  53. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/mixture/spectral_mask.py +0 -0
  54. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/mixture/target_class_balancing.py +0 -0
  55. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/mixture/targets.py +0 -0
  56. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/mixture/tokenized_shell_vars.py +0 -0
  57. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/mixture/torchaudio_augmentation.py +0 -0
  58. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/mixture/truth.py +0 -0
  59. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/mixture/truth_functions/__init__.py +0 -0
  60. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/mixture/truth_functions/crm.py +0 -0
  61. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/mixture/truth_functions/data.py +0 -0
  62. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/mixture/truth_functions/energy.py +0 -0
  63. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/mixture/truth_functions/file.py +0 -0
  64. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/mixture/truth_functions/phoneme.py +0 -0
  65. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/mixture/truth_functions/sed.py +0 -0
  66. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/mixture/truth_functions/target.py +0 -0
  67. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/mixture/types.py +0 -0
  68. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/mkmanifest.py +0 -0
  69. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/mkwav.py +0 -0
  70. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/onnx_predict.py +0 -0
  71. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/plot.py +0 -0
  72. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/post_spenh_targetf.py +0 -0
  73. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/queries/__init__.py +0 -0
  74. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/queries/queries.py +0 -0
  75. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/torchl_predict.py +0 -0
  76. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/torchl_train.py +0 -0
  77. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/tplot.py +0 -0
  78. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/utils/__init__.py +0 -0
  79. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/utils/asl_p56.py +0 -0
  80. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/utils/asr.py +0 -0
  81. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/utils/asr_functions/__init__.py +0 -0
  82. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/utils/asr_functions/aaware_whisper.py +0 -0
  83. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/utils/asr_functions/aixplain_whisper.py +0 -0
  84. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/utils/asr_functions/data.py +0 -0
  85. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/utils/asr_functions/deepgram.py +0 -0
  86. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/utils/asr_functions/google.py +0 -0
  87. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/utils/asr_functions/whisper.py +0 -0
  88. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/utils/asr_manifest_functions/__init__.py +0 -0
  89. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/utils/asr_manifest_functions/data.py +0 -0
  90. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/utils/asr_manifest_functions/librispeech.py +0 -0
  91. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/utils/asr_manifest_functions/vctk_noisy_speech.py +0 -0
  92. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/utils/braced_glob.py +0 -0
  93. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/utils/calculate_input_shape.py +0 -0
  94. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/utils/create_ts_name.py +0 -0
  95. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/utils/dataclass_from_dict.py +0 -0
  96. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/utils/db.py +0 -0
  97. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/utils/energy_f.py +0 -0
  98. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/utils/engineering_number.py +0 -0
  99. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/utils/get_frames_per_batch.py +0 -0
  100. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/utils/get_label_names.py +0 -0
  101. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/utils/grouper.py +0 -0
  102. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/utils/human_readable_size.py +0 -0
  103. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/utils/keras_utils.py +0 -0
  104. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/utils/max_text_width.py +0 -0
  105. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/utils/numeric_conversion.py +0 -0
  106. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/utils/onnx_utils.py +0 -0
  107. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/utils/parallel.py +0 -0
  108. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/utils/print_mixture_details.py +0 -0
  109. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/utils/ranges.py +0 -0
  110. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/utils/read_mixture_data.py +0 -0
  111. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/utils/read_predict_data.py +0 -0
  112. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/utils/reshape.py +0 -0
  113. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/utils/seconds_to_hms.py +0 -0
  114. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/utils/stacked_complex.py +0 -0
  115. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/utils/stratified_shuffle_split.py +0 -0
  116. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/utils/trim_docstring.py +0 -0
  117. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/utils/wave.py +0 -0
  118. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/utils/yes_or_no.py +0 -0
  119. {sonusai-0.14.1 → sonusai-0.14.2}/sonusai/vars.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sonusai
3
- Version: 0.14.1
3
+ Version: 0.14.2
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
@@ -34,6 +34,7 @@ Requires-Dist: pystoi (>=0.3.3,<0.4.0)
34
34
  Requires-Dist: requests (>=2.31.0,<3.0.0)
35
35
  Requires-Dist: scikit-learn (>=1.3.1,<2.0.0)
36
36
  Requires-Dist: sh (>=2.0.6,<3.0.0)
37
+ Requires-Dist: soundfile (>=0.12.1,<0.13.0)
37
38
  Requires-Dist: sox (>=1.4.1,<2.0.0)
38
39
  Requires-Dist: speechrecognition (>=3.10.0,<4.0.0)
39
40
  Requires-Dist: sqlalchemy[mypy] (>=2.0.22,<3.0.0)
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "sonusai"
3
- version = "0.14.1"
3
+ version = "0.14.2"
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>"]
@@ -38,6 +38,7 @@ python = ">=3.9,<3.12"
38
38
  requests = "^2.31.0"
39
39
  scikit-learn = "^1.3.1"
40
40
  sh = "^2.0.6"
41
+ soundfile = "^0.12.1"
41
42
  sox = "^1.4.1"
42
43
  speechrecognition = "^3.10.0"
43
44
  sqlalchemy = {extras = ["mypy"], version = "^2.0.22"}
@@ -59,6 +59,7 @@ def get_duration(audio: AudioT) -> float:
59
59
  :return: Duration of audio in seconds
60
60
  """
61
61
  from .constants import SAMPLE_RATE
62
+
62
63
  return len(audio) / SAMPLE_RATE
63
64
 
64
65
 
@@ -66,14 +67,15 @@ def validate_input_file(input_filepath: str) -> None:
66
67
  from os.path import exists
67
68
  from os.path import splitext
68
69
 
69
- from torchaudio.utils.sox_utils import list_read_formats
70
+ from soundfile import available_formats
70
71
 
71
72
  from sonusai import SonusAIError
73
+
72
74
  if not exists(input_filepath):
73
75
  raise SonusAIError(f'input_filepath {input_filepath} does not exist.')
74
76
 
75
77
  ext = splitext(input_filepath)[1][1:].lower()
76
- read_formats = list_read_formats()
78
+ read_formats = [item.lower() for item in available_formats().keys()]
77
79
  if ext not in read_formats:
78
80
  raise SonusAIError(f'This installation of SoX cannot process .{ext} files')
79
81
 
@@ -86,6 +88,7 @@ def read_audio(name: Location) -> AudioT:
86
88
  :return: Array of time domain audio data
87
89
  """
88
90
  from .torchaudio_audio import read_torchaudio_audio
91
+
89
92
  return read_torchaudio_audio(name)
90
93
 
91
94
 
@@ -97,4 +100,5 @@ def read_ir(name: Location) -> ImpulseResponseData:
97
100
  :return: ImpulseResponseData object
98
101
  """
99
102
  from .torchaudio_audio import read_torchaudio_ir
103
+
100
104
  return read_torchaudio_ir(name)
@@ -21,7 +21,7 @@ def read_torchaudio_ir(name: Location) -> ImpulseResponseData:
21
21
 
22
22
  # Read impulse response data from audio file
23
23
  try:
24
- raw, sample_rate = torchaudio.load(expanded_name)
24
+ raw, sample_rate = torchaudio.load(expanded_name, backend='soundfile')
25
25
  except Exception as e:
26
26
  if name != expanded_name:
27
27
  raise SonusAIError(f'Error reading {name} (expanded: {expanded_name}): {e}')
@@ -58,7 +58,7 @@ def read_torchaudio_audio(name: Location) -> AudioT:
58
58
  expanded_name, _ = tokenized_expand(name)
59
59
 
60
60
  try:
61
- out, samplerate = torchaudio.load(expanded_name)
61
+ out, samplerate = torchaudio.load(expanded_name, backend='soundfile')
62
62
  out = torch.reshape(out[0, :], (1, out.size()[1]))
63
63
 
64
64
  if not samplerate == SAMPLE_RATE:
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