sonusai 0.16.1__py3-none-any.whl → 0.17.2__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/audiofe.py +33 -27
- sonusai/calc_metric_spenh.py +206 -213
- sonusai/doc/doc.py +1 -1
- sonusai/mixture/__init__.py +2 -0
- sonusai/mixture/audio.py +12 -0
- sonusai/mixture/datatypes.py +11 -3
- sonusai/mixture/mixdb.py +101 -0
- sonusai/mixture/soundfile_audio.py +39 -0
- sonusai/mixture/speaker_metadata.py +35 -0
- sonusai/mixture/torchaudio_audio.py +22 -0
- sonusai/mkmanifest.py +1 -1
- sonusai/onnx_predict.py +129 -171
- sonusai/queries/queries.py +1 -1
- sonusai/speech/__init__.py +3 -0
- sonusai/speech/l2arctic.py +116 -0
- sonusai/speech/librispeech.py +99 -0
- sonusai/speech/mcgill.py +70 -0
- sonusai/speech/textgrid.py +100 -0
- sonusai/speech/timit.py +135 -0
- sonusai/speech/types.py +12 -0
- sonusai/speech/vctk.py +52 -0
- sonusai/speech/voxceleb2.py +86 -0
- sonusai/utils/__init__.py +2 -1
- sonusai/utils/asr_manifest_functions/__init__.py +0 -1
- sonusai/utils/asr_manifest_functions/data.py +0 -8
- sonusai/utils/asr_manifest_functions/librispeech.py +1 -1
- sonusai/utils/asr_manifest_functions/mcgill_speech.py +1 -1
- sonusai/utils/asr_manifest_functions/vctk_noisy_speech.py +1 -1
- sonusai/utils/braced_glob.py +7 -3
- sonusai/utils/onnx_utils.py +142 -49
- sonusai/utils/path_info.py +7 -0
- {sonusai-0.16.1.dist-info → sonusai-0.17.2.dist-info}/METADATA +2 -1
- {sonusai-0.16.1.dist-info → sonusai-0.17.2.dist-info}/RECORD +35 -24
- {sonusai-0.16.1.dist-info → sonusai-0.17.2.dist-info}/WHEEL +0 -0
- {sonusai-0.16.1.dist-info → sonusai-0.17.2.dist-info}/entry_points.txt +0 -0
sonusai/utils/onnx_utils.py
CHANGED
@@ -1,65 +1,158 @@
|
|
1
|
-
from
|
1
|
+
from typing import Optional
|
2
|
+
from typing import Sequence
|
2
3
|
|
4
|
+
from onnx import ModelProto
|
5
|
+
from onnx import ValueInfoProto
|
3
6
|
from onnxruntime import InferenceSession
|
7
|
+
from onnxruntime import NodeArg
|
8
|
+
from onnxruntime import SessionOptions
|
4
9
|
|
10
|
+
REQUIRED_HPARAMS = ('feature', 'batch_size', 'timesteps', 'flatten', 'add1ch', 'truth_mutex')
|
5
11
|
|
6
|
-
@dataclass(frozen=True)
|
7
|
-
class SonusAIMetaData:
|
8
|
-
input_shape: list[int]
|
9
|
-
output_shape: list[int]
|
10
|
-
flattened: bool
|
11
|
-
timestep: bool
|
12
|
-
channel: bool
|
13
|
-
mutex: bool
|
14
|
-
feature: str
|
15
12
|
|
13
|
+
def _extract_shapes(io: list[ValueInfoProto]) -> list[list[int] | str]:
|
14
|
+
shapes: list[list[int] | str] = []
|
16
15
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
16
|
+
# iterate through inputs of the graph to find shapes
|
17
|
+
for item in io:
|
18
|
+
# get tensor type: 0, 1, 2, etc.
|
19
|
+
tensor_type = item.type.tensor_type
|
20
|
+
# check if it has a shape
|
21
|
+
if tensor_type.HasField('shape'):
|
22
|
+
tmp_shape = []
|
23
|
+
# iterate through dimensions of the shape
|
24
|
+
for d in tensor_type.shape.dim:
|
25
|
+
if d.HasField('dim_value'):
|
26
|
+
# known dimension, int value
|
27
|
+
tmp_shape.append(d.dim_value)
|
28
|
+
elif d.HasField('dim_param'):
|
29
|
+
# dynamic dim with symbolic name of d.dim_param; set size to 0
|
30
|
+
tmp_shape.append(0)
|
31
|
+
else:
|
32
|
+
# unknown dimension with no name; also set to 0
|
33
|
+
tmp_shape.append(0)
|
34
|
+
# add as a list
|
35
|
+
shapes.append(tmp_shape)
|
36
|
+
else:
|
37
|
+
shapes.append('unknown rank')
|
38
|
+
|
39
|
+
return shapes
|
40
|
+
|
41
|
+
|
42
|
+
def get_and_check_inputs(model: ModelProto) -> tuple[list[ValueInfoProto], list[list[int] | str]]:
|
43
|
+
from sonusai import logger
|
44
|
+
|
45
|
+
# ignore initializer inputs (only seen in older ONNX < v1.5)
|
46
|
+
initializer_names = [x.name for x in model.graph.initializer]
|
47
|
+
inputs = [i for i in model.graph.input if i.name not in initializer_names]
|
48
|
+
if len(inputs) != 1:
|
49
|
+
logger.warning(f'Warning: ONNX model has {len(inputs)} inputs; expected only 1')
|
50
|
+
|
51
|
+
# This one-liner works only if input has type and shape, returns a list
|
52
|
+
# shape0 = [d.dim_value for d in inputs[0].type.tensor_type.shape.dim]
|
53
|
+
shapes = _extract_shapes(inputs)
|
54
|
+
|
55
|
+
return inputs, shapes
|
24
56
|
|
25
|
-
:param model: ONNX model
|
26
|
-
:param is_flattened: Model feature data is flattened
|
27
|
-
:param has_timestep: Model has timestep dimension
|
28
|
-
:param has_channel: Model has channel dimension
|
29
|
-
:param is_mutex: Model label output is mutually exclusive
|
30
|
-
:param feature: Model feature type
|
31
|
-
"""
|
32
|
-
is_flattened_flag = model.metadata_props.add()
|
33
|
-
is_flattened_flag.key = 'is_flattened'
|
34
|
-
is_flattened_flag.value = str(is_flattened)
|
35
57
|
|
36
|
-
|
37
|
-
|
38
|
-
has_timestep_flag.value = str(has_timestep)
|
58
|
+
def get_and_check_outputs(model: ModelProto) -> tuple[list[ValueInfoProto], list[list[int] | str]]:
|
59
|
+
from sonusai import logger
|
39
60
|
|
40
|
-
|
41
|
-
|
42
|
-
|
61
|
+
outputs = [o for o in model.graph.output]
|
62
|
+
if len(outputs) != 1:
|
63
|
+
logger.warning(f'Warning: ONNX model has {len(outputs)} outputs; expected only 1')
|
43
64
|
|
44
|
-
|
45
|
-
|
46
|
-
|
65
|
+
shapes = _extract_shapes(outputs)
|
66
|
+
|
67
|
+
return outputs, shapes
|
68
|
+
|
69
|
+
|
70
|
+
def add_sonusai_metadata(model: ModelProto, hparams: dict) -> ModelProto:
|
71
|
+
"""Add SonusAI hyperparameters as metadata to an ONNX model using 'hparams' key
|
72
|
+
|
73
|
+
:param model: ONNX model
|
74
|
+
:param hparams: dictionary of hyperparameters to add
|
75
|
+
:return: ONNX model
|
76
|
+
|
77
|
+
Note SonusAI conventions require models to have:
|
78
|
+
feature: Model feature type
|
79
|
+
batch_size: Model batch size
|
80
|
+
timesteps: Size of timestep dimension (0 for no dimension)
|
81
|
+
flatten: Model input feature data is flattened (stride + bins combined)
|
82
|
+
add1ch: Model input has channel dimension
|
83
|
+
truth_mutex: Model label output is mutually exclusive
|
84
|
+
"""
|
85
|
+
from sonusai import logger
|
47
86
|
|
48
|
-
|
49
|
-
|
50
|
-
|
87
|
+
# Note hparams should be a dict (i.e., extracted from checkpoint)
|
88
|
+
assert eval(str(hparams)) == hparams
|
89
|
+
for key in REQUIRED_HPARAMS:
|
90
|
+
if key not in hparams.keys():
|
91
|
+
logger.warning(f'Warning: SonusAI hyperparameters are missing: {key}')
|
92
|
+
|
93
|
+
meta = model.metadata_props.add()
|
94
|
+
meta.key = 'hparams'
|
95
|
+
meta.value = str(hparams)
|
51
96
|
|
52
97
|
return model
|
53
98
|
|
54
99
|
|
55
|
-
def get_sonusai_metadata(
|
56
|
-
"""Get SonusAI metadata from an ONNX
|
100
|
+
def get_sonusai_metadata(session: InferenceSession) -> Optional[dict]:
|
101
|
+
"""Get SonusAI hyperparameter metadata from an ONNX Runtime session.
|
57
102
|
"""
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
103
|
+
from sonusai import logger
|
104
|
+
|
105
|
+
meta = session.get_modelmeta()
|
106
|
+
if 'hparams' not in meta.custom_metadata_map.keys():
|
107
|
+
logger.warning("Warning: ONNX model metadata does not contain 'hparams'")
|
108
|
+
return None
|
109
|
+
|
110
|
+
hparams = eval(meta.custom_metadata_map['hparams'])
|
111
|
+
for key in REQUIRED_HPARAMS:
|
112
|
+
if key not in hparams.keys():
|
113
|
+
logger.warning(f'Warning: ONNX model does not have required SonusAI hyperparameters: {key}')
|
114
|
+
|
115
|
+
return hparams
|
116
|
+
|
117
|
+
|
118
|
+
def load_ort_session(model_path: str, providers: Sequence[str | tuple[str, dict]] = None) -> tuple[
|
119
|
+
InferenceSession, SessionOptions, str, dict, list[NodeArg], list[NodeArg]]:
|
120
|
+
from os.path import basename
|
121
|
+
from os.path import exists
|
122
|
+
from os.path import isfile
|
123
|
+
from os.path import splitext
|
124
|
+
|
125
|
+
import onnxruntime as ort
|
126
|
+
|
127
|
+
from sonusai import logger
|
128
|
+
|
129
|
+
if providers is None:
|
130
|
+
providers = ['CPUExecutionProvider']
|
131
|
+
|
132
|
+
if exists(model_path) and isfile(model_path):
|
133
|
+
model_basename = basename(model_path)
|
134
|
+
model_root = splitext(model_basename)[0]
|
135
|
+
logger.info(f'Importing model from {model_basename}')
|
136
|
+
try:
|
137
|
+
session = ort.InferenceSession(model_path, providers=providers)
|
138
|
+
options = ort.SessionOptions()
|
139
|
+
except Exception as e:
|
140
|
+
logger.exception(f'Error: could not load ONNX model from {model_path}: {e}')
|
141
|
+
raise SystemExit(1)
|
142
|
+
else:
|
143
|
+
logger.exception(f'Error: model file does not exist: {model_path}')
|
144
|
+
raise SystemExit(1)
|
145
|
+
|
146
|
+
logger.info(f'Opened session with provider options: {session._provider_options}.')
|
147
|
+
hparams = get_sonusai_metadata(session)
|
148
|
+
if hparams is not None:
|
149
|
+
for key in REQUIRED_HPARAMS:
|
150
|
+
logger.info(f' {key:12} {hparams[key]}')
|
151
|
+
|
152
|
+
inputs = session.get_inputs()
|
153
|
+
outputs = session.get_outputs()
|
154
|
+
|
155
|
+
# in_names = [n.name for n in session.get_inputs()]
|
156
|
+
# out_names = [n.name for n in session.get_outputs()]
|
157
|
+
|
158
|
+
return session, options, model_root, hparams, inputs, outputs
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: sonusai
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.17.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
|
@@ -26,6 +26,7 @@ Requires-Dist: onnxruntime (>=1.16.1,<2.0.0)
|
|
26
26
|
Requires-Dist: paho-mqtt (>=2.0.0,<3.0.0)
|
27
27
|
Requires-Dist: pandas (>=2.1.1,<3.0.0)
|
28
28
|
Requires-Dist: pesq (>=0.0.4,<0.0.5)
|
29
|
+
Requires-Dist: praatio (>=6.2.0,<7.0.0)
|
29
30
|
Requires-Dist: pyaaware (>=1.5.7,<2.0.0)
|
30
31
|
Requires-Dist: pyaudio (>=0.2.14,<0.3.0)
|
31
32
|
Requires-Dist: pydub (>=0.25.1,<0.26.0)
|
@@ -1,13 +1,13 @@
|
|
1
1
|
sonusai/__init__.py,sha256=vzTFfRB-NeO-Sm3puySDJOybk3ND_Oj6w0EejQPmH1U,2978
|
2
2
|
sonusai/aawscd_probwrite.py,sha256=GukR5owp_0A3DrqSl9fHWULYgclNft4D5OkHIwfxxkc,3698
|
3
|
-
sonusai/audiofe.py,sha256=
|
4
|
-
sonusai/calc_metric_spenh.py,sha256=
|
3
|
+
sonusai/audiofe.py,sha256=AHXV7fQKumkwUSbOS-ZU6Cp1VF88DRtqt7foVbf-Nh8,11148
|
4
|
+
sonusai/calc_metric_spenh.py,sha256=Xgy9EKbZRPAydjTZbpZjaqLBNkjQPjDmSbfL8PbVSgY,62157
|
5
5
|
sonusai/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
6
6
|
sonusai/data/genmixdb.yml,sha256=-XSs_hUR6wHJVoTPmSewzXL7u61X-xmHY46lNPatxSE,1025
|
7
7
|
sonusai/data/speech_ma01_01.wav,sha256=PK0vMKg-NR6rPE3KouxHGF6PKXnJCr7AwjMqfu98LUA,76644
|
8
8
|
sonusai/data/whitenoise.wav,sha256=I2umov0m34y56F9IsIBi1XtE76ZeZaSKDf70cJRe3pI,1920044
|
9
9
|
sonusai/doc/__init__.py,sha256=rP5Hgn0Iys_xkuv4caxngdqehuU4zLZsiKuv8Nde67M,19
|
10
|
-
sonusai/doc/doc.py,sha256=
|
10
|
+
sonusai/doc/doc.py,sha256=4NEZ2K-hTk7Y1Gxx09UEjNhiYkD9xid-kJ1Nt8H5_gM,22670
|
11
11
|
sonusai/doc.py,sha256=l8CaFgLI8mqx4tn0aXfxKqa2dy9GgC0zjYxZAkpmi1E,878
|
12
12
|
sonusai/genft.py,sha256=OzET3iTE-QhrUckzidfZvCDXZlAxIF5Xe5NEf856Vvk,5662
|
13
13
|
sonusai/genmix.py,sha256=TU5aTebGHsbfwsRbynYbegGBelSma9khuQkDk0dFE3I,7075
|
@@ -28,28 +28,29 @@ sonusai/metrics/class_summary.py,sha256=4Mb25nuk6eqotnQSFMuOQL3zofGcpNXDfDlPa513
|
|
28
28
|
sonusai/metrics/confusion_matrix_summary.py,sha256=3qg6TMKjJeHtNjj2YnNjPFSlMrQXt0Zcu1dLkGB_aPU,4001
|
29
29
|
sonusai/metrics/one_hot.py,sha256=QSeH_GdqBpOAKLrNnQ8gjcPC-vSdUqC0yPEQueTA6VI,13548
|
30
30
|
sonusai/metrics/snr_summary.py,sha256=P4U5_Xr7v9F8kF-rZBnpsVNt3p42rIVS6zmch8yfVfg,5575
|
31
|
-
sonusai/mixture/__init__.py,sha256=
|
32
|
-
sonusai/mixture/audio.py,sha256=
|
31
|
+
sonusai/mixture/__init__.py,sha256=yszEbRnlxeZXSegEBUVwyrSZwNIl6ufaJu_NiZ-1rqY,5399
|
32
|
+
sonusai/mixture/audio.py,sha256=2lqy0DtTMTYhX4aAOIvVtLNn6QB5ivTa7cJIaAlbfAg,2385
|
33
33
|
sonusai/mixture/augmentation.py,sha256=Blb90tdTwBOj5w9tRcYyS5H67YJuFiXsGqwZWd7ON4g,10468
|
34
34
|
sonusai/mixture/class_count.py,sha256=_wFnVl2yEOnbor7pLg7cYOUeX6nioov-03Cv3SEbh2k,996
|
35
35
|
sonusai/mixture/config.py,sha256=d2IzZ1samHWGMpoKzSmUwMyAWWhgmyNoxyO8oiUwbsg,22193
|
36
36
|
sonusai/mixture/constants.py,sha256=xjCskcQi6khqYZDf7j6z1OkeN1C6wE06kBBapcJiNI4,1428
|
37
|
-
sonusai/mixture/datatypes.py,sha256=
|
37
|
+
sonusai/mixture/datatypes.py,sha256=mMNxtzyDvAmtuoTHVVJP7jBi6OH-QyC1NfC_ZIiuLlY,8440
|
38
38
|
sonusai/mixture/eq_rule_is_valid.py,sha256=MpQwRA5M76wSiQWEI1lW2cLFdPaMttBLcQp3tWD8efM,1243
|
39
39
|
sonusai/mixture/feature.py,sha256=Rwuf82IoXzhHPGbKYVGcatImF_ssBf_FfvbqghVPXtg,4116
|
40
40
|
sonusai/mixture/generation.py,sha256=miUrc3QOSUNIG6mDkiMCZ6M2ulivUZxlYUAJUOVomWc,39039
|
41
41
|
sonusai/mixture/helpers.py,sha256=GSGSD2KnvOeEIB6IwNTxyaQNjghTSBMB729kUEd_RiM,22403
|
42
42
|
sonusai/mixture/log_duration_and_sizes.py,sha256=baTUpqyM15wA125jo9E3posmVJUe3WlpksyO6v9Jul0,1347
|
43
43
|
sonusai/mixture/mapped_snr_f.py,sha256=mlbYM1t14OXe_Zg4CjpWTuA_Zun4W0O3bSUXeodRBQs,1845
|
44
|
-
sonusai/mixture/mixdb.py,sha256=
|
45
|
-
sonusai/mixture/soundfile_audio.py,sha256=
|
44
|
+
sonusai/mixture/mixdb.py,sha256=PvLeEOLn2n0EfBRe7GuvUQfOmj3SKOrzjUimw2qRHP8,49792
|
45
|
+
sonusai/mixture/soundfile_audio.py,sha256=mHa5SIXsu_uE0j3DO52GydRJrvWSzU_nII-7YJfQ6Qo,4154
|
46
46
|
sonusai/mixture/sox_audio.py,sha256=HT3kYA9TP5QPCuoOJdUMnGVN-qY6q96DGL8zxuog76o,12277
|
47
47
|
sonusai/mixture/sox_augmentation.py,sha256=F9tBdNvX2guCn7gRppAFrxRnBtjw9q6qAq2_v_A4hh0,4490
|
48
|
+
sonusai/mixture/speaker_metadata.py,sha256=l98avdxLYUsSDZ88xUjfvHnACkbnD0_Dg1aBGDbzS9I,1380
|
48
49
|
sonusai/mixture/spectral_mask.py,sha256=8AkCwhy-PSdP1Uri9miKZP-bXFYnFcH_c9xZCGrHavU,2071
|
49
50
|
sonusai/mixture/target_class_balancing.py,sha256=NTNiKZH0_PWLooeow0l41CjJKK8ZTMVbUqz9ZkaNtWk,4900
|
50
51
|
sonusai/mixture/targets.py,sha256=wyy5vhLhuN-hqBMBGoziVvEJg3FKFvJFgmEE7_LaV2M,7908
|
51
52
|
sonusai/mixture/tokenized_shell_vars.py,sha256=gCxw8SQUcal6mqWKF7hOBTgSQmbJUk1nT0Gn3H8GA0U,4705
|
52
|
-
sonusai/mixture/torchaudio_audio.py,sha256=
|
53
|
+
sonusai/mixture/torchaudio_audio.py,sha256=KhHeOMsjmbwOaAcoKD61aFvYBYSlA8OysfT5iGn45MA,3010
|
53
54
|
sonusai/mixture/torchaudio_augmentation.py,sha256=1vEDHI0caL1vrgoY2lAWe4CiHE2jKRuKKH7x23GHw0w,4390
|
54
55
|
sonusai/mixture/truth.py,sha256=Y41pZ52Xkols9LUler0NlgnilUOscBIucmw4GcxXNzU,1612
|
55
56
|
sonusai/mixture/truth_functions/__init__.py,sha256=82lKYHhLy8KW3gHngrocoqwupGVLVsWdIXdYs3vhjOc,359
|
@@ -60,27 +61,36 @@ sonusai/mixture/truth_functions/file.py,sha256=jOJuC_3y9BH6GGOp9eKcbVrHLVRzUA80B
|
|
60
61
|
sonusai/mixture/truth_functions/phoneme.py,sha256=stYdlPuNytQK_LLT61OJLfYSqKd-sDjQZdtJKGzt5wA,479
|
61
62
|
sonusai/mixture/truth_functions/sed.py,sha256=8cHjEFjZaH_0hIOHhPmj4AJz2GpEADM6Ys2x4NoiWSY,2469
|
62
63
|
sonusai/mixture/truth_functions/target.py,sha256=KAsjugDRooOA5BRcHVAbZRgV7l8S5CFg7CZ0XtKZaQ0,5764
|
63
|
-
sonusai/mkmanifest.py,sha256=
|
64
|
+
sonusai/mkmanifest.py,sha256=imI8swwPYVzumrUYEL-9JLvun-ez98PtlUBj2b729k8,8682
|
64
65
|
sonusai/mkwav.py,sha256=kLfC2ZuF-t8P97nqYw2falTZpymxAeXv0YTJCe6nK10,5356
|
65
|
-
sonusai/onnx_predict.py,sha256=
|
66
|
+
sonusai/onnx_predict.py,sha256=ZhicNEbjxm34edIrUcmuvKkV3NRFQk4LBn1LUCFdPjg,8733
|
66
67
|
sonusai/plot.py,sha256=ERkmxMM3qjcCDm4LGDQY4fRAncCYAzP7uW8iZ7_brcg,17105
|
67
68
|
sonusai/post_spenh_targetf.py,sha256=xOz5T6WZuyTHmfbtILIY9skgH064Wvi2GF2Bo5L3YMU,4998
|
68
69
|
sonusai/queries/__init__.py,sha256=oKY5JeqZ4Cz7DwCwPc1_ydB8bUs6KaMcWFp_w02TjOs,255
|
69
|
-
sonusai/queries/queries.py,sha256=
|
70
|
+
sonusai/queries/queries.py,sha256=oV-m9uiLZOwYTK-Wo7Gf8dpGisaoGf6uDsAJAarVqZI,7553
|
71
|
+
sonusai/speech/__init__.py,sha256=SuPcU_K9wQISsZRIzsRNLtEC6cb616l-Jlx3PU-HWMs,113
|
72
|
+
sonusai/speech/l2arctic.py,sha256=28TT3CohvPu98YNUb8O7rWHAYgPGwYTOLSdfNQjOuyc,3736
|
73
|
+
sonusai/speech/librispeech.py,sha256=A0IpamojCPXyJiHcjCtI7yNWdMjB00cbggjHslssrg8,3120
|
74
|
+
sonusai/speech/mcgill.py,sha256=jcddj64fLdV3sO6CJNafm3w-2SnYoyQtU90odXhdaaE,1976
|
75
|
+
sonusai/speech/textgrid.py,sha256=8hB6SdEEXxo6JXVFq8mJ1-ilRbBiRXhaHTQjA-HWg-0,3385
|
76
|
+
sonusai/speech/timit.py,sha256=1vWgj6isD3ATOjMJSTjOPLmDkYyB65M5MwYipEmLEvg,4081
|
77
|
+
sonusai/speech/types.py,sha256=4eKVPAktpkIrZ2qoVp2iT45zxTVNocQEGT6O_Zlub_w,214
|
78
|
+
sonusai/speech/vctk.py,sha256=EAMEBAzjZUI6dw15n-yI2oCN-H4tzM9t4aUVlOxpAbo,1540
|
79
|
+
sonusai/speech/voxceleb2.py,sha256=-u0mtxFm4chFipLgMGZXR5EBDtYTCQoU1_j_wYTGwPY,2158
|
70
80
|
sonusai/summarize_metric_spenh.py,sha256=OiZe_bhCq5esXNhsOkHDD7g4ssYrpENDHvDVoPzV9iw,1822
|
71
81
|
sonusai/tplot.py,sha256=85T6OPZfxVegHBiSuilFpdgCNMEE0VKAuciNy4rCY5Y,14544
|
72
|
-
sonusai/utils/__init__.py,sha256=
|
82
|
+
sonusai/utils/__init__.py,sha256=y2Xe72QMNk8LbbjdOUOHiR5eVg32fYrFhinWSuSHi-w,2248
|
73
83
|
sonusai/utils/asl_p56.py,sha256=-bvQpd-jRQVURbkZJpRoyEAq6gTv9Rc3oFDbh5_lcjY,3861
|
74
84
|
sonusai/utils/asr.py,sha256=6y6VYJizHpuQ3MgKbEQ4t2gofO-MW6Ez23oAd6d23IE,2920
|
75
85
|
sonusai/utils/asr_functions/__init__.py,sha256=JyHK67s97bw7QzrlkboWhws4yNytdPatqzLJxfwx-yw,43
|
76
86
|
sonusai/utils/asr_functions/aaware_whisper.py,sha256=LzO9CZV0wBWkjmCR2nSWN_AW9UJwriAsC1OYSlfVeT8,1981
|
77
|
-
sonusai/utils/asr_manifest_functions/__init__.py,sha256=
|
78
|
-
sonusai/utils/asr_manifest_functions/data.py,sha256=
|
79
|
-
sonusai/utils/asr_manifest_functions/librispeech.py,sha256=
|
80
|
-
sonusai/utils/asr_manifest_functions/mcgill_speech.py,sha256=
|
81
|
-
sonusai/utils/asr_manifest_functions/vctk_noisy_speech.py,sha256
|
87
|
+
sonusai/utils/asr_manifest_functions/__init__.py,sha256=jfi9xC5c86F_aMSsI5Xj-pxWGxuQ7fwZ8Wdf4T7kDsA,343
|
88
|
+
sonusai/utils/asr_manifest_functions/data.py,sha256=nO4oT3EQmydwn1pzc-ZM09yz4X2ic-LQuHzGEnJhKe8,32
|
89
|
+
sonusai/utils/asr_manifest_functions/librispeech.py,sha256=_3tGc8qfAUpYJZ0_avpW0vGp7zjdpeqj1HAgXi3TL4Q,1612
|
90
|
+
sonusai/utils/asr_manifest_functions/mcgill_speech.py,sha256=dW-5XTC5xOY3PHU2DvlWNWDeoprXDD0Zq2dXDdPAjzE,934
|
91
|
+
sonusai/utils/asr_manifest_functions/vctk_noisy_speech.py,sha256=9iMrnE-qabLMnyewyxsBMl0uCS8yS7BPJOdmUoOnGAc,2146
|
82
92
|
sonusai/utils/audio_devices.py,sha256=LgaXTln1oRArBzaet3rZiIO2plgtaThuGBc3sJ_sLlo,1414
|
83
|
-
sonusai/utils/braced_glob.py,sha256=
|
93
|
+
sonusai/utils/braced_glob.py,sha256=Z_XIpPK17QiP1JbzAnUC5w3oyG8ZovoyM22Wh-Q_vWU,1675
|
84
94
|
sonusai/utils/calculate_input_shape.py,sha256=63ILxibYKuTQozY83QN8Y2OOhBEbW_1X47Q0askcHDM,984
|
85
95
|
sonusai/utils/convert_string_to_number.py,sha256=i17yIxurp8Iz6NPE-imTRlARrXWqadwm8qbOTuzHZvE,236
|
86
96
|
sonusai/utils/create_timestamp.py,sha256=TxoQXWZ3SFdBEHLOv-ujeIsTEJuiFnKOGRy-FQq45YU,148
|
@@ -97,8 +107,9 @@ sonusai/utils/human_readable_size.py,sha256=SjYT0fUlpbfCzCXHo6csir-VMwqfs5ogr-fg
|
|
97
107
|
sonusai/utils/max_text_width.py,sha256=pxiJMwb_zlkNntexgo7S6lAuF7NLLZvFdOCkxdsQJVY,315
|
98
108
|
sonusai/utils/model_utils.py,sha256=lt2KOGJqsinG71W0i3U29UXFO-47GMAlEabsf2um7bA,862
|
99
109
|
sonusai/utils/numeric_conversion.py,sha256=GRO_2Fba8CcxcFY7bEXKOEUEUX6neA-VN__Bxi1ULsE,340
|
100
|
-
sonusai/utils/onnx_utils.py,sha256=
|
110
|
+
sonusai/utils/onnx_utils.py,sha256=nh2dUDeuERto-0NnTwZ3a6YKKcZFbZjqLLBVzN2l0IU,5682
|
101
111
|
sonusai/utils/parallel.py,sha256=bxedjCzBv9oxzU7NajRr6mOKmkCWr2P7FWAI0p2p9N8,1981
|
112
|
+
sonusai/utils/path_info.py,sha256=QY7iQ0nYpeEDnPN9RyPh4DsgYmVYsLrrlAzKuzkqX1o,118
|
102
113
|
sonusai/utils/print_mixture_details.py,sha256=BzYM4-wHHNa6zxPzBMUJxwKt0gKHmvbwdd7Yp0w15Yk,3017
|
103
114
|
sonusai/utils/ranges.py,sha256=NPBZOVzMb95GTOIxltVO-wSzgcXqZ14wbdV46JDLKrw,1222
|
104
115
|
sonusai/utils/read_mixture_data.py,sha256=Sb30RgSpw6DnH_iD81O7G_KOsdfjQWWLk3euEkxfMa8,453
|
@@ -110,7 +121,7 @@ sonusai/utils/stratified_shuffle_split.py,sha256=rJNXvBp-GxoKzH3OpL7k0ANSu5xMP2z
|
|
110
121
|
sonusai/utils/wave.py,sha256=O4ZXkZ6wjrKGa99wBCdFd8G6bp91MXXDnmGihpaEMh0,856
|
111
122
|
sonusai/utils/yes_or_no.py,sha256=eMLXBVH0cEahiXY4W2KNORmwNQ-ba10eRtldh0y4NYg,263
|
112
123
|
sonusai/vars.py,sha256=m2AefF0m5bXWGXpJj8Pi42zWL2ydeEj7bkak3GrtMyM,940
|
113
|
-
sonusai-0.
|
114
|
-
sonusai-0.
|
115
|
-
sonusai-0.
|
116
|
-
sonusai-0.
|
124
|
+
sonusai-0.17.2.dist-info/METADATA,sha256=eZmrmMohaVLBAz3v2lGdBcwGCjnszgDiKcAHI9i_2YE,2483
|
125
|
+
sonusai-0.17.2.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
126
|
+
sonusai-0.17.2.dist-info/entry_points.txt,sha256=zMNjEphEPO6B3cD1GNpit7z-yA9tUU5-j3W2v-UWstU,92
|
127
|
+
sonusai-0.17.2.dist-info/RECORD,,
|
File without changes
|
File without changes
|