sonusai 1.0.4__py3-none-any.whl → 1.0.6__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 +12 -0
- sonusai/genmixdb.py +10 -7
- sonusai/mixture/generation.py +70 -51
- sonusai/mixture/mixdb.py +10 -6
- {sonusai-1.0.4.dist-info → sonusai-1.0.6.dist-info}/METADATA +1 -1
- {sonusai-1.0.4.dist-info → sonusai-1.0.6.dist-info}/RECORD +8 -8
- {sonusai-1.0.4.dist-info → sonusai-1.0.6.dist-info}/WHEEL +0 -0
- {sonusai-1.0.4.dist-info → sonusai-1.0.6.dist-info}/entry_points.txt +0 -0
sonusai/__init__.py
CHANGED
@@ -26,19 +26,31 @@ commands_doc = """
|
|
26
26
|
logger = logging.getLogger("sonusai")
|
27
27
|
logger.setLevel(logging.DEBUG)
|
28
28
|
formatter = logging.Formatter("%(message)s")
|
29
|
+
formatter_db = logging.Formatter("%(asctime)s %(message)s")
|
29
30
|
console_handler = RichHandler(show_level=False, show_path=False, show_time=False)
|
30
31
|
console_handler.setLevel(logging.DEBUG)
|
31
32
|
console_handler.setFormatter(formatter)
|
32
33
|
logger.addHandler(console_handler)
|
33
34
|
|
35
|
+
logger_db = logging.getLogger("sonusai_db")
|
36
|
+
logger_db.setLevel(logging.DEBUG)
|
34
37
|
|
35
38
|
# create file handler
|
36
39
|
def create_file_handler(filename: str) -> None:
|
40
|
+
from pathlib import Path
|
41
|
+
|
37
42
|
fh = logging.FileHandler(filename=filename, mode="w")
|
38
43
|
fh.setLevel(logging.DEBUG)
|
39
44
|
fh.setFormatter(formatter)
|
40
45
|
logger.addHandler(fh)
|
41
46
|
|
47
|
+
filename_db = Path(filename)
|
48
|
+
filename_db = filename_db.parent / (filename_db.stem + "_dbtrace" + filename_db.suffix)
|
49
|
+
fh = logging.FileHandler(filename=filename_db, mode="w")
|
50
|
+
fh.setLevel(logging.DEBUG)
|
51
|
+
fh.setFormatter(formatter_db)
|
52
|
+
logger_db.addHandler(fh)
|
53
|
+
|
42
54
|
|
43
55
|
# update console handler
|
44
56
|
def update_console_handler(verbose: bool) -> None:
|
sonusai/genmixdb.py
CHANGED
@@ -30,6 +30,7 @@ def genmixdb(
|
|
30
30
|
logging: bool = True,
|
31
31
|
show_progress: bool = False,
|
32
32
|
test: bool = False,
|
33
|
+
verbose: bool = False,
|
33
34
|
save_json: bool = False,
|
34
35
|
no_par: bool = False,
|
35
36
|
) -> None:
|
@@ -69,11 +70,11 @@ def genmixdb(
|
|
69
70
|
|
70
71
|
mixdb = MixtureDatabase(location, test)
|
71
72
|
|
72
|
-
populate_top_table(location, config, test)
|
73
|
-
populate_class_label_table(location, config, test)
|
74
|
-
populate_class_weights_threshold_table(location, config, test)
|
75
|
-
populate_spectral_mask_table(location, config, test)
|
76
|
-
populate_truth_parameters_table(location, config, test)
|
73
|
+
populate_top_table(location, config, test, verbose)
|
74
|
+
populate_class_label_table(location, config, test, verbose)
|
75
|
+
populate_class_weights_threshold_table(location, config, test, verbose)
|
76
|
+
populate_spectral_mask_table(location, config, test, verbose)
|
77
|
+
populate_truth_parameters_table(location, config, test, verbose)
|
77
78
|
|
78
79
|
seed(config["seed"])
|
79
80
|
|
@@ -94,7 +95,7 @@ def genmixdb(
|
|
94
95
|
if logging:
|
95
96
|
logger.info("Populating source file table")
|
96
97
|
|
97
|
-
populate_source_file_table(location, source_files, test)
|
98
|
+
populate_source_file_table(location, source_files, test, verbose)
|
98
99
|
|
99
100
|
if logging:
|
100
101
|
logger.info("Sources summary")
|
@@ -129,7 +130,7 @@ def genmixdb(
|
|
129
130
|
if logging:
|
130
131
|
logger.info("Populating impulse response file table")
|
131
132
|
|
132
|
-
populate_impulse_response_file_table(location, ir_files, test)
|
133
|
+
populate_impulse_response_file_table(location, ir_files, test, verbose)
|
133
134
|
|
134
135
|
if logging:
|
135
136
|
logger.debug("List of impulse responses:")
|
@@ -219,6 +220,7 @@ def genmixdb(
|
|
219
220
|
location=location,
|
220
221
|
mixtures=mixtures,
|
221
222
|
test=test,
|
223
|
+
verbose=verbose,
|
222
224
|
logging=logging,
|
223
225
|
show_progress=show_progress,
|
224
226
|
)
|
@@ -330,6 +332,7 @@ def main() -> None:
|
|
330
332
|
save_mix=save_mix,
|
331
333
|
show_progress=True,
|
332
334
|
save_json=save_json,
|
335
|
+
verbose=verbose,
|
333
336
|
no_par=no_par,
|
334
337
|
)
|
335
338
|
|
sonusai/mixture/generation.py
CHANGED
@@ -17,10 +17,10 @@ def config_file(location: str) -> str:
|
|
17
17
|
return join(location, "config.yml")
|
18
18
|
|
19
19
|
|
20
|
-
def initialize_db(location: str, test: bool = False) -> None:
|
20
|
+
def initialize_db(location: str, test: bool = False, verbose: bool = False) -> None:
|
21
21
|
from .mixdb import db_connection
|
22
22
|
|
23
|
-
con = db_connection(location=location, create=True, test=test)
|
23
|
+
con = db_connection(location=location, create=True, test=test, verbose=verbose)
|
24
24
|
|
25
25
|
con.execute("""
|
26
26
|
CREATE TABLE truth_config(
|
@@ -130,6 +130,7 @@ def initialize_db(location: str, test: bool = False) -> None:
|
|
130
130
|
snr_gain FLOAT NOT NULL,
|
131
131
|
snr_random BOOLEAN NOT NULL,
|
132
132
|
start INTEGER NOT NULL,
|
133
|
+
UNIQUE(effects, file_id, pre_tempo, repeat, snr, snr_gain, snr_random, start),
|
133
134
|
FOREIGN KEY(file_id) REFERENCES source_file (id))
|
134
135
|
""")
|
135
136
|
|
@@ -155,14 +156,14 @@ def initialize_db(location: str, test: bool = False) -> None:
|
|
155
156
|
con.close()
|
156
157
|
|
157
158
|
|
158
|
-
def populate_top_table(location: str, config: dict, test: bool = False) -> None:
|
159
|
+
def populate_top_table(location: str, config: dict, test: bool = False, verbose: bool = False) -> None:
|
159
160
|
"""Populate top table"""
|
160
161
|
import json
|
161
162
|
|
162
163
|
from .constants import MIXDB_VERSION
|
163
164
|
from .mixdb import db_connection
|
164
165
|
|
165
|
-
con = db_connection(location=location, readonly=False, test=test)
|
166
|
+
con = db_connection(location=location, readonly=False, test=test, verbose=verbose)
|
166
167
|
con.execute(
|
167
168
|
"""
|
168
169
|
INSERT INTO top (id, asr_configs, class_balancing, feature, mixid_width, num_classes,
|
@@ -186,11 +187,11 @@ def populate_top_table(location: str, config: dict, test: bool = False) -> None:
|
|
186
187
|
con.close()
|
187
188
|
|
188
189
|
|
189
|
-
def populate_class_label_table(location: str, config: dict, test: bool = False) -> None:
|
190
|
+
def populate_class_label_table(location: str, config: dict, test: bool = False, verbose: bool = False) -> None:
|
190
191
|
"""Populate class_label table"""
|
191
192
|
from .mixdb import db_connection
|
192
193
|
|
193
|
-
con = db_connection(location=location, readonly=False, test=test)
|
194
|
+
con = db_connection(location=location, readonly=False, test=test, verbose=verbose)
|
194
195
|
con.executemany(
|
195
196
|
"INSERT INTO class_label (label) VALUES (?)",
|
196
197
|
[(item,) for item in config["class_labels"]],
|
@@ -199,7 +200,12 @@ def populate_class_label_table(location: str, config: dict, test: bool = False)
|
|
199
200
|
con.close()
|
200
201
|
|
201
202
|
|
202
|
-
def populate_class_weights_threshold_table(
|
203
|
+
def populate_class_weights_threshold_table(
|
204
|
+
location: str,
|
205
|
+
config: dict,
|
206
|
+
test: bool = False,
|
207
|
+
verbose: bool = False,
|
208
|
+
) -> None:
|
203
209
|
"""Populate class_weights_threshold table"""
|
204
210
|
from .mixdb import db_connection
|
205
211
|
|
@@ -215,7 +221,7 @@ def populate_class_weights_threshold_table(location: str, config: dict, test: bo
|
|
215
221
|
if len(class_weights_threshold) != num_classes:
|
216
222
|
raise ValueError(f"invalid class_weights_threshold length: {len(class_weights_threshold)}")
|
217
223
|
|
218
|
-
con = db_connection(location=location, readonly=False, test=test)
|
224
|
+
con = db_connection(location=location, readonly=False, test=test, verbose=verbose)
|
219
225
|
con.executemany(
|
220
226
|
"INSERT INTO class_weights_threshold (threshold) VALUES (?)",
|
221
227
|
[(item,) for item in class_weights_threshold],
|
@@ -224,12 +230,12 @@ def populate_class_weights_threshold_table(location: str, config: dict, test: bo
|
|
224
230
|
con.close()
|
225
231
|
|
226
232
|
|
227
|
-
def populate_spectral_mask_table(location: str, config: dict, test: bool = False) -> None:
|
233
|
+
def populate_spectral_mask_table(location: str, config: dict, test: bool = False, verbose: bool = False) -> None:
|
228
234
|
"""Populate spectral_mask table"""
|
229
235
|
from .config import get_spectral_masks
|
230
236
|
from .mixdb import db_connection
|
231
237
|
|
232
|
-
con = db_connection(location=location, readonly=False, test=test)
|
238
|
+
con = db_connection(location=location, readonly=False, test=test, verbose=verbose)
|
233
239
|
con.executemany(
|
234
240
|
"""
|
235
241
|
INSERT INTO spectral_mask (f_max_width, f_num, t_max_percent, t_max_width, t_num) VALUES (?, ?, ?, ?, ?)
|
@@ -249,12 +255,12 @@ def populate_spectral_mask_table(location: str, config: dict, test: bool = False
|
|
249
255
|
con.close()
|
250
256
|
|
251
257
|
|
252
|
-
def populate_truth_parameters_table(location: str, config: dict, test: bool = False) -> None:
|
258
|
+
def populate_truth_parameters_table(location: str, config: dict, test: bool = False, verbose: bool = False) -> None:
|
253
259
|
"""Populate truth_parameters table"""
|
254
260
|
from .config import get_truth_parameters
|
255
261
|
from .mixdb import db_connection
|
256
262
|
|
257
|
-
con = db_connection(location=location, readonly=False, test=test)
|
263
|
+
con = db_connection(location=location, readonly=False, test=test, verbose=verbose)
|
258
264
|
con.executemany(
|
259
265
|
"""
|
260
266
|
INSERT INTO truth_parameters (category, name, parameters) VALUES (?, ?, ?)
|
@@ -272,17 +278,22 @@ def populate_truth_parameters_table(location: str, config: dict, test: bool = Fa
|
|
272
278
|
con.close()
|
273
279
|
|
274
280
|
|
275
|
-
def populate_source_file_table(
|
281
|
+
def populate_source_file_table(
|
282
|
+
location: str,
|
283
|
+
files: list[SourceFile],
|
284
|
+
test: bool = False,
|
285
|
+
verbose: bool = False,
|
286
|
+
) -> None:
|
276
287
|
"""Populate source file table"""
|
277
288
|
import json
|
278
289
|
from pathlib import Path
|
279
290
|
|
280
291
|
from .mixdb import db_connection
|
281
292
|
|
282
|
-
_populate_truth_config_table(location, files, test)
|
283
|
-
_populate_speaker_table(location, files, test)
|
293
|
+
_populate_truth_config_table(location, files, test, verbose)
|
294
|
+
_populate_speaker_table(location, files, test, verbose)
|
284
295
|
|
285
|
-
con = db_connection(location=location, readonly=False, test=test)
|
296
|
+
con = db_connection(location=location, readonly=False, test=test, verbose=verbose)
|
286
297
|
|
287
298
|
cur = con.cursor()
|
288
299
|
textgrid_metadata_tiers: set[str] = set()
|
@@ -341,13 +352,18 @@ def populate_source_file_table(location: str, files: list[SourceFile], test: boo
|
|
341
352
|
con.close()
|
342
353
|
|
343
354
|
|
344
|
-
def populate_impulse_response_file_table(
|
355
|
+
def populate_impulse_response_file_table(
|
356
|
+
location: str,
|
357
|
+
files: list[ImpulseResponseFile],
|
358
|
+
test: bool = False,
|
359
|
+
verbose: bool = False,
|
360
|
+
) -> None:
|
345
361
|
"""Populate impulse response file table"""
|
346
362
|
from .mixdb import db_connection
|
347
363
|
|
348
|
-
_populate_impulse_response_tag_table(location, files, test)
|
364
|
+
_populate_impulse_response_tag_table(location, files, test, verbose)
|
349
365
|
|
350
|
-
con = db_connection(location=location, readonly=False, test=test)
|
366
|
+
con = db_connection(location=location, readonly=False, test=test, verbose=verbose)
|
351
367
|
|
352
368
|
cur = con.cursor()
|
353
369
|
for file in files:
|
@@ -367,12 +383,12 @@ def populate_impulse_response_file_table(location: str, files: list[ImpulseRespo
|
|
367
383
|
con.close()
|
368
384
|
|
369
385
|
|
370
|
-
def update_mixid_width(location: str, num_mixtures: int, test: bool = False) -> None:
|
386
|
+
def update_mixid_width(location: str, num_mixtures: int, test: bool = False, verbose: bool = False) -> None:
|
371
387
|
"""Update the mixid width"""
|
372
388
|
from ..utils.max_text_width import max_text_width
|
373
389
|
from .mixdb import db_connection
|
374
390
|
|
375
|
-
con = db_connection(location=location, readonly=False, test=test)
|
391
|
+
con = db_connection(location=location, readonly=False, test=test, verbose=verbose)
|
376
392
|
con.execute("UPDATE top SET mixid_width=? WHERE ? = id", (max_text_width(num_mixtures), 1))
|
377
393
|
con.commit()
|
378
394
|
con.close()
|
@@ -422,6 +438,7 @@ def populate_mixture_table(
|
|
422
438
|
location: str,
|
423
439
|
mixtures: list[Mixture],
|
424
440
|
test: bool = False,
|
441
|
+
verbose: bool = False,
|
425
442
|
logging: bool = False,
|
426
443
|
show_progress: bool = False,
|
427
444
|
) -> None:
|
@@ -432,32 +449,11 @@ def populate_mixture_table(
|
|
432
449
|
from .helpers import from_source
|
433
450
|
from .mixdb import db_connection
|
434
451
|
|
435
|
-
con = db_connection(location=location, readonly=False, test=test)
|
452
|
+
con = db_connection(location=location, readonly=False, test=test, verbose=verbose)
|
436
453
|
|
437
454
|
# Populate source table
|
438
455
|
if logging:
|
439
|
-
logger.info("Populating source
|
440
|
-
# TODO: refactor this to not load all sources into list; maybe us UNIQUE table modifier?
|
441
|
-
sources: list[tuple[str, int, float, bool, float, float, bool, int]] = []
|
442
|
-
for mixture in mixtures:
|
443
|
-
for source in mixture.all_sources.values():
|
444
|
-
entry = from_source(source)
|
445
|
-
if entry not in sources:
|
446
|
-
sources.append(entry)
|
447
|
-
for source in track(sources, disable=not show_progress):
|
448
|
-
con.execute(
|
449
|
-
"""
|
450
|
-
INSERT INTO source (effects, file_id, pre_tempo, repeat, snr, snr_gain, snr_random, start)
|
451
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
|
452
|
-
""",
|
453
|
-
source,
|
454
|
-
)
|
455
|
-
|
456
|
-
con.commit()
|
457
|
-
|
458
|
-
# Populate mixture table
|
459
|
-
if logging:
|
460
|
-
logger.info("Populating mixture table")
|
456
|
+
logger.info("Populating mixture and source tables")
|
461
457
|
for mixture in track(mixtures, disable=not show_progress):
|
462
458
|
m_id = int(mixture.name) + 1
|
463
459
|
con.execute(
|
@@ -469,6 +465,14 @@ def populate_mixture_table(
|
|
469
465
|
)
|
470
466
|
|
471
467
|
for source in mixture.all_sources.values():
|
468
|
+
con.execute(
|
469
|
+
"""
|
470
|
+
INSERT OR IGNORE INTO source (effects, file_id, pre_tempo, repeat, snr, snr_gain, snr_random, start)
|
471
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
|
472
|
+
""",
|
473
|
+
from_source(source),
|
474
|
+
)
|
475
|
+
|
472
476
|
source_id = con.execute(
|
473
477
|
"""
|
474
478
|
SELECT id
|
@@ -487,7 +491,7 @@ def populate_mixture_table(
|
|
487
491
|
con.execute("INSERT INTO mixture_source (mixture_id, source_id) VALUES (?, ?)", (m_id, source_id))
|
488
492
|
|
489
493
|
if logging:
|
490
|
-
logger.info("Closing mixture
|
494
|
+
logger.info("Closing mixture and source tables")
|
491
495
|
con.commit()
|
492
496
|
con.close()
|
493
497
|
|
@@ -857,7 +861,12 @@ def _get_textgrid_tiers_from_source_file(file: str) -> list[str]:
|
|
857
861
|
return sorted(tg.tierNames)
|
858
862
|
|
859
863
|
|
860
|
-
def _populate_speaker_table(
|
864
|
+
def _populate_speaker_table(
|
865
|
+
location: str,
|
866
|
+
source_files: list[SourceFile],
|
867
|
+
test: bool = False,
|
868
|
+
verbose: bool = False,
|
869
|
+
) -> None:
|
861
870
|
"""Populate speaker table"""
|
862
871
|
import json
|
863
872
|
from pathlib import Path
|
@@ -882,7 +891,7 @@ def _populate_speaker_table(location: str, source_files: list[SourceFile], test:
|
|
882
891
|
new_columns.append(column)
|
883
892
|
new_columns = sorted(set(new_columns))
|
884
893
|
|
885
|
-
con = db_connection(location=location, readonly=False, test=test)
|
894
|
+
con = db_connection(location=location, readonly=False, test=test, verbose=verbose)
|
886
895
|
|
887
896
|
for new_column in new_columns:
|
888
897
|
con.execute(f"ALTER TABLE speaker ADD COLUMN {new_column} TEXT")
|
@@ -914,13 +923,18 @@ def _populate_speaker_table(location: str, source_files: list[SourceFile], test:
|
|
914
923
|
con.close()
|
915
924
|
|
916
925
|
|
917
|
-
def _populate_truth_config_table(
|
926
|
+
def _populate_truth_config_table(
|
927
|
+
location: str,
|
928
|
+
source_files: list[SourceFile],
|
929
|
+
test: bool = False,
|
930
|
+
verbose: bool = False,
|
931
|
+
) -> None:
|
918
932
|
"""Populate truth_config table"""
|
919
933
|
import json
|
920
934
|
|
921
935
|
from .mixdb import db_connection
|
922
936
|
|
923
|
-
con = db_connection(location=location, readonly=False, test=test)
|
937
|
+
con = db_connection(location=location, readonly=False, test=test, verbose=verbose)
|
924
938
|
|
925
939
|
# Populate truth_config table
|
926
940
|
truth_configs: list[str] = []
|
@@ -938,11 +952,16 @@ def _populate_truth_config_table(location: str, source_files: list[SourceFile],
|
|
938
952
|
con.close()
|
939
953
|
|
940
954
|
|
941
|
-
def _populate_impulse_response_tag_table(
|
955
|
+
def _populate_impulse_response_tag_table(
|
956
|
+
location: str,
|
957
|
+
files: list[ImpulseResponseFile],
|
958
|
+
test: bool = False,
|
959
|
+
verbose: bool = False,
|
960
|
+
) -> None:
|
942
961
|
"""Populate ir_tag table"""
|
943
962
|
from .mixdb import db_connection
|
944
963
|
|
945
|
-
con = db_connection(location=location, readonly=False, test=test)
|
964
|
+
con = db_connection(location=location, readonly=False, test=test, verbose=verbose)
|
946
965
|
|
947
966
|
con.executemany(
|
948
967
|
"INSERT INTO ir_tag (tag) VALUES (?)",
|
sonusai/mixture/mixdb.py
CHANGED
@@ -58,6 +58,8 @@ def db_connection(
|
|
58
58
|
from os import remove
|
59
59
|
from os.path import exists
|
60
60
|
|
61
|
+
from .. import logger_db
|
62
|
+
|
61
63
|
name = db_file(location, test)
|
62
64
|
if create and exists(name):
|
63
65
|
remove(name)
|
@@ -71,18 +73,19 @@ def db_connection(
|
|
71
73
|
connection = sqlite3.connect("file:" + name, uri=True, timeout=20)
|
72
74
|
|
73
75
|
if verbose:
|
74
|
-
connection.set_trace_callback(
|
76
|
+
connection.set_trace_callback(logger_db.debug)
|
75
77
|
|
76
78
|
return connection
|
77
79
|
|
78
80
|
|
79
81
|
class SQLiteContextManager:
|
80
|
-
def __init__(self, location: str, test: bool = False) -> None:
|
82
|
+
def __init__(self, location: str, test: bool = False, verbose: bool = False) -> None:
|
81
83
|
self.location = location
|
82
84
|
self.test = test
|
85
|
+
self.verbose = verbose
|
83
86
|
|
84
87
|
def __enter__(self) -> Cursor:
|
85
|
-
self.con = db_connection(location=self.location, test=self.test)
|
88
|
+
self.con = db_connection(location=self.location, test=self.test, verbose=self.verbose)
|
86
89
|
self.cur = self.con.cursor()
|
87
90
|
return self.cur
|
88
91
|
|
@@ -91,7 +94,7 @@ class SQLiteContextManager:
|
|
91
94
|
|
92
95
|
|
93
96
|
class MixtureDatabase:
|
94
|
-
def __init__(self, location: str, test: bool = False, use_cache: bool = True) -> None:
|
97
|
+
def __init__(self, location: str, test: bool = False, verbose: bool = False, use_cache: bool = True) -> None:
|
95
98
|
import json
|
96
99
|
from os.path import exists
|
97
100
|
|
@@ -99,12 +102,13 @@ class MixtureDatabase:
|
|
99
102
|
|
100
103
|
self.location = location
|
101
104
|
self.test = test
|
105
|
+
self.verbose = verbose
|
102
106
|
self.use_cache = use_cache
|
103
107
|
|
104
108
|
if not exists(db_file(self.location, self.test)):
|
105
109
|
raise OSError(f"Could not find mixture database in {self.location}")
|
106
110
|
|
107
|
-
self.db = partial(SQLiteContextManager, self.location, self.test)
|
111
|
+
self.db = partial(SQLiteContextManager, self.location, self.test, self.verbose)
|
108
112
|
|
109
113
|
# Check config.yml to see if asr_configs has changed and update database if needed
|
110
114
|
config = load_config(self.location)
|
@@ -113,7 +117,7 @@ class MixtureDatabase:
|
|
113
117
|
old_asr_configs = c.execute("SELECT asr_configs FROM top").fetchone()
|
114
118
|
|
115
119
|
if old_asr_configs is not None and new_asr_configs != old_asr_configs[0]:
|
116
|
-
con = db_connection(location=self.location, readonly=False, test=self.test)
|
120
|
+
con = db_connection(location=self.location, readonly=False, test=self.test, verbose=self.verbose)
|
117
121
|
con.execute("UPDATE top SET asr_configs = ? WHERE ? = id", (new_asr_configs,))
|
118
122
|
con.commit()
|
119
123
|
con.close()
|
@@ -1,4 +1,4 @@
|
|
1
|
-
sonusai/__init__.py,sha256=
|
1
|
+
sonusai/__init__.py,sha256=_lBs_XangUYtUcr7JAt55hk1AczFIAgySJfkL-Pt51U,3710
|
2
2
|
sonusai/aawscd_probwrite.py,sha256=QZLMQrmPr3OjZ06buyYDwlnk9YPCpyr4KHkBjPsiqjU,3700
|
3
3
|
sonusai/audiofe.py,sha256=0DNpntK0WpzNZeyHX8_wC-pDtrgvLkJZFPXz-PspdrY,19448
|
4
4
|
sonusai/calc_metric_spenh.py,sha256=0Md6hRFUH9lGnsvoydqne99O7Gi0ieG9vMU_1PnASBg,50019
|
@@ -23,7 +23,7 @@ sonusai/doc.py,sha256=ZgFSSI56oNDb-yC3xi-RHMClMjryR2VrgGyi3ggX8gM,1098
|
|
23
23
|
sonusai/genft.py,sha256=jGjtjQQEuPunROkoDOYZ7gdyZEa09EMCVhpHrkBZ7A0,5571
|
24
24
|
sonusai/genmetrics.py,sha256=sbcqbjI4YOJd5_Lzor4Re_TK6GUQ5zJuYbhDux8odI0,6184
|
25
25
|
sonusai/genmix.py,sha256=U62GPgejGfnDfRgXUosmnVVWvTV07sg46JQEIew0nPg,5744
|
26
|
-
sonusai/genmixdb.py,sha256=
|
26
|
+
sonusai/genmixdb.py,sha256=9T-qn8_Bekc-P7kOY4pV8w-CHixDvSbZPds7wt_mDYU,11272
|
27
27
|
sonusai/ir_metric.py,sha256=nxS_mARPSZG5Y0G3L8HysOnkPj4v-RGxAxAVBYe-gJI,19600
|
28
28
|
sonusai/lsdb.py,sha256=86t6PpsyardRa6VcSJ-KyU1NiTmlg59VUlcSTptJbn0,5078
|
29
29
|
sonusai/main.py,sha256=72feJv5XEVJE_CQatmNIL1VD9ca-Mo0QNDbXxLrHrbQ,2619
|
@@ -54,12 +54,12 @@ sonusai/mixture/data_io.py,sha256=DV48sFcP2Qp3NBzvcnlptQOXU3aUEcAeLuh3XOtC5jI,53
|
|
54
54
|
sonusai/mixture/db_datatypes.py,sha256=VvNtbOgt5WSeSnBoVcNGC5gs_7hX_38pDUPjy5KRbG4,1471
|
55
55
|
sonusai/mixture/effects.py,sha256=ghMO-WiSMQc1CvafD0wkt_DGsM2A6Hi_oZS6j-jeZh8,11784
|
56
56
|
sonusai/mixture/feature.py,sha256=7GJvFhfqeqerfjy9Vq9aKt-cecgYblK0IypNNo5hgwY,2285
|
57
|
-
sonusai/mixture/generation.py,sha256=
|
57
|
+
sonusai/mixture/generation.py,sha256=2VQ41uc1OLFpDKwu0TlcdtxSXwiTJFr_B6_E20pheIY,32844
|
58
58
|
sonusai/mixture/helpers.py,sha256=dmyHwf1C5dZjYOd11kVV16KI33CaM-dU_fyaxOrrKt8,11642
|
59
59
|
sonusai/mixture/ir_delay.py,sha256=aiC23HMWQ08-v5wORgMx1_DOJSdh4kunULqiQ-SGuMo,2026
|
60
60
|
sonusai/mixture/ir_effects.py,sha256=PqiqD4PS42-7kD6ESnsZi2a3tnKCFa4E0xqUujRBvGg,2152
|
61
61
|
sonusai/mixture/log_duration_and_sizes.py,sha256=3ekS27IMKlnxIkQAmprzmBnzHOpRjZh3d7maL2VqWQU,927
|
62
|
-
sonusai/mixture/mixdb.py,sha256=
|
62
|
+
sonusai/mixture/mixdb.py,sha256=QIpbpS-J0ACNUFoMwZjiylsDgpfkUehLxSq79wcLgzk,86305
|
63
63
|
sonusai/mixture/pad_audio.py,sha256=KNxVQAejA0hblLOnMJgLS6lFaeE0n3tWQ5rclaHBnIY,1015
|
64
64
|
sonusai/mixture/resample.py,sha256=jXqH6FrZ0mlhQ07XqPx88TT9elu3HHVLw7Q0a7Lh5M4,221
|
65
65
|
sonusai/mixture/sox_effects.py,sha256=tndS9qrh3eJOTUPrufyWHCt3UqjbPuh81I4Lo4MNmDg,5328
|
@@ -132,7 +132,7 @@ sonusai/utils/tokenized_shell_vars.py,sha256=EDrrAgz5lJ0RBAjLcTJt1MeyjhbNZiqXkym
|
|
132
132
|
sonusai/utils/write_audio.py,sha256=IHzrJoFtFcea_J6wo6QSiojRkgnNOzAEcg-z0rFV7nU,810
|
133
133
|
sonusai/utils/yes_or_no.py,sha256=0h1okjXmDNbJp7rZJFR2V-HFU1GJDm3YFTUVmYExkOU,263
|
134
134
|
sonusai/vars.py,sha256=m8pdgfR4A6A9TCGf_rok6jPAT5BgrEsYXTSISIh1nrI,1163
|
135
|
-
sonusai-1.0.
|
136
|
-
sonusai-1.0.
|
137
|
-
sonusai-1.0.
|
138
|
-
sonusai-1.0.
|
135
|
+
sonusai-1.0.6.dist-info/METADATA,sha256=NeaZn2a1yaOmW9AWfWerYv5_RqTTL_MlQGZJv9XHVmo,2652
|
136
|
+
sonusai-1.0.6.dist-info/WHEEL,sha256=RaoafKOydTQ7I_I3JTrPCg6kUmTgtm4BornzOqyEfJ8,88
|
137
|
+
sonusai-1.0.6.dist-info/entry_points.txt,sha256=zMNjEphEPO6B3cD1GNpit7z-yA9tUU5-j3W2v-UWstU,92
|
138
|
+
sonusai-1.0.6.dist-info/RECORD,,
|
File without changes
|
File without changes
|