sonusai 0.19.9__py3-none-any.whl → 0.19.10__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.
@@ -13,6 +13,7 @@ def _core(
13
13
  parameters: int,
14
14
  mapped: bool,
15
15
  snr: bool,
16
+ use_cache: bool = True,
16
17
  ) -> Truth:
17
18
  from os.path import join
18
19
 
@@ -50,8 +51,8 @@ def _core(
50
51
  tmp = np.nan_to_num(tmp, nan=-np.inf, posinf=np.inf, neginf=-np.inf)
51
52
 
52
53
  if mapped:
53
- snr_db_mean = load_object(join(mixdb.location, config["snr_db_mean"]))
54
- snr_db_std = load_object(join(mixdb.location, config["snr_db_std"]))
54
+ snr_db_mean = load_object(join(mixdb.location, config["snr_db_mean"]), use_cache)
55
+ snr_db_std = load_object(join(mixdb.location, config["snr_db_std"]), use_cache)
55
56
  tmp = _calculate_mapped_snr_f(tmp, snr_db_mean, snr_db_std)
56
57
 
57
58
  truth[frame] = tmp
@@ -85,7 +86,7 @@ def energy_f_parameters(feature: str, _num_classes: int, _config: dict) -> int:
85
86
  return ForwardTransform(**feature_forward_transform_config(feature)).bins
86
87
 
87
88
 
88
- def energy_f(mixdb: MixtureDatabase, m_id: int, target_index: int, config: dict) -> Truth:
89
+ def energy_f(mixdb: MixtureDatabase, m_id: int, target_index: int, config: dict, use_cache: bool = True) -> Truth:
89
90
  """Frequency domain energy truth generation function
90
91
 
91
92
  Calculates the true energy per bin:
@@ -104,6 +105,7 @@ def energy_f(mixdb: MixtureDatabase, m_id: int, target_index: int, config: dict)
104
105
  parameters=energy_f_parameters(mixdb.feature, mixdb.num_classes, config),
105
106
  mapped=False,
106
107
  snr=False,
108
+ use_cache=use_cache,
107
109
  )
108
110
 
109
111
 
@@ -118,7 +120,7 @@ def snr_f_parameters(feature: str, _num_classes: int, _config: dict) -> int:
118
120
  return ForwardTransform(**feature_forward_transform_config(feature)).bins
119
121
 
120
122
 
121
- def snr_f(mixdb: MixtureDatabase, m_id: int, target_index: int, config: dict) -> Truth:
123
+ def snr_f(mixdb: MixtureDatabase, m_id: int, target_index: int, config: dict, use_cache: bool = True) -> Truth:
122
124
  """Frequency domain SNR truth function documentation
123
125
 
124
126
  Calculates the true SNR per bin:
@@ -137,6 +139,7 @@ def snr_f(mixdb: MixtureDatabase, m_id: int, target_index: int, config: dict) ->
137
139
  parameters=snr_f_parameters(mixdb.feature, mixdb.num_classes, config),
138
140
  mapped=False,
139
141
  snr=True,
142
+ use_cache=use_cache,
140
143
  )
141
144
 
142
145
 
@@ -156,7 +159,7 @@ def mapped_snr_f_parameters(feature: str, _num_classes: int, _config: dict) -> i
156
159
  return ForwardTransform(**feature_forward_transform_config(feature)).bins
157
160
 
158
161
 
