sonusai 0.17.0__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 +22 -51
- 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 +114 -410
- 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 +110 -106
- sonusai/utils/path_info.py +7 -0
- {sonusai-0.17.0.dist-info → sonusai-0.17.2.dist-info}/METADATA +2 -1
- {sonusai-0.17.0.dist-info → sonusai-0.17.2.dist-info}/RECORD +35 -30
- {sonusai-0.17.0.dist-info → sonusai-0.17.2.dist-info}/WHEEL +1 -1
- sonusai/calc_metric_spenh-save.py +0 -1334
- sonusai/onnx_predict-old.py +0 -240
- sonusai/onnx_predict-save.py +0 -487
- sonusai/ovino_predict.py +0 -508
- sonusai/ovino_query_devices.py +0 -47
- sonusai/torchl_onnx-old.py +0 -216
- {sonusai-0.17.0.dist-info → sonusai-0.17.2.dist-info}/entry_points.txt +0 -0
sonusai/utils/braced_glob.py
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
from typing import Generator
|
2
|
+
from typing import LiteralString
|
2
3
|
from typing import Optional
|
3
4
|
from typing import Set
|
4
5
|
|
5
6
|
|
6
|
-
def expand_braces(text: str, seen: Optional[Set[str]] = None) -> Generator[str, None, None]:
|
7
|
+
def expand_braces(text: LiteralString | str | bytes, seen: Optional[Set[str]] = None) -> Generator[str, None, None]:
|
7
8
|
"""Brace-expansion pre-processing for glob.
|
8
9
|
|
9
10
|
Expand all the braces, then run glob on each of the results.
|
@@ -16,6 +17,9 @@ def expand_braces(text: str, seen: Optional[Set[str]] = None) -> Generator[str,
|
|
16
17
|
if seen is None:
|
17
18
|
seen = set()
|
18
19
|
|
20
|
+
if not isinstance(text, str):
|
21
|
+
text = str(text)
|
22
|
+
|
19
23
|
spans = [m.span() for m in re.finditer(r'\{[^{}]*}', text)][::-1]
|
20
24
|
alts = [text[start + 1: stop - 1].split(',') for start, stop in spans]
|
21
25
|
|
@@ -31,7 +35,7 @@ def expand_braces(text: str, seen: Optional[Set[str]] = None) -> Generator[str,
|
|
31
35
|
yield from expand_braces(''.join(replaced), seen)
|
32
36
|
|
33
37
|
|
34
|
-
def braced_glob(pathname: str, recursive: bool = False) -> list[str]:
|
38
|
+
def braced_glob(pathname: LiteralString | str | bytes, recursive: bool = False) -> list[str]:
|
35
39
|
from glob import glob
|
36
40
|
|
37
41
|
result = []
|
@@ -41,7 +45,7 @@ def braced_glob(pathname: str, recursive: bool = False) -> list[str]:
|
|
41
45
|
return result
|
42
46
|
|
43
47
|
|
44
|
-
def braced_iglob(pathname: str, recursive: bool = False) -> Generator[str, None, None]:
|
48
|
+
def braced_iglob(pathname: LiteralString | str | bytes, recursive: bool = False) -> Generator[str, None, None]:
|
45
49
|
from glob import iglob
|
46
50
|
|
47
51
|
for expanded_path in expand_braces(pathname):
|
sonusai/utils/onnx_utils.py
CHANGED
@@ -1,120 +1,134 @@
|
|
1
|
-
from
|
1
|
+
from typing import Optional
|
2
|
+
from typing import Sequence
|
2
3
|
|
3
|
-
from
|
4
|
-
from typing import Any #List, Optional, Tuple
|
5
|
-
import onnxruntime as ort
|
6
|
-
from onnxruntime import InferenceSession
|
7
|
-
import onnx
|
4
|
+
from onnx import ModelProto
|
8
5
|
from onnx import ValueInfoProto
|
9
|
-
from
|
6
|
+
from onnxruntime import InferenceSession
|
7
|
+
from onnxruntime import NodeArg
|
8
|
+
from onnxruntime import SessionOptions
|
9
|
+
|
10
|
+
REQUIRED_HPARAMS = ('feature', 'batch_size', 'timesteps', 'flatten', 'add1ch', 'truth_mutex')
|
11
|
+
|
12
|
+
|
13
|
+
def _extract_shapes(io: list[ValueInfoProto]) -> list[list[int] | str]:
|
14
|
+
shapes: list[list[int] | str] = []
|
15
|
+
|
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')
|
10
38
|
|
39
|
+
return shapes
|
11
40
|
|
12
|
-
@dataclass(frozen=True)
|
13
|
-
class SonusAIMetaData:
|
14
|
-
input_shape: list[int]
|
15
|
-
output_shape: list[int]
|
16
|
-
flattened: bool
|
17
|
-
timestep: bool
|
18
|
-
channel: bool
|
19
|
-
mutex: bool
|
20
|
-
feature: str
|
21
41
|
|
42
|
+
def get_and_check_inputs(model: ModelProto) -> tuple[list[ValueInfoProto], list[list[int] | str]]:
|
43
|
+
from sonusai import logger
|
22
44
|
|
23
|
-
|
24
|
-
# ignore initializer inputs (only seen in older onnx < v1.5
|
45
|
+
# ignore initializer inputs (only seen in older ONNX < v1.5)
|
25
46
|
initializer_names = [x.name for x in model.graph.initializer]
|
26
|
-
|
27
|
-
if len(
|
28
|
-
logger.warning(f'Warning:
|
29
|
-
#raise SystemExit(1)
|
30
|
-
|
31
|
-
inshapes = []
|
32
|
-
for inp in onnx_inputs: # iterate through inputs of the graph to find shapes
|
33
|
-
tensor_type = inp.type.tensor_type # get tensor type: 0, 1, 2,
|
34
|
-
if (tensor_type.HasField("shape")): # check if it has a shape:
|
35
|
-
tmpshape = []
|
36
|
-
for d in tensor_type.shape.dim: # iterate through dimensions of the shape
|
37
|
-
if (d.HasField("dim_value")): # known dimension, int value
|
38
|
-
tmpshape.append(d.dim_value)
|
39
|
-
elif (d.HasField("dim_param")): # dynamic dim with symbolic name of d.dim_param
|
40
|
-
tmpshape.append(0) # set size to 0
|
41
|
-
else: # unknown dimension with no name
|
42
|
-
tmpshape.append(0) # also set to 0
|
43
|
-
inshapes.append(tmpshape) # add as a list
|
44
|
-
else:
|
45
|
-
inshapes.append("unknown rank")
|
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')
|
46
50
|
|
47
51
|
# This one-liner works only if input has type and shape, returns a list
|
48
|
-
#
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
tensor_type = inp.type.tensor_type # get tensor type: 0, 1, 2,
|
61
|
-
if (tensor_type.HasField("shape")): # check if it has a shape:
|
62
|
-
tmpshape = []
|
63
|
-
for d in tensor_type.shape.dim: # iterate through dimensions of the shape
|
64
|
-
if (d.HasField("dim_value")): # known dimension, int value
|
65
|
-
tmpshape.append(d.dim_value)
|
66
|
-
elif (d.HasField("dim_param")): # dynamic dim with symbolic name of d.dim_param
|
67
|
-
tmpshape.append(0) # set size to 0
|
68
|
-
else: # unknown dimension with no name
|
69
|
-
tmpshape.append(0) # also set to 0
|
70
|
-
oshapes.append(tmpshape) # add as a list
|
71
|
-
else:
|
72
|
-
oshapes.append("unknown rank")
|
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
|
56
|
+
|
57
|
+
|
58
|
+
def get_and_check_outputs(model: ModelProto) -> tuple[list[ValueInfoProto], list[list[int] | str]]:
|
59
|
+
from sonusai import logger
|
60
|
+
|
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')
|
73
64
|
|
74
|
-
|
65
|
+
shapes = _extract_shapes(outputs)
|
75
66
|
|
67
|
+
return outputs, shapes
|
76
68
|
|
77
|
-
|
78
|
-
|
69
|
+
|
70
|
+
def add_sonusai_metadata(model: ModelProto, hparams: dict) -> ModelProto:
|
71
|
+
"""Add SonusAI hyperparameters as metadata to an ONNX model using 'hparams' key
|
79
72
|
|
80
73
|
:param model: ONNX model
|
81
|
-
:hparams: dictionary of
|
74
|
+
:param hparams: dictionary of hyperparameters to add
|
75
|
+
:return: ONNX model
|
76
|
+
|
82
77
|
Note SonusAI conventions require models to have:
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
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
|
88
84
|
"""
|
85
|
+
from sonusai import logger
|
86
|
+
|
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}')
|
89
92
|
|
90
|
-
# Add hyper-parameters as metadata in onnx model under hparams key
|
91
|
-
assert eval(str(hparams)) == hparams # Note hparams should be a dict (i.e. extracted from checkpoint)
|
92
93
|
meta = model.metadata_props.add()
|
93
|
-
meta.key =
|
94
|
+
meta.key = 'hparams'
|
94
95
|
meta.value = str(hparams)
|
95
96
|
|
96
97
|
return model
|
97
98
|
|
98
99
|
|
99
|
-
def get_sonusai_metadata(session: InferenceSession) ->
|
100
|
-
"""Get SonusAI
|
101
|
-
Returns dictionary hparams
|
100
|
+
def get_sonusai_metadata(session: InferenceSession) -> Optional[dict]:
|
101
|
+
"""Get SonusAI hyperparameter metadata from an ONNX Runtime session.
|
102
102
|
"""
|
103
|
+
from sonusai import logger
|
104
|
+
|
103
105
|
meta = session.get_modelmeta()
|
104
|
-
hparams
|
106
|
+
if 'hparams' not in meta.custom_metadata_map.keys():
|
107
|
+
logger.warning("Warning: ONNX model metadata does not contain 'hparams'")
|
108
|
+
return None
|
105
109
|
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
# timestep=m['has_timestep'] == 'True',
|
111
|
-
# channel=m['has_channel'] == 'True',
|
112
|
-
# mutex=m['is_mutex'] == 'True',
|
113
|
-
# feature=m['feature'])
|
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
114
|
|
115
115
|
return hparams
|
116
116
|
|
117
|
-
|
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
|
+
|
118
132
|
if exists(model_path) and isfile(model_path):
|
119
133
|
model_basename = basename(model_path)
|
120
134
|
model_root = splitext(model_basename)[0]
|
@@ -123,32 +137,22 @@ def load_ort_session(model_path, providers=['CPUExecutionProvider']):
|
|
123
137
|
session = ort.InferenceSession(model_path, providers=providers)
|
124
138
|
options = ort.SessionOptions()
|
125
139
|
except Exception as e:
|
126
|
-
logger.exception(f'Error: could not load
|
140
|
+
logger.exception(f'Error: could not load ONNX model from {model_path}: {e}')
|
127
141
|
raise SystemExit(1)
|
128
142
|
else:
|
129
143
|
logger.exception(f'Error: model file does not exist: {model_path}')
|
130
144
|
raise SystemExit(1)
|
131
145
|
|
132
146
|
logger.info(f'Opened session with provider options: {session._provider_options}.')
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
f'checking for required ones ...')
|
138
|
-
# Print to log here will fail if required parameters not available.
|
139
|
-
logger.info(f'feature {hparams["feature"]}')
|
140
|
-
logger.info(f'batch_size {hparams["batch_size"]}')
|
141
|
-
logger.info(f'timesteps {hparams["timesteps"]}')
|
142
|
-
logger.info(f'flatten, add1ch {hparams["flatten"]}, {hparams["add1ch"]}')
|
143
|
-
logger.info(f'truth_mutex {hparams["truth_mutex"]}')
|
144
|
-
except:
|
145
|
-
hparams = None
|
146
|
-
logger.warning(f'Warning: onnx model does not have required SonusAI hyper-parameters.')
|
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]}')
|
147
151
|
|
148
152
|
inputs = session.get_inputs()
|
149
153
|
outputs = session.get_outputs()
|
150
154
|
|
151
|
-
#in_names = [n.name for n in session.get_inputs()]
|
152
|
-
#out_names = [n.name for n in session.get_outputs()]
|
155
|
+
# in_names = [n.name for n in session.get_inputs()]
|
156
|
+
# out_names = [n.name for n in session.get_outputs()]
|
153
157
|
|
154
|
-
return session, options, model_root, hparams, inputs, outputs
|
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.17.
|
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,14 +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
|
5
|
-
sonusai/calc_metric_spenh.py,sha256=_92RWCyxAf7_S61L5oX6o4GuvuOCDKn7BPg7pB0r1kY,61836
|
3
|
+
sonusai/audiofe.py,sha256=AHXV7fQKumkwUSbOS-ZU6Cp1VF88DRtqt7foVbf-Nh8,11148
|
4
|
+
sonusai/calc_metric_spenh.py,sha256=Xgy9EKbZRPAydjTZbpZjaqLBNkjQPjDmSbfL8PbVSgY,62157
|
6
5
|
sonusai/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
7
6
|
sonusai/data/genmixdb.yml,sha256=-XSs_hUR6wHJVoTPmSewzXL7u61X-xmHY46lNPatxSE,1025
|
8
7
|
sonusai/data/speech_ma01_01.wav,sha256=PK0vMKg-NR6rPE3KouxHGF6PKXnJCr7AwjMqfu98LUA,76644
|
9
8
|
sonusai/data/whitenoise.wav,sha256=I2umov0m34y56F9IsIBi1XtE76ZeZaSKDf70cJRe3pI,1920044
|
10
9
|
sonusai/doc/__init__.py,sha256=rP5Hgn0Iys_xkuv4caxngdqehuU4zLZsiKuv8Nde67M,19
|
11
|
-
sonusai/doc/doc.py,sha256=
|
10
|
+
sonusai/doc/doc.py,sha256=4NEZ2K-hTk7Y1Gxx09UEjNhiYkD9xid-kJ1Nt8H5_gM,22670
|
12
11
|
sonusai/doc.py,sha256=l8CaFgLI8mqx4tn0aXfxKqa2dy9GgC0zjYxZAkpmi1E,878
|
13
12
|
sonusai/genft.py,sha256=OzET3iTE-QhrUckzidfZvCDXZlAxIF5Xe5NEf856Vvk,5662
|
14
13
|
sonusai/genmix.py,sha256=TU5aTebGHsbfwsRbynYbegGBelSma9khuQkDk0dFE3I,7075
|
@@ -29,28 +28,29 @@ sonusai/metrics/class_summary.py,sha256=4Mb25nuk6eqotnQSFMuOQL3zofGcpNXDfDlPa513
|
|
29
28
|
sonusai/metrics/confusion_matrix_summary.py,sha256=3qg6TMKjJeHtNjj2YnNjPFSlMrQXt0Zcu1dLkGB_aPU,4001
|
30
29
|
sonusai/metrics/one_hot.py,sha256=QSeH_GdqBpOAKLrNnQ8gjcPC-vSdUqC0yPEQueTA6VI,13548
|
31
30
|
sonusai/metrics/snr_summary.py,sha256=P4U5_Xr7v9F8kF-rZBnpsVNt3p42rIVS6zmch8yfVfg,5575
|
32
|
-
sonusai/mixture/__init__.py,sha256=
|
33
|
-
sonusai/mixture/audio.py,sha256=
|
31
|
+
sonusai/mixture/__init__.py,sha256=yszEbRnlxeZXSegEBUVwyrSZwNIl6ufaJu_NiZ-1rqY,5399
|
32
|
+
sonusai/mixture/audio.py,sha256=2lqy0DtTMTYhX4aAOIvVtLNn6QB5ivTa7cJIaAlbfAg,2385
|
34
33
|
sonusai/mixture/augmentation.py,sha256=Blb90tdTwBOj5w9tRcYyS5H67YJuFiXsGqwZWd7ON4g,10468
|
35
34
|
sonusai/mixture/class_count.py,sha256=_wFnVl2yEOnbor7pLg7cYOUeX6nioov-03Cv3SEbh2k,996
|
36
35
|
sonusai/mixture/config.py,sha256=d2IzZ1samHWGMpoKzSmUwMyAWWhgmyNoxyO8oiUwbsg,22193
|
37
36
|
sonusai/mixture/constants.py,sha256=xjCskcQi6khqYZDf7j6z1OkeN1C6wE06kBBapcJiNI4,1428
|
38
|
-
sonusai/mixture/datatypes.py,sha256=
|
37
|
+
sonusai/mixture/datatypes.py,sha256=mMNxtzyDvAmtuoTHVVJP7jBi6OH-QyC1NfC_ZIiuLlY,8440
|
39
38
|
sonusai/mixture/eq_rule_is_valid.py,sha256=MpQwRA5M76wSiQWEI1lW2cLFdPaMttBLcQp3tWD8efM,1243
|
40
39
|
sonusai/mixture/feature.py,sha256=Rwuf82IoXzhHPGbKYVGcatImF_ssBf_FfvbqghVPXtg,4116
|
41
40
|
sonusai/mixture/generation.py,sha256=miUrc3QOSUNIG6mDkiMCZ6M2ulivUZxlYUAJUOVomWc,39039
|
42
41
|
sonusai/mixture/helpers.py,sha256=GSGSD2KnvOeEIB6IwNTxyaQNjghTSBMB729kUEd_RiM,22403
|
43
42
|
sonusai/mixture/log_duration_and_sizes.py,sha256=baTUpqyM15wA125jo9E3posmVJUe3WlpksyO6v9Jul0,1347
|
44
43
|
sonusai/mixture/mapped_snr_f.py,sha256=mlbYM1t14OXe_Zg4CjpWTuA_Zun4W0O3bSUXeodRBQs,1845
|
45
|
-
sonusai/mixture/mixdb.py,sha256=
|
46
|
-
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
|
47
46
|
sonusai/mixture/sox_audio.py,sha256=HT3kYA9TP5QPCuoOJdUMnGVN-qY6q96DGL8zxuog76o,12277
|
48
47
|
sonusai/mixture/sox_augmentation.py,sha256=F9tBdNvX2guCn7gRppAFrxRnBtjw9q6qAq2_v_A4hh0,4490
|
48
|
+
sonusai/mixture/speaker_metadata.py,sha256=l98avdxLYUsSDZ88xUjfvHnACkbnD0_Dg1aBGDbzS9I,1380
|
49
49
|
sonusai/mixture/spectral_mask.py,sha256=8AkCwhy-PSdP1Uri9miKZP-bXFYnFcH_c9xZCGrHavU,2071
|
50
50
|
sonusai/mixture/target_class_balancing.py,sha256=NTNiKZH0_PWLooeow0l41CjJKK8ZTMVbUqz9ZkaNtWk,4900
|
51
51
|
sonusai/mixture/targets.py,sha256=wyy5vhLhuN-hqBMBGoziVvEJg3FKFvJFgmEE7_LaV2M,7908
|
52
52
|
sonusai/mixture/tokenized_shell_vars.py,sha256=gCxw8SQUcal6mqWKF7hOBTgSQmbJUk1nT0Gn3H8GA0U,4705
|
53
|
-
sonusai/mixture/torchaudio_audio.py,sha256=
|
53
|
+
sonusai/mixture/torchaudio_audio.py,sha256=KhHeOMsjmbwOaAcoKD61aFvYBYSlA8OysfT5iGn45MA,3010
|
54
54
|
sonusai/mixture/torchaudio_augmentation.py,sha256=1vEDHI0caL1vrgoY2lAWe4CiHE2jKRuKKH7x23GHw0w,4390
|
55
55
|
sonusai/mixture/truth.py,sha256=Y41pZ52Xkols9LUler0NlgnilUOscBIucmw4GcxXNzU,1612
|
56
56
|
sonusai/mixture/truth_functions/__init__.py,sha256=82lKYHhLy8KW3gHngrocoqwupGVLVsWdIXdYs3vhjOc,359
|
@@ -61,32 +61,36 @@ sonusai/mixture/truth_functions/file.py,sha256=jOJuC_3y9BH6GGOp9eKcbVrHLVRzUA80B
|
|
61
61
|
sonusai/mixture/truth_functions/phoneme.py,sha256=stYdlPuNytQK_LLT61OJLfYSqKd-sDjQZdtJKGzt5wA,479
|
62
62
|
sonusai/mixture/truth_functions/sed.py,sha256=8cHjEFjZaH_0hIOHhPmj4AJz2GpEADM6Ys2x4NoiWSY,2469
|
63
63
|
sonusai/mixture/truth_functions/target.py,sha256=KAsjugDRooOA5BRcHVAbZRgV7l8S5CFg7CZ0XtKZaQ0,5764
|
64
|
-
sonusai/mkmanifest.py,sha256=
|
64
|
+
sonusai/mkmanifest.py,sha256=imI8swwPYVzumrUYEL-9JLvun-ez98PtlUBj2b729k8,8682
|
65
65
|
sonusai/mkwav.py,sha256=kLfC2ZuF-t8P97nqYw2falTZpymxAeXv0YTJCe6nK10,5356
|
66
|
-
sonusai/onnx_predict
|
67
|
-
sonusai/onnx_predict-save.py,sha256=ewiV5-HcW5zcDWuIF9xEbdBwbdL8vNWfu2_kaur5jAo,22354
|
68
|
-
sonusai/onnx_predict.py,sha256=-ETvGH7fHXjnmY-c2r_8gOHEX1VSLwdSToZ6gSBP3_w,23021
|
69
|
-
sonusai/ovino_predict.py,sha256=QtWY_YEdaeqJL5yikfeeDwhbBtjXYjGNtR9310PGGSc,21830
|
70
|
-
sonusai/ovino_query_devices.py,sha256=XkXdOlZldI0MfG6nXZfTq8OgECaY8gAzQl36sJRuaIU,1584
|
66
|
+
sonusai/onnx_predict.py,sha256=ZhicNEbjxm34edIrUcmuvKkV3NRFQk4LBn1LUCFdPjg,8733
|
71
67
|
sonusai/plot.py,sha256=ERkmxMM3qjcCDm4LGDQY4fRAncCYAzP7uW8iZ7_brcg,17105
|
72
68
|
sonusai/post_spenh_targetf.py,sha256=xOz5T6WZuyTHmfbtILIY9skgH064Wvi2GF2Bo5L3YMU,4998
|
73
69
|
sonusai/queries/__init__.py,sha256=oKY5JeqZ4Cz7DwCwPc1_ydB8bUs6KaMcWFp_w02TjOs,255
|
74
|
-
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
|
75
80
|
sonusai/summarize_metric_spenh.py,sha256=OiZe_bhCq5esXNhsOkHDD7g4ssYrpENDHvDVoPzV9iw,1822
|
76
|
-
sonusai/torchl_onnx-old.py,sha256=5JYow3XpBaUdtuyAW0mOZyCKL_4FrHvEekYBRdDT6KA,8967
|
77
81
|
sonusai/tplot.py,sha256=85T6OPZfxVegHBiSuilFpdgCNMEE0VKAuciNy4rCY5Y,14544
|
78
|
-
sonusai/utils/__init__.py,sha256=
|
82
|
+
sonusai/utils/__init__.py,sha256=y2Xe72QMNk8LbbjdOUOHiR5eVg32fYrFhinWSuSHi-w,2248
|
79
83
|
sonusai/utils/asl_p56.py,sha256=-bvQpd-jRQVURbkZJpRoyEAq6gTv9Rc3oFDbh5_lcjY,3861
|
80
84
|
sonusai/utils/asr.py,sha256=6y6VYJizHpuQ3MgKbEQ4t2gofO-MW6Ez23oAd6d23IE,2920
|
81
85
|
sonusai/utils/asr_functions/__init__.py,sha256=JyHK67s97bw7QzrlkboWhws4yNytdPatqzLJxfwx-yw,43
|
82
86
|
sonusai/utils/asr_functions/aaware_whisper.py,sha256=LzO9CZV0wBWkjmCR2nSWN_AW9UJwriAsC1OYSlfVeT8,1981
|
83
|
-
sonusai/utils/asr_manifest_functions/__init__.py,sha256=
|
84
|
-
sonusai/utils/asr_manifest_functions/data.py,sha256=
|
85
|
-
sonusai/utils/asr_manifest_functions/librispeech.py,sha256=
|
86
|
-
sonusai/utils/asr_manifest_functions/mcgill_speech.py,sha256=
|
87
|
-
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
|
88
92
|
sonusai/utils/audio_devices.py,sha256=LgaXTln1oRArBzaet3rZiIO2plgtaThuGBc3sJ_sLlo,1414
|
89
|
-
sonusai/utils/braced_glob.py,sha256=
|
93
|
+
sonusai/utils/braced_glob.py,sha256=Z_XIpPK17QiP1JbzAnUC5w3oyG8ZovoyM22Wh-Q_vWU,1675
|
90
94
|
sonusai/utils/calculate_input_shape.py,sha256=63ILxibYKuTQozY83QN8Y2OOhBEbW_1X47Q0askcHDM,984
|
91
95
|
sonusai/utils/convert_string_to_number.py,sha256=i17yIxurp8Iz6NPE-imTRlARrXWqadwm8qbOTuzHZvE,236
|
92
96
|
sonusai/utils/create_timestamp.py,sha256=TxoQXWZ3SFdBEHLOv-ujeIsTEJuiFnKOGRy-FQq45YU,148
|
@@ -103,8 +107,9 @@ sonusai/utils/human_readable_size.py,sha256=SjYT0fUlpbfCzCXHo6csir-VMwqfs5ogr-fg
|
|
103
107
|
sonusai/utils/max_text_width.py,sha256=pxiJMwb_zlkNntexgo7S6lAuF7NLLZvFdOCkxdsQJVY,315
|
104
108
|
sonusai/utils/model_utils.py,sha256=lt2KOGJqsinG71W0i3U29UXFO-47GMAlEabsf2um7bA,862
|
105
109
|
sonusai/utils/numeric_conversion.py,sha256=GRO_2Fba8CcxcFY7bEXKOEUEUX6neA-VN__Bxi1ULsE,340
|
106
|
-
sonusai/utils/onnx_utils.py,sha256=
|
110
|
+
sonusai/utils/onnx_utils.py,sha256=nh2dUDeuERto-0NnTwZ3a6YKKcZFbZjqLLBVzN2l0IU,5682
|
107
111
|
sonusai/utils/parallel.py,sha256=bxedjCzBv9oxzU7NajRr6mOKmkCWr2P7FWAI0p2p9N8,1981
|
112
|
+
sonusai/utils/path_info.py,sha256=QY7iQ0nYpeEDnPN9RyPh4DsgYmVYsLrrlAzKuzkqX1o,118
|
108
113
|
sonusai/utils/print_mixture_details.py,sha256=BzYM4-wHHNa6zxPzBMUJxwKt0gKHmvbwdd7Yp0w15Yk,3017
|
109
114
|
sonusai/utils/ranges.py,sha256=NPBZOVzMb95GTOIxltVO-wSzgcXqZ14wbdV46JDLKrw,1222
|
110
115
|
sonusai/utils/read_mixture_data.py,sha256=Sb30RgSpw6DnH_iD81O7G_KOsdfjQWWLk3euEkxfMa8,453
|
@@ -116,7 +121,7 @@ sonusai/utils/stratified_shuffle_split.py,sha256=rJNXvBp-GxoKzH3OpL7k0ANSu5xMP2z
|
|
116
121
|
sonusai/utils/wave.py,sha256=O4ZXkZ6wjrKGa99wBCdFd8G6bp91MXXDnmGihpaEMh0,856
|
117
122
|
sonusai/utils/yes_or_no.py,sha256=eMLXBVH0cEahiXY4W2KNORmwNQ-ba10eRtldh0y4NYg,263
|
118
123
|
sonusai/vars.py,sha256=m2AefF0m5bXWGXpJj8Pi42zWL2ydeEj7bkak3GrtMyM,940
|
119
|
-
sonusai-0.17.
|
120
|
-
sonusai-0.17.
|
121
|
-
sonusai-0.17.
|
122
|
-
sonusai-0.17.
|
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,,
|