sonusai 0.19.6__py3-none-any.whl → 0.19.9__py3-none-any.whl
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.
- sonusai/__init__.py +1 -1
- sonusai/aawscd_probwrite.py +1 -1
- sonusai/calc_metric_spenh.py +1 -1
- sonusai/genft.py +29 -14
- sonusai/genmetrics.py +60 -42
- sonusai/genmix.py +41 -29
- sonusai/genmixdb.py +56 -64
- sonusai/metrics/calc_class_weights.py +1 -3
- sonusai/metrics/calc_optimal_thresholds.py +2 -2
- sonusai/metrics/calc_phase_distance.py +1 -1
- sonusai/metrics/calc_speech.py +6 -6
- sonusai/metrics/class_summary.py +6 -15
- sonusai/metrics/confusion_matrix_summary.py +11 -27
- sonusai/metrics/one_hot.py +3 -3
- sonusai/metrics/snr_summary.py +7 -7
- sonusai/mixture/__init__.py +2 -17
- sonusai/mixture/augmentation.py +5 -6
- sonusai/mixture/class_count.py +1 -1
- sonusai/mixture/config.py +36 -46
- sonusai/mixture/data_io.py +30 -1
- sonusai/mixture/datatypes.py +29 -40
- sonusai/mixture/db_datatypes.py +1 -1
- sonusai/mixture/feature.py +3 -23
- sonusai/mixture/generation.py +161 -204
- sonusai/mixture/helpers.py +29 -187
- sonusai/mixture/mixdb.py +386 -159
- sonusai/mixture/soundfile_audio.py +1 -1
- sonusai/mixture/sox_audio.py +4 -4
- sonusai/mixture/sox_augmentation.py +1 -1
- sonusai/mixture/target_class_balancing.py +9 -11
- sonusai/mixture/targets.py +23 -20
- sonusai/mixture/torchaudio_audio.py +18 -7
- sonusai/mixture/torchaudio_augmentation.py +3 -4
- sonusai/mixture/truth.py +21 -34
- sonusai/mixture/truth_functions/__init__.py +6 -0
- sonusai/mixture/truth_functions/crm.py +51 -37
- sonusai/mixture/truth_functions/energy.py +95 -50
- sonusai/mixture/truth_functions/file.py +12 -8
- sonusai/mixture/truth_functions/metadata.py +24 -0
- sonusai/mixture/truth_functions/metrics.py +28 -0
- sonusai/mixture/truth_functions/phoneme.py +4 -5
- sonusai/mixture/truth_functions/sed.py +32 -23
- sonusai/mixture/truth_functions/target.py +62 -29
- sonusai/mkwav.py +20 -19
- sonusai/queries/queries.py +9 -15
- sonusai/speech/l2arctic.py +6 -2
- sonusai/summarize_metric_spenh.py +1 -1
- sonusai/utils/__init__.py +1 -0
- sonusai/utils/asr_functions/aaware_whisper.py +1 -1
- sonusai/utils/audio_devices.py +27 -18
- sonusai/utils/docstring.py +6 -3
- sonusai/utils/energy_f.py +5 -3
- sonusai/utils/human_readable_size.py +6 -6
- sonusai/utils/load_object.py +15 -0
- sonusai/utils/onnx_utils.py +2 -2
- sonusai/utils/print_mixture_details.py +3 -3
- {sonusai-0.19.6.dist-info → sonusai-0.19.9.dist-info}/METADATA +2 -2
- {sonusai-0.19.6.dist-info → sonusai-0.19.9.dist-info}/RECORD +60 -58
- sonusai/mixture/truth_functions/datatypes.py +0 -37
- {sonusai-0.19.6.dist-info → sonusai-0.19.9.dist-info}/WHEEL +0 -0
- {sonusai-0.19.6.dist-info → sonusai-0.19.9.dist-info}/entry_points.txt +0 -0
sonusai/mkwav.py
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
"""sonusai mkwav
|
2
2
|
|
3
|
-
usage: mkwav [-
|
3
|
+
usage: mkwav [-hvtsn] [-i MIXID] 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
|
-t, --target Write target file.
|
10
|
+
-s, --targets Write targets files.
|
10
11
|
-n, --noise Write noise file.
|
11
12
|
|
12
13
|
The mkwav command creates WAV files from a SonusAI database.
|
@@ -17,9 +18,10 @@ Inputs:
|
|
17
18
|
|
18
19
|
Outputs the following to the mixture database directory:
|
19
20
|
<id>
|
20
|
-
mixture.wav:
|
21
|
-
target.wav:
|
22
|
-
|
21
|
+
mixture.wav: mixture
|
22
|
+
target.wav: target (optional)
|
23
|
+
targets<n>.wav: targets <n> (optional)
|
24
|
+
noise.wav: noise (optional)
|
23
25
|
metadata.txt
|
24
26
|
mkwav.log
|
25
27
|
|
@@ -40,7 +42,7 @@ def signal_handler(_sig, _frame):
|
|
40
42
|
signal.signal(signal.SIGINT, signal_handler)
|
41
43
|
|
42
44
|
|
43
|
-
def _process_mixture(m_id: int, location: str, write_target: bool, write_noise: bool) -> None:
|
45
|
+
def _process_mixture(m_id: int, location: str, write_target: bool, write_targets: bool, write_noise: bool) -> None:
|
44
46
|
from os.path import join
|
45
47
|
|
46
48
|
from sonusai.mixture import MixtureDatabase
|
@@ -50,16 +52,18 @@ def _process_mixture(m_id: int, location: str, write_target: bool, write_noise:
|
|
50
52
|
|
51
53
|
mixdb = MixtureDatabase(location)
|
52
54
|
|
53
|
-
|
54
|
-
location = join(mixdb.location, mixture.name)
|
55
|
+
location = join(mixdb.location, "mixture", mixdb.mixture(m_id).name)
|
55
56
|
|
56
57
|
write_audio(name=join(location, "mixture.wav"), audio=float_to_int16(mixdb.mixture_mixture(m_id)))
|
57
58
|
if write_target:
|
58
59
|
write_audio(name=join(location, "target.wav"), audio=float_to_int16(mixdb.mixture_target(m_id)))
|
60
|
+
if write_targets:
|
61
|
+
for idx, target in enumerate(mixdb.mixture_targets(m_id)):
|
62
|
+
write_audio(name=join(location, f"targets{idx}.wav"), audio=float_to_int16(target))
|
59
63
|
if write_noise:
|
60
64
|
write_audio(name=join(location, "noise.wav"), audio=float_to_int16(mixdb.mixture_noise(m_id)))
|
61
65
|
|
62
|
-
write_mixture_metadata(mixdb,
|
66
|
+
write_mixture_metadata(mixdb, m_id)
|
63
67
|
|
64
68
|
|
65
69
|
def main() -> None:
|
@@ -73,6 +77,7 @@ def main() -> None:
|
|
73
77
|
verbose = args["--verbose"]
|
74
78
|
mixid = args["--mixid"]
|
75
79
|
write_target = args["--target"]
|
80
|
+
write_targets = args["--targets"]
|
76
81
|
write_noise = args["--noise"]
|
77
82
|
location = args["LOC"]
|
78
83
|
|
@@ -80,14 +85,12 @@ def main() -> None:
|
|
80
85
|
from functools import partial
|
81
86
|
from os.path import join
|
82
87
|
|
83
|
-
import sonusai
|
84
88
|
from sonusai import create_file_handler
|
85
89
|
from sonusai import initial_log_messages
|
86
90
|
from sonusai import logger
|
87
91
|
from sonusai import update_console_handler
|
88
92
|
from sonusai.mixture import MixtureDatabase
|
89
93
|
from sonusai.mixture import check_audio_files_exist
|
90
|
-
from sonusai.utils import human_readable_size
|
91
94
|
from sonusai.utils import par_track
|
92
95
|
from sonusai.utils import seconds_to_hms
|
93
96
|
from sonusai.utils import track
|
@@ -103,7 +106,6 @@ def main() -> None:
|
|
103
106
|
mixid = mixdb.mixids_to_list(mixid)
|
104
107
|
|
105
108
|
total_samples = mixdb.total_samples(mixid)
|
106
|
-
duration = total_samples / sonusai.mixture.SAMPLE_RATE
|
107
109
|
|
108
110
|
logger.info("")
|
109
111
|
logger.info(f"Found {len(mixid):,} mixtures to process")
|
@@ -113,7 +115,13 @@ def main() -> None:
|
|
113
115
|
|
114
116
|
progress = track(total=len(mixid))
|
115
117
|
par_track(
|
116
|
-
partial(
|
118
|
+
partial(
|
119
|
+
_process_mixture,
|
120
|
+
location=location,
|
121
|
+
write_target=write_target,
|
122
|
+
write_targets=write_targets,
|
123
|
+
write_noise=write_noise,
|
124
|
+
),
|
117
125
|
mixid,
|
118
126
|
progress=progress,
|
119
127
|
)
|
@@ -121,13 +129,6 @@ def main() -> None:
|
|
121
129
|
|
122
130
|
logger.info(f"Wrote {len(mixid)} mixtures to {location}")
|
123
131
|
logger.info("")
|
124
|
-
logger.info(f"Duration: {seconds_to_hms(seconds=duration)}")
|
125
|
-
logger.info(f"mixture: {human_readable_size(total_samples * 2, 1)}")
|
126
|
-
if write_target:
|
127
|
-
logger.info(f"target: {human_readable_size(total_samples * 2, 1)}")
|
128
|
-
if write_noise:
|
129
|
-
logger.info(f"noise: {human_readable_size(total_samples * 2, 1)}")
|
130
|
-
|
131
132
|
end_time = time.monotonic()
|
132
133
|
logger.info(f"Completed in {seconds_to_hms(seconds=end_time - start_time)}")
|
133
134
|
logger.info("")
|
sonusai/queries/queries.py
CHANGED
@@ -5,6 +5,10 @@ from sonusai.mixture.datatypes import GeneralizedIDs
|
|
5
5
|
from sonusai.mixture.mixdb import MixtureDatabase
|
6
6
|
|
7
7
|
|
8
|
+
def _true_predicate(_: Any) -> bool:
|
9
|
+
return True
|
10
|
+
|
11
|
+
|
8
12
|
def get_mixids_from_mixture_field_predicate(
|
9
13
|
mixdb: MixtureDatabase,
|
10
14
|
field: str,
|
@@ -20,9 +24,7 @@ def get_mixids_from_mixture_field_predicate(
|
|
20
24
|
mixid_out = mixdb.mixids_to_list(mixids)
|
21
25
|
|
22
26
|
if predicate is None:
|
23
|
-
|
24
|
-
def predicate(_: Any) -> bool:
|
25
|
-
return True
|
27
|
+
predicate = _true_predicate
|
26
28
|
|
27
29
|
criteria_set = set()
|
28
30
|
for m_id in mixid_out:
|
@@ -70,9 +72,7 @@ def get_mixids_from_truth_configs_field_predicate(
|
|
70
72
|
values = get_all_truth_configs_values_from_field(mixdb, field)
|
71
73
|
|
72
74
|
if predicate is None:
|
73
|
-
|
74
|
-
def predicate(_: Any) -> bool:
|
75
|
-
return True
|
75
|
+
predicate = _true_predicate
|
76
76
|
|
77
77
|
# Get only values of interest
|
78
78
|
values = [value for value in values if predicate(value)]
|
@@ -118,7 +118,7 @@ def get_all_truth_configs_values_from_field(mixdb: MixtureDatabase, field: str)
|
|
118
118
|
value = getattr(truth_config, field)
|
119
119
|
else:
|
120
120
|
value = getattr(truth_config.config, field, None)
|
121
|
-
if isinstance(value,
|
121
|
+
if not isinstance(value, list):
|
122
122
|
value = [value]
|
123
123
|
result.extend(value)
|
124
124
|
|
@@ -164,17 +164,13 @@ def get_mixids_from_snr(
|
|
164
164
|
- keys are the SNRs
|
165
165
|
- values are lists of the mixids that match the SNR
|
166
166
|
"""
|
167
|
-
from typing import Any
|
168
|
-
|
169
167
|
mixid_out = mixdb.mixids_to_list(mixids)
|
170
168
|
|
171
169
|
# Get all the SNRs
|
172
170
|
snrs = [float(snr) for snr in mixdb.all_snrs if not snr.is_random]
|
173
171
|
|
174
172
|
if predicate is None:
|
175
|
-
|
176
|
-
def predicate(_: Any) -> bool:
|
177
|
-
return True
|
173
|
+
predicate = _true_predicate
|
178
174
|
|
179
175
|
# Get only the SNRs of interest (filter on predicate)
|
180
176
|
snrs = [snr for snr in snrs if predicate(snr)]
|
@@ -201,9 +197,7 @@ def get_mixids_from_class_indices(
|
|
201
197
|
mixid_out = mixdb.mixids_to_list(mixids)
|
202
198
|
|
203
199
|
if predicate is None:
|
204
|
-
|
205
|
-
def predicate(_: Any) -> bool:
|
206
|
-
return True
|
200
|
+
predicate = _true_predicate
|
207
201
|
|
208
202
|
criteria_set = set()
|
209
203
|
for m_id in mixid_out:
|
sonusai/speech/l2arctic.py
CHANGED
@@ -54,6 +54,7 @@ def load_phonemes(audio: str | os.PathLike[str]) -> list[TimeAlignedType] | None
|
|
54
54
|
|
55
55
|
def _load_ta(audio: str | os.PathLike[str], tier: str) -> list[TimeAlignedType] | None:
|
56
56
|
from praatio import textgrid
|
57
|
+
from praatio.utilities.constants import Interval
|
57
58
|
|
58
59
|
file = Path(audio).parent.parent / "textgrid" / (Path(audio).stem + ".TextGrid")
|
59
60
|
if not os.path.exists(file):
|
@@ -65,7 +66,8 @@ def _load_ta(audio: str | os.PathLike[str], tier: str) -> list[TimeAlignedType]
|
|
65
66
|
|
66
67
|
entries: list[TimeAlignedType] = []
|
67
68
|
for entry in tg.getTier(tier).entries:
|
68
|
-
|
69
|
+
if isinstance(entry, Interval):
|
70
|
+
entries.append(TimeAlignedType(text=entry.label, start=entry.start, end=entry.end))
|
69
71
|
|
70
72
|
return entries
|
71
73
|
|
@@ -79,6 +81,7 @@ def load_annotations(
|
|
79
81
|
:return: A dictionary of a list of TimeAlignedType objects.
|
80
82
|
"""
|
81
83
|
from praatio import textgrid
|
84
|
+
from praatio.utilities.constants import Interval
|
82
85
|
|
83
86
|
file = Path(audio).parent.parent / "annotation" / (Path(audio).stem + ".TextGrid")
|
84
87
|
if not os.path.exists(file):
|
@@ -89,7 +92,8 @@ def load_annotations(
|
|
89
92
|
for tier in tg.tierNames:
|
90
93
|
entries: list[TimeAlignedType] = []
|
91
94
|
for entry in tg.getTier(tier).entries:
|
92
|
-
|
95
|
+
if isinstance(entry, Interval):
|
96
|
+
entries.append(TimeAlignedType(text=entry.label, start=entry.start, end=entry.end))
|
93
97
|
result[tier] = entries
|
94
98
|
|
95
99
|
return result
|
@@ -48,7 +48,7 @@ def summarize_metric_spenh(location: str, by: str = "MIXID", reverse: bool = Fal
|
|
48
48
|
data.append(line.strip().split())
|
49
49
|
break
|
50
50
|
|
51
|
-
df = pd.DataFrame(data, columns=header)
|
51
|
+
df = pd.DataFrame(data, columns=header) # pyright: ignore [reportArgumentType]
|
52
52
|
df[header[0:-2]] = df[header[0:-2]].apply(pd.to_numeric, errors="coerce")
|
53
53
|
return df.sort_values(by=by, ascending=not reverse).to_string(index=False)
|
54
54
|
|
sonusai/utils/__init__.py
CHANGED
@@ -27,6 +27,7 @@ from .get_frames_per_batch import get_frames_per_batch
|
|
27
27
|
from .get_label_names import get_label_names
|
28
28
|
from .grouper import grouper
|
29
29
|
from .human_readable_size import human_readable_size
|
30
|
+
from .load_object import load_object
|
30
31
|
from .max_text_width import max_text_width
|
31
32
|
from .model_utils import import_module
|
32
33
|
from .numeric_conversion import float_to_int16
|
@@ -20,7 +20,7 @@ def aaware_whisper(audio: AudioT, **_config) -> ASRResult:
|
|
20
20
|
|
21
21
|
url = getenv("AAWARE_WHISPER_URL")
|
22
22
|
if url is None:
|
23
|
-
raise
|
23
|
+
raise OSError("AAWARE_WHISPER_URL environment variable does not exist")
|
24
24
|
url += "/asr?task=transcribe&language=en&encode=true&output=json"
|
25
25
|
|
26
26
|
with tempfile.TemporaryDirectory() as tmp:
|
sonusai/utils/audio_devices.py
CHANGED
@@ -4,14 +4,17 @@ import pyaudio
|
|
4
4
|
def get_input_device_index_by_name(p: pyaudio.PyAudio, name: str | None = None) -> int:
|
5
5
|
info = p.get_host_api_info_by_index(0)
|
6
6
|
device_count = info.get("deviceCount")
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
7
|
+
if isinstance(device_count, int):
|
8
|
+
for i in range(0, device_count):
|
9
|
+
device_info = p.get_device_info_by_host_api_device_index(0, i)
|
10
|
+
if name is None:
|
11
|
+
device_name = None
|
12
|
+
else:
|
13
|
+
device_name = device_info.get("name")
|
14
|
+
if isinstance(device_name, str) or device_name is None:
|
15
|
+
input_channels = device_info.get("maxInputChannels")
|
16
|
+
if name == device_name and isinstance(input_channels, int) and input_channels > 0:
|
17
|
+
return i
|
15
18
|
|
16
19
|
raise ValueError(f"Could not find {name}")
|
17
20
|
|
@@ -20,11 +23,14 @@ def get_input_devices(p: pyaudio.PyAudio) -> list[str]:
|
|
20
23
|
names = []
|
21
24
|
info = p.get_host_api_info_by_index(0)
|
22
25
|
device_count = info.get("deviceCount")
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
26
|
+
if isinstance(device_count, int):
|
27
|
+
for i in range(0, device_count):
|
28
|
+
device_info = p.get_device_info_by_host_api_device_index(0, i)
|
29
|
+
device_name = device_info.get("name")
|
30
|
+
if isinstance(device_name, str):
|
31
|
+
input_channels = device_info.get("maxInputChannels")
|
32
|
+
if isinstance(input_channels, int) and input_channels > 0:
|
33
|
+
names.append(device_name)
|
28
34
|
|
29
35
|
return names
|
30
36
|
|
@@ -32,10 +38,13 @@ def get_input_devices(p: pyaudio.PyAudio) -> list[str]:
|
|
32
38
|
def get_default_input_device(p: pyaudio.PyAudio) -> str:
|
33
39
|
info = p.get_host_api_info_by_index(0)
|
34
40
|
device_count = info.get("deviceCount")
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
41
|
+
if isinstance(device_count, int):
|
42
|
+
for i in range(0, device_count):
|
43
|
+
device_info = p.get_device_info_by_host_api_device_index(0, i)
|
44
|
+
device_name = device_info.get("name")
|
45
|
+
if isinstance(device_name, str):
|
46
|
+
input_channels = device_info.get("maxInputChannels")
|
47
|
+
if isinstance(input_channels, int) and input_channels > 0:
|
48
|
+
return device_name
|
40
49
|
|
41
50
|
raise ValueError("No input audio devices found")
|
sonusai/utils/docstring.py
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
def trim_docstring(docstring: str) -> str:
|
1
|
+
def trim_docstring(docstring: str | None) -> str:
|
2
2
|
"""Trim whitespace from docstring"""
|
3
3
|
from sys import maxsize
|
4
4
|
|
@@ -30,11 +30,14 @@ def trim_docstring(docstring: str) -> str:
|
|
30
30
|
return "\n".join(trimmed)
|
31
31
|
|
32
32
|
|
33
|
-
def add_commands_to_docstring(docstring: str, plugin_docstrings: list[str]) -> str:
|
33
|
+
def add_commands_to_docstring(docstring: str | None, plugin_docstrings: list[str]) -> str:
|
34
34
|
"""Add commands to docstring"""
|
35
35
|
import sonusai
|
36
36
|
|
37
|
-
|
37
|
+
if not docstring:
|
38
|
+
lines = []
|
39
|
+
else:
|
40
|
+
lines = docstring.splitlines()
|
38
41
|
|
39
42
|
start = lines.index("The sonusai commands are:")
|
40
43
|
end = lines.index("", start)
|
sonusai/utils/energy_f.py
CHANGED
@@ -29,14 +29,16 @@ def compute_energy_f(
|
|
29
29
|
if transform is None:
|
30
30
|
raise ValueError("Must provide ForwardTransform object")
|
31
31
|
|
32
|
-
|
32
|
+
_frequency_domain = transform.execute_all(torch.from_numpy(time_domain))[0].numpy()
|
33
|
+
else:
|
34
|
+
_frequency_domain = frequency_domain
|
33
35
|
|
34
|
-
frames, bins =
|
36
|
+
frames, bins = _frequency_domain.shape
|
35
37
|
result = np.empty((frames, bins), dtype=np.float32)
|
36
38
|
|
37
39
|
for f in range(frames):
|
38
40
|
for b in range(bins):
|
39
|
-
value =
|
41
|
+
value = _frequency_domain[f, b]
|
40
42
|
result[f, b] = np.real(value) * np.real(value) + np.imag(value) * np.imag(value)
|
41
43
|
|
42
44
|
return result
|
@@ -1,7 +1,7 @@
|
|
1
|
-
def human_readable_size(
|
1
|
+
def human_readable_size(num: float, decimal_places: int = 3, suffix: str = "B") -> str:
|
2
2
|
"""Convert number into string with units"""
|
3
|
-
for unit in
|
4
|
-
if
|
5
|
-
|
6
|
-
|
7
|
-
return f"{
|
3
|
+
for unit in ("", "k", "M", "G", "T", "P", "E", "Z"):
|
4
|
+
if abs(num) < 1024.0:
|
5
|
+
return f"{num:.{decimal_places}f} {unit}{suffix}"
|
6
|
+
num /= 1024.0
|
7
|
+
return f"{num:.{decimal_places}f} Y{suffix}"
|
@@ -0,0 +1,15 @@
|
|
1
|
+
from functools import lru_cache
|
2
|
+
from typing import Any
|
3
|
+
|
4
|
+
|
5
|
+
@lru_cache
|
6
|
+
def load_object(name: str) -> Any:
|
7
|
+
"""Load an object from a pickle file (with LRU caching)"""
|
8
|
+
import pickle
|
9
|
+
from os.path import exists
|
10
|
+
|
11
|
+
if exists(name):
|
12
|
+
with open(name, "rb") as f:
|
13
|
+
return pickle.load(f) # noqa: S301
|
14
|
+
|
15
|
+
raise FileNotFoundError(name)
|
sonusai/utils/onnx_utils.py
CHANGED
@@ -3,8 +3,8 @@ from collections.abc import Sequence
|
|
3
3
|
from onnx import ModelProto
|
4
4
|
from onnx import ValueInfoProto
|
5
5
|
from onnxruntime import InferenceSession
|
6
|
-
from onnxruntime import NodeArg
|
7
|
-
from onnxruntime import SessionOptions
|
6
|
+
from onnxruntime import NodeArg # pyright: ignore [reportAttributeAccessIssue]
|
7
|
+
from onnxruntime import SessionOptions # pyright: ignore [reportAttributeAccessIssue]
|
8
8
|
|
9
9
|
REQUIRED_HPARAMS = (
|
10
10
|
"feature",
|
@@ -37,10 +37,10 @@ def print_mixture_details(
|
|
37
37
|
print_fn(f'{" Samples":{desc_len}} {mixture.samples}')
|
38
38
|
print_fn(f'{" Feature frames":{desc_len}} {mixdb.mixture_feature_frames(mixid)}')
|
39
39
|
print_fn(f'{" Noise file":{desc_len}} {noise_file.name}')
|
40
|
-
noise_offset_percent = int(np.round(100 * mixture.
|
41
|
-
print_fn(f'{" Noise offset":{desc_len}} {mixture.
|
40
|
+
noise_offset_percent = int(np.round(100 * mixture.noise_offset / float(noise_file.duration * SAMPLE_RATE)))
|
41
|
+
print_fn(f'{" Noise offset":{desc_len}} {mixture.noise_offset} samples ({noise_offset_percent}%)')
|
42
42
|
print_fn(f'{" SNR":{desc_len}} {mixture.snr} dB{" (random)" if mixture.snr.is_random else ""}')
|
43
|
-
print_fn(f'{" Target gain":{desc_len}} {[target.gain for target in mixture.targets]}')
|
43
|
+
print_fn(f'{" Target gain":{desc_len}} {[target.gain if not mixture.is_noise_only else 0 for target in mixture.targets]}')
|
44
44
|
print_fn(f'{" Target SNR gain":{desc_len}} {mixture.target_snr_gain}')
|
45
45
|
print_fn(f'{" Noise SNR gain":{desc_len}} {mixture.noise_snr_gain}')
|
46
46
|
print_fn("")
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: sonusai
|
3
|
-
Version: 0.19.
|
3
|
+
Version: 0.19.9
|
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
|
@@ -27,7 +27,7 @@ Requires-Dist: pandas (>=2.2.3,<3.0.0)
|
|
27
27
|
Requires-Dist: pesq (>=0.0.4,<0.0.5)
|
28
28
|
Requires-Dist: praatio (>=6.2.0,<7.0.0)
|
29
29
|
Requires-Dist: psutil (>=6.0.0,<7.0.0)
|
30
|
-
Requires-Dist: pyaaware (>=1.
|
30
|
+
Requires-Dist: pyaaware (>=1.6.3,<2.0.0)
|
31
31
|
Requires-Dist: pyaudio (>=0.2.14,<0.3.0)
|
32
32
|
Requires-Dist: pydub (>=0.25.1,<0.26.0)
|
33
33
|
Requires-Dist: pystoi (>=0.4.1,<0.5.0)
|
@@ -1,7 +1,7 @@
|
|
1
|
-
sonusai/__init__.py,sha256=
|
2
|
-
sonusai/aawscd_probwrite.py,sha256=
|
1
|
+
sonusai/__init__.py,sha256=NSb0bvmAh6Rm2MDtchpAGsg8a3BrmVnShYb-vC_emH8,2802
|
2
|
+
sonusai/aawscd_probwrite.py,sha256=QZLMQrmPr3OjZ06buyYDwlnk9YPCpyr4KHkBjPsiqjU,3700
|
3
3
|
sonusai/audiofe.py,sha256=iFdthh4UrOvziT8urjrjD7dACWZPQz9orM5bVAW3WSQ,11269
|
4
|
-
sonusai/calc_metric_spenh.py,sha256=
|
4
|
+
sonusai/calc_metric_spenh.py,sha256=NTqYBNDR6LTSdDA8s4WCSEwajE3-fNJg1TUzhNzJC9g,46719
|
5
5
|
sonusai/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
6
6
|
sonusai/data/genmixdb.yml,sha256=U_kLbE7gZ5rA7yNSB2NW7eK5dnYP5grJVMR321VMLt8,940
|
7
7
|
sonusai/data/speech_ma01_01.wav,sha256=PK0vMKg-NR6rPE3KouxHGF6PKXnJCr7AwjMqfu98LUA,76644
|
@@ -12,68 +12,69 @@ sonusai/deprecated/tplot.py,sha256=0p238DvTaP4oU9y-dp0JdLaTV4TKrooAwbx7zdz_QAc,1
|
|
12
12
|
sonusai/doc/__init__.py,sha256=KyQ26Um0RM8A3GYsb_tbFH64RwpoAw6lja2f_moUWas,33
|
13
13
|
sonusai/doc/doc.py,sha256=VZXauwbOb-VIufWw-lu0yfrd6jMRPeFeVPaaEjZNvn4,18881
|
14
14
|
sonusai/doc.py,sha256=zSmXpioB0YS_5-7kqfS5cr--veSaXkxRKzldId9Hyoc,878
|
15
|
-
sonusai/genft.py,sha256=
|
16
|
-
sonusai/genmetrics.py,sha256=
|
17
|
-
sonusai/genmix.py,sha256=
|
18
|
-
sonusai/genmixdb.py,sha256=
|
15
|
+
sonusai/genft.py,sha256=TqtmexKw7tZsugU1DbZ3fY7_YZ2hFlIU-ema6f0LRgQ,5586
|
16
|
+
sonusai/genmetrics.py,sha256=RiEYmkRl0yVCIr9PHkKRqEG68WR77pP9WpWAYeKnMLE,5723
|
17
|
+
sonusai/genmix.py,sha256=pugp74prksf4ZiJYMXWg2l3v48Qqi9KpP2WhPEBpZOU,6702
|
18
|
+
sonusai/genmixdb.py,sha256=gUF_9dGfuWRCmHtCoXZRrgCMejz46A5KhWoEh31laqc,18724
|
19
19
|
sonusai/lsdb.py,sha256=0HOGDDndB3LT9cz9AaxKIpt9vslAoSP4F239gply4Xg,5149
|
20
20
|
sonusai/main.py,sha256=HbnEia1B1-Z-mlHkLfojH8aj9GIpL1Btw3oH60T_CCQ,2590
|
21
21
|
sonusai/metrics/__init__.py,sha256=ssV6JEK_oklRSocsp6HMcG-GtJvV8IkRQtdKhHHmwU8,878
|
22
22
|
sonusai/metrics/calc_audio_stats.py,sha256=IHgYEPaob_Nw35SaH3tyHp7Wwju4f-2-BJZ99JyeLmc,1572
|
23
|
-
sonusai/metrics/calc_class_weights.py,sha256=
|
24
|
-
sonusai/metrics/calc_optimal_thresholds.py,sha256=
|
23
|
+
sonusai/metrics/calc_class_weights.py,sha256=SUOCdM4w03rFpyxAriPnPwCtEEFsAH3WxpK9N_fupwo,3637
|
24
|
+
sonusai/metrics/calc_optimal_thresholds.py,sha256=0JOqU__doeOpNtgEZgeO1Kg7pttJRpITTVmqLU6TadY,3513
|
25
25
|
sonusai/metrics/calc_pcm.py,sha256=yBQV9UJ1GK5f4c_8TNABMtZR-xyStKJCsSTT0FQGa50,1886
|
26
26
|
sonusai/metrics/calc_pesq.py,sha256=dCztUTaPyyjkUI2DpejqhiPzQv4FOtigzffFnDXDs-M,949
|
27
|
-
sonusai/metrics/calc_phase_distance.py,sha256
|
27
|
+
sonusai/metrics/calc_phase_distance.py,sha256=MFuBtGXb5qfQvRVciJ0Soz1w0GMSeJLBJud-aK4Loow,1870
|
28
28
|
sonusai/metrics/calc_sa_sdr.py,sha256=IdCzlQ_w94A3eK42t-gy_DrFN_tziwfDjTU6-WKuCFs,2531
|
29
29
|
sonusai/metrics/calc_sample_weights.py,sha256=0O2EH1-FKlCa0HFgKPUF1BJiknR1hCH7zLbXnoXH7Ag,945
|
30
30
|
sonusai/metrics/calc_segsnr_f.py,sha256=-ncM0OGRcOBDh2PnGsQOQccHs1QXHBTd3eCv4YpF3fs,2923
|
31
|
-
sonusai/metrics/calc_speech.py,sha256=
|
31
|
+
sonusai/metrics/calc_speech.py,sha256=3Gs6lmEaZj7XPZYuQnal2_Wa-z-6naktSfLRnl0H53g,14754
|
32
32
|
sonusai/metrics/calc_wer.py,sha256=1MQYMx8ldHeodtJEtGibvDKhvSaGe6DBmZV4L8qOMgg,2362
|
33
33
|
sonusai/metrics/calc_wsdr.py,sha256=vcALY-zuhyThRa1QMz2qW8L9kSBc2v32gV9u8bV7VaM,2556
|
34
|
-
sonusai/metrics/class_summary.py,sha256=
|
35
|
-
sonusai/metrics/confusion_matrix_summary.py,sha256=
|
36
|
-
sonusai/metrics/one_hot.py,sha256=
|
37
|
-
sonusai/metrics/snr_summary.py,sha256=
|
38
|
-
sonusai/mixture/__init__.py,sha256=
|
34
|
+
sonusai/metrics/class_summary.py,sha256=ZA7zNgwBpmTs1TP_t4jRT0pWnDnATC_up_8qE4aH-do,2809
|
35
|
+
sonusai/metrics/confusion_matrix_summary.py,sha256=zBL_Ke7wF6oKtrKZPr0fsyF_taofdjxBlZmKodu0xUA,3143
|
36
|
+
sonusai/metrics/one_hot.py,sha256=hmuyh-9tpRjb_oyqU3WqZ14zItpRJQfcqBDKJeb5H9I,13930
|
37
|
+
sonusai/metrics/snr_summary.py,sha256=t8Fi_8WtboTi8flkZuOiHq9H3-nIELx4AKvnm-qvxLQ,5785
|
38
|
+
sonusai/mixture/__init__.py,sha256=ccz_UpB7Rh6wUB7uwLgNhciMZhKE9Qt9ICLyjq08kxs,5126
|
39
39
|
sonusai/mixture/audio.py,sha256=Tg0-HzSgZDttKwWwONqgK6qK4maTSmWcfiL1atZcIXQ,2390
|
40
|
-
sonusai/mixture/augmentation.py,sha256=
|
41
|
-
sonusai/mixture/class_count.py,sha256=
|
42
|
-
sonusai/mixture/config.py,sha256=
|
40
|
+
sonusai/mixture/augmentation.py,sha256=s8QlPHnFJOblRU59fMQ-Zqysiv4OUJ7CxLRcV81lnaA,10407
|
41
|
+
sonusai/mixture/class_count.py,sha256=zcC3BDYMPN6wJYmO1RcOuqmrnTQIbMSznl33oN3e2sc,597
|
42
|
+
sonusai/mixture/config.py,sha256=g5ZmOhFYqmEdRQYSgfDIZ9VM0QiTwBqk7vIyAvxnPMo,24211
|
43
43
|
sonusai/mixture/constants.py,sha256=fXcWuSI4YZOAuncLGEUeEW9WWNZeN-6mI8LFNILwyTc,1494
|
44
|
-
sonusai/mixture/data_io.py,sha256=
|
45
|
-
sonusai/mixture/datatypes.py,sha256=
|
46
|
-
sonusai/mixture/db_datatypes.py,sha256=
|
44
|
+
sonusai/mixture/data_io.py,sha256=KZGqhHd9_ucAfZEAXPIc5XL3aHYgdV5CyqaBx5_t8OM,5551
|
45
|
+
sonusai/mixture/datatypes.py,sha256=xNDBWFTVQ3plJ7qHKzrXyV4pffPYuf1xMVqBsR40n4o,10487
|
46
|
+
sonusai/mixture/db_datatypes.py,sha256=kvdUOMS6Pkkj9AmxCiq6zM8x7jbPPi933tVaXRxbTdQ,1534
|
47
47
|
sonusai/mixture/eq_rule_is_valid.py,sha256=O3gCAs_0hpxENK5b7kxxpDmOpKHlXGBWuLGT_97ARSM,1210
|
48
|
-
sonusai/mixture/feature.py,sha256=
|
49
|
-
sonusai/mixture/generation.py,sha256=
|
50
|
-
sonusai/mixture/helpers.py,sha256=
|
48
|
+
sonusai/mixture/feature.py,sha256=L0bPFG0RO-CrrtTStUMt_14euYsVo8_TWTP2IKSFKaA,2335
|
49
|
+
sonusai/mixture/generation.py,sha256=Okmyc7LVVdyt7UDzLSR4XdK-Q92vSQHX0RI__RJbJM8,38551
|
50
|
+
sonusai/mixture/helpers.py,sha256=UEN_9LttIZwvms9nOkjMr_Yf3lpb7sMPmDVUoX8D7yQ,15225
|
51
51
|
sonusai/mixture/log_duration_and_sizes.py,sha256=qhgl87C2KbjxLdKEpjYOoqNL6rc-8-PB4R7Gx_7UG8g,1240
|
52
|
-
sonusai/mixture/mixdb.py,sha256=
|
53
|
-
sonusai/mixture/soundfile_audio.py,sha256=
|
54
|
-
sonusai/mixture/sox_audio.py,sha256=
|
55
|
-
sonusai/mixture/sox_augmentation.py,sha256=
|
52
|
+
sonusai/mixture/mixdb.py,sha256=W8B54U6f-8szMylXSnU0YzOR-a9M3XoCRpyqOgBIJuQ,73498
|
53
|
+
sonusai/mixture/soundfile_audio.py,sha256=At_ZC2b9pZ_9IYp1UxyPzRoBK9-1cKPCLMm74F1AjKE,4092
|
54
|
+
sonusai/mixture/sox_audio.py,sha256=7ouCLqXYS6tjG2L0v5lugVO7z5UwJmsr1VigbrXhs74,16725
|
55
|
+
sonusai/mixture/sox_augmentation.py,sha256=DtfGLPaB1BIt2wvTEA__MYkGFNU85Tuup5BFsIVrh0E,4546
|
56
56
|
sonusai/mixture/spectral_mask.py,sha256=U9XJ_SAoI9b67K_3SE7bNw6U8cPGFOBttaZAxMjA_Jc,2042
|
57
|
-
sonusai/mixture/target_class_balancing.py,sha256=
|
58
|
-
sonusai/mixture/targets.py,sha256=
|
57
|
+
sonusai/mixture/target_class_balancing.py,sha256=o_TZ8kVYq10lgeXHh3GUFfflfdUvRt0FekFu2eaNkDs,4251
|
58
|
+
sonusai/mixture/targets.py,sha256=6emo2fxxp9ZhSpHuUM9xIjYMz8zeIHAw684jT3l7fAs,6442
|
59
59
|
sonusai/mixture/tokenized_shell_vars.py,sha256=lXTzUDutuBWGV1zIsqeIxWmy-eKm0Vx1y8-iLdsL1gQ,4921
|
60
|
-
sonusai/mixture/torchaudio_audio.py,sha256=
|
61
|
-
sonusai/mixture/torchaudio_augmentation.py,sha256=
|
62
|
-
sonusai/mixture/truth.py,sha256
|
63
|
-
sonusai/mixture/truth_functions/__init__.py,sha256=
|
64
|
-
sonusai/mixture/truth_functions/crm.py,sha256=
|
65
|
-
sonusai/mixture/truth_functions/
|
66
|
-
sonusai/mixture/truth_functions/
|
67
|
-
sonusai/mixture/truth_functions/
|
68
|
-
sonusai/mixture/truth_functions/
|
69
|
-
sonusai/mixture/truth_functions/
|
70
|
-
sonusai/mixture/truth_functions/
|
71
|
-
sonusai/
|
60
|
+
sonusai/mixture/torchaudio_audio.py,sha256=72Hxo5TKAW7mYpRy15QFfD7AYDORBk6bVCcHENniWGw,3116
|
61
|
+
sonusai/mixture/torchaudio_augmentation.py,sha256=uFAKxIfs50J5FR-WXodsEACm2Ao-t5dZRSJ0DwTAfBg,3930
|
62
|
+
sonusai/mixture/truth.py,sha256=-CwwawFRGjqodR2yKvAMGL1XaYLct-tli7wZ2gbhLtQ,2121
|
63
|
+
sonusai/mixture/truth_functions/__init__.py,sha256=0mlOFChPnXG5BC0eKOe4n9VH17jY4iOqZFLuF6Gprdk,1505
|
64
|
+
sonusai/mixture/truth_functions/crm.py,sha256=iidcffXfqV8k9O5wt5KTWIAFaTSjmhV5ucKZPbTgpvQ,3809
|
65
|
+
sonusai/mixture/truth_functions/energy.py,sha256=dlxl5c58bv012KgyKeO78urXSh6FK3LdqiKk0SDkmS8,6540
|
66
|
+
sonusai/mixture/truth_functions/file.py,sha256=pyCAhx3PhJRBoZMrjoQI4Tbi5TN7sPembSVEr80Bu3g,1431
|
67
|
+
sonusai/mixture/truth_functions/metadata.py,sha256=aEZly5bJEaZpUBZonWvcu14_Dn3M2HamwTaM5Bg7Tm8,778
|
68
|
+
sonusai/mixture/truth_functions/metrics.py,sha256=xfH98eXBe20kwRk-tdWbBkOplF1cCA-u_naJUiTps0Y,873
|
69
|
+
sonusai/mixture/truth_functions/phoneme.py,sha256=jwBYiNwwBwh2tHtOJ2NopYWhT6y19kXzSIag0XW9GSY,778
|
70
|
+
sonusai/mixture/truth_functions/sed.py,sha256=C0n9DkfBNQblFsFCkPbooy54KuHSY7B0f1vLft2asdw,3832
|
71
|
+
sonusai/mixture/truth_functions/target.py,sha256=nSkHFESzCEOljcYf4jQ7FmxsAWJtMCRRWFKM_DyjoLU,4926
|
72
|
+
sonusai/mkwav.py,sha256=xoqrX76gC1zE-Xb1Zfm9ZpcZ95l0qF1ZyOPmLMkFomk,4053
|
72
73
|
sonusai/onnx_predict.py,sha256=Y1VUN0wuvloEW46uxg7X4ywaec_Xx92djCU3BP0KAx0,8699
|
73
74
|
sonusai/queries/__init__.py,sha256=bhoeOFfu9GA5DOUuxRrIev7MYdXaGN8xdKJ6BXyNNtQ,277
|
74
|
-
sonusai/queries/queries.py,sha256=
|
75
|
+
sonusai/queries/queries.py,sha256=N84UcRrgDPLGJZesS2KQ9eyRzPRSyukjOlc786h5Ehs,7509
|
75
76
|
sonusai/speech/__init__.py,sha256=vqAymCBPjMUSM4OZKHTai6BYwXsOBlf_G_vOhELVf8I,133
|
76
|
-
sonusai/speech/l2arctic.py,sha256=
|
77
|
+
sonusai/speech/l2arctic.py,sha256=VQNKuTbmlbW0PJ7bOjx9sr0VjUYxJnxfTiPJIa4OOaA,3829
|
77
78
|
sonusai/speech/librispeech.py,sha256=ugP3NVOenSsBF1cUG4Nyl7dumGHQmE4Ugk1yYjtOyj4,3070
|
78
79
|
sonusai/speech/mcgill.py,sha256=sgPHEZTPHlFXF8GVYFfKXMUEyBikfKha2RWOPfpNy_U,1981
|
79
80
|
sonusai/speech/textgrid.py,sha256=WvsUeamKoYyXBNnNnZgug-xfTiq2Z6RnFc1u0swmqNw,2813
|
@@ -81,13 +82,13 @@ sonusai/speech/timit.py,sha256=B1DZCS5Crt9Y54drqVqurhEiOMUZGxVOW7gxzZA5ErY,4099
|
|
81
82
|
sonusai/speech/types.py,sha256=4eKVPAktpkIrZ2qoVp2iT45zxTVNocQEGT6O_Zlub_w,214
|
82
83
|
sonusai/speech/vctk.py,sha256=WInvRRRkZCW6t_NcZAJffJzgCbyetal-j2w0kKX5SDw,1527
|
83
84
|
sonusai/speech/voxceleb.py,sha256=Uu1kB1krf8hess1yuvGbYfV_VgYhklEyoz4I7KfrVpw,2658
|
84
|
-
sonusai/summarize_metric_spenh.py,sha256=
|
85
|
-
sonusai/utils/__init__.py,sha256=
|
85
|
+
sonusai/summarize_metric_spenh.py,sha256=2w81ZgJahYvD6wCpE3DFoUFrXexLXjO44ITRVm1HJXw,1858
|
86
|
+
sonusai/utils/__init__.py,sha256=z72OlzZCHpYfYHKnHn7jznj6Zt7zB-FyO6hIgFk45As,2379
|
86
87
|
sonusai/utils/asl_p56.py,sha256=cPUVwXawF7vLJgs4zUtoRGk7Wdbe5KKti_-v_8xIU10,3862
|
87
88
|
sonusai/utils/asr.py,sha256=20eKkatNqGrbxFQoyeCRzqXaSH3lcA-9ZXGneCXjLvs,2791
|
88
89
|
sonusai/utils/asr_functions/__init__.py,sha256=HKGRm_c48tcxlfwqH63m-MvhAoK_pCcw76lxmFmiP_U,63
|
89
|
-
sonusai/utils/asr_functions/aaware_whisper.py,sha256=
|
90
|
-
sonusai/utils/audio_devices.py,sha256=
|
90
|
+
sonusai/utils/asr_functions/aaware_whisper.py,sha256=M9Y8Pgh1oIrDOPZZPSRPDig8foxfgs3f8AsoZ8W00B0,2120
|
91
|
+
sonusai/utils/audio_devices.py,sha256=_Eiah86SZjbdp2baD2AUVF4FmhseiNuG3KJkd_LbULk,2041
|
91
92
|
sonusai/utils/braced_glob.py,sha256=uvxo7USbxH6cWuVdNeGrz1SbZISFR1gPGbpy0EWm3m8,1645
|
92
93
|
sonusai/utils/calculate_input_shape.py,sha256=TIa_rHW3VIvOhlv5Wa3orcWFPMT-a3EPrIFHstbrmo4,906
|
93
94
|
sonusai/utils/compress.py,sha256=tT983XlgRf9bzutCegtHzkfKHK5LZD6a_mMFP47FGMI,605
|
@@ -96,20 +97,21 @@ sonusai/utils/create_timestamp.py,sha256=s7ALOX3MAyK3EOX2BVOiYTIcspsKlIM6zXJk2cb
|
|
96
97
|
sonusai/utils/create_ts_name.py,sha256=3xu10hbZkV18sDqK4oR1JYvXeYE53ufzddmvGYx83Vg,405
|
97
98
|
sonusai/utils/dataclass_from_dict.py,sha256=iUagjF7CzbDIBKTX4ktd7EXn8q1jxmiRClMH3fu2_oA,389
|
98
99
|
sonusai/utils/db.py,sha256=lI77MJJLs4CTYxhjFUvBom2Kk2imAP34okOeO4irbDc,371
|
99
|
-
sonusai/utils/docstring.py,sha256=
|
100
|
-
sonusai/utils/energy_f.py,sha256=
|
100
|
+
sonusai/utils/docstring.py,sha256=aPFrVpqlbYq3kIJE_sLCjhXWEqWCBo_q_DUmEXcGONQ,1516
|
101
|
+
sonusai/utils/energy_f.py,sha256=k1S5ELsNsm3Sn0RogFEzZv1bW-X8yl2dc2KjWne_t2I,1515
|
101
102
|
sonusai/utils/engineering_number.py,sha256=SToFf6S0Xu0NtAJ1SjsVH4wxylH7qK8S9TBkPa15opY,5510
|
102
103
|
sonusai/utils/get_frames_per_batch.py,sha256=xnq4tV7MT74N0H6b5ZsiAezqdXucboCLQw1Np9XpZbs,134
|
103
104
|
sonusai/utils/get_label_names.py,sha256=df4jZVaQ3WnYQqNj21iUV4aYWyQEZUNmgs93qKW-_rA,820
|
104
105
|
sonusai/utils/grouper.py,sha256=qyZ0nj84yOrC-RZsXHC-KJvcUliGktnV8S6-P3PD6_w,203
|
105
|
-
sonusai/utils/human_readable_size.py,sha256=
|
106
|
+
sonusai/utils/human_readable_size.py,sha256=DOCS7SAymrtTZli8AczvyCMCh44r7ZDgVBA7jSZupmA,356
|
107
|
+
sonusai/utils/load_object.py,sha256=-XMMwSNUPhtg6G6FhLwL1zvxwu-PLwj25QYUEielW2k,356
|
106
108
|
sonusai/utils/max_text_width.py,sha256=pxiJMwb_zlkNntexgo7S6lAuF7NLLZvFdOCkxdsQJVY,315
|
107
109
|
sonusai/utils/model_utils.py,sha256=OIJBhOjxR0wpxsd7A2r6J2AjqfdYgZzi6UEThw4S1lI,828
|
108
110
|
sonusai/utils/numeric_conversion.py,sha256=iFPXFU8C_1mW5tmDqHq8-xP1tL8nVaSmhQRakdCqy30,328
|
109
|
-
sonusai/utils/onnx_utils.py,sha256=
|
111
|
+
sonusai/utils/onnx_utils.py,sha256=cN8NZDrERPvbbJFSGI9YzseCezAz-Bckfel-EhkfRUU,5860
|
110
112
|
sonusai/utils/parallel.py,sha256=yvRZvZWPR5slM51i08m7sYx-Mvsb5oryCqqJXVoJ8tQ,2190
|
111
113
|
sonusai/utils/path_info.py,sha256=QY7iQ0nYpeEDnPN9RyPh4DsgYmVYsLrrlAzKuzkqX1o,118
|
112
|
-
sonusai/utils/print_mixture_details.py,sha256=
|
114
|
+
sonusai/utils/print_mixture_details.py,sha256=EypVeiQ8IjA0rGVfU91S3IIhzgGjkhU2oJ0DKJUBbWQ,2947
|
113
115
|
sonusai/utils/ranges.py,sha256=-TtAR0Vg_j4kYtJOvEOYQllBZEat_KfUKsfRxr5oj-o,1235
|
114
116
|
sonusai/utils/read_predict_data.py,sha256=PUSroxmWQGtr6_EcdSHmIFQoRGou8CKKqcggWylfTqQ,1056
|
115
117
|
sonusai/utils/reshape.py,sha256=Ozuh3UlmAS5NCeOK7NR8KgcQacHvgq10pys0VfCnOPU,5746
|
@@ -119,7 +121,7 @@ sonusai/utils/stratified_shuffle_split.py,sha256=d7WLUirywSvgZWkt_5a0F8YvTnJjuXl
|
|
119
121
|
sonusai/utils/write_audio.py,sha256=0lKdaX57N6H-UWdioqmXCJMjwT1eBz5B-bSGqDvloAc,838
|
120
122
|
sonusai/utils/yes_or_no.py,sha256=0h1okjXmDNbJp7rZJFR2V-HFU1GJDm3YFTUVmYExkOU,263
|
121
123
|
sonusai/vars.py,sha256=kBBzuvC8szmdIZEEDA7XXmD765addZKdM2aFipeGO1w,933
|
122
|
-
sonusai-0.19.
|
123
|
-
sonusai-0.19.
|
124
|
-
sonusai-0.19.
|
125
|
-
sonusai-0.19.
|
124
|
+
sonusai-0.19.9.dist-info/METADATA,sha256=rCXEzWOsVKZdZB8E5iPt0fachIQ_-zkmM1UNAe8JZc4,2535
|
125
|
+
sonusai-0.19.9.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
|
126
|
+
sonusai-0.19.9.dist-info/entry_points.txt,sha256=zMNjEphEPO6B3cD1GNpit7z-yA9tUU5-j3W2v-UWstU,92
|
127
|
+
sonusai-0.19.9.dist-info/RECORD,,
|