159
- def mapped_snr_f(mixdb: MixtureDatabase, m_id: int, target_index: int, config: dict) -> Truth:
162
+ def mapped_snr_f(mixdb: MixtureDatabase, m_id: int, target_index: int, config: dict, use_cache: bool = True) -> Truth:
160
163
  """Frequency domain mapped SNR truth function documentation
161
164
 
162
165
  Output shape: [:, bins]
@@ -169,6 +172,7 @@ def mapped_snr_f(mixdb: MixtureDatabase, m_id: int, target_index: int, config: d
169
172
  parameters=mapped_snr_f_parameters(mixdb.feature, mixdb.num_classes, config),
170
173
  mapped=True,
171
174
  snr=True,
175
+ use_cache=use_cache,
172
176
  )
173
177
 
174
178
 
@@ -25,4 +25,4 @@ def metrics(mixdb: MixtureDatabase, m_id: int, target_index: int, config: dict)
25
25
  m = [config["metric"]]
26
26
  else:
27
27
  m = config["metric"]
28
- return mixdb.mixture_metrics(m_id, m)[0][target_index]
28
+ return mixdb.mixture_metrics(m_id, m)[m[0]][target_index]
sonusai/mkwav.py CHANGED
@@ -63,7 +63,7 @@ def _process_mixture(m_id: int, location: str, write_target: bool, write_targets
63
63
  if write_noise:
64
64
  write_audio(name=join(location, "noise.wav"), audio=float_to_int16(mixdb.mixture_noise(m_id)))
65
65
 
66
- write_mixture_metadata(mixdb, m_id)
66
+ write_mixture_metadata(mixdb, m_id=m_id)
67
67
 
68
68
 
69
69
  def main() -> None:
sonusai/onnx_predict.py CHANGED
@@ -193,7 +193,7 @@ def main() -> None:
193
193
  # run inference, ort session wants i.e. batch x timesteps x feat_params, outputs numpy BxTxFP or BxFP
194
194
  predict = session.run(out_names, {in0name: feature})[0]
195
195
  # predict, _ = reshape_outputs(predict=predict[0], timesteps=frames) # frames x feat_params
196
- output_fname = join(output_dir, mixdb.mixtures[mixid].name)
196
+ output_fname = join(output_dir, mixdb.mixture(mixid).name)
197
197
  with h5py.File(output_fname, "a") as f:
198
198
  if "predict" in f:
199
199
  del f["predict"]
@@ -178,7 +178,7 @@ def get_mixids_from_snr(
178
178
  result: dict[float, list[int]] = {}
179
179
  for snr in snrs:
180
180
  # Get a list of mixids for each SNR
181
- result[snr] = sorted([i for i, mixture in enumerate(mixdb.mixtures) if mixture.snr == snr and i in mixid_out])
181
+ result[snr] = sorted([i for i, mixture in enumerate(mixdb.mixtures()) if mixture.snr == snr and i in mixid_out])
182
182
 
183
183
  return result
184
184
 
sonusai/utils/asr.py CHANGED
@@ -65,7 +65,7 @@ def calc_asr(audio: AudioT | str, engine: str, **config) -> ASRResult:
65
65
  from sonusai.mixture import read_audio
66
66
 
67
67
  if not isinstance(audio, np.ndarray):
68
- audio = copy(read_audio(audio))
68
+ audio = copy(read_audio(audio, config.get("use_cache", True)))
69
69
 
70
70
  return _asr_fn(engine)(audio, **config)
71
71
 
@@ -2,9 +2,15 @@ from functools import lru_cache
2
2
  from typing import Any
3
3
 
4
4
 
5
+ def load_object(name: str, use_cache: bool = True) -> Any:
6
+ """Load an object from a pickle file"""
7
+ if use_cache:
8
+ return _load_object(name)
9
+ return _load_object.__wrapped__(name)
10
+
11
+
5
12
  @lru_cache
6
- def load_object(name: str) -> Any:
7
- """Load an object from a pickle file (with LRU caching)"""
13
+ def _load_object(name: str) -> Any:
8
14
  import pickle
9
15
  from os.path import exists
10
16
 
@@ -42,7 +42,7 @@ def stratified_shuffle_split_mixid(
42
42
  raise ValueError("vsplit must be between 0 and 1")
43
43
 
44
44
  a_class_mixid: dict[int, list[int]] = {i + 1: [] for i in range(mixdb.num_classes)}
45
- for mixid, mixture in enumerate(mixdb.mixtures):
45
+ for mixid, mixture in enumerate(mixdb.mixtures()):
46
46
  class_count = get_class_count_from_mixids(mixdb, mixid)
47
47
  if any(class_count):
48
48
  for class_index in mixdb.target_files[mixture.targets[0].file_id].class_indices:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sonusai
3
- Version: 0.19.9
3
+ Version: 0.19.10
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
@@ -1,9 +1,11 @@
1
1
  sonusai/__init__.py,sha256=NSb0bvmAh6Rm2MDtchpAGsg8a3BrmVnShYb-vC_emH8,2802
2
2
  sonusai/aawscd_probwrite.py,sha256=QZLMQrmPr3OjZ06buyYDwlnk9YPCpyr4KHkBjPsiqjU,3700
3
3
  sonusai/audiofe.py,sha256=iFdthh4UrOvziT8urjrjD7dACWZPQz9orM5bVAW3WSQ,11269
4
- sonusai/calc_metric_spenh.py,sha256=NTqYBNDR6LTSdDA8s4WCSEwajE3-fNJg1TUzhNzJC9g,46719
4
+ sonusai/calc_metric_spenh.py,sha256=XWa2DzLSCEQ6GzsJv-YHfnN51f_oFwcRMMgMzusAvYA,49304
5
5
  sonusai/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
6
  sonusai/data/genmixdb.yml,sha256=U_kLbE7gZ5rA7yNSB2NW7eK5dnYP5grJVMR321VMLt8,940
7
+ sonusai/data/silero_vad_v5.1.jit,sha256=hcSOHw7LYE5dKiaPPM-5EtT36TWs3IavWj_FsK6nspo,2269612
8
+ sonusai/data/silero_vad_v5.1.onnx,sha256=JiOilT9v89LB5hdAxs23FoEzR5smff7xFKSjzFvdeI8,2327524
7
9
  sonusai/data/speech_ma01_01.wav,sha256=PK0vMKg-NR6rPE3KouxHGF6PKXnJCr7AwjMqfu98LUA,76644
8
10
  sonusai/data/whitenoise.wav,sha256=I2umov0m34y56F9IsIBi1XtE76ZeZaSKDf70cJRe3pI,1920044
9
11
  sonusai/deprecated/gentcst.py,sha256=nKbHy3aHreHqA-XnLQOzOApS8RuTNUFqnx52a8I5zLQ,19921
@@ -12,10 +14,10 @@ sonusai/deprecated/tplot.py,sha256=0p238DvTaP4oU9y-dp0JdLaTV4TKrooAwbx7zdz_QAc,1
12
14
  sonusai/doc/__init__.py,sha256=KyQ26Um0RM8A3GYsb_tbFH64RwpoAw6lja2f_moUWas,33
13
15
  sonusai/doc/doc.py,sha256=VZXauwbOb-VIufWw-lu0yfrd6jMRPeFeVPaaEjZNvn4,18881
14
16
  sonusai/doc.py,sha256=zSmXpioB0YS_5-7kqfS5cr--veSaXkxRKzldId9Hyoc,878
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
17
+ sonusai/genft.py,sha256=K2wjO5J48UgyhCj2Sx789nkjt0DWtYgnRDbQyNtjCSY,5591
18
+ sonusai/genmetrics.py,sha256=jORQCdf_SCrtcvDd47lgcPgQTplG956RTAqmf58Xe8Y,5689
19
+ sonusai/genmix.py,sha256=mSc5FfAYrUt3zloPSnp81dks8ntvSH6jyk-nh97wnww,6707
20
+ sonusai/genmixdb.py,sha256=SsbHRpPoJ77XzOBQRRDheucyuJzE-tucQtRoYl89ApU,17841
19
21
  sonusai/lsdb.py,sha256=0HOGDDndB3LT9cz9AaxKIpt9vslAoSP4F239gply4Xg,5149
20
22
  sonusai/main.py,sha256=HbnEia1B1-Z-mlHkLfojH8aj9GIpL1Btw3oH60T_CCQ,2590
21
23
  sonusai/metrics/__init__.py,sha256=ssV6JEK_oklRSocsp6HMcG-GtJvV8IkRQtdKhHHmwU8,878
@@ -35,8 +37,9 @@ sonusai/metrics/class_summary.py,sha256=ZA7zNgwBpmTs1TP_t4jRT0pWnDnATC_up_8qE4aH
35
37
  sonusai/metrics/confusion_matrix_summary.py,sha256=zBL_Ke7wF6oKtrKZPr0fsyF_taofdjxBlZmKodu0xUA,3143
36
38
  sonusai/metrics/one_hot.py,sha256=hmuyh-9tpRjb_oyqU3WqZ14zItpRJQfcqBDKJeb5H9I,13930
37
39
  sonusai/metrics/snr_summary.py,sha256=t8Fi_8WtboTi8flkZuOiHq9H3-nIELx4AKvnm-qvxLQ,5785
38
- sonusai/mixture/__init__.py,sha256=ccz_UpB7Rh6wUB7uwLgNhciMZhKE9Qt9ICLyjq08kxs,5126
39
- sonusai/mixture/audio.py,sha256=Tg0-HzSgZDttKwWwONqgK6qK4maTSmWcfiL1atZcIXQ,2390
40
+ sonusai/metrics_summary.py,sha256=HVqjgCavxM1yzyoeDZSg_bJaXrifNQxNY7xYNKKva8g,12004
41
+ sonusai/mixture/__init__.py,sha256=ePkmFbBltwHsx1eJDb_RDieTceZtqa1wVY1D2Pfg2rw,5162
42
+ sonusai/mixture/audio.py,sha256=5iq39_Q0q9xuN_FNylvnn-gAZ8Io3Ir1Mqj60mVQeaQ,3432
40
43
  sonusai/mixture/augmentation.py,sha256=s8QlPHnFJOblRU59fMQ-Zqysiv4OUJ7CxLRcV81lnaA,10407
41
44
  sonusai/mixture/class_count.py,sha256=zcC3BDYMPN6wJYmO1RcOuqmrnTQIbMSznl33oN3e2sc,597
42
45
  sonusai/mixture/config.py,sha256=g5ZmOhFYqmEdRQYSgfDIZ9VM0QiTwBqk7vIyAvxnPMo,24211
@@ -46,10 +49,10 @@ sonusai/mixture/datatypes.py,sha256=xNDBWFTVQ3plJ7qHKzrXyV4pffPYuf1xMVqBsR40n4o,
46
49
  sonusai/mixture/db_datatypes.py,sha256=kvdUOMS6Pkkj9AmxCiq6zM8x7jbPPi933tVaXRxbTdQ,1534
47
50
  sonusai/mixture/eq_rule_is_valid.py,sha256=O3gCAs_0hpxENK5b7kxxpDmOpKHlXGBWuLGT_97ARSM,1210
48
51
  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
52
+ sonusai/mixture/generation.py,sha256=yoJOcY9KPe_B1RVnENVr4ekcnXyZJMdvKMbJggpLOi4,38084
53
+ sonusai/mixture/helpers.py,sha256=Bt9njNb_OZ3j02qgrVEMZiL0hX4kXtFK_tkPoGoeb4Y,15787
51
54
  sonusai/mixture/log_duration_and_sizes.py,sha256=qhgl87C2KbjxLdKEpjYOoqNL6rc-8-PB4R7Gx_7UG8g,1240
52
- sonusai/mixture/mixdb.py,sha256=W8B54U6f-8szMylXSnU0YzOR-a9M3XoCRpyqOgBIJuQ,73498
55
+ sonusai/mixture/mixdb.py,sha256=Yg3FQqb6oI3LsFh_00CvMeH1Rrmn2pA5waaAyJDCpfY,75912
53
56
  sonusai/mixture/soundfile_audio.py,sha256=At_ZC2b9pZ_9IYp1UxyPzRoBK9-1cKPCLMm74F1AjKE,4092
54
57
  sonusai/mixture/sox_audio.py,sha256=7ouCLqXYS6tjG2L0v5lugVO7z5UwJmsr1VigbrXhs74,16725
55
58
  sonusai/mixture/sox_augmentation.py,sha256=DtfGLPaB1BIt2wvTEA__MYkGFNU85Tuup5BFsIVrh0E,4546
@@ -62,17 +65,17 @@ sonusai/mixture/torchaudio_augmentation.py,sha256=uFAKxIfs50J5FR-WXodsEACm2Ao-t5
62
65
  sonusai/mixture/truth.py,sha256=-CwwawFRGjqodR2yKvAMGL1XaYLct-tli7wZ2gbhLtQ,2121
63
66
  sonusai/mixture/truth_functions/__init__.py,sha256=0mlOFChPnXG5BC0eKOe4n9VH17jY4iOqZFLuF6Gprdk,1505
64
67
  sonusai/mixture/truth_functions/crm.py,sha256=iidcffXfqV8k9O5wt5KTWIAFaTSjmhV5ucKZPbTgpvQ,3809
65
- sonusai/mixture/truth_functions/energy.py,sha256=dlxl5c58bv012KgyKeO78urXSh6FK3LdqiKk0SDkmS8,6540
68
+ sonusai/mixture/truth_functions/energy.py,sha256=BMpyFoFDRsKEv3ZxZAJPLgMgkBkA6AtGBg3MjRu1do8,6749
66
69
  sonusai/mixture/truth_functions/file.py,sha256=pyCAhx3PhJRBoZMrjoQI4Tbi5TN7sPembSVEr80Bu3g,1431
67
70
  sonusai/mixture/truth_functions/metadata.py,sha256=aEZly5bJEaZpUBZonWvcu14_Dn3M2HamwTaM5Bg7Tm8,778
68
- sonusai/mixture/truth_functions/metrics.py,sha256=xfH98eXBe20kwRk-tdWbBkOplF1cCA-u_naJUiTps0Y,873
71
+ sonusai/mixture/truth_functions/metrics.py,sha256=AzQjKJ7rihk_UXOz0Atyktpzo2g9ZPMZVZPCESBIoao,876
69
72
  sonusai/mixture/truth_functions/phoneme.py,sha256=jwBYiNwwBwh2tHtOJ2NopYWhT6y19kXzSIag0XW9GSY,778
70
73
  sonusai/mixture/truth_functions/sed.py,sha256=C0n9DkfBNQblFsFCkPbooy54KuHSY7B0f1vLft2asdw,3832
71
74
  sonusai/mixture/truth_functions/target.py,sha256=nSkHFESzCEOljcYf4jQ7FmxsAWJtMCRRWFKM_DyjoLU,4926
72
- sonusai/mkwav.py,sha256=xoqrX76gC1zE-Xb1Zfm9ZpcZ95l0qF1ZyOPmLMkFomk,4053
73
- sonusai/onnx_predict.py,sha256=Y1VUN0wuvloEW46uxg7X4ywaec_Xx92djCU3BP0KAx0,8699
75
+ sonusai/mkwav.py,sha256=ElivON2G_BT_ffKnePmPoeydl0g2DLGrbIFxfn_I1XI,4058
76
+ sonusai/onnx_predict.py,sha256=T97ceb9stR_QtJCA-Rmv67OIeaLdyhyCf1jQ9kVOYn8,8698
74
77
  sonusai/queries/__init__.py,sha256=bhoeOFfu9GA5DOUuxRrIev7MYdXaGN8xdKJ6BXyNNtQ,277
75
- sonusai/queries/queries.py,sha256=N84UcRrgDPLGJZesS2KQ9eyRzPRSyukjOlc786h5Ehs,7509
78
+ sonusai/queries/queries.py,sha256=srcEYBqLJhjqyfuJ-FwNkUwpjxYiNQeybxL3eQGm2nw,7511
76
79
  sonusai/speech/__init__.py,sha256=vqAymCBPjMUSM4OZKHTai6BYwXsOBlf_G_vOhELVf8I,133
77
80
  sonusai/speech/l2arctic.py,sha256=VQNKuTbmlbW0PJ7bOjx9sr0VjUYxJnxfTiPJIa4OOaA,3829
78
81
  sonusai/speech/librispeech.py,sha256=ugP3NVOenSsBF1cUG4Nyl7dumGHQmE4Ugk1yYjtOyj4,3070
@@ -85,7 +88,7 @@ sonusai/speech/voxceleb.py,sha256=Uu1kB1krf8hess1yuvGbYfV_VgYhklEyoz4I7KfrVpw,26
85
88
  sonusai/summarize_metric_spenh.py,sha256=2w81ZgJahYvD6wCpE3DFoUFrXexLXjO44ITRVm1HJXw,1858
86
89
  sonusai/utils/__init__.py,sha256=z72OlzZCHpYfYHKnHn7jznj6Zt7zB-FyO6hIgFk45As,2379
87
90
  sonusai/utils/asl_p56.py,sha256=cPUVwXawF7vLJgs4zUtoRGk7Wdbe5KKti_-v_8xIU10,3862
88
- sonusai/utils/asr.py,sha256=20eKkatNqGrbxFQoyeCRzqXaSH3lcA-9ZXGneCXjLvs,2791
91
+ sonusai/utils/asr.py,sha256=ubiU3E61HN3r9MhPV7ci37cnLZowll8KfjUS7os3Sho,2822
89
92
  sonusai/utils/asr_functions/__init__.py,sha256=HKGRm_c48tcxlfwqH63m-MvhAoK_pCcw76lxmFmiP_U,63
90
93
  sonusai/utils/asr_functions/aaware_whisper.py,sha256=M9Y8Pgh1oIrDOPZZPSRPDig8foxfgs3f8AsoZ8W00B0,2120
91
94
  sonusai/utils/audio_devices.py,sha256=_Eiah86SZjbdp2baD2AUVF4FmhseiNuG3KJkd_LbULk,2041
@@ -104,7 +107,7 @@ sonusai/utils/get_frames_per_batch.py,sha256=xnq4tV7MT74N0H6b5ZsiAezqdXucboCLQw1
104
107
  sonusai/utils/get_label_names.py,sha256=df4jZVaQ3WnYQqNj21iUV4aYWyQEZUNmgs93qKW-_rA,820
105
108
  sonusai/utils/grouper.py,sha256=qyZ0nj84yOrC-RZsXHC-KJvcUliGktnV8S6-P3PD6_w,203
106
109
  sonusai/utils/human_readable_size.py,sha256=DOCS7SAymrtTZli8AczvyCMCh44r7ZDgVBA7jSZupmA,356
107
- sonusai/utils/load_object.py,sha256=-XMMwSNUPhtg6G6FhLwL1zvxwu-PLwj25QYUEielW2k,356
110
+ sonusai/utils/load_object.py,sha256=if4Vammcd-jZTz_n7QzwNIlN4HqSL0v91I9YQzcvEEA,493
108
111
  sonusai/utils/max_text_width.py,sha256=pxiJMwb_zlkNntexgo7S6lAuF7NLLZvFdOCkxdsQJVY,315
109
112
  sonusai/utils/model_utils.py,sha256=OIJBhOjxR0wpxsd7A2r6J2AjqfdYgZzi6UEThw4S1lI,828
110
113
  sonusai/utils/numeric_conversion.py,sha256=iFPXFU8C_1mW5tmDqHq8-xP1tL8nVaSmhQRakdCqy30,328
@@ -117,11 +120,11 @@ sonusai/utils/read_predict_data.py,sha256=PUSroxmWQGtr6_EcdSHmIFQoRGou8CKKqcggWy
117
120
  sonusai/utils/reshape.py,sha256=Ozuh3UlmAS5NCeOK7NR8KgcQacHvgq10pys0VfCnOPU,5746
118
121
  sonusai/utils/seconds_to_hms.py,sha256=9Ya9O97txFtTIXZUQw1K8g7b7Xx-ptvUtMUlzsIduTo,260
119
122
  sonusai/utils/stacked_complex.py,sha256=JW6iAa1C-4Tuh4dD5c-D-O-yo-OY5Xm0AKVU0YsqsJU,2782
120
- sonusai/utils/stratified_shuffle_split.py,sha256=d7WLUirywSvgZWkt_5a0F8YvTnJjuXlyPB5CRmHCN0U,6704
123
+ sonusai/utils/stratified_shuffle_split.py,sha256=fcGW8nkZIwUqq1qtxbK_ZH58sYULqZfv7iNBQnKGH-M,6706
121
124
  sonusai/utils/write_audio.py,sha256=0lKdaX57N6H-UWdioqmXCJMjwT1eBz5B-bSGqDvloAc,838
122
125
  sonusai/utils/yes_or_no.py,sha256=0h1okjXmDNbJp7rZJFR2V-HFU1GJDm3YFTUVmYExkOU,263
123
126
  sonusai/vars.py,sha256=kBBzuvC8szmdIZEEDA7XXmD765addZKdM2aFipeGO1w,933
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,,
127
+ sonusai-0.19.10.dist-info/METADATA,sha256=ibwwklSb5-vmwAJMdRhW0MBWxqQYFVsYpEx5-8oaRXI,2536
128
+ sonusai-0.19.10.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
129
+ sonusai-0.19.10.dist-info/entry_points.txt,sha256=zMNjEphEPO6B3cD1GNpit7z-yA9tUU5-j3W2v-UWstU,92
130
+ sonusai-0.19.10.dist-info/RECORD,,