niobures commited on
Commit
c336289
·
verified ·
1 Parent(s): 60c2ba0

ECAPA-TDNN (models, papers)

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +3 -0
  2. ECAPA-TDNN based online discussion activity-level evaluation.pdf +3 -0
  3. ECAPA-TDNN. Emphasized Channel Attention, Propagation and Aggregation in TDNN Based Speaker Verification.pdf +3 -0
  4. Validation of an ECAPA-TDNN system for Forensic Automatic Speaker Recognition under case work conditions.pdf +3 -0
  5. models/cnceleb_ecapa_tdnn/.gitattributes +35 -0
  6. models/cnceleb_ecapa_tdnn/README.md +300 -0
  7. models/cnceleb_ecapa_tdnn/exp/spk_train_ecapa_tdnn_raw_sp/16epoch.pth +3 -0
  8. models/cnceleb_ecapa_tdnn/exp/spk_train_ecapa_tdnn_raw_sp/RESULTS.md +17 -0
  9. models/cnceleb_ecapa_tdnn/exp/spk_train_ecapa_tdnn_raw_sp/config.yaml +209 -0
  10. models/cnceleb_ecapa_tdnn/exp/spk_train_ecapa_tdnn_raw_sp/images/backward_time.png +0 -0
  11. models/cnceleb_ecapa_tdnn/exp/spk_train_ecapa_tdnn_raw_sp/images/clip.png +0 -0
  12. models/cnceleb_ecapa_tdnn/exp/spk_train_ecapa_tdnn_raw_sp/images/eer.png +0 -0
  13. models/cnceleb_ecapa_tdnn/exp/spk_train_ecapa_tdnn_raw_sp/images/forward_time.png +0 -0
  14. models/cnceleb_ecapa_tdnn/exp/spk_train_ecapa_tdnn_raw_sp/images/gpu_max_cached_mem_GB.png +0 -0
  15. models/cnceleb_ecapa_tdnn/exp/spk_train_ecapa_tdnn_raw_sp/images/grad_norm.png +0 -0
  16. models/cnceleb_ecapa_tdnn/exp/spk_train_ecapa_tdnn_raw_sp/images/iter_time.png +0 -0
  17. models/cnceleb_ecapa_tdnn/exp/spk_train_ecapa_tdnn_raw_sp/images/loss.png +0 -0
  18. models/cnceleb_ecapa_tdnn/exp/spk_train_ecapa_tdnn_raw_sp/images/loss_scale.png +0 -0
  19. models/cnceleb_ecapa_tdnn/exp/spk_train_ecapa_tdnn_raw_sp/images/mindcf.png +0 -0
  20. models/cnceleb_ecapa_tdnn/exp/spk_train_ecapa_tdnn_raw_sp/images/n_trials.png +0 -0
  21. models/cnceleb_ecapa_tdnn/exp/spk_train_ecapa_tdnn_raw_sp/images/nontrg_mean.png +0 -0
  22. models/cnceleb_ecapa_tdnn/exp/spk_train_ecapa_tdnn_raw_sp/images/nontrg_std.png +0 -0
  23. models/cnceleb_ecapa_tdnn/exp/spk_train_ecapa_tdnn_raw_sp/images/optim0_lr0.png +0 -0
  24. models/cnceleb_ecapa_tdnn/exp/spk_train_ecapa_tdnn_raw_sp/images/optim_step_time.png +0 -0
  25. models/cnceleb_ecapa_tdnn/exp/spk_train_ecapa_tdnn_raw_sp/images/train_time.png +0 -0
  26. models/cnceleb_ecapa_tdnn/exp/spk_train_ecapa_tdnn_raw_sp/images/trg_mean.png +0 -0
  27. models/cnceleb_ecapa_tdnn/exp/spk_train_ecapa_tdnn_raw_sp/images/trg_std.png +0 -0
  28. models/cnceleb_ecapa_tdnn/meta.yaml +8 -0
  29. models/cnceleb_ecapa_tdnn/source.txt +1 -0
  30. models/ecapa-tdnn-mlpackage/.gitattributes +35 -0
  31. models/ecapa-tdnn-mlpackage/ECAPA_TDNN_EndToEnd.mlpackage.zip +3 -0
  32. models/ecapa-tdnn-mlpackage/ECAPA_TDNN_EndToEnd.mlpackage/Data/com.apple.CoreML/model.mlmodel +3 -0
  33. models/ecapa-tdnn-mlpackage/ECAPA_TDNN_EndToEnd.mlpackage/Data/com.apple.CoreML/weights/weight.bin +3 -0
  34. models/ecapa-tdnn-mlpackage/ECAPA_TDNN_EndToEnd.mlpackage/Manifest.json +18 -0
  35. models/ecapa-tdnn-mlpackage/README.md +3 -0
  36. models/ecapa-tdnn-mlpackage/source.txt +1 -0
  37. models/ecapa-tdnn-vox2/.gitattributes +34 -0
  38. models/ecapa-tdnn-vox2/README.md +113 -0
  39. models/ecapa-tdnn-vox2/classifier.ckpt +3 -0
  40. models/ecapa-tdnn-vox2/embedding_model.ckpt +3 -0
  41. models/ecapa-tdnn-vox2/hyperparams.yaml +55 -0
  42. models/ecapa-tdnn-vox2/label_encoder.txt +0 -0
  43. models/ecapa-tdnn-vox2/source.txt +1 -0
  44. models/ecapa-tdnn-voxceleb1-c512-aam/.gitattributes +35 -0
  45. models/ecapa-tdnn-voxceleb1-c512-aam/README.md +86 -0
  46. models/ecapa-tdnn-voxceleb1-c512-aam/all_results.json +13 -0
  47. models/ecapa-tdnn-voxceleb1-c512-aam/angular_loss.py +68 -0
  48. models/ecapa-tdnn-voxceleb1-c512-aam/audio_processing.py +413 -0
  49. models/ecapa-tdnn-voxceleb1-c512-aam/config.json +2590 -0
  50. models/ecapa-tdnn-voxceleb1-c512-aam/configuration_ecapa_tdnn.py +196 -0
.gitattributes CHANGED
@@ -33,3 +33,6 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ ECAPA-TDNN[[:space:]]based[[:space:]]online[[:space:]]discussion[[:space:]]activity-level[[:space:]]evaluation.pdf filter=lfs diff=lfs merge=lfs -text
37
+ ECAPA-TDNN.[[:space:]]Emphasized[[:space:]]Channel[[:space:]]Attention,[[:space:]]Propagation[[:space:]]and[[:space:]]Aggregation[[:space:]]in[[:space:]]TDNN[[:space:]]Based[[:space:]]Speaker[[:space:]]Verification.pdf filter=lfs diff=lfs merge=lfs -text
38
+ Validation[[:space:]]of[[:space:]]an[[:space:]]ECAPA-TDNN[[:space:]]system[[:space:]]for[[:space:]]Forensic[[:space:]]Automatic[[:space:]]Speaker[[:space:]]Recognition[[:space:]]under[[:space:]]case[[:space:]]work[[:space:]]conditions.pdf filter=lfs diff=lfs merge=lfs -text
ECAPA-TDNN based online discussion activity-level evaluation.pdf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:00f43cb4232a9df3a41659d34a1a46d2a4b60374e9d055d2e7e55c391fc91d2b
3
+ size 3935442
ECAPA-TDNN. Emphasized Channel Attention, Propagation and Aggregation in TDNN Based Speaker Verification.pdf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9ed69046e3bca2e04ce6e501b0bc5326db424487cde7b48610f9e88faf15ae86
3
+ size 268363
Validation of an ECAPA-TDNN system for Forensic Automatic Speaker Recognition under case work conditions.pdf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ff47b49b6c83862e619bab9ba3187779fba9c2b0f43928502537878ae3b234c9
3
+ size 1274032
models/cnceleb_ecapa_tdnn/.gitattributes ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tar filter=lfs diff=lfs merge=lfs -text
29
+ *.tflite filter=lfs diff=lfs merge=lfs -text
30
+ *.tgz filter=lfs diff=lfs merge=lfs -text
31
+ *.wasm filter=lfs diff=lfs merge=lfs -text
32
+ *.xz filter=lfs diff=lfs merge=lfs -text
33
+ *.zip filter=lfs diff=lfs merge=lfs -text
34
+ *.zst filter=lfs diff=lfs merge=lfs -text
35
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
models/cnceleb_ecapa_tdnn/README.md ADDED
@@ -0,0 +1,300 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ tags:
3
+ - espnet
4
+ - audio
5
+ - speaker-recognition
6
+ language: multilingual
7
+ datasets:
8
+ - cnceleb
9
+ license: cc-by-4.0
10
+ ---
11
+
12
+ ## ESPnet2 SPK model
13
+
14
+ ### `espnet/cnceleb_ecapa_tdnn`
15
+
16
+ This model was trained by holvan using cnceleb recipe in [espnet](https://github.com/espnet/espnet/).
17
+
18
+ ### Demo: How to use in ESPnet2
19
+
20
+ Follow the [ESPnet installation instructions](https://espnet.github.io/espnet/installation.html)
21
+ if you haven't done that already.
22
+
23
+ ```bash
24
+ cd espnet
25
+ git checkout d3db63621b5ea1d7b450d768f97c1a6bdf3cf8be
26
+ pip install -e .
27
+ cd egs2/cnceleb/spk1
28
+ ./run.sh --skip_data_prep false --skip_train true --download_model espnet/cnceleb_ecapa_tdnn
29
+ ```
30
+
31
+ <!-- Generated by scripts/utils/show_spk_result.py -->
32
+ # RESULTS
33
+ ## Environments
34
+ date: 2025-06-17 13:12:33.497674
35
+
36
+ - python version: 3.10.14 (main, May 6 2024, 19:42:50) [GCC 11.2.0]
37
+ - espnet version: 202402
38
+ - pytorch version: 2.3.1
39
+
40
+ | | Mean | Std |
41
+ |---|---|---|
42
+ | Target | -1.0389 | 0.1553 |
43
+ | Non-target | -1.3574 | 0.0679 |
44
+
45
+ | Model name | EER(%) | minDCF |
46
+ |---|---|---|
47
+ | conf/train_ecapa_tdnn | 7.762 | 0.35304 |
48
+
49
+ ## SPK config
50
+
51
+ <details><summary>expand</summary>
52
+
53
+ ```
54
+ config: conf/train_ecapa_tdnn.yaml
55
+ print_config: false
56
+ log_level: INFO
57
+ drop_last_iter: true
58
+ dry_run: false
59
+ iterator_type: category
60
+ valid_iterator_type: sequence
61
+ output_dir: exp/spk_train_ecapa_tdnn_raw_sp
62
+ ngpu: 1
63
+ seed: 0
64
+ num_workers: 8
65
+ num_att_plot: 0
66
+ dist_backend: nccl
67
+ dist_init_method: env://
68
+ dist_world_size: 4
69
+ dist_rank: 0
70
+ local_rank: 0
71
+ dist_master_addr: localhost
72
+ dist_master_port: 44223
73
+ dist_launcher: null
74
+ multiprocessing_distributed: true
75
+ unused_parameters: false
76
+ sharded_ddp: false
77
+ use_deepspeed: false
78
+ deepspeed_config: null
79
+ gradient_as_bucket_view: true
80
+ ddp_comm_hook: null
81
+ cudnn_enabled: true
82
+ cudnn_benchmark: true
83
+ cudnn_deterministic: false
84
+ use_tf32: false
85
+ collect_stats: false
86
+ write_collected_feats: false
87
+ max_epoch: 40
88
+ patience: null
89
+ val_scheduler_criterion:
90
+ - valid
91
+ - loss
92
+ early_stopping_criterion:
93
+ - valid
94
+ - loss
95
+ - min
96
+ best_model_criterion:
97
+ - - valid
98
+ - eer
99
+ - min
100
+ keep_nbest_models: 3
101
+ nbest_averaging_interval: 0
102
+ grad_clip: 9999
103
+ grad_clip_type: 2.0
104
+ grad_noise: false
105
+ accum_grad: 1
106
+ no_forward_run: false
107
+ resume: true
108
+ train_dtype: float32
109
+ use_amp: true
110
+ log_interval: 100
111
+ use_matplotlib: true
112
+ use_tensorboard: true
113
+ create_graph_in_tensorboard: false
114
+ use_wandb: false
115
+ wandb_project: null
116
+ wandb_id: null
117
+ wandb_entity: null
118
+ wandb_name: null
119
+ wandb_model_log_interval: -1
120
+ detect_anomaly: false
121
+ use_adapter: false
122
+ adapter: lora
123
+ save_strategy: all
124
+ adapter_conf: {}
125
+ pretrain_path: null
126
+ init_param: []
127
+ ignore_init_mismatch: false
128
+ freeze_param: []
129
+ num_iters_per_epoch: null
130
+ batch_size: 512
131
+ valid_batch_size: 40
132
+ batch_bins: 1000000
133
+ valid_batch_bins: null
134
+ category_sample_size: 10
135
+ train_shape_file:
136
+ - exp/spk_stats_16k_sp/train/speech_shape
137
+ valid_shape_file:
138
+ - exp/spk_stats_16k_sp/valid/speech_shape
139
+ batch_type: folded
140
+ valid_batch_type: null
141
+ fold_length:
142
+ - 120000
143
+ sort_in_batch: descending
144
+ shuffle_within_batch: false
145
+ sort_batch: descending
146
+ multiple_iterator: false
147
+ chunk_length: 500
148
+ chunk_shift_ratio: 0.5
149
+ num_cache_chunks: 1024
150
+ chunk_excluded_key_prefixes: []
151
+ chunk_default_fs: null
152
+ chunk_max_abs_length: null
153
+ chunk_discard_short_samples: true
154
+ train_data_path_and_name_and_type:
155
+ - - dump/raw/cnceleb_train_sp/wav.scp
156
+ - speech
157
+ - sound
158
+ - - dump/raw/cnceleb_train_sp/utt2spk
159
+ - spk_labels
160
+ - text
161
+ valid_data_path_and_name_and_type:
162
+ - - dump/raw/cnceleb1_valid/trial.scp
163
+ - speech
164
+ - sound
165
+ - - dump/raw/cnceleb1_valid/trial2.scp
166
+ - speech2
167
+ - sound
168
+ - - dump/raw/cnceleb1_valid/trial_label
169
+ - spk_labels
170
+ - text
171
+ multi_task_dataset: false
172
+ allow_variable_data_keys: false
173
+ max_cache_size: 0.0
174
+ max_cache_fd: 32
175
+ allow_multi_rates: false
176
+ valid_max_cache_size: null
177
+ exclude_weight_decay: false
178
+ exclude_weight_decay_conf: {}
179
+ optim: sgd
180
+ optim_conf:
181
+ lr: 0.1
182
+ momentum: 0.9
183
+ weight_decay: 0.0001
184
+ scheduler: exponentialdecaywarmup
185
+ scheduler_conf:
186
+ max_lr: 0.1
187
+ min_lr: 5.0e-05
188
+ total_steps: 140720
189
+ warmup_steps: 17590
190
+ warm_from_zero: true
191
+ init: null
192
+ use_preprocessor: true
193
+ input_size: null
194
+ target_duration: 3.0
195
+ spk2utt: dump/raw/cnceleb_train_sp/spk2utt
196
+ spk_num: 8379
197
+ sample_rate: 16000
198
+ num_eval: 10
199
+ rir_scp: ''
200
+ model_conf:
201
+ extract_feats_in_collect_stats: false
202
+ frontend: melspec_torch
203
+ frontend_conf:
204
+ preemp: true
205
+ n_fft: 512
206
+ log: true
207
+ win_length: 400
208
+ hop_length: 160
209
+ n_mels: 80
210
+ normalize: mn
211
+ specaug: null
212
+ specaug_conf: {}
213
+ normalize: null
214
+ normalize_conf: {}
215
+ encoder: ecapa_tdnn
216
+ encoder_conf:
217
+ model_scale: 8
218
+ ndim: 1024
219
+ output_size: 1536
220
+ pooling: chn_attn_stat
221
+ pooling_conf: {}
222
+ projector: rawnet3
223
+ projector_conf:
224
+ output_size: 192
225
+ preprocessor: spk
226
+ preprocessor_conf:
227
+ target_duration: 3.0
228
+ sample_rate: 16000
229
+ num_eval: 5
230
+ noise_apply_prob: 0.5
231
+ noise_info:
232
+ - - 1.0
233
+ - dump/raw/musan_speech.scp
234
+ - - 4
235
+ - 7
236
+ - - 13
237
+ - 20
238
+ - - 1.0
239
+ - dump/raw/musan_noise.scp
240
+ - - 1
241
+ - 1
242
+ - - 0
243
+ - 15
244
+ - - 1.0
245
+ - dump/raw/musan_music.scp
246
+ - - 1
247
+ - 1
248
+ - - 5
249
+ - 15
250
+ rir_apply_prob: 0.5
251
+ rir_scp: dump/raw/rirs.scp
252
+ loss: aamsoftmax_sc_topk
253
+ loss_conf:
254
+ margin: 0.3
255
+ scale: 30
256
+ K: 3
257
+ mp: 0.06
258
+ k_top: 5
259
+ required:
260
+ - output_dir
261
+ version: '202402'
262
+ distributed: true
263
+ ```
264
+
265
+ </details>
266
+
267
+
268
+
269
+ ### Citing ESPnet
270
+
271
+ ```BibTex
272
+ @inproceedings{watanabe2018espnet,
273
+ author={Shinji Watanabe and Takaaki Hori and Shigeki Karita and Tomoki Hayashi and Jiro Nishitoba and Yuya Unno and Nelson Yalta and Jahn Heymann and Matthew Wiesner and Nanxin Chen and Adithya Renduchintala and Tsubasa Ochiai},
274
+ title={{ESPnet}: End-to-End Speech Processing Toolkit},
275
+ year={2018},
276
+ booktitle={Proceedings of Interspeech},
277
+ pages={2207--2211},
278
+ doi={10.21437/Interspeech.2018-1456},
279
+ url={http://dx.doi.org/10.21437/Interspeech.2018-1456}
280
+ }
281
+
282
+
283
+
284
+
285
+
286
+
287
+ ```
288
+
289
+ or arXiv:
290
+
291
+ ```bibtex
292
+ @misc{watanabe2018espnet,
293
+ title={ESPnet: End-to-End Speech Processing Toolkit},
294
+ author={Shinji Watanabe and Takaaki Hori and Shigeki Karita and Tomoki Hayashi and Jiro Nishitoba and Yuya Unno and Nelson Yalta and Jahn Heymann and Matthew Wiesner and Nanxin Chen and Adithya Renduchintala and Tsubasa Ochiai},
295
+ year={2018},
296
+ eprint={1804.00015},
297
+ archivePrefix={arXiv},
298
+ primaryClass={cs.CL}
299
+ }
300
+ ```
models/cnceleb_ecapa_tdnn/exp/spk_train_ecapa_tdnn_raw_sp/16epoch.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f7121b9c2e567bad355a4103ccf8a101f845a2197f3b2cdc2c97547667051219
3
+ size 78210868
models/cnceleb_ecapa_tdnn/exp/spk_train_ecapa_tdnn_raw_sp/RESULTS.md ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!-- Generated by scripts/utils/show_spk_result.py -->
2
+ # RESULTS
3
+ ## Environments
4
+ date: 2025-06-17 13:12:33.497674
5
+
6
+ - python version: 3.10.14 (main, May 6 2024, 19:42:50) [GCC 11.2.0]
7
+ - espnet version: 202402
8
+ - pytorch version: 2.3.1
9
+
10
+ | | Mean | Std |
11
+ |---|---|---|
12
+ | Target | -1.0389 | 0.1553 |
13
+ | Non-target | -1.3574 | 0.0679 |
14
+
15
+ | Model name | EER(%) | minDCF |
16
+ |---|---|---|
17
+ | conf/train_ecapa_tdnn | 7.762 | 0.35304 |
models/cnceleb_ecapa_tdnn/exp/spk_train_ecapa_tdnn_raw_sp/config.yaml ADDED
@@ -0,0 +1,209 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ config: conf/train_ecapa_tdnn.yaml
2
+ print_config: false
3
+ log_level: INFO
4
+ drop_last_iter: true
5
+ dry_run: false
6
+ iterator_type: category
7
+ valid_iterator_type: sequence
8
+ output_dir: exp/spk_train_ecapa_tdnn_raw_sp
9
+ ngpu: 1
10
+ seed: 0
11
+ num_workers: 8
12
+ num_att_plot: 0
13
+ dist_backend: nccl
14
+ dist_init_method: env://
15
+ dist_world_size: 4
16
+ dist_rank: 0
17
+ local_rank: 0
18
+ dist_master_addr: localhost
19
+ dist_master_port: 44223
20
+ dist_launcher: null
21
+ multiprocessing_distributed: true
22
+ unused_parameters: false
23
+ sharded_ddp: false
24
+ use_deepspeed: false
25
+ deepspeed_config: null
26
+ gradient_as_bucket_view: true
27
+ ddp_comm_hook: null
28
+ cudnn_enabled: true
29
+ cudnn_benchmark: true
30
+ cudnn_deterministic: false
31
+ use_tf32: false
32
+ collect_stats: false
33
+ write_collected_feats: false
34
+ max_epoch: 40
35
+ patience: null
36
+ val_scheduler_criterion:
37
+ - valid
38
+ - loss
39
+ early_stopping_criterion:
40
+ - valid
41
+ - loss
42
+ - min
43
+ best_model_criterion:
44
+ - - valid
45
+ - eer
46
+ - min
47
+ keep_nbest_models: 3
48
+ nbest_averaging_interval: 0
49
+ grad_clip: 9999
50
+ grad_clip_type: 2.0
51
+ grad_noise: false
52
+ accum_grad: 1
53
+ no_forward_run: false
54
+ resume: true
55
+ train_dtype: float32
56
+ use_amp: true
57
+ log_interval: 100
58
+ use_matplotlib: true
59
+ use_tensorboard: true
60
+ create_graph_in_tensorboard: false
61
+ use_wandb: false
62
+ wandb_project: null
63
+ wandb_id: null
64
+ wandb_entity: null
65
+ wandb_name: null
66
+ wandb_model_log_interval: -1
67
+ detect_anomaly: false
68
+ use_adapter: false
69
+ adapter: lora
70
+ save_strategy: all
71
+ adapter_conf: {}
72
+ pretrain_path: null
73
+ init_param: []
74
+ ignore_init_mismatch: false
75
+ freeze_param: []
76
+ num_iters_per_epoch: null
77
+ batch_size: 512
78
+ valid_batch_size: 40
79
+ batch_bins: 1000000
80
+ valid_batch_bins: null
81
+ category_sample_size: 10
82
+ train_shape_file:
83
+ - exp/spk_stats_16k_sp/train/speech_shape
84
+ valid_shape_file:
85
+ - exp/spk_stats_16k_sp/valid/speech_shape
86
+ batch_type: folded
87
+ valid_batch_type: null
88
+ fold_length:
89
+ - 120000
90
+ sort_in_batch: descending
91
+ shuffle_within_batch: false
92
+ sort_batch: descending
93
+ multiple_iterator: false
94
+ chunk_length: 500
95
+ chunk_shift_ratio: 0.5
96
+ num_cache_chunks: 1024
97
+ chunk_excluded_key_prefixes: []
98
+ chunk_default_fs: null
99
+ chunk_max_abs_length: null
100
+ chunk_discard_short_samples: true
101
+ train_data_path_and_name_and_type:
102
+ - - dump/raw/cnceleb_train_sp/wav.scp
103
+ - speech
104
+ - sound
105
+ - - dump/raw/cnceleb_train_sp/utt2spk
106
+ - spk_labels
107
+ - text
108
+ valid_data_path_and_name_and_type:
109
+ - - dump/raw/cnceleb1_valid/trial.scp
110
+ - speech
111
+ - sound
112
+ - - dump/raw/cnceleb1_valid/trial2.scp
113
+ - speech2
114
+ - sound
115
+ - - dump/raw/cnceleb1_valid/trial_label
116
+ - spk_labels
117
+ - text
118
+ multi_task_dataset: false
119
+ allow_variable_data_keys: false
120
+ max_cache_size: 0.0
121
+ max_cache_fd: 32
122
+ allow_multi_rates: false
123
+ valid_max_cache_size: null
124
+ exclude_weight_decay: false
125
+ exclude_weight_decay_conf: {}
126
+ optim: sgd
127
+ optim_conf:
128
+ lr: 0.1
129
+ momentum: 0.9
130
+ weight_decay: 0.0001
131
+ scheduler: exponentialdecaywarmup
132
+ scheduler_conf:
133
+ max_lr: 0.1
134
+ min_lr: 5.0e-05
135
+ total_steps: 140720
136
+ warmup_steps: 17590
137
+ warm_from_zero: true
138
+ init: null
139
+ use_preprocessor: true
140
+ input_size: null
141
+ target_duration: 3.0
142
+ spk2utt: dump/raw/cnceleb_train_sp/spk2utt
143
+ spk_num: 8379
144
+ sample_rate: 16000
145
+ num_eval: 10
146
+ rir_scp: ''
147
+ model_conf:
148
+ extract_feats_in_collect_stats: false
149
+ frontend: melspec_torch
150
+ frontend_conf:
151
+ preemp: true
152
+ n_fft: 512
153
+ log: true
154
+ win_length: 400
155
+ hop_length: 160
156
+ n_mels: 80
157
+ normalize: mn
158
+ specaug: null
159
+ specaug_conf: {}
160
+ normalize: null
161
+ normalize_conf: {}
162
+ encoder: ecapa_tdnn
163
+ encoder_conf:
164
+ model_scale: 8
165
+ ndim: 1024
166
+ output_size: 1536
167
+ pooling: chn_attn_stat
168
+ pooling_conf: {}
169
+ projector: rawnet3
170
+ projector_conf:
171
+ output_size: 192
172
+ preprocessor: spk
173
+ preprocessor_conf:
174
+ target_duration: 3.0
175
+ sample_rate: 16000
176
+ num_eval: 5
177
+ noise_apply_prob: 0.5
178
+ noise_info:
179
+ - - 1.0
180
+ - dump/raw/musan_speech.scp
181
+ - - 4
182
+ - 7
183
+ - - 13
184
+ - 20
185
+ - - 1.0
186
+ - dump/raw/musan_noise.scp
187
+ - - 1
188
+ - 1
189
+ - - 0
190
+ - 15
191
+ - - 1.0
192
+ - dump/raw/musan_music.scp
193
+ - - 1
194
+ - 1
195
+ - - 5
196
+ - 15
197
+ rir_apply_prob: 0.5
198
+ rir_scp: dump/raw/rirs.scp
199
+ loss: aamsoftmax_sc_topk
200
+ loss_conf:
201
+ margin: 0.3
202
+ scale: 30
203
+ K: 3
204
+ mp: 0.06
205
+ k_top: 5
206
+ required:
207
+ - output_dir
208
+ version: '202402'
209
+ distributed: true
models/cnceleb_ecapa_tdnn/exp/spk_train_ecapa_tdnn_raw_sp/images/backward_time.png ADDED
models/cnceleb_ecapa_tdnn/exp/spk_train_ecapa_tdnn_raw_sp/images/clip.png ADDED
models/cnceleb_ecapa_tdnn/exp/spk_train_ecapa_tdnn_raw_sp/images/eer.png ADDED
models/cnceleb_ecapa_tdnn/exp/spk_train_ecapa_tdnn_raw_sp/images/forward_time.png ADDED
models/cnceleb_ecapa_tdnn/exp/spk_train_ecapa_tdnn_raw_sp/images/gpu_max_cached_mem_GB.png ADDED
models/cnceleb_ecapa_tdnn/exp/spk_train_ecapa_tdnn_raw_sp/images/grad_norm.png ADDED
models/cnceleb_ecapa_tdnn/exp/spk_train_ecapa_tdnn_raw_sp/images/iter_time.png ADDED
models/cnceleb_ecapa_tdnn/exp/spk_train_ecapa_tdnn_raw_sp/images/loss.png ADDED
models/cnceleb_ecapa_tdnn/exp/spk_train_ecapa_tdnn_raw_sp/images/loss_scale.png ADDED
models/cnceleb_ecapa_tdnn/exp/spk_train_ecapa_tdnn_raw_sp/images/mindcf.png ADDED
models/cnceleb_ecapa_tdnn/exp/spk_train_ecapa_tdnn_raw_sp/images/n_trials.png ADDED
models/cnceleb_ecapa_tdnn/exp/spk_train_ecapa_tdnn_raw_sp/images/nontrg_mean.png ADDED
models/cnceleb_ecapa_tdnn/exp/spk_train_ecapa_tdnn_raw_sp/images/nontrg_std.png ADDED
models/cnceleb_ecapa_tdnn/exp/spk_train_ecapa_tdnn_raw_sp/images/optim0_lr0.png ADDED
models/cnceleb_ecapa_tdnn/exp/spk_train_ecapa_tdnn_raw_sp/images/optim_step_time.png ADDED
models/cnceleb_ecapa_tdnn/exp/spk_train_ecapa_tdnn_raw_sp/images/train_time.png ADDED
models/cnceleb_ecapa_tdnn/exp/spk_train_ecapa_tdnn_raw_sp/images/trg_mean.png ADDED
models/cnceleb_ecapa_tdnn/exp/spk_train_ecapa_tdnn_raw_sp/images/trg_std.png ADDED
models/cnceleb_ecapa_tdnn/meta.yaml ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ espnet: '202402'
2
+ files:
3
+ model_file: exp/spk_train_ecapa_tdnn_raw_sp/16epoch.pth
4
+ python: 3.10.14 (main, May 6 2024, 19:42:50) [GCC 11.2.0]
5
+ timestamp: 1750139605.274077
6
+ torch: 2.3.1
7
+ yaml_files:
8
+ train_config: exp/spk_train_ecapa_tdnn_raw_sp/config.yaml
models/cnceleb_ecapa_tdnn/source.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ https://huggingface.co/espnet/cnceleb_ecapa_tdnn
models/ecapa-tdnn-mlpackage/.gitattributes ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tar filter=lfs diff=lfs merge=lfs -text
29
+ *.tflite filter=lfs diff=lfs merge=lfs -text
30
+ *.tgz filter=lfs diff=lfs merge=lfs -text
31
+ *.wasm filter=lfs diff=lfs merge=lfs -text
32
+ *.xz filter=lfs diff=lfs merge=lfs -text
33
+ *.zip filter=lfs diff=lfs merge=lfs -text
34
+ *.zst filter=lfs diff=lfs merge=lfs -text
35
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
models/ecapa-tdnn-mlpackage/ECAPA_TDNN_EndToEnd.mlpackage.zip ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c78e8358b2d2f6f2e7553e754aaa219fb468746777d876cb9806087196759914
3
+ size 39119986
models/ecapa-tdnn-mlpackage/ECAPA_TDNN_EndToEnd.mlpackage/Data/com.apple.CoreML/model.mlmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ededfae7f03a842c414cd80bea748861a6b0ee828dfe69f48f455c66c7a00c9a
3
+ size 166383
models/ecapa-tdnn-mlpackage/ECAPA_TDNN_EndToEnd.mlpackage/Data/com.apple.CoreML/weights/weight.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9a9392ef1a5e60c4856f8a47206e9ebc4432eb446a3257147881d9243dc11c0e
3
+ size 41979072
models/ecapa-tdnn-mlpackage/ECAPA_TDNN_EndToEnd.mlpackage/Manifest.json ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "fileFormatVersion": "1.0.0",
3
+ "itemInfoEntries": {
4
+ "71321577-96c5-41be-8fc5-6b238f4e2a23": {
5
+ "author": "com.apple.CoreML",
6
+ "description": "CoreML Model Weights",
7
+ "name": "weights",
8
+ "path": "com.apple.CoreML/weights"
9
+ },
10
+ "7f14e1d8-a4cb-4984-b538-ee0ebe919ca1": {
11
+ "author": "com.apple.CoreML",
12
+ "description": "CoreML Model Specification",
13
+ "name": "model.mlmodel",
14
+ "path": "com.apple.CoreML/model.mlmodel"
15
+ }
16
+ },
17
+ "rootModelIdentifier": "7f14e1d8-a4cb-4984-b538-ee0ebe919ca1"
18
+ }
models/ecapa-tdnn-mlpackage/README.md ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ ---
2
+ license: mit
3
+ ---
models/ecapa-tdnn-mlpackage/source.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ https://huggingface.co/pranjal-pravesh/ecapa-tdnn-mlpackage
models/ecapa-tdnn-vox2/.gitattributes ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tflite filter=lfs diff=lfs merge=lfs -text
29
+ *.tgz filter=lfs diff=lfs merge=lfs -text
30
+ *.wasm filter=lfs diff=lfs merge=lfs -text
31
+ *.xz filter=lfs diff=lfs merge=lfs -text
32
+ *.zip filter=lfs diff=lfs merge=lfs -text
33
+ *.zst filter=lfs diff=lfs merge=lfs -text
34
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
models/ecapa-tdnn-vox2/README.md ADDED
@@ -0,0 +1,113 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ language: "en"
3
+ thumbnail:
4
+ tags:
5
+ - speechbrain
6
+ - embeddings
7
+ - Speaker
8
+ - Verification
9
+ - Identification
10
+ - pytorch
11
+ - ECAPA-TDNN
12
+ license: "apache-2.0"
13
+ datasets:
14
+ - voxceleb
15
+ metrics:
16
+ - EER
17
+ - Accuracy
18
+ inference: true
19
+ widget:
20
+ - example_title: VoxCeleb Speaker id10003
21
+ src: https://cdn-media.huggingface.co/speech_samples/VoxCeleb1_00003.wav
22
+ - example_title: VoxCeleb Speaker id10004
23
+ src: https://cdn-media.huggingface.co/speech_samples/VoxCeleb_00004.wav
24
+ ---
25
+
26
+ # Speaker Identification with ECAPA-TDNN embeddings on Voxceleb
27
+
28
+ This repository provides a pretrained ECAPA-TDNN model using SpeechBrain. The system can be used to extract speaker embeddings as well. Since we can't find any resource that has SpeechBrain or HuggingFace compatible checkpoints that has only been trained on VoxCeleb2 development data, so we decide to pre-train an ECAPA-TDNN system from scratch.
29
+
30
+ # Pipeline description
31
+
32
+ This system is composed of an ECAPA-TDNN model. It is a combination of convolutional and residual blocks. The embeddings are extracted using attentive statistical pooling. The system is trained with Additive Margin Softmax Loss.
33
+
34
+ We use FBank (16kHz, 25ms frame length, 10ms hop length, 80 filter-bank channels) as the input features. It was trained using initial learning rate of 0.001 and batch size of 512 with cyclical learning rate policy (CLR) for 20 epochs on 4 A100 GPUs. We employ additive noises and reverberation from [MUSAN](http://www.openslr.org/17/) and [RIR](http://www.openslr.org/28/) datasets to enrich the supervised information. The pre-training progress takes approximately ten days for the ECAPA-TDNN model.
35
+
36
+ # Performance
37
+
38
+ **VoxCeleb1-O** is the original verification test set from VoxCeleb1 consisting of 40 speakers. All speakers with names starting with "E" are reserved for testing. **VoxCeleb1-E** uses the entire VoxCeleb1 dataset, covering 1251 speakers. **VoxCeleb1-H** is a hard version of evaluation set consisting of 552536 pairs with 1190 speakers with the same nationality and gender. There are 18 nationality-gender combinations each with at least 5 individuals.
39
+
40
+ | Splits | Backend | S-norm | EER(%) | minDCF(0.01) |
41
+ |:-------------:|:--------------:|:--------------:|:--------------:|:--------------:|
42
+ | VoxCeleb1-O | cosine | no | 1.29 | 0.13 |
43
+ | VoxCeleb1-O | cosine | yes | 1.19 | 0.11 |
44
+ | VoxCeleb1-E | cosine | no | 1.42 | 0.16 |
45
+ | VoxCeleb1-E | cosine | yes | 1.31 | 0.14 |
46
+ | VoxCeleb1-H | cosine | no | 2.66 | 0.26 |
47
+ | VoxCeleb1-H | cosine | yes | 2.48 | 0.23 |
48
+
49
+ - VoxCeleb1-O: includes 37611 test pairs with 40 speakers.
50
+ - VoxCeleb1-E: includes 579818 test pairs with 1251 speakers.
51
+ - VoxCeleb1-H: includes 550894 test pairs with 1190 speakers.
52
+
53
+ # Compute the speaker embeddings
54
+
55
+ The system is trained with recordings sampled at 16kHz (single channel).
56
+
57
+ ```python
58
+ import torch
59
+ import torchaudio
60
+ from speechbrain.pretrained.interfaces import Pretrained
61
+ from speechbrain.pretrained import EncoderClassifier
62
+
63
+
64
+ class Encoder(Pretrained):
65
+
66
+ MODULES_NEEDED = [
67
+ "compute_features",
68
+ "mean_var_norm",
69
+ "embedding_model"
70
+ ]
71
+
72
+ def __init__(self, *args, **kwargs):
73
+ super().__init__(*args, **kwargs)
74
+
75
+ def encode_batch(self, wavs, wav_lens=None, normalize=False):
76
+ # Manage single waveforms in input
77
+ if len(wavs.shape) == 1:
78
+ wavs = wavs.unsqueeze(0)
79
+
80
+ # Assign full length if wav_lens is not assigned
81
+ if wav_lens is None:
82
+ wav_lens = torch.ones(wavs.shape[0], device=self.device)
83
+
84
+ # Storing waveform in the specified device
85
+ wavs, wav_lens = wavs.to(self.device), wav_lens.to(self.device)
86
+ wavs = wavs.float()
87
+
88
+ # Computing features and embeddings
89
+ feats = self.mods.compute_features(wavs)
90
+ feats = self.mods.mean_var_norm(feats, wav_lens)
91
+ embeddings = self.mods.embedding_model(feats, wav_lens)
92
+ if normalize:
93
+ embeddings = self.hparams.mean_var_norm_emb(
94
+ embeddings,
95
+ torch.ones(embeddings.shape[0], device=self.device)
96
+ )
97
+ return embeddings
98
+
99
+
100
+ classifier = Encoder.from_hparams(
101
+ source="yangwang825/ecapa-tdnn-vox2"
102
+ )
103
+ signal, fs = torchaudio.load('spk1_snt1.wav')
104
+ embeddings = classifier.encode_batch(signal)
105
+ >>> torch.Size([1, 1, 192])
106
+ ```
107
+
108
+ We will release our training results (models, logs, etc) shortly.
109
+
110
+ # References
111
+
112
+ 1. Ravanelli et al., SpeechBrain: A General-Purpose Speech Toolkit, 2021
113
+ 2. Desplanques et al., ECAPA-TDNN: Emphasized Channel Attention, Propagation and Aggregation in TDNN Based Speaker Verification, 2020
models/ecapa-tdnn-vox2/classifier.ckpt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:47d4074130c9c083a575ad0305328e8df28c26e859a018052735d174bda650de
3
+ size 4604276
models/ecapa-tdnn-vox2/embedding_model.ckpt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a9c25a7b62e68b1ad75831cda9b4c5e5e21672580c9a11cb369db7e1f2250bbf
3
+ size 24942907
models/ecapa-tdnn-vox2/hyperparams.yaml ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # ############################################################################
2
+ # Model: ECAPA small for Speaker verification
3
+ # Authors: Yang Wang
4
+ # ############################################################################
5
+
6
+ # Feature parameters
7
+ n_mels: 80
8
+ deltas: False
9
+
10
+ # Pretrain folder (HuggingFace)
11
+ pretrained_path: yangwang825/ecapa-tdnn-vox2
12
+
13
+ # Output parameters
14
+ out_n_neurons: 5994
15
+
16
+ # Model params
17
+ compute_features: !new:speechbrain.lobes.features.Fbank
18
+ n_mels: !ref <n_mels>
19
+ deltas: !ref <deltas>
20
+
21
+ mean_var_norm: !new:speechbrain.processing.features.InputNormalization
22
+ norm_type: sentence
23
+ std_norm: False
24
+
25
+ embedding_model: !new:speechbrain.lobes.models.ECAPA_TDNN.ECAPA_TDNN
26
+ input_size: !ref <n_mels>
27
+ channels: [512, 512, 512, 512, 1536]
28
+ kernel_sizes: [5, 3, 3, 3, 1]
29
+ dilations: [1, 2, 3, 4, 1]
30
+ groups: [1, 1, 1, 1, 1]
31
+ attention_channels: 128
32
+ lin_neurons: 192
33
+
34
+ classifier: !new:speechbrain.lobes.models.ECAPA_TDNN.Classifier
35
+ input_size: 192
36
+ out_neurons: !ref <out_n_neurons>
37
+
38
+ modules:
39
+ compute_features: !ref <compute_features>
40
+ mean_var_norm: !ref <mean_var_norm>
41
+ embedding_model: !ref <embedding_model>
42
+ classifier: !ref <classifier>
43
+
44
+ label_encoder: !new:speechbrain.dataio.encoder.CategoricalEncoder
45
+
46
+
47
+ pretrainer: !new:speechbrain.utils.parameter_transfer.Pretrainer
48
+ loadables:
49
+ embedding_model: !ref <embedding_model>
50
+ classifier: !ref <classifier>
51
+ label_encoder: !ref <label_encoder>
52
+ paths:
53
+ embedding_model: !ref <pretrained_path>/embedding_model.ckpt
54
+ classifier: !ref <pretrained_path>/classifier.ckpt
55
+ label_encoder: !ref <pretrained_path>/label_encoder.txt
models/ecapa-tdnn-vox2/label_encoder.txt ADDED
The diff for this file is too large to render. See raw diff
 
models/ecapa-tdnn-vox2/source.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ https://huggingface.co/yangwang825/ecapa-tdnn-vox2
models/ecapa-tdnn-voxceleb1-c512-aam/.gitattributes ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tar filter=lfs diff=lfs merge=lfs -text
29
+ *.tflite filter=lfs diff=lfs merge=lfs -text
30
+ *.tgz filter=lfs diff=lfs merge=lfs -text
31
+ *.wasm filter=lfs diff=lfs merge=lfs -text
32
+ *.xz filter=lfs diff=lfs merge=lfs -text
33
+ *.zip filter=lfs diff=lfs merge=lfs -text
34
+ *.zst filter=lfs diff=lfs merge=lfs -text
35
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
models/ecapa-tdnn-voxceleb1-c512-aam/README.md ADDED
@@ -0,0 +1,86 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ library_name: transformers
3
+ tags:
4
+ - audio-classification
5
+ - generated_from_trainer
6
+ datasets:
7
+ - voxceleb
8
+ metrics:
9
+ - accuracy
10
+ model-index:
11
+ - name: ecapa-tdnn-voxceleb1-c512-aam
12
+ results:
13
+ - task:
14
+ name: Audio Classification
15
+ type: audio-classification
16
+ dataset:
17
+ name: confit/voxceleb
18
+ type: voxceleb
19
+ config: verification
20
+ split: train
21
+ args: verification
22
+ metrics:
23
+ - name: Accuracy
24
+ type: accuracy
25
+ value: 0.9757901815736382
26
+ ---
27
+
28
+ <!-- This model card has been generated automatically according to the information the Trainer had access to. You
29
+ should probably proofread and complete it, then remove this comment. -->
30
+
31
+ # ecapa-tdnn-voxceleb1-c512-aam
32
+
33
+ This model is a fine-tuned version of [](https://huggingface.co/) on the confit/voxceleb dataset.
34
+ It achieves the following results on the evaluation set:
35
+ - Loss: 0.5840
36
+ - Accuracy: 0.9758
37
+
38
+ ## Model description
39
+
40
+ More information needed
41
+
42
+ ## Intended uses & limitations
43
+
44
+ More information needed
45
+
46
+ ## Training and evaluation data
47
+
48
+ More information needed
49
+
50
+ ## Training procedure
51
+
52
+ ### Training hyperparameters
53
+
54
+ The following hyperparameters were used during training:
55
+ - learning_rate: 0.0005
56
+ - train_batch_size: 256
57
+ - eval_batch_size: 1
58
+ - seed: 914
59
+ - optimizer: Use adamw_torch with betas=(0.9,0.999) and epsilon=1e-08 and optimizer_args=No additional optimizer arguments
60
+ - lr_scheduler_type: linear
61
+ - lr_scheduler_warmup_ratio: 0.1
62
+ - num_epochs: 10.0
63
+ - mixed_precision_training: Native AMP
64
+
65
+ ### Training results
66
+
67
+ | Training Loss | Epoch | Step | Validation Loss | Accuracy |
68
+ |:-------------:|:-----:|:----:|:---------------:|:--------:|
69
+ | 9.047 | 1.0 | 575 | 8.3662 | 0.4304 |
70
+ | 5.3508 | 2.0 | 1150 | 4.0252 | 0.8191 |
71
+ | 3.3124 | 3.0 | 1725 | 2.1083 | 0.9260 |
72
+ | 2.3212 | 4.0 | 2300 | 1.2224 | 0.9435 |
73
+ | 1.6276 | 5.0 | 2875 | 0.8229 | 0.9677 |
74
+ | 1.1418 | 6.0 | 3450 | 0.5840 | 0.9758 |
75
+ | 1.0484 | 7.0 | 4025 | 0.5781 | 0.9738 |
76
+ | 0.0 | 8.0 | 4600 | nan | 0.0007 |
77
+ | 0.0 | 9.0 | 5175 | nan | 0.0007 |
78
+ | 0.0 | 10.0 | 5750 | nan | 0.0007 |
79
+
80
+
81
+ ### Framework versions
82
+
83
+ - Transformers 4.48.3
84
+ - Pytorch 2.0.0+cu117
85
+ - Datasets 3.2.0
86
+ - Tokenizers 0.21.0
models/ecapa-tdnn-voxceleb1-c512-aam/all_results.json ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "epoch": 10.0,
3
+ "eval_accuracy": 0.9757901815736382,
4
+ "eval_loss": 0.5840117335319519,
5
+ "eval_runtime": 13.1656,
6
+ "eval_samples_per_second": 112.946,
7
+ "eval_steps_per_second": 112.946,
8
+ "total_flos": 2.7398100529152e+18,
9
+ "train_loss": 2.9414075751926587,
10
+ "train_runtime": 59857.6179,
11
+ "train_samples_per_second": 24.584,
12
+ "train_steps_per_second": 0.096
13
+ }
models/ecapa-tdnn-voxceleb1-c512-aam/angular_loss.py ADDED
@@ -0,0 +1,68 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import torch
2
+ import torch.nn as nn
3
+
4
+
5
+ class Loss(nn.modules.loss._Loss):
6
+ """Inherit this class to implement custom loss."""
7
+
8
+ def __init__(self, **kwargs):
9
+ super(Loss, self).__init__(**kwargs)
10
+
11
+
12
+ class AdditiveMarginSoftmaxLoss(Loss):
13
+ """Computes Additive Margin Softmax (CosFace) Loss
14
+
15
+ Paper: CosFace: Large Margin Cosine Loss for Deep Face Recognition
16
+
17
+ args:
18
+ scale: scale value for cosine angle
19
+ margin: margin value added to cosine angle
20
+ """
21
+
22
+ def __init__(self, scale=30.0, margin=0.2):
23
+ super().__init__()
24
+
25
+ self.eps = 1e-7
26
+ self.scale = scale
27
+ self.margin = margin
28
+
29
+ def forward(self, logits: torch.Tensor, labels: torch.Tensor):
30
+ # Extract the logits corresponding to the true class
31
+ logits_target = logits[torch.arange(logits.size(0)), labels] # Faster indexing
32
+ numerator = self.scale * (logits_target - self.margin) # Apply additive margin
33
+ # Exclude the target logits from denominator calculation
34
+ logits.scatter_(1, labels.unsqueeze(1), float('-inf')) # Mask target class
35
+ denominator = torch.exp(numerator) + torch.sum(torch.exp(self.scale * logits), dim=1)
36
+ # Compute final loss
37
+ loss = -torch.log(torch.exp(numerator) / denominator)
38
+ return loss.mean()
39
+
40
+
41
+ class AdditiveAngularMarginSoftmaxLoss(Loss):
42
+ """Computes Additive Angular Margin Softmax (ArcFace) Loss
43
+
44
+ Paper: ArcFace: Additive Angular Margin Loss for Deep Face Recognition
45
+
46
+ Args:
47
+ scale: scale value for cosine angle
48
+ margin: margin value added to cosine angle
49
+ """
50
+
51
+ def __init__(self, scale=20.0, margin=1.35):
52
+ super().__init__()
53
+
54
+ self.eps = 1e-7
55
+ self.scale = scale
56
+ self.margin = margin
57
+
58
+ def forward(self, logits: torch.Tensor, labels: torch.Tensor):
59
+ numerator = self.scale * torch.cos(
60
+ torch.acos(torch.clamp(torch.diagonal(logits.transpose(0, 1)[labels]), -1.0 + self.eps, 1 - self.eps))
61
+ + self.margin
62
+ )
63
+ excl = torch.cat(
64
+ [torch.cat((logits[i, :y], logits[i, y + 1 :])).unsqueeze(0) for i, y in enumerate(labels)], dim=0
65
+ )
66
+ denominator = torch.exp(numerator) + torch.sum(torch.exp(self.scale * excl), dim=1)
67
+ L = numerator - torch.log(denominator)
68
+ return -torch.mean(L)
models/ecapa-tdnn-voxceleb1-c512-aam/audio_processing.py ADDED
@@ -0,0 +1,413 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import math
2
+ from packaging import version
3
+ from dataclasses import dataclass
4
+ from abc import ABC, abstractmethod
5
+
6
+ import torch
7
+
8
+ try:
9
+ import torchaudio
10
+ import torchaudio.functional
11
+ import torchaudio.transforms
12
+
13
+ TORCHAUDIO_VERSION = version.parse(torchaudio.__version__)
14
+ TORCHAUDIO_VERSION_MIN = version.parse('0.5')
15
+
16
+ HAVE_TORCHAUDIO = True
17
+ except ModuleNotFoundError:
18
+ HAVE_TORCHAUDIO = False
19
+
20
+ from .module import NeuralModule
21
+ from .features import FilterbankFeatures, FilterbankFeaturesTA
22
+ from .spectrogram_augment import SpecCutout, SpecAugment
23
+
24
+
25
+ class AudioPreprocessor(NeuralModule, ABC):
26
+ """
27
+ An interface for Neural Modules that performs audio pre-processing,
28
+ transforming the wav files to features.
29
+ """
30
+
31
+ def __init__(self, win_length, hop_length):
32
+ super().__init__()
33
+
34
+ self.win_length = win_length
35
+ self.hop_length = hop_length
36
+
37
+ self.torch_windows = {
38
+ 'hann': torch.hann_window,
39
+ 'hamming': torch.hamming_window,
40
+ 'blackman': torch.blackman_window,
41
+ 'bartlett': torch.bartlett_window,
42
+ 'ones': torch.ones,
43
+ None: torch.ones,
44
+ }
45
+
46
+ # Normally, when you call to(dtype) on a torch.nn.Module, all
47
+ # floating point parameters and buffers will change to that
48
+ # dtype, rather than being float32. The AudioPreprocessor
49
+ # classes, uniquely, don't actually have any parameters or
50
+ # buffers from what I see. In addition, we want the input to
51
+ # the preprocessor to be float32, but need to create the
52
+ # output in appropriate precision. We have this empty tensor
53
+ # here just to detect which dtype tensor this module should
54
+ # output at the end of execution.
55
+ self.register_buffer("dtype_sentinel_tensor", torch.tensor((), dtype=torch.float32), persistent=False)
56
+
57
+ @torch.no_grad()
58
+ def forward(self, input_signal, length):
59
+ processed_signal, processed_length = self.get_features(input_signal.to(torch.float32), length)
60
+ processed_signal = processed_signal.to(self.dtype_sentinel_tensor.dtype)
61
+ return processed_signal, processed_length
62
+
63
+ @abstractmethod
64
+ def get_features(self, input_signal, length):
65
+ # Called by forward(). Subclasses should implement this.
66
+ pass
67
+
68
+
69
+ class AudioToMelSpectrogramPreprocessor(AudioPreprocessor):
70
+ """Featurizer module that converts wavs to mel spectrograms.
71
+
72
+ Args:
73
+ sample_rate (int): Sample rate of the input audio data.
74
+ Defaults to 16000
75
+ window_size (float): Size of window for fft in seconds
76
+ Defaults to 0.02
77
+ window_stride (float): Stride of window for fft in seconds
78
+ Defaults to 0.01
79
+ n_window_size (int): Size of window for fft in samples
80
+ Defaults to None. Use one of window_size or n_window_size.
81
+ n_window_stride (int): Stride of window for fft in samples
82
+ Defaults to None. Use one of window_stride or n_window_stride.
83
+ window (str): Windowing function for fft. can be one of ['hann',
84
+ 'hamming', 'blackman', 'bartlett']
85
+ Defaults to "hann"
86
+ normalize (str): Can be one of ['per_feature', 'all_features']; all
87
+ other options disable feature normalization. 'all_features'
88
+ normalizes the entire spectrogram to be mean 0 with std 1.
89
+ 'pre_features' normalizes per channel / freq instead.
90
+ Defaults to "per_feature"
91
+ n_fft (int): Length of FT window. If None, it uses the smallest power
92
+ of 2 that is larger than n_window_size.
93
+ Defaults to None
94
+ preemph (float): Amount of pre emphasis to add to audio. Can be
95
+ disabled by passing None.
96
+ Defaults to 0.97
97
+ features (int): Number of mel spectrogram freq bins to output.
98
+ Defaults to 64
99
+ lowfreq (int): Lower bound on mel basis in Hz.
100
+ Defaults to 0
101
+ highfreq (int): Lower bound on mel basis in Hz.
102
+ Defaults to None
103
+ log (bool): Log features.
104
+ Defaults to True
105
+ log_zero_guard_type(str): Need to avoid taking the log of zero. There
106
+ are two options: "add" or "clamp".
107
+ Defaults to "add".
108
+ log_zero_guard_value(float, or str): Add or clamp requires the number
109
+ to add with or clamp to. log_zero_guard_value can either be a float
110
+ or "tiny" or "eps". torch.finfo is used if "tiny" or "eps" is
111
+ passed.
112
+ Defaults to 2**-24.
113
+ dither (float): Amount of white-noise dithering.
114
+ Defaults to 1e-5
115
+ pad_to (int): Ensures that the output size of the time dimension is
116
+ a multiple of pad_to.
117
+ Defaults to 16
118
+ frame_splicing (int): Defaults to 1
119
+ exact_pad (bool): If True, sets stft center to False and adds padding, such that num_frames = audio_length
120
+ // hop_length. Defaults to False.
121
+ pad_value (float): The value that shorter mels are padded with.
122
+ Defaults to 0
123
+ mag_power (float): The power that the linear spectrogram is raised to
124
+ prior to multiplication with mel basis.
125
+ Defaults to 2 for a power spec
126
+ rng : Random number generator
127
+ nb_augmentation_prob (float) : Probability with which narrowband augmentation would be applied to
128
+ samples in the batch.
129
+ Defaults to 0.0
130
+ nb_max_freq (int) : Frequency above which all frequencies will be masked for narrowband augmentation.
131
+ Defaults to 4000
132
+ use_torchaudio: Whether to use the `torchaudio` implementation.
133
+ mel_norm: Normalization used for mel filterbank weights.
134
+ Defaults to 'slaney' (area normalization)
135
+ stft_exact_pad: Deprecated argument, kept for compatibility with older checkpoints.
136
+ stft_conv: Deprecated argument, kept for compatibility with older checkpoints.
137
+ """
138
+
139
+ def __init__(
140
+ self,
141
+ sample_rate=16000,
142
+ window_size=0.02,
143
+ window_stride=0.01,
144
+ n_window_size=None,
145
+ n_window_stride=None,
146
+ window="hann",
147
+ normalize="per_feature",
148
+ n_fft=None,
149
+ preemph=0.97,
150
+ features=64,
151
+ lowfreq=0,
152
+ highfreq=None,
153
+ log=True,
154
+ log_zero_guard_type="add",
155
+ log_zero_guard_value=2**-24,
156
+ dither=1e-5,
157
+ pad_to=16,
158
+ frame_splicing=1,
159
+ exact_pad=False,
160
+ pad_value=0,
161
+ mag_power=2.0,
162
+ rng=None,
163
+ nb_augmentation_prob=0.0,
164
+ nb_max_freq=4000,
165
+ use_torchaudio: bool = False,
166
+ mel_norm="slaney",
167
+ stft_exact_pad=False, # Deprecated arguments; kept for config compatibility
168
+ stft_conv=False, # Deprecated arguments; kept for config compatibility
169
+ ):
170
+ super().__init__(n_window_size, n_window_stride)
171
+
172
+ self._sample_rate = sample_rate
173
+ if window_size and n_window_size:
174
+ raise ValueError(f"{self} received both window_size and " f"n_window_size. Only one should be specified.")
175
+ if window_stride and n_window_stride:
176
+ raise ValueError(
177
+ f"{self} received both window_stride and " f"n_window_stride. Only one should be specified."
178
+ )
179
+ if window_size:
180
+ n_window_size = int(window_size * self._sample_rate)
181
+ if window_stride:
182
+ n_window_stride = int(window_stride * self._sample_rate)
183
+
184
+ # Given the long and similar argument list, point to the class and instantiate it by reference
185
+ if not use_torchaudio:
186
+ featurizer_class = FilterbankFeatures
187
+ else:
188
+ featurizer_class = FilterbankFeaturesTA
189
+ self.featurizer = featurizer_class(
190
+ sample_rate=self._sample_rate,
191
+ n_window_size=n_window_size,
192
+ n_window_stride=n_window_stride,
193
+ window=window,
194
+ normalize=normalize,
195
+ n_fft=n_fft,
196
+ preemph=preemph,
197
+ nfilt=features,
198
+ lowfreq=lowfreq,
199
+ highfreq=highfreq,
200
+ log=log,
201
+ log_zero_guard_type=log_zero_guard_type,
202
+ log_zero_guard_value=log_zero_guard_value,
203
+ dither=dither,
204
+ pad_to=pad_to,
205
+ frame_splicing=frame_splicing,
206
+ exact_pad=exact_pad,
207
+ pad_value=pad_value,
208
+ mag_power=mag_power,
209
+ rng=rng,
210
+ nb_augmentation_prob=nb_augmentation_prob,
211
+ nb_max_freq=nb_max_freq,
212
+ mel_norm=mel_norm,
213
+ stft_exact_pad=stft_exact_pad, # Deprecated arguments; kept for config compatibility
214
+ stft_conv=stft_conv, # Deprecated arguments; kept for config compatibility
215
+ )
216
+
217
+ def get_features(self, input_signal, length):
218
+ return self.featurizer(input_signal, length)
219
+
220
+ @property
221
+ def filter_banks(self):
222
+ return self.featurizer.filter_banks
223
+
224
+
225
+ class AudioToMFCCPreprocessor(AudioPreprocessor):
226
+ """Preprocessor that converts wavs to MFCCs.
227
+ Uses torchaudio.transforms.MFCC.
228
+
229
+ Args:
230
+ sample_rate: The sample rate of the audio.
231
+ Defaults to 16000.
232
+ window_size: Size of window for fft in seconds. Used to calculate the
233
+ win_length arg for mel spectrogram.
234
+ Defaults to 0.02
235
+ window_stride: Stride of window for fft in seconds. Used to caculate
236
+ the hop_length arg for mel spect.
237
+ Defaults to 0.01
238
+ n_window_size: Size of window for fft in samples
239
+ Defaults to None. Use one of window_size or n_window_size.
240
+ n_window_stride: Stride of window for fft in samples
241
+ Defaults to None. Use one of window_stride or n_window_stride.
242
+ window: Windowing function for fft. can be one of ['hann',
243
+ 'hamming', 'blackman', 'bartlett', 'none', 'null'].
244
+ Defaults to 'hann'
245
+ n_fft: Length of FT window. If None, it uses the smallest power of 2
246
+ that is larger than n_window_size.
247
+ Defaults to None
248
+ lowfreq (int): Lower bound on mel basis in Hz.
249
+ Defaults to 0
250
+ highfreq (int): Lower bound on mel basis in Hz.
251
+ Defaults to None
252
+ n_mels: Number of mel filterbanks.
253
+ Defaults to 64
254
+ n_mfcc: Number of coefficients to retain
255
+ Defaults to 64
256
+ dct_type: Type of discrete cosine transform to use
257
+ norm: Type of norm to use
258
+ log: Whether to use log-mel spectrograms instead of db-scaled.
259
+ Defaults to True.
260
+ """
261
+
262
+ def __init__(
263
+ self,
264
+ sample_rate=16000,
265
+ window_size=0.02,
266
+ window_stride=0.01,
267
+ n_window_size=None,
268
+ n_window_stride=None,
269
+ window='hann',
270
+ n_fft=None,
271
+ lowfreq=0.0,
272
+ highfreq=None,
273
+ n_mels=64,
274
+ n_mfcc=64,
275
+ dct_type=2,
276
+ norm='ortho',
277
+ log=True,
278
+ ):
279
+ self._sample_rate = sample_rate
280
+ if not HAVE_TORCHAUDIO:
281
+ print('Could not import torchaudio. Some features might not work.')
282
+
283
+ raise ModuleNotFoundError(
284
+ "torchaudio is not installed but is necessary for "
285
+ "AudioToMFCCPreprocessor. We recommend you try "
286
+ "building it from source for the PyTorch version you have."
287
+ )
288
+ if window_size and n_window_size:
289
+ raise ValueError(f"{self} received both window_size and " f"n_window_size. Only one should be specified.")
290
+ if window_stride and n_window_stride:
291
+ raise ValueError(
292
+ f"{self} received both window_stride and " f"n_window_stride. Only one should be specified."
293
+ )
294
+ # Get win_length (n_window_size) and hop_length (n_window_stride)
295
+ if window_size:
296
+ n_window_size = int(window_size * self._sample_rate)
297
+ if window_stride:
298
+ n_window_stride = int(window_stride * self._sample_rate)
299
+
300
+ super().__init__(n_window_size, n_window_stride)
301
+
302
+ mel_kwargs = {}
303
+
304
+ mel_kwargs['f_min'] = lowfreq
305
+ mel_kwargs['f_max'] = highfreq
306
+ mel_kwargs['n_mels'] = n_mels
307
+
308
+ mel_kwargs['n_fft'] = n_fft or 2 ** math.ceil(math.log2(n_window_size))
309
+
310
+ mel_kwargs['win_length'] = n_window_size
311
+ mel_kwargs['hop_length'] = n_window_stride
312
+
313
+ # Set window_fn. None defaults to torch.ones.
314
+ window_fn = self.torch_windows.get(window, None)
315
+ if window_fn is None:
316
+ raise ValueError(
317
+ f"Window argument for AudioProcessor is invalid: {window}."
318
+ f"For no window function, use 'ones' or None."
319
+ )
320
+ mel_kwargs['window_fn'] = window_fn
321
+
322
+ # Use torchaudio's implementation of MFCCs as featurizer
323
+ self.featurizer = torchaudio.transforms.MFCC(
324
+ sample_rate=self._sample_rate,
325
+ n_mfcc=n_mfcc,
326
+ dct_type=dct_type,
327
+ norm=norm,
328
+ log_mels=log,
329
+ melkwargs=mel_kwargs,
330
+ )
331
+
332
+ def get_features(self, input_signal, length):
333
+ features = self.featurizer(input_signal)
334
+ seq_len = torch.ceil(length.to(torch.float32) / self.hop_length).to(dtype=torch.long)
335
+ return features, seq_len
336
+
337
+
338
+ class SpectrogramAugmentation(NeuralModule):
339
+ """
340
+ Performs time and freq cuts in one of two ways.
341
+ SpecAugment zeroes out vertical and horizontal sections as described in
342
+ SpecAugment (https://arxiv.org/abs/1904.08779). Arguments for use with
343
+ SpecAugment are `freq_masks`, `time_masks`, `freq_width`, and `time_width`.
344
+ SpecCutout zeroes out rectangulars as described in Cutout
345
+ (https://arxiv.org/abs/1708.04552). Arguments for use with Cutout are
346
+ `rect_masks`, `rect_freq`, and `rect_time`.
347
+
348
+ Args:
349
+ freq_masks (int): how many frequency segments should be cut.
350
+ Defaults to 0.
351
+ time_masks (int): how many time segments should be cut
352
+ Defaults to 0.
353
+ freq_width (int): maximum number of frequencies to be cut in one
354
+ segment.
355
+ Defaults to 10.
356
+ time_width (int): maximum number of time steps to be cut in one
357
+ segment
358
+ Defaults to 10.
359
+ rect_masks (int): how many rectangular masks should be cut
360
+ Defaults to 0.
361
+ rect_freq (int): maximum size of cut rectangles along the frequency
362
+ dimension
363
+ Defaults to 5.
364
+ rect_time (int): maximum size of cut rectangles along the time
365
+ dimension
366
+ Defaults to 25.
367
+ use_numba_spec_augment: use numba code for Spectrogram augmentation
368
+ use_vectorized_spec_augment: use vectorized code for Spectrogram augmentation
369
+
370
+ """
371
+
372
+ def __init__(
373
+ self,
374
+ freq_masks=0,
375
+ time_masks=0,
376
+ freq_width=10,
377
+ time_width=10,
378
+ rect_masks=0,
379
+ rect_time=5,
380
+ rect_freq=20,
381
+ rng=None,
382
+ mask_value=0.0,
383
+ use_vectorized_spec_augment: bool = True,
384
+ ):
385
+ super().__init__()
386
+
387
+ if rect_masks > 0:
388
+ self.spec_cutout = SpecCutout(
389
+ rect_masks=rect_masks,
390
+ rect_time=rect_time,
391
+ rect_freq=rect_freq,
392
+ rng=rng,
393
+ )
394
+ # self.spec_cutout.to(self._device)
395
+ else:
396
+ self.spec_cutout = lambda input_spec: input_spec
397
+ if freq_masks + time_masks > 0:
398
+ self.spec_augment = SpecAugment(
399
+ freq_masks=freq_masks,
400
+ time_masks=time_masks,
401
+ freq_width=freq_width,
402
+ time_width=time_width,
403
+ rng=rng,
404
+ mask_value=mask_value,
405
+ use_vectorized_code=use_vectorized_spec_augment,
406
+ )
407
+ else:
408
+ self.spec_augment = lambda input_spec, length: input_spec
409
+
410
+ def forward(self, input_spec, length):
411
+ augmented_spec = self.spec_cutout(input_spec=input_spec)
412
+ augmented_spec = self.spec_augment(input_spec=augmented_spec, length=length)
413
+ return augmented_spec
models/ecapa-tdnn-voxceleb1-c512-aam/config.json ADDED
@@ -0,0 +1,2590 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "angular": true,
3
+ "angular_margin": 0.2,
4
+ "angular_scale": 30,
5
+ "architectures": [
6
+ "EcapaTdnnForSequenceClassification"
7
+ ],
8
+ "attention_channels": 128,
9
+ "auto_map": {
10
+ "AutoConfig": "configuration_ecapa_tdnn.EcapaTdnnConfig",
11
+ "AutoModelForAudioClassification": "modeling_ecapa_tdnn.EcapaTdnnForSequenceClassification"
12
+ },
13
+ "bos_token_id": 1,
14
+ "decoder_config": {
15
+ "angular": true,
16
+ "attention_channels": 128,
17
+ "emb_sizes": 192,
18
+ "feat_in": 1536,
19
+ "init_mode": "xavier_uniform",
20
+ "num_classes": 1211,
21
+ "pool_mode": "attention"
22
+ },
23
+ "dilations": [
24
+ 1,
25
+ 2,
26
+ 3,
27
+ 4,
28
+ 1
29
+ ],
30
+ "dither": 1e-05,
31
+ "emb_sizes": 192,
32
+ "encoder_config": {
33
+ "dilations": [
34
+ 1,
35
+ 2,
36
+ 3,
37
+ 4,
38
+ 1
39
+ ],
40
+ "feat_in": 80,
41
+ "filters": [
42
+ 512,
43
+ 512,
44
+ 512,
45
+ 512,
46
+ 1536
47
+ ],
48
+ "init_mode": "xavier_uniform",
49
+ "kernel_sizes": [
50
+ 5,
51
+ 3,
52
+ 3,
53
+ 3,
54
+ 1
55
+ ],
56
+ "res2net": false,
57
+ "res2net_scale": 8,
58
+ "scale": 8
59
+ },
60
+ "eos_token_id": 2,
61
+ "exact_pad": false,
62
+ "feat_in": 80,
63
+ "features": 80,
64
+ "filters": [
65
+ 512,
66
+ 512,
67
+ 512,
68
+ 512,
69
+ 1536
70
+ ],
71
+ "frame_splicing": 1,
72
+ "freq_masks": 3,
73
+ "freq_width": 4,
74
+ "highfreq": null,
75
+ "id2label": {
76
+ "0": "id10001",
77
+ "1": "id10002",
78
+ "10": "id10011",
79
+ "100": "id10101",
80
+ "1000": "id11041",
81
+ "1001": "id11042",
82
+ "1002": "id11043",
83
+ "1003": "id11044",
84
+ "1004": "id11045",
85
+ "1005": "id11046",
86
+ "1006": "id11047",
87
+ "1007": "id11048",
88
+ "1008": "id11049",
89
+ "1009": "id11050",
90
+ "101": "id10102",
91
+ "1010": "id11051",
92
+ "1011": "id11052",
93
+ "1012": "id11053",
94
+ "1013": "id11054",
95
+ "1014": "id11055",
96
+ "1015": "id11056",
97
+ "1016": "id11057",
98
+ "1017": "id11058",
99
+ "1018": "id11059",
100
+ "1019": "id11060",
101
+ "102": "id10103",
102
+ "1020": "id11061",
103
+ "1021": "id11062",
104
+ "1022": "id11063",
105
+ "1023": "id11064",
106
+ "1024": "id11065",
107
+ "1025": "id11066",
108
+ "1026": "id11067",
109
+ "1027": "id11068",
110
+ "1028": "id11069",
111
+ "1029": "id11070",
112
+ "103": "id10104",
113
+ "1030": "id11071",
114
+ "1031": "id11072",
115
+ "1032": "id11073",
116
+ "1033": "id11074",
117
+ "1034": "id11075",
118
+ "1035": "id11076",
119
+ "1036": "id11077",
120
+ "1037": "id11078",
121
+ "1038": "id11079",
122
+ "1039": "id11080",
123
+ "104": "id10105",
124
+ "1040": "id11081",
125
+ "1041": "id11082",
126
+ "1042": "id11083",
127
+ "1043": "id11084",
128
+ "1044": "id11085",
129
+ "1045": "id11086",
130
+ "1046": "id11087",
131
+ "1047": "id11088",
132
+ "1048": "id11089",
133
+ "1049": "id11090",
134
+ "105": "id10106",
135
+ "1050": "id11091",
136
+ "1051": "id11092",
137
+ "1052": "id11093",
138
+ "1053": "id11094",
139
+ "1054": "id11095",
140
+ "1055": "id11096",
141
+ "1056": "id11097",
142
+ "1057": "id11098",
143
+ "1058": "id11099",
144
+ "1059": "id11100",
145
+ "106": "id10107",
146
+ "1060": "id11101",
147
+ "1061": "id11102",
148
+ "1062": "id11103",
149
+ "1063": "id11104",
150
+ "1064": "id11105",
151
+ "1065": "id11106",
152
+ "1066": "id11107",
153
+ "1067": "id11108",
154
+ "1068": "id11109",
155
+ "1069": "id11110",
156
+ "107": "id10108",
157
+ "1070": "id11111",
158
+ "1071": "id11112",
159
+ "1072": "id11113",
160
+ "1073": "id11114",
161
+ "1074": "id11115",
162
+ "1075": "id11116",
163
+ "1076": "id11117",
164
+ "1077": "id11118",
165
+ "1078": "id11119",
166
+ "1079": "id11120",
167
+ "108": "id10109",
168
+ "1080": "id11121",
169
+ "1081": "id11122",
170
+ "1082": "id11123",
171
+ "1083": "id11124",
172
+ "1084": "id11125",
173
+ "1085": "id11126",
174
+ "1086": "id11127",
175
+ "1087": "id11128",
176
+ "1088": "id11129",
177
+ "1089": "id11130",
178
+ "109": "id10110",
179
+ "1090": "id11131",
180
+ "1091": "id11132",
181
+ "1092": "id11133",
182
+ "1093": "id11134",
183
+ "1094": "id11135",
184
+ "1095": "id11136",
185
+ "1096": "id11137",
186
+ "1097": "id11138",
187
+ "1098": "id11139",
188
+ "1099": "id11140",
189
+ "11": "id10012",
190
+ "110": "id10111",
191
+ "1100": "id11141",
192
+ "1101": "id11142",
193
+ "1102": "id11143",
194
+ "1103": "id11144",
195
+ "1104": "id11145",
196
+ "1105": "id11146",
197
+ "1106": "id11147",
198
+ "1107": "id11148",
199
+ "1108": "id11149",
200
+ "1109": "id11150",
201
+ "111": "id10112",
202
+ "1110": "id11151",
203
+ "1111": "id11152",
204
+ "1112": "id11153",
205
+ "1113": "id11154",
206
+ "1114": "id11155",
207
+ "1115": "id11156",
208
+ "1116": "id11157",
209
+ "1117": "id11158",
210
+ "1118": "id11159",
211
+ "1119": "id11160",
212
+ "112": "id10113",
213
+ "1120": "id11161",
214
+ "1121": "id11162",
215
+ "1122": "id11163",
216
+ "1123": "id11164",
217
+ "1124": "id11165",
218
+ "1125": "id11166",
219
+ "1126": "id11167",
220
+ "1127": "id11168",
221
+ "1128": "id11169",
222
+ "1129": "id11170",
223
+ "113": "id10114",
224
+ "1130": "id11171",
225
+ "1131": "id11172",
226
+ "1132": "id11173",
227
+ "1133": "id11174",
228
+ "1134": "id11175",
229
+ "1135": "id11176",
230
+ "1136": "id11177",
231
+ "1137": "id11178",
232
+ "1138": "id11179",
233
+ "1139": "id11180",
234
+ "114": "id10115",
235
+ "1140": "id11181",
236
+ "1141": "id11182",
237
+ "1142": "id11183",
238
+ "1143": "id11184",
239
+ "1144": "id11185",
240
+ "1145": "id11186",
241
+ "1146": "id11187",
242
+ "1147": "id11188",
243
+ "1148": "id11189",
244
+ "1149": "id11190",
245
+ "115": "id10116",
246
+ "1150": "id11191",
247
+ "1151": "id11192",
248
+ "1152": "id11193",
249
+ "1153": "id11194",
250
+ "1154": "id11195",
251
+ "1155": "id11196",
252
+ "1156": "id11197",
253
+ "1157": "id11198",
254
+ "1158": "id11199",
255
+ "1159": "id11200",
256
+ "116": "id10117",
257
+ "1160": "id11201",
258
+ "1161": "id11202",
259
+ "1162": "id11203",
260
+ "1163": "id11204",
261
+ "1164": "id11205",
262
+ "1165": "id11206",
263
+ "1166": "id11207",
264
+ "1167": "id11208",
265
+ "1168": "id11209",
266
+ "1169": "id11210",
267
+ "117": "id10118",
268
+ "1170": "id11211",
269
+ "1171": "id11212",
270
+ "1172": "id11213",
271
+ "1173": "id11214",
272
+ "1174": "id11215",
273
+ "1175": "id11216",
274
+ "1176": "id11217",
275
+ "1177": "id11218",
276
+ "1178": "id11219",
277
+ "1179": "id11220",
278
+ "118": "id10119",
279
+ "1180": "id11221",
280
+ "1181": "id11222",
281
+ "1182": "id11223",
282
+ "1183": "id11224",
283
+ "1184": "id11225",
284
+ "1185": "id11226",
285
+ "1186": "id11227",
286
+ "1187": "id11228",
287
+ "1188": "id11229",
288
+ "1189": "id11230",
289
+ "119": "id10120",
290
+ "1190": "id11231",
291
+ "1191": "id11232",
292
+ "1192": "id11233",
293
+ "1193": "id11234",
294
+ "1194": "id11235",
295
+ "1195": "id11236",
296
+ "1196": "id11237",
297
+ "1197": "id11238",
298
+ "1198": "id11239",
299
+ "1199": "id11240",
300
+ "12": "id10013",
301
+ "120": "id10121",
302
+ "1200": "id11241",
303
+ "1201": "id11242",
304
+ "1202": "id11243",
305
+ "1203": "id11244",
306
+ "1204": "id11245",
307
+ "1205": "id11246",
308
+ "1206": "id11247",
309
+ "1207": "id11248",
310
+ "1208": "id11249",
311
+ "1209": "id11250",
312
+ "121": "id10122",
313
+ "1210": "id11251",
314
+ "122": "id10123",
315
+ "123": "id10124",
316
+ "124": "id10125",
317
+ "125": "id10126",
318
+ "126": "id10127",
319
+ "127": "id10128",
320
+ "128": "id10129",
321
+ "129": "id10130",
322
+ "13": "id10014",
323
+ "130": "id10131",
324
+ "131": "id10132",
325
+ "132": "id10133",
326
+ "133": "id10134",
327
+ "134": "id10135",
328
+ "135": "id10136",
329
+ "136": "id10137",
330
+ "137": "id10138",
331
+ "138": "id10139",
332
+ "139": "id10140",
333
+ "14": "id10015",
334
+ "140": "id10141",
335
+ "141": "id10142",
336
+ "142": "id10143",
337
+ "143": "id10144",
338
+ "144": "id10145",
339
+ "145": "id10146",
340
+ "146": "id10147",
341
+ "147": "id10148",
342
+ "148": "id10149",
343
+ "149": "id10150",
344
+ "15": "id10016",
345
+ "150": "id10151",
346
+ "151": "id10152",
347
+ "152": "id10153",
348
+ "153": "id10154",
349
+ "154": "id10155",
350
+ "155": "id10156",
351
+ "156": "id10157",
352
+ "157": "id10158",
353
+ "158": "id10159",
354
+ "159": "id10160",
355
+ "16": "id10017",
356
+ "160": "id10161",
357
+ "161": "id10162",
358
+ "162": "id10163",
359
+ "163": "id10164",
360
+ "164": "id10165",
361
+ "165": "id10166",
362
+ "166": "id10167",
363
+ "167": "id10168",
364
+ "168": "id10169",
365
+ "169": "id10170",
366
+ "17": "id10018",
367
+ "170": "id10171",
368
+ "171": "id10172",
369
+ "172": "id10173",
370
+ "173": "id10174",
371
+ "174": "id10175",
372
+ "175": "id10176",
373
+ "176": "id10177",
374
+ "177": "id10178",
375
+ "178": "id10179",
376
+ "179": "id10180",
377
+ "18": "id10019",
378
+ "180": "id10181",
379
+ "181": "id10182",
380
+ "182": "id10183",
381
+ "183": "id10184",
382
+ "184": "id10185",
383
+ "185": "id10186",
384
+ "186": "id10187",
385
+ "187": "id10188",
386
+ "188": "id10189",
387
+ "189": "id10190",
388
+ "19": "id10020",
389
+ "190": "id10191",
390
+ "191": "id10192",
391
+ "192": "id10193",
392
+ "193": "id10194",
393
+ "194": "id10195",
394
+ "195": "id10196",
395
+ "196": "id10197",
396
+ "197": "id10198",
397
+ "198": "id10199",
398
+ "199": "id10200",
399
+ "2": "id10003",
400
+ "20": "id10021",
401
+ "200": "id10201",
402
+ "201": "id10202",
403
+ "202": "id10203",
404
+ "203": "id10204",
405
+ "204": "id10205",
406
+ "205": "id10206",
407
+ "206": "id10207",
408
+ "207": "id10208",
409
+ "208": "id10209",
410
+ "209": "id10210",
411
+ "21": "id10022",
412
+ "210": "id10211",
413
+ "211": "id10212",
414
+ "212": "id10213",
415
+ "213": "id10214",
416
+ "214": "id10215",
417
+ "215": "id10216",
418
+ "216": "id10217",
419
+ "217": "id10218",
420
+ "218": "id10219",
421
+ "219": "id10220",
422
+ "22": "id10023",
423
+ "220": "id10221",
424
+ "221": "id10222",
425
+ "222": "id10223",
426
+ "223": "id10224",
427
+ "224": "id10225",
428
+ "225": "id10226",
429
+ "226": "id10227",
430
+ "227": "id10228",
431
+ "228": "id10229",
432
+ "229": "id10230",
433
+ "23": "id10024",
434
+ "230": "id10231",
435
+ "231": "id10232",
436
+ "232": "id10233",
437
+ "233": "id10234",
438
+ "234": "id10235",
439
+ "235": "id10236",
440
+ "236": "id10237",
441
+ "237": "id10238",
442
+ "238": "id10239",
443
+ "239": "id10240",
444
+ "24": "id10025",
445
+ "240": "id10241",
446
+ "241": "id10242",
447
+ "242": "id10243",
448
+ "243": "id10244",
449
+ "244": "id10245",
450
+ "245": "id10246",
451
+ "246": "id10247",
452
+ "247": "id10248",
453
+ "248": "id10249",
454
+ "249": "id10250",
455
+ "25": "id10026",
456
+ "250": "id10251",
457
+ "251": "id10252",
458
+ "252": "id10253",
459
+ "253": "id10254",
460
+ "254": "id10255",
461
+ "255": "id10256",
462
+ "256": "id10257",
463
+ "257": "id10258",
464
+ "258": "id10259",
465
+ "259": "id10260",
466
+ "26": "id10027",
467
+ "260": "id10261",
468
+ "261": "id10262",
469
+ "262": "id10263",
470
+ "263": "id10264",
471
+ "264": "id10265",
472
+ "265": "id10266",
473
+ "266": "id10267",
474
+ "267": "id10268",
475
+ "268": "id10269",
476
+ "269": "id10310",
477
+ "27": "id10028",
478
+ "270": "id10311",
479
+ "271": "id10312",
480
+ "272": "id10313",
481
+ "273": "id10314",
482
+ "274": "id10315",
483
+ "275": "id10316",
484
+ "276": "id10317",
485
+ "277": "id10318",
486
+ "278": "id10319",
487
+ "279": "id10320",
488
+ "28": "id10029",
489
+ "280": "id10321",
490
+ "281": "id10322",
491
+ "282": "id10323",
492
+ "283": "id10324",
493
+ "284": "id10325",
494
+ "285": "id10326",
495
+ "286": "id10327",
496
+ "287": "id10328",
497
+ "288": "id10329",
498
+ "289": "id10330",
499
+ "29": "id10030",
500
+ "290": "id10331",
501
+ "291": "id10332",
502
+ "292": "id10333",
503
+ "293": "id10334",
504
+ "294": "id10335",
505
+ "295": "id10336",
506
+ "296": "id10337",
507
+ "297": "id10338",
508
+ "298": "id10339",
509
+ "299": "id10340",
510
+ "3": "id10004",
511
+ "30": "id10031",
512
+ "300": "id10341",
513
+ "301": "id10342",
514
+ "302": "id10343",
515
+ "303": "id10344",
516
+ "304": "id10345",
517
+ "305": "id10346",
518
+ "306": "id10347",
519
+ "307": "id10348",
520
+ "308": "id10349",
521
+ "309": "id10350",
522
+ "31": "id10032",
523
+ "310": "id10351",
524
+ "311": "id10352",
525
+ "312": "id10353",
526
+ "313": "id10354",
527
+ "314": "id10355",
528
+ "315": "id10356",
529
+ "316": "id10357",
530
+ "317": "id10358",
531
+ "318": "id10359",
532
+ "319": "id10360",
533
+ "32": "id10033",
534
+ "320": "id10361",
535
+ "321": "id10362",
536
+ "322": "id10363",
537
+ "323": "id10364",
538
+ "324": "id10365",
539
+ "325": "id10366",
540
+ "326": "id10367",
541
+ "327": "id10368",
542
+ "328": "id10369",
543
+ "329": "id10370",
544
+ "33": "id10034",
545
+ "330": "id10371",
546
+ "331": "id10372",
547
+ "332": "id10373",
548
+ "333": "id10374",
549
+ "334": "id10375",
550
+ "335": "id10376",
551
+ "336": "id10377",
552
+ "337": "id10378",
553
+ "338": "id10379",
554
+ "339": "id10380",
555
+ "34": "id10035",
556
+ "340": "id10381",
557
+ "341": "id10382",
558
+ "342": "id10383",
559
+ "343": "id10384",
560
+ "344": "id10385",
561
+ "345": "id10386",
562
+ "346": "id10387",
563
+ "347": "id10388",
564
+ "348": "id10389",
565
+ "349": "id10390",
566
+ "35": "id10036",
567
+ "350": "id10391",
568
+ "351": "id10392",
569
+ "352": "id10393",
570
+ "353": "id10394",
571
+ "354": "id10395",
572
+ "355": "id10396",
573
+ "356": "id10397",
574
+ "357": "id10398",
575
+ "358": "id10399",
576
+ "359": "id10400",
577
+ "36": "id10037",
578
+ "360": "id10401",
579
+ "361": "id10402",
580
+ "362": "id10403",
581
+ "363": "id10404",
582
+ "364": "id10405",
583
+ "365": "id10406",
584
+ "366": "id10407",
585
+ "367": "id10408",
586
+ "368": "id10409",
587
+ "369": "id10410",
588
+ "37": "id10038",
589
+ "370": "id10411",
590
+ "371": "id10412",
591
+ "372": "id10413",
592
+ "373": "id10414",
593
+ "374": "id10415",
594
+ "375": "id10416",
595
+ "376": "id10417",
596
+ "377": "id10418",
597
+ "378": "id10419",
598
+ "379": "id10420",
599
+ "38": "id10039",
600
+ "380": "id10421",
601
+ "381": "id10422",
602
+ "382": "id10423",
603
+ "383": "id10424",
604
+ "384": "id10425",
605
+ "385": "id10426",
606
+ "386": "id10427",
607
+ "387": "id10428",
608
+ "388": "id10429",
609
+ "389": "id10430",
610
+ "39": "id10040",
611
+ "390": "id10431",
612
+ "391": "id10432",
613
+ "392": "id10433",
614
+ "393": "id10434",
615
+ "394": "id10435",
616
+ "395": "id10436",
617
+ "396": "id10437",
618
+ "397": "id10438",
619
+ "398": "id10439",
620
+ "399": "id10440",
621
+ "4": "id10005",
622
+ "40": "id10041",
623
+ "400": "id10441",
624
+ "401": "id10442",
625
+ "402": "id10443",
626
+ "403": "id10444",
627
+ "404": "id10445",
628
+ "405": "id10446",
629
+ "406": "id10447",
630
+ "407": "id10448",
631
+ "408": "id10449",
632
+ "409": "id10450",
633
+ "41": "id10042",
634
+ "410": "id10451",
635
+ "411": "id10452",
636
+ "412": "id10453",
637
+ "413": "id10454",
638
+ "414": "id10455",
639
+ "415": "id10456",
640
+ "416": "id10457",
641
+ "417": "id10458",
642
+ "418": "id10459",
643
+ "419": "id10460",
644
+ "42": "id10043",
645
+ "420": "id10461",
646
+ "421": "id10462",
647
+ "422": "id10463",
648
+ "423": "id10464",
649
+ "424": "id10465",
650
+ "425": "id10466",
651
+ "426": "id10467",
652
+ "427": "id10468",
653
+ "428": "id10469",
654
+ "429": "id10470",
655
+ "43": "id10044",
656
+ "430": "id10471",
657
+ "431": "id10472",
658
+ "432": "id10473",
659
+ "433": "id10474",
660
+ "434": "id10475",
661
+ "435": "id10476",
662
+ "436": "id10477",
663
+ "437": "id10478",
664
+ "438": "id10479",
665
+ "439": "id10480",
666
+ "44": "id10045",
667
+ "440": "id10481",
668
+ "441": "id10482",
669
+ "442": "id10483",
670
+ "443": "id10484",
671
+ "444": "id10485",
672
+ "445": "id10486",
673
+ "446": "id10487",
674
+ "447": "id10488",
675
+ "448": "id10489",
676
+ "449": "id10490",
677
+ "45": "id10046",
678
+ "450": "id10491",
679
+ "451": "id10492",
680
+ "452": "id10493",
681
+ "453": "id10494",
682
+ "454": "id10495",
683
+ "455": "id10496",
684
+ "456": "id10497",
685
+ "457": "id10498",
686
+ "458": "id10499",
687
+ "459": "id10500",
688
+ "46": "id10047",
689
+ "460": "id10501",
690
+ "461": "id10502",
691
+ "462": "id10503",
692
+ "463": "id10504",
693
+ "464": "id10505",
694
+ "465": "id10506",
695
+ "466": "id10507",
696
+ "467": "id10508",
697
+ "468": "id10509",
698
+ "469": "id10510",
699
+ "47": "id10048",
700
+ "470": "id10511",
701
+ "471": "id10512",
702
+ "472": "id10513",
703
+ "473": "id10514",
704
+ "474": "id10515",
705
+ "475": "id10516",
706
+ "476": "id10517",
707
+ "477": "id10518",
708
+ "478": "id10519",
709
+ "479": "id10520",
710
+ "48": "id10049",
711
+ "480": "id10521",
712
+ "481": "id10522",
713
+ "482": "id10523",
714
+ "483": "id10524",
715
+ "484": "id10525",
716
+ "485": "id10526",
717
+ "486": "id10527",
718
+ "487": "id10528",
719
+ "488": "id10529",
720
+ "489": "id10530",
721
+ "49": "id10050",
722
+ "490": "id10531",
723
+ "491": "id10532",
724
+ "492": "id10533",
725
+ "493": "id10534",
726
+ "494": "id10535",
727
+ "495": "id10536",
728
+ "496": "id10537",
729
+ "497": "id10538",
730
+ "498": "id10539",
731
+ "499": "id10540",
732
+ "5": "id10006",
733
+ "50": "id10051",
734
+ "500": "id10541",
735
+ "501": "id10542",
736
+ "502": "id10543",
737
+ "503": "id10544",
738
+ "504": "id10545",
739
+ "505": "id10546",
740
+ "506": "id10547",
741
+ "507": "id10548",
742
+ "508": "id10549",
743
+ "509": "id10550",
744
+ "51": "id10052",
745
+ "510": "id10551",
746
+ "511": "id10552",
747
+ "512": "id10553",
748
+ "513": "id10554",
749
+ "514": "id10555",
750
+ "515": "id10556",
751
+ "516": "id10557",
752
+ "517": "id10558",
753
+ "518": "id10559",
754
+ "519": "id10560",
755
+ "52": "id10053",
756
+ "520": "id10561",
757
+ "521": "id10562",
758
+ "522": "id10563",
759
+ "523": "id10564",
760
+ "524": "id10565",
761
+ "525": "id10566",
762
+ "526": "id10567",
763
+ "527": "id10568",
764
+ "528": "id10569",
765
+ "529": "id10570",
766
+ "53": "id10054",
767
+ "530": "id10571",
768
+ "531": "id10572",
769
+ "532": "id10573",
770
+ "533": "id10574",
771
+ "534": "id10575",
772
+ "535": "id10576",
773
+ "536": "id10577",
774
+ "537": "id10578",
775
+ "538": "id10579",
776
+ "539": "id10580",
777
+ "54": "id10055",
778
+ "540": "id10581",
779
+ "541": "id10582",
780
+ "542": "id10583",
781
+ "543": "id10584",
782
+ "544": "id10585",
783
+ "545": "id10586",
784
+ "546": "id10587",
785
+ "547": "id10588",
786
+ "548": "id10589",
787
+ "549": "id10590",
788
+ "55": "id10056",
789
+ "550": "id10591",
790
+ "551": "id10592",
791
+ "552": "id10593",
792
+ "553": "id10594",
793
+ "554": "id10595",
794
+ "555": "id10596",
795
+ "556": "id10597",
796
+ "557": "id10598",
797
+ "558": "id10599",
798
+ "559": "id10600",
799
+ "56": "id10057",
800
+ "560": "id10601",
801
+ "561": "id10602",
802
+ "562": "id10603",
803
+ "563": "id10604",
804
+ "564": "id10605",
805
+ "565": "id10606",
806
+ "566": "id10607",
807
+ "567": "id10608",
808
+ "568": "id10609",
809
+ "569": "id10610",
810
+ "57": "id10058",
811
+ "570": "id10611",
812
+ "571": "id10612",
813
+ "572": "id10613",
814
+ "573": "id10614",
815
+ "574": "id10615",
816
+ "575": "id10616",
817
+ "576": "id10617",
818
+ "577": "id10618",
819
+ "578": "id10619",
820
+ "579": "id10620",
821
+ "58": "id10059",
822
+ "580": "id10621",
823
+ "581": "id10622",
824
+ "582": "id10623",
825
+ "583": "id10624",
826
+ "584": "id10625",
827
+ "585": "id10626",
828
+ "586": "id10627",
829
+ "587": "id10628",
830
+ "588": "id10629",
831
+ "589": "id10630",
832
+ "59": "id10060",
833
+ "590": "id10631",
834
+ "591": "id10632",
835
+ "592": "id10633",
836
+ "593": "id10634",
837
+ "594": "id10635",
838
+ "595": "id10636",
839
+ "596": "id10637",
840
+ "597": "id10638",
841
+ "598": "id10639",
842
+ "599": "id10640",
843
+ "6": "id10007",
844
+ "60": "id10061",
845
+ "600": "id10641",
846
+ "601": "id10642",
847
+ "602": "id10643",
848
+ "603": "id10644",
849
+ "604": "id10645",
850
+ "605": "id10646",
851
+ "606": "id10647",
852
+ "607": "id10648",
853
+ "608": "id10649",
854
+ "609": "id10650",
855
+ "61": "id10062",
856
+ "610": "id10651",
857
+ "611": "id10652",
858
+ "612": "id10653",
859
+ "613": "id10654",
860
+ "614": "id10655",
861
+ "615": "id10656",
862
+ "616": "id10657",
863
+ "617": "id10658",
864
+ "618": "id10659",
865
+ "619": "id10660",
866
+ "62": "id10063",
867
+ "620": "id10661",
868
+ "621": "id10662",
869
+ "622": "id10663",
870
+ "623": "id10664",
871
+ "624": "id10665",
872
+ "625": "id10666",
873
+ "626": "id10667",
874
+ "627": "id10668",
875
+ "628": "id10669",
876
+ "629": "id10670",
877
+ "63": "id10064",
878
+ "630": "id10671",
879
+ "631": "id10672",
880
+ "632": "id10673",
881
+ "633": "id10674",
882
+ "634": "id10675",
883
+ "635": "id10676",
884
+ "636": "id10677",
885
+ "637": "id10678",
886
+ "638": "id10679",
887
+ "639": "id10680",
888
+ "64": "id10065",
889
+ "640": "id10681",
890
+ "641": "id10682",
891
+ "642": "id10683",
892
+ "643": "id10684",
893
+ "644": "id10685",
894
+ "645": "id10686",
895
+ "646": "id10687",
896
+ "647": "id10688",
897
+ "648": "id10689",
898
+ "649": "id10690",
899
+ "65": "id10066",
900
+ "650": "id10691",
901
+ "651": "id10692",
902
+ "652": "id10693",
903
+ "653": "id10694",
904
+ "654": "id10695",
905
+ "655": "id10696",
906
+ "656": "id10697",
907
+ "657": "id10698",
908
+ "658": "id10699",
909
+ "659": "id10700",
910
+ "66": "id10067",
911
+ "660": "id10701",
912
+ "661": "id10702",
913
+ "662": "id10703",
914
+ "663": "id10704",
915
+ "664": "id10705",
916
+ "665": "id10706",
917
+ "666": "id10707",
918
+ "667": "id10708",
919
+ "668": "id10709",
920
+ "669": "id10710",
921
+ "67": "id10068",
922
+ "670": "id10711",
923
+ "671": "id10712",
924
+ "672": "id10713",
925
+ "673": "id10714",
926
+ "674": "id10715",
927
+ "675": "id10716",
928
+ "676": "id10717",
929
+ "677": "id10718",
930
+ "678": "id10719",
931
+ "679": "id10720",
932
+ "68": "id10069",
933
+ "680": "id10721",
934
+ "681": "id10722",
935
+ "682": "id10723",
936
+ "683": "id10724",
937
+ "684": "id10725",
938
+ "685": "id10726",
939
+ "686": "id10727",
940
+ "687": "id10728",
941
+ "688": "id10729",
942
+ "689": "id10730",
943
+ "69": "id10070",
944
+ "690": "id10731",
945
+ "691": "id10732",
946
+ "692": "id10733",
947
+ "693": "id10734",
948
+ "694": "id10735",
949
+ "695": "id10736",
950
+ "696": "id10737",
951
+ "697": "id10738",
952
+ "698": "id10739",
953
+ "699": "id10740",
954
+ "7": "id10008",
955
+ "70": "id10071",
956
+ "700": "id10741",
957
+ "701": "id10742",
958
+ "702": "id10743",
959
+ "703": "id10744",
960
+ "704": "id10745",
961
+ "705": "id10746",
962
+ "706": "id10747",
963
+ "707": "id10748",
964
+ "708": "id10749",
965
+ "709": "id10750",
966
+ "71": "id10072",
967
+ "710": "id10751",
968
+ "711": "id10752",
969
+ "712": "id10753",
970
+ "713": "id10754",
971
+ "714": "id10755",
972
+ "715": "id10756",
973
+ "716": "id10757",
974
+ "717": "id10758",
975
+ "718": "id10759",
976
+ "719": "id10760",
977
+ "72": "id10073",
978
+ "720": "id10761",
979
+ "721": "id10762",
980
+ "722": "id10763",
981
+ "723": "id10764",
982
+ "724": "id10765",
983
+ "725": "id10766",
984
+ "726": "id10767",
985
+ "727": "id10768",
986
+ "728": "id10769",
987
+ "729": "id10770",
988
+ "73": "id10074",
989
+ "730": "id10771",
990
+ "731": "id10772",
991
+ "732": "id10773",
992
+ "733": "id10774",
993
+ "734": "id10775",
994
+ "735": "id10776",
995
+ "736": "id10777",
996
+ "737": "id10778",
997
+ "738": "id10779",
998
+ "739": "id10780",
999
+ "74": "id10075",
1000
+ "740": "id10781",
1001
+ "741": "id10782",
1002
+ "742": "id10783",
1003
+ "743": "id10784",
1004
+ "744": "id10785",
1005
+ "745": "id10786",
1006
+ "746": "id10787",
1007
+ "747": "id10788",
1008
+ "748": "id10789",
1009
+ "749": "id10790",
1010
+ "75": "id10076",
1011
+ "750": "id10791",
1012
+ "751": "id10792",
1013
+ "752": "id10793",
1014
+ "753": "id10794",
1015
+ "754": "id10795",
1016
+ "755": "id10796",
1017
+ "756": "id10797",
1018
+ "757": "id10798",
1019
+ "758": "id10799",
1020
+ "759": "id10800",
1021
+ "76": "id10077",
1022
+ "760": "id10801",
1023
+ "761": "id10802",
1024
+ "762": "id10803",
1025
+ "763": "id10804",
1026
+ "764": "id10805",
1027
+ "765": "id10806",
1028
+ "766": "id10807",
1029
+ "767": "id10808",
1030
+ "768": "id10809",
1031
+ "769": "id10810",
1032
+ "77": "id10078",
1033
+ "770": "id10811",
1034
+ "771": "id10812",
1035
+ "772": "id10813",
1036
+ "773": "id10814",
1037
+ "774": "id10815",
1038
+ "775": "id10816",
1039
+ "776": "id10817",
1040
+ "777": "id10818",
1041
+ "778": "id10819",
1042
+ "779": "id10820",
1043
+ "78": "id10079",
1044
+ "780": "id10821",
1045
+ "781": "id10822",
1046
+ "782": "id10823",
1047
+ "783": "id10824",
1048
+ "784": "id10825",
1049
+ "785": "id10826",
1050
+ "786": "id10827",
1051
+ "787": "id10828",
1052
+ "788": "id10829",
1053
+ "789": "id10830",
1054
+ "79": "id10080",
1055
+ "790": "id10831",
1056
+ "791": "id10832",
1057
+ "792": "id10833",
1058
+ "793": "id10834",
1059
+ "794": "id10835",
1060
+ "795": "id10836",
1061
+ "796": "id10837",
1062
+ "797": "id10838",
1063
+ "798": "id10839",
1064
+ "799": "id10840",
1065
+ "8": "id10009",
1066
+ "80": "id10081",
1067
+ "800": "id10841",
1068
+ "801": "id10842",
1069
+ "802": "id10843",
1070
+ "803": "id10844",
1071
+ "804": "id10845",
1072
+ "805": "id10846",
1073
+ "806": "id10847",
1074
+ "807": "id10848",
1075
+ "808": "id10849",
1076
+ "809": "id10850",
1077
+ "81": "id10082",
1078
+ "810": "id10851",
1079
+ "811": "id10852",
1080
+ "812": "id10853",
1081
+ "813": "id10854",
1082
+ "814": "id10855",
1083
+ "815": "id10856",
1084
+ "816": "id10857",
1085
+ "817": "id10858",
1086
+ "818": "id10859",
1087
+ "819": "id10860",
1088
+ "82": "id10083",
1089
+ "820": "id10861",
1090
+ "821": "id10862",
1091
+ "822": "id10863",
1092
+ "823": "id10864",
1093
+ "824": "id10865",
1094
+ "825": "id10866",
1095
+ "826": "id10867",
1096
+ "827": "id10868",
1097
+ "828": "id10869",
1098
+ "829": "id10870",
1099
+ "83": "id10084",
1100
+ "830": "id10871",
1101
+ "831": "id10872",
1102
+ "832": "id10873",
1103
+ "833": "id10874",
1104
+ "834": "id10875",
1105
+ "835": "id10876",
1106
+ "836": "id10877",
1107
+ "837": "id10878",
1108
+ "838": "id10879",
1109
+ "839": "id10880",
1110
+ "84": "id10085",
1111
+ "840": "id10881",
1112
+ "841": "id10882",
1113
+ "842": "id10883",
1114
+ "843": "id10884",
1115
+ "844": "id10885",
1116
+ "845": "id10886",
1117
+ "846": "id10887",
1118
+ "847": "id10888",
1119
+ "848": "id10889",
1120
+ "849": "id10890",
1121
+ "85": "id10086",
1122
+ "850": "id10891",
1123
+ "851": "id10892",
1124
+ "852": "id10893",
1125
+ "853": "id10894",
1126
+ "854": "id10895",
1127
+ "855": "id10896",
1128
+ "856": "id10897",
1129
+ "857": "id10898",
1130
+ "858": "id10899",
1131
+ "859": "id10900",
1132
+ "86": "id10087",
1133
+ "860": "id10901",
1134
+ "861": "id10902",
1135
+ "862": "id10903",
1136
+ "863": "id10904",
1137
+ "864": "id10905",
1138
+ "865": "id10906",
1139
+ "866": "id10907",
1140
+ "867": "id10908",
1141
+ "868": "id10909",
1142
+ "869": "id10910",
1143
+ "87": "id10088",
1144
+ "870": "id10911",
1145
+ "871": "id10912",
1146
+ "872": "id10913",
1147
+ "873": "id10914",
1148
+ "874": "id10915",
1149
+ "875": "id10916",
1150
+ "876": "id10917",
1151
+ "877": "id10918",
1152
+ "878": "id10919",
1153
+ "879": "id10920",
1154
+ "88": "id10089",
1155
+ "880": "id10921",
1156
+ "881": "id10922",
1157
+ "882": "id10923",
1158
+ "883": "id10924",
1159
+ "884": "id10925",
1160
+ "885": "id10926",
1161
+ "886": "id10927",
1162
+ "887": "id10928",
1163
+ "888": "id10929",
1164
+ "889": "id10930",
1165
+ "89": "id10090",
1166
+ "890": "id10931",
1167
+ "891": "id10932",
1168
+ "892": "id10933",
1169
+ "893": "id10934",
1170
+ "894": "id10935",
1171
+ "895": "id10936",
1172
+ "896": "id10937",
1173
+ "897": "id10938",
1174
+ "898": "id10939",
1175
+ "899": "id10940",
1176
+ "9": "id10010",
1177
+ "90": "id10091",
1178
+ "900": "id10941",
1179
+ "901": "id10942",
1180
+ "902": "id10943",
1181
+ "903": "id10944",
1182
+ "904": "id10945",
1183
+ "905": "id10946",
1184
+ "906": "id10947",
1185
+ "907": "id10948",
1186
+ "908": "id10949",
1187
+ "909": "id10950",
1188
+ "91": "id10092",
1189
+ "910": "id10951",
1190
+ "911": "id10952",
1191
+ "912": "id10953",
1192
+ "913": "id10954",
1193
+ "914": "id10955",
1194
+ "915": "id10956",
1195
+ "916": "id10957",
1196
+ "917": "id10958",
1197
+ "918": "id10959",
1198
+ "919": "id10960",
1199
+ "92": "id10093",
1200
+ "920": "id10961",
1201
+ "921": "id10962",
1202
+ "922": "id10963",
1203
+ "923": "id10964",
1204
+ "924": "id10965",
1205
+ "925": "id10966",
1206
+ "926": "id10967",
1207
+ "927": "id10968",
1208
+ "928": "id10969",
1209
+ "929": "id10970",
1210
+ "93": "id10094",
1211
+ "930": "id10971",
1212
+ "931": "id10972",
1213
+ "932": "id10973",
1214
+ "933": "id10974",
1215
+ "934": "id10975",
1216
+ "935": "id10976",
1217
+ "936": "id10977",
1218
+ "937": "id10978",
1219
+ "938": "id10979",
1220
+ "939": "id10980",
1221
+ "94": "id10095",
1222
+ "940": "id10981",
1223
+ "941": "id10982",
1224
+ "942": "id10983",
1225
+ "943": "id10984",
1226
+ "944": "id10985",
1227
+ "945": "id10986",
1228
+ "946": "id10987",
1229
+ "947": "id10988",
1230
+ "948": "id10989",
1231
+ "949": "id10990",
1232
+ "95": "id10096",
1233
+ "950": "id10991",
1234
+ "951": "id10992",
1235
+ "952": "id10993",
1236
+ "953": "id10994",
1237
+ "954": "id10995",
1238
+ "955": "id10996",
1239
+ "956": "id10997",
1240
+ "957": "id10998",
1241
+ "958": "id10999",
1242
+ "959": "id11000",
1243
+ "96": "id10097",
1244
+ "960": "id11001",
1245
+ "961": "id11002",
1246
+ "962": "id11003",
1247
+ "963": "id11004",
1248
+ "964": "id11005",
1249
+ "965": "id11006",
1250
+ "966": "id11007",
1251
+ "967": "id11008",
1252
+ "968": "id11009",
1253
+ "969": "id11010",
1254
+ "97": "id10098",
1255
+ "970": "id11011",
1256
+ "971": "id11012",
1257
+ "972": "id11013",
1258
+ "973": "id11014",
1259
+ "974": "id11015",
1260
+ "975": "id11016",
1261
+ "976": "id11017",
1262
+ "977": "id11018",
1263
+ "978": "id11019",
1264
+ "979": "id11020",
1265
+ "98": "id10099",
1266
+ "980": "id11021",
1267
+ "981": "id11022",
1268
+ "982": "id11023",
1269
+ "983": "id11024",
1270
+ "984": "id11025",
1271
+ "985": "id11026",
1272
+ "986": "id11027",
1273
+ "987": "id11028",
1274
+ "988": "id11029",
1275
+ "989": "id11030",
1276
+ "99": "id10100",
1277
+ "990": "id11031",
1278
+ "991": "id11032",
1279
+ "992": "id11033",
1280
+ "993": "id11034",
1281
+ "994": "id11035",
1282
+ "995": "id11036",
1283
+ "996": "id11037",
1284
+ "997": "id11038",
1285
+ "998": "id11039",
1286
+ "999": "id11040"
1287
+ },
1288
+ "init_mode": "xavier_uniform",
1289
+ "initializer_range": 0.02,
1290
+ "kernel_sizes": [
1291
+ 5,
1292
+ 3,
1293
+ 3,
1294
+ 3,
1295
+ 1
1296
+ ],
1297
+ "label2id": {
1298
+ "id10001": "0",
1299
+ "id10002": "1",
1300
+ "id10003": "2",
1301
+ "id10004": "3",
1302
+ "id10005": "4",
1303
+ "id10006": "5",
1304
+ "id10007": "6",
1305
+ "id10008": "7",
1306
+ "id10009": "8",
1307
+ "id10010": "9",
1308
+ "id10011": "10",
1309
+ "id10012": "11",
1310
+ "id10013": "12",
1311
+ "id10014": "13",
1312
+ "id10015": "14",
1313
+ "id10016": "15",
1314
+ "id10017": "16",
1315
+ "id10018": "17",
1316
+ "id10019": "18",
1317
+ "id10020": "19",
1318
+ "id10021": "20",
1319
+ "id10022": "21",
1320
+ "id10023": "22",
1321
+ "id10024": "23",
1322
+ "id10025": "24",
1323
+ "id10026": "25",
1324
+ "id10027": "26",
1325
+ "id10028": "27",
1326
+ "id10029": "28",
1327
+ "id10030": "29",
1328
+ "id10031": "30",
1329
+ "id10032": "31",
1330
+ "id10033": "32",
1331
+ "id10034": "33",
1332
+ "id10035": "34",
1333
+ "id10036": "35",
1334
+ "id10037": "36",
1335
+ "id10038": "37",
1336
+ "id10039": "38",
1337
+ "id10040": "39",
1338
+ "id10041": "40",
1339
+ "id10042": "41",
1340
+ "id10043": "42",
1341
+ "id10044": "43",
1342
+ "id10045": "44",
1343
+ "id10046": "45",
1344
+ "id10047": "46",
1345
+ "id10048": "47",
1346
+ "id10049": "48",
1347
+ "id10050": "49",
1348
+ "id10051": "50",
1349
+ "id10052": "51",
1350
+ "id10053": "52",
1351
+ "id10054": "53",
1352
+ "id10055": "54",
1353
+ "id10056": "55",
1354
+ "id10057": "56",
1355
+ "id10058": "57",
1356
+ "id10059": "58",
1357
+ "id10060": "59",
1358
+ "id10061": "60",
1359
+ "id10062": "61",
1360
+ "id10063": "62",
1361
+ "id10064": "63",
1362
+ "id10065": "64",
1363
+ "id10066": "65",
1364
+ "id10067": "66",
1365
+ "id10068": "67",
1366
+ "id10069": "68",
1367
+ "id10070": "69",
1368
+ "id10071": "70",
1369
+ "id10072": "71",
1370
+ "id10073": "72",
1371
+ "id10074": "73",
1372
+ "id10075": "74",
1373
+ "id10076": "75",
1374
+ "id10077": "76",
1375
+ "id10078": "77",
1376
+ "id10079": "78",
1377
+ "id10080": "79",
1378
+ "id10081": "80",
1379
+ "id10082": "81",
1380
+ "id10083": "82",
1381
+ "id10084": "83",
1382
+ "id10085": "84",
1383
+ "id10086": "85",
1384
+ "id10087": "86",
1385
+ "id10088": "87",
1386
+ "id10089": "88",
1387
+ "id10090": "89",
1388
+ "id10091": "90",
1389
+ "id10092": "91",
1390
+ "id10093": "92",
1391
+ "id10094": "93",
1392
+ "id10095": "94",
1393
+ "id10096": "95",
1394
+ "id10097": "96",
1395
+ "id10098": "97",
1396
+ "id10099": "98",
1397
+ "id10100": "99",
1398
+ "id10101": "100",
1399
+ "id10102": "101",
1400
+ "id10103": "102",
1401
+ "id10104": "103",
1402
+ "id10105": "104",
1403
+ "id10106": "105",
1404
+ "id10107": "106",
1405
+ "id10108": "107",
1406
+ "id10109": "108",
1407
+ "id10110": "109",
1408
+ "id10111": "110",
1409
+ "id10112": "111",
1410
+ "id10113": "112",
1411
+ "id10114": "113",
1412
+ "id10115": "114",
1413
+ "id10116": "115",
1414
+ "id10117": "116",
1415
+ "id10118": "117",
1416
+ "id10119": "118",
1417
+ "id10120": "119",
1418
+ "id10121": "120",
1419
+ "id10122": "121",
1420
+ "id10123": "122",
1421
+ "id10124": "123",
1422
+ "id10125": "124",
1423
+ "id10126": "125",
1424
+ "id10127": "126",
1425
+ "id10128": "127",
1426
+ "id10129": "128",
1427
+ "id10130": "129",
1428
+ "id10131": "130",
1429
+ "id10132": "131",
1430
+ "id10133": "132",
1431
+ "id10134": "133",
1432
+ "id10135": "134",
1433
+ "id10136": "135",
1434
+ "id10137": "136",
1435
+ "id10138": "137",
1436
+ "id10139": "138",
1437
+ "id10140": "139",
1438
+ "id10141": "140",
1439
+ "id10142": "141",
1440
+ "id10143": "142",
1441
+ "id10144": "143",
1442
+ "id10145": "144",
1443
+ "id10146": "145",
1444
+ "id10147": "146",
1445
+ "id10148": "147",
1446
+ "id10149": "148",
1447
+ "id10150": "149",
1448
+ "id10151": "150",
1449
+ "id10152": "151",
1450
+ "id10153": "152",
1451
+ "id10154": "153",
1452
+ "id10155": "154",
1453
+ "id10156": "155",
1454
+ "id10157": "156",
1455
+ "id10158": "157",
1456
+ "id10159": "158",
1457
+ "id10160": "159",
1458
+ "id10161": "160",
1459
+ "id10162": "161",
1460
+ "id10163": "162",
1461
+ "id10164": "163",
1462
+ "id10165": "164",
1463
+ "id10166": "165",
1464
+ "id10167": "166",
1465
+ "id10168": "167",
1466
+ "id10169": "168",
1467
+ "id10170": "169",
1468
+ "id10171": "170",
1469
+ "id10172": "171",
1470
+ "id10173": "172",
1471
+ "id10174": "173",
1472
+ "id10175": "174",
1473
+ "id10176": "175",
1474
+ "id10177": "176",
1475
+ "id10178": "177",
1476
+ "id10179": "178",
1477
+ "id10180": "179",
1478
+ "id10181": "180",
1479
+ "id10182": "181",
1480
+ "id10183": "182",
1481
+ "id10184": "183",
1482
+ "id10185": "184",
1483
+ "id10186": "185",
1484
+ "id10187": "186",
1485
+ "id10188": "187",
1486
+ "id10189": "188",
1487
+ "id10190": "189",
1488
+ "id10191": "190",
1489
+ "id10192": "191",
1490
+ "id10193": "192",
1491
+ "id10194": "193",
1492
+ "id10195": "194",
1493
+ "id10196": "195",
1494
+ "id10197": "196",
1495
+ "id10198": "197",
1496
+ "id10199": "198",
1497
+ "id10200": "199",
1498
+ "id10201": "200",
1499
+ "id10202": "201",
1500
+ "id10203": "202",
1501
+ "id10204": "203",
1502
+ "id10205": "204",
1503
+ "id10206": "205",
1504
+ "id10207": "206",
1505
+ "id10208": "207",
1506
+ "id10209": "208",
1507
+ "id10210": "209",
1508
+ "id10211": "210",
1509
+ "id10212": "211",
1510
+ "id10213": "212",
1511
+ "id10214": "213",
1512
+ "id10215": "214",
1513
+ "id10216": "215",
1514
+ "id10217": "216",
1515
+ "id10218": "217",
1516
+ "id10219": "218",
1517
+ "id10220": "219",
1518
+ "id10221": "220",
1519
+ "id10222": "221",
1520
+ "id10223": "222",
1521
+ "id10224": "223",
1522
+ "id10225": "224",
1523
+ "id10226": "225",
1524
+ "id10227": "226",
1525
+ "id10228": "227",
1526
+ "id10229": "228",
1527
+ "id10230": "229",
1528
+ "id10231": "230",
1529
+ "id10232": "231",
1530
+ "id10233": "232",
1531
+ "id10234": "233",
1532
+ "id10235": "234",
1533
+ "id10236": "235",
1534
+ "id10237": "236",
1535
+ "id10238": "237",
1536
+ "id10239": "238",
1537
+ "id10240": "239",
1538
+ "id10241": "240",
1539
+ "id10242": "241",
1540
+ "id10243": "242",
1541
+ "id10244": "243",
1542
+ "id10245": "244",
1543
+ "id10246": "245",
1544
+ "id10247": "246",
1545
+ "id10248": "247",
1546
+ "id10249": "248",
1547
+ "id10250": "249",
1548
+ "id10251": "250",
1549
+ "id10252": "251",
1550
+ "id10253": "252",
1551
+ "id10254": "253",
1552
+ "id10255": "254",
1553
+ "id10256": "255",
1554
+ "id10257": "256",
1555
+ "id10258": "257",
1556
+ "id10259": "258",
1557
+ "id10260": "259",
1558
+ "id10261": "260",
1559
+ "id10262": "261",
1560
+ "id10263": "262",
1561
+ "id10264": "263",
1562
+ "id10265": "264",
1563
+ "id10266": "265",
1564
+ "id10267": "266",
1565
+ "id10268": "267",
1566
+ "id10269": "268",
1567
+ "id10310": "269",
1568
+ "id10311": "270",
1569
+ "id10312": "271",
1570
+ "id10313": "272",
1571
+ "id10314": "273",
1572
+ "id10315": "274",
1573
+ "id10316": "275",
1574
+ "id10317": "276",
1575
+ "id10318": "277",
1576
+ "id10319": "278",
1577
+ "id10320": "279",
1578
+ "id10321": "280",
1579
+ "id10322": "281",
1580
+ "id10323": "282",
1581
+ "id10324": "283",
1582
+ "id10325": "284",
1583
+ "id10326": "285",
1584
+ "id10327": "286",
1585
+ "id10328": "287",
1586
+ "id10329": "288",
1587
+ "id10330": "289",
1588
+ "id10331": "290",
1589
+ "id10332": "291",
1590
+ "id10333": "292",
1591
+ "id10334": "293",
1592
+ "id10335": "294",
1593
+ "id10336": "295",
1594
+ "id10337": "296",
1595
+ "id10338": "297",
1596
+ "id10339": "298",
1597
+ "id10340": "299",
1598
+ "id10341": "300",
1599
+ "id10342": "301",
1600
+ "id10343": "302",
1601
+ "id10344": "303",
1602
+ "id10345": "304",
1603
+ "id10346": "305",
1604
+ "id10347": "306",
1605
+ "id10348": "307",
1606
+ "id10349": "308",
1607
+ "id10350": "309",
1608
+ "id10351": "310",
1609
+ "id10352": "311",
1610
+ "id10353": "312",
1611
+ "id10354": "313",
1612
+ "id10355": "314",
1613
+ "id10356": "315",
1614
+ "id10357": "316",
1615
+ "id10358": "317",
1616
+ "id10359": "318",
1617
+ "id10360": "319",
1618
+ "id10361": "320",
1619
+ "id10362": "321",
1620
+ "id10363": "322",
1621
+ "id10364": "323",
1622
+ "id10365": "324",
1623
+ "id10366": "325",
1624
+ "id10367": "326",
1625
+ "id10368": "327",
1626
+ "id10369": "328",
1627
+ "id10370": "329",
1628
+ "id10371": "330",
1629
+ "id10372": "331",
1630
+ "id10373": "332",
1631
+ "id10374": "333",
1632
+ "id10375": "334",
1633
+ "id10376": "335",
1634
+ "id10377": "336",
1635
+ "id10378": "337",
1636
+ "id10379": "338",
1637
+ "id10380": "339",
1638
+ "id10381": "340",
1639
+ "id10382": "341",
1640
+ "id10383": "342",
1641
+ "id10384": "343",
1642
+ "id10385": "344",
1643
+ "id10386": "345",
1644
+ "id10387": "346",
1645
+ "id10388": "347",
1646
+ "id10389": "348",
1647
+ "id10390": "349",
1648
+ "id10391": "350",
1649
+ "id10392": "351",
1650
+ "id10393": "352",
1651
+ "id10394": "353",
1652
+ "id10395": "354",
1653
+ "id10396": "355",
1654
+ "id10397": "356",
1655
+ "id10398": "357",
1656
+ "id10399": "358",
1657
+ "id10400": "359",
1658
+ "id10401": "360",
1659
+ "id10402": "361",
1660
+ "id10403": "362",
1661
+ "id10404": "363",
1662
+ "id10405": "364",
1663
+ "id10406": "365",
1664
+ "id10407": "366",
1665
+ "id10408": "367",
1666
+ "id10409": "368",
1667
+ "id10410": "369",
1668
+ "id10411": "370",
1669
+ "id10412": "371",
1670
+ "id10413": "372",
1671
+ "id10414": "373",
1672
+ "id10415": "374",
1673
+ "id10416": "375",
1674
+ "id10417": "376",
1675
+ "id10418": "377",
1676
+ "id10419": "378",
1677
+ "id10420": "379",
1678
+ "id10421": "380",
1679
+ "id10422": "381",
1680
+ "id10423": "382",
1681
+ "id10424": "383",
1682
+ "id10425": "384",
1683
+ "id10426": "385",
1684
+ "id10427": "386",
1685
+ "id10428": "387",
1686
+ "id10429": "388",
1687
+ "id10430": "389",
1688
+ "id10431": "390",
1689
+ "id10432": "391",
1690
+ "id10433": "392",
1691
+ "id10434": "393",
1692
+ "id10435": "394",
1693
+ "id10436": "395",
1694
+ "id10437": "396",
1695
+ "id10438": "397",
1696
+ "id10439": "398",
1697
+ "id10440": "399",
1698
+ "id10441": "400",
1699
+ "id10442": "401",
1700
+ "id10443": "402",
1701
+ "id10444": "403",
1702
+ "id10445": "404",
1703
+ "id10446": "405",
1704
+ "id10447": "406",
1705
+ "id10448": "407",
1706
+ "id10449": "408",
1707
+ "id10450": "409",
1708
+ "id10451": "410",
1709
+ "id10452": "411",
1710
+ "id10453": "412",
1711
+ "id10454": "413",
1712
+ "id10455": "414",
1713
+ "id10456": "415",
1714
+ "id10457": "416",
1715
+ "id10458": "417",
1716
+ "id10459": "418",
1717
+ "id10460": "419",
1718
+ "id10461": "420",
1719
+ "id10462": "421",
1720
+ "id10463": "422",
1721
+ "id10464": "423",
1722
+ "id10465": "424",
1723
+ "id10466": "425",
1724
+ "id10467": "426",
1725
+ "id10468": "427",
1726
+ "id10469": "428",
1727
+ "id10470": "429",
1728
+ "id10471": "430",
1729
+ "id10472": "431",
1730
+ "id10473": "432",
1731
+ "id10474": "433",
1732
+ "id10475": "434",
1733
+ "id10476": "435",
1734
+ "id10477": "436",
1735
+ "id10478": "437",
1736
+ "id10479": "438",
1737
+ "id10480": "439",
1738
+ "id10481": "440",
1739
+ "id10482": "441",
1740
+ "id10483": "442",
1741
+ "id10484": "443",
1742
+ "id10485": "444",
1743
+ "id10486": "445",
1744
+ "id10487": "446",
1745
+ "id10488": "447",
1746
+ "id10489": "448",
1747
+ "id10490": "449",
1748
+ "id10491": "450",
1749
+ "id10492": "451",
1750
+ "id10493": "452",
1751
+ "id10494": "453",
1752
+ "id10495": "454",
1753
+ "id10496": "455",
1754
+ "id10497": "456",
1755
+ "id10498": "457",
1756
+ "id10499": "458",
1757
+ "id10500": "459",
1758
+ "id10501": "460",
1759
+ "id10502": "461",
1760
+ "id10503": "462",
1761
+ "id10504": "463",
1762
+ "id10505": "464",
1763
+ "id10506": "465",
1764
+ "id10507": "466",
1765
+ "id10508": "467",
1766
+ "id10509": "468",
1767
+ "id10510": "469",
1768
+ "id10511": "470",
1769
+ "id10512": "471",
1770
+ "id10513": "472",
1771
+ "id10514": "473",
1772
+ "id10515": "474",
1773
+ "id10516": "475",
1774
+ "id10517": "476",
1775
+ "id10518": "477",
1776
+ "id10519": "478",
1777
+ "id10520": "479",
1778
+ "id10521": "480",
1779
+ "id10522": "481",
1780
+ "id10523": "482",
1781
+ "id10524": "483",
1782
+ "id10525": "484",
1783
+ "id10526": "485",
1784
+ "id10527": "486",
1785
+ "id10528": "487",
1786
+ "id10529": "488",
1787
+ "id10530": "489",
1788
+ "id10531": "490",
1789
+ "id10532": "491",
1790
+ "id10533": "492",
1791
+ "id10534": "493",
1792
+ "id10535": "494",
1793
+ "id10536": "495",
1794
+ "id10537": "496",
1795
+ "id10538": "497",
1796
+ "id10539": "498",
1797
+ "id10540": "499",
1798
+ "id10541": "500",
1799
+ "id10542": "501",
1800
+ "id10543": "502",
1801
+ "id10544": "503",
1802
+ "id10545": "504",
1803
+ "id10546": "505",
1804
+ "id10547": "506",
1805
+ "id10548": "507",
1806
+ "id10549": "508",
1807
+ "id10550": "509",
1808
+ "id10551": "510",
1809
+ "id10552": "511",
1810
+ "id10553": "512",
1811
+ "id10554": "513",
1812
+ "id10555": "514",
1813
+ "id10556": "515",
1814
+ "id10557": "516",
1815
+ "id10558": "517",
1816
+ "id10559": "518",
1817
+ "id10560": "519",
1818
+ "id10561": "520",
1819
+ "id10562": "521",
1820
+ "id10563": "522",
1821
+ "id10564": "523",
1822
+ "id10565": "524",
1823
+ "id10566": "525",
1824
+ "id10567": "526",
1825
+ "id10568": "527",
1826
+ "id10569": "528",
1827
+ "id10570": "529",
1828
+ "id10571": "530",
1829
+ "id10572": "531",
1830
+ "id10573": "532",
1831
+ "id10574": "533",
1832
+ "id10575": "534",
1833
+ "id10576": "535",
1834
+ "id10577": "536",
1835
+ "id10578": "537",
1836
+ "id10579": "538",
1837
+ "id10580": "539",
1838
+ "id10581": "540",
1839
+ "id10582": "541",
1840
+ "id10583": "542",
1841
+ "id10584": "543",
1842
+ "id10585": "544",
1843
+ "id10586": "545",
1844
+ "id10587": "546",
1845
+ "id10588": "547",
1846
+ "id10589": "548",
1847
+ "id10590": "549",
1848
+ "id10591": "550",
1849
+ "id10592": "551",
1850
+ "id10593": "552",
1851
+ "id10594": "553",
1852
+ "id10595": "554",
1853
+ "id10596": "555",
1854
+ "id10597": "556",
1855
+ "id10598": "557",
1856
+ "id10599": "558",
1857
+ "id10600": "559",
1858
+ "id10601": "560",
1859
+ "id10602": "561",
1860
+ "id10603": "562",
1861
+ "id10604": "563",
1862
+ "id10605": "564",
1863
+ "id10606": "565",
1864
+ "id10607": "566",
1865
+ "id10608": "567",
1866
+ "id10609": "568",
1867
+ "id10610": "569",
1868
+ "id10611": "570",
1869
+ "id10612": "571",
1870
+ "id10613": "572",
1871
+ "id10614": "573",
1872
+ "id10615": "574",
1873
+ "id10616": "575",
1874
+ "id10617": "576",
1875
+ "id10618": "577",
1876
+ "id10619": "578",
1877
+ "id10620": "579",
1878
+ "id10621": "580",
1879
+ "id10622": "581",
1880
+ "id10623": "582",
1881
+ "id10624": "583",
1882
+ "id10625": "584",
1883
+ "id10626": "585",
1884
+ "id10627": "586",
1885
+ "id10628": "587",
1886
+ "id10629": "588",
1887
+ "id10630": "589",
1888
+ "id10631": "590",
1889
+ "id10632": "591",
1890
+ "id10633": "592",
1891
+ "id10634": "593",
1892
+ "id10635": "594",
1893
+ "id10636": "595",
1894
+ "id10637": "596",
1895
+ "id10638": "597",
1896
+ "id10639": "598",
1897
+ "id10640": "599",
1898
+ "id10641": "600",
1899
+ "id10642": "601",
1900
+ "id10643": "602",
1901
+ "id10644": "603",
1902
+ "id10645": "604",
1903
+ "id10646": "605",
1904
+ "id10647": "606",
1905
+ "id10648": "607",
1906
+ "id10649": "608",
1907
+ "id10650": "609",
1908
+ "id10651": "610",
1909
+ "id10652": "611",
1910
+ "id10653": "612",
1911
+ "id10654": "613",
1912
+ "id10655": "614",
1913
+ "id10656": "615",
1914
+ "id10657": "616",
1915
+ "id10658": "617",
1916
+ "id10659": "618",
1917
+ "id10660": "619",
1918
+ "id10661": "620",
1919
+ "id10662": "621",
1920
+ "id10663": "622",
1921
+ "id10664": "623",
1922
+ "id10665": "624",
1923
+ "id10666": "625",
1924
+ "id10667": "626",
1925
+ "id10668": "627",
1926
+ "id10669": "628",
1927
+ "id10670": "629",
1928
+ "id10671": "630",
1929
+ "id10672": "631",
1930
+ "id10673": "632",
1931
+ "id10674": "633",
1932
+ "id10675": "634",
1933
+ "id10676": "635",
1934
+ "id10677": "636",
1935
+ "id10678": "637",
1936
+ "id10679": "638",
1937
+ "id10680": "639",
1938
+ "id10681": "640",
1939
+ "id10682": "641",
1940
+ "id10683": "642",
1941
+ "id10684": "643",
1942
+ "id10685": "644",
1943
+ "id10686": "645",
1944
+ "id10687": "646",
1945
+ "id10688": "647",
1946
+ "id10689": "648",
1947
+ "id10690": "649",
1948
+ "id10691": "650",
1949
+ "id10692": "651",
1950
+ "id10693": "652",
1951
+ "id10694": "653",
1952
+ "id10695": "654",
1953
+ "id10696": "655",
1954
+ "id10697": "656",
1955
+ "id10698": "657",
1956
+ "id10699": "658",
1957
+ "id10700": "659",
1958
+ "id10701": "660",
1959
+ "id10702": "661",
1960
+ "id10703": "662",
1961
+ "id10704": "663",
1962
+ "id10705": "664",
1963
+ "id10706": "665",
1964
+ "id10707": "666",
1965
+ "id10708": "667",
1966
+ "id10709": "668",
1967
+ "id10710": "669",
1968
+ "id10711": "670",
1969
+ "id10712": "671",
1970
+ "id10713": "672",
1971
+ "id10714": "673",
1972
+ "id10715": "674",
1973
+ "id10716": "675",
1974
+ "id10717": "676",
1975
+ "id10718": "677",
1976
+ "id10719": "678",
1977
+ "id10720": "679",
1978
+ "id10721": "680",
1979
+ "id10722": "681",
1980
+ "id10723": "682",
1981
+ "id10724": "683",
1982
+ "id10725": "684",
1983
+ "id10726": "685",
1984
+ "id10727": "686",
1985
+ "id10728": "687",
1986
+ "id10729": "688",
1987
+ "id10730": "689",
1988
+ "id10731": "690",
1989
+ "id10732": "691",
1990
+ "id10733": "692",
1991
+ "id10734": "693",
1992
+ "id10735": "694",
1993
+ "id10736": "695",
1994
+ "id10737": "696",
1995
+ "id10738": "697",
1996
+ "id10739": "698",
1997
+ "id10740": "699",
1998
+ "id10741": "700",
1999
+ "id10742": "701",
2000
+ "id10743": "702",
2001
+ "id10744": "703",
2002
+ "id10745": "704",
2003
+ "id10746": "705",
2004
+ "id10747": "706",
2005
+ "id10748": "707",
2006
+ "id10749": "708",
2007
+ "id10750": "709",
2008
+ "id10751": "710",
2009
+ "id10752": "711",
2010
+ "id10753": "712",
2011
+ "id10754": "713",
2012
+ "id10755": "714",
2013
+ "id10756": "715",
2014
+ "id10757": "716",
2015
+ "id10758": "717",
2016
+ "id10759": "718",
2017
+ "id10760": "719",
2018
+ "id10761": "720",
2019
+ "id10762": "721",
2020
+ "id10763": "722",
2021
+ "id10764": "723",
2022
+ "id10765": "724",
2023
+ "id10766": "725",
2024
+ "id10767": "726",
2025
+ "id10768": "727",
2026
+ "id10769": "728",
2027
+ "id10770": "729",
2028
+ "id10771": "730",
2029
+ "id10772": "731",
2030
+ "id10773": "732",
2031
+ "id10774": "733",
2032
+ "id10775": "734",
2033
+ "id10776": "735",
2034
+ "id10777": "736",
2035
+ "id10778": "737",
2036
+ "id10779": "738",
2037
+ "id10780": "739",
2038
+ "id10781": "740",
2039
+ "id10782": "741",
2040
+ "id10783": "742",
2041
+ "id10784": "743",
2042
+ "id10785": "744",
2043
+ "id10786": "745",
2044
+ "id10787": "746",
2045
+ "id10788": "747",
2046
+ "id10789": "748",
2047
+ "id10790": "749",
2048
+ "id10791": "750",
2049
+ "id10792": "751",
2050
+ "id10793": "752",
2051
+ "id10794": "753",
2052
+ "id10795": "754",
2053
+ "id10796": "755",
2054
+ "id10797": "756",
2055
+ "id10798": "757",
2056
+ "id10799": "758",
2057
+ "id10800": "759",
2058
+ "id10801": "760",
2059
+ "id10802": "761",
2060
+ "id10803": "762",
2061
+ "id10804": "763",
2062
+ "id10805": "764",
2063
+ "id10806": "765",
2064
+ "id10807": "766",
2065
+ "id10808": "767",
2066
+ "id10809": "768",
2067
+ "id10810": "769",
2068
+ "id10811": "770",
2069
+ "id10812": "771",
2070
+ "id10813": "772",
2071
+ "id10814": "773",
2072
+ "id10815": "774",
2073
+ "id10816": "775",
2074
+ "id10817": "776",
2075
+ "id10818": "777",
2076
+ "id10819": "778",
2077
+ "id10820": "779",
2078
+ "id10821": "780",
2079
+ "id10822": "781",
2080
+ "id10823": "782",
2081
+ "id10824": "783",
2082
+ "id10825": "784",
2083
+ "id10826": "785",
2084
+ "id10827": "786",
2085
+ "id10828": "787",
2086
+ "id10829": "788",
2087
+ "id10830": "789",
2088
+ "id10831": "790",
2089
+ "id10832": "791",
2090
+ "id10833": "792",
2091
+ "id10834": "793",
2092
+ "id10835": "794",
2093
+ "id10836": "795",
2094
+ "id10837": "796",
2095
+ "id10838": "797",
2096
+ "id10839": "798",
2097
+ "id10840": "799",
2098
+ "id10841": "800",
2099
+ "id10842": "801",
2100
+ "id10843": "802",
2101
+ "id10844": "803",
2102
+ "id10845": "804",
2103
+ "id10846": "805",
2104
+ "id10847": "806",
2105
+ "id10848": "807",
2106
+ "id10849": "808",
2107
+ "id10850": "809",
2108
+ "id10851": "810",
2109
+ "id10852": "811",
2110
+ "id10853": "812",
2111
+ "id10854": "813",
2112
+ "id10855": "814",
2113
+ "id10856": "815",
2114
+ "id10857": "816",
2115
+ "id10858": "817",
2116
+ "id10859": "818",
2117
+ "id10860": "819",
2118
+ "id10861": "820",
2119
+ "id10862": "821",
2120
+ "id10863": "822",
2121
+ "id10864": "823",
2122
+ "id10865": "824",
2123
+ "id10866": "825",
2124
+ "id10867": "826",
2125
+ "id10868": "827",
2126
+ "id10869": "828",
2127
+ "id10870": "829",
2128
+ "id10871": "830",
2129
+ "id10872": "831",
2130
+ "id10873": "832",
2131
+ "id10874": "833",
2132
+ "id10875": "834",
2133
+ "id10876": "835",
2134
+ "id10877": "836",
2135
+ "id10878": "837",
2136
+ "id10879": "838",
2137
+ "id10880": "839",
2138
+ "id10881": "840",
2139
+ "id10882": "841",
2140
+ "id10883": "842",
2141
+ "id10884": "843",
2142
+ "id10885": "844",
2143
+ "id10886": "845",
2144
+ "id10887": "846",
2145
+ "id10888": "847",
2146
+ "id10889": "848",
2147
+ "id10890": "849",
2148
+ "id10891": "850",
2149
+ "id10892": "851",
2150
+ "id10893": "852",
2151
+ "id10894": "853",
2152
+ "id10895": "854",
2153
+ "id10896": "855",
2154
+ "id10897": "856",
2155
+ "id10898": "857",
2156
+ "id10899": "858",
2157
+ "id10900": "859",
2158
+ "id10901": "860",
2159
+ "id10902": "861",
2160
+ "id10903": "862",
2161
+ "id10904": "863",
2162
+ "id10905": "864",
2163
+ "id10906": "865",
2164
+ "id10907": "866",
2165
+ "id10908": "867",
2166
+ "id10909": "868",
2167
+ "id10910": "869",
2168
+ "id10911": "870",
2169
+ "id10912": "871",
2170
+ "id10913": "872",
2171
+ "id10914": "873",
2172
+ "id10915": "874",
2173
+ "id10916": "875",
2174
+ "id10917": "876",
2175
+ "id10918": "877",
2176
+ "id10919": "878",
2177
+ "id10920": "879",
2178
+ "id10921": "880",
2179
+ "id10922": "881",
2180
+ "id10923": "882",
2181
+ "id10924": "883",
2182
+ "id10925": "884",
2183
+ "id10926": "885",
2184
+ "id10927": "886",
2185
+ "id10928": "887",
2186
+ "id10929": "888",
2187
+ "id10930": "889",
2188
+ "id10931": "890",
2189
+ "id10932": "891",
2190
+ "id10933": "892",
2191
+ "id10934": "893",
2192
+ "id10935": "894",
2193
+ "id10936": "895",
2194
+ "id10937": "896",
2195
+ "id10938": "897",
2196
+ "id10939": "898",
2197
+ "id10940": "899",
2198
+ "id10941": "900",
2199
+ "id10942": "901",
2200
+ "id10943": "902",
2201
+ "id10944": "903",
2202
+ "id10945": "904",
2203
+ "id10946": "905",
2204
+ "id10947": "906",
2205
+ "id10948": "907",
2206
+ "id10949": "908",
2207
+ "id10950": "909",
2208
+ "id10951": "910",
2209
+ "id10952": "911",
2210
+ "id10953": "912",
2211
+ "id10954": "913",
2212
+ "id10955": "914",
2213
+ "id10956": "915",
2214
+ "id10957": "916",
2215
+ "id10958": "917",
2216
+ "id10959": "918",
2217
+ "id10960": "919",
2218
+ "id10961": "920",
2219
+ "id10962": "921",
2220
+ "id10963": "922",
2221
+ "id10964": "923",
2222
+ "id10965": "924",
2223
+ "id10966": "925",
2224
+ "id10967": "926",
2225
+ "id10968": "927",
2226
+ "id10969": "928",
2227
+ "id10970": "929",
2228
+ "id10971": "930",
2229
+ "id10972": "931",
2230
+ "id10973": "932",
2231
+ "id10974": "933",
2232
+ "id10975": "934",
2233
+ "id10976": "935",
2234
+ "id10977": "936",
2235
+ "id10978": "937",
2236
+ "id10979": "938",
2237
+ "id10980": "939",
2238
+ "id10981": "940",
2239
+ "id10982": "941",
2240
+ "id10983": "942",
2241
+ "id10984": "943",
2242
+ "id10985": "944",
2243
+ "id10986": "945",
2244
+ "id10987": "946",
2245
+ "id10988": "947",
2246
+ "id10989": "948",
2247
+ "id10990": "949",
2248
+ "id10991": "950",
2249
+ "id10992": "951",
2250
+ "id10993": "952",
2251
+ "id10994": "953",
2252
+ "id10995": "954",
2253
+ "id10996": "955",
2254
+ "id10997": "956",
2255
+ "id10998": "957",
2256
+ "id10999": "958",
2257
+ "id11000": "959",
2258
+ "id11001": "960",
2259
+ "id11002": "961",
2260
+ "id11003": "962",
2261
+ "id11004": "963",
2262
+ "id11005": "964",
2263
+ "id11006": "965",
2264
+ "id11007": "966",
2265
+ "id11008": "967",
2266
+ "id11009": "968",
2267
+ "id11010": "969",
2268
+ "id11011": "970",
2269
+ "id11012": "971",
2270
+ "id11013": "972",
2271
+ "id11014": "973",
2272
+ "id11015": "974",
2273
+ "id11016": "975",
2274
+ "id11017": "976",
2275
+ "id11018": "977",
2276
+ "id11019": "978",
2277
+ "id11020": "979",
2278
+ "id11021": "980",
2279
+ "id11022": "981",
2280
+ "id11023": "982",
2281
+ "id11024": "983",
2282
+ "id11025": "984",
2283
+ "id11026": "985",
2284
+ "id11027": "986",
2285
+ "id11028": "987",
2286
+ "id11029": "988",
2287
+ "id11030": "989",
2288
+ "id11031": "990",
2289
+ "id11032": "991",
2290
+ "id11033": "992",
2291
+ "id11034": "993",
2292
+ "id11035": "994",
2293
+ "id11036": "995",
2294
+ "id11037": "996",
2295
+ "id11038": "997",
2296
+ "id11039": "998",
2297
+ "id11040": "999",
2298
+ "id11041": "1000",
2299
+ "id11042": "1001",
2300
+ "id11043": "1002",
2301
+ "id11044": "1003",
2302
+ "id11045": "1004",
2303
+ "id11046": "1005",
2304
+ "id11047": "1006",
2305
+ "id11048": "1007",
2306
+ "id11049": "1008",
2307
+ "id11050": "1009",
2308
+ "id11051": "1010",
2309
+ "id11052": "1011",
2310
+ "id11053": "1012",
2311
+ "id11054": "1013",
2312
+ "id11055": "1014",
2313
+ "id11056": "1015",
2314
+ "id11057": "1016",
2315
+ "id11058": "1017",
2316
+ "id11059": "1018",
2317
+ "id11060": "1019",
2318
+ "id11061": "1020",
2319
+ "id11062": "1021",
2320
+ "id11063": "1022",
2321
+ "id11064": "1023",
2322
+ "id11065": "1024",
2323
+ "id11066": "1025",
2324
+ "id11067": "1026",
2325
+ "id11068": "1027",
2326
+ "id11069": "1028",
2327
+ "id11070": "1029",
2328
+ "id11071": "1030",
2329
+ "id11072": "1031",
2330
+ "id11073": "1032",
2331
+ "id11074": "1033",
2332
+ "id11075": "1034",
2333
+ "id11076": "1035",
2334
+ "id11077": "1036",
2335
+ "id11078": "1037",
2336
+ "id11079": "1038",
2337
+ "id11080": "1039",
2338
+ "id11081": "1040",
2339
+ "id11082": "1041",
2340
+ "id11083": "1042",
2341
+ "id11084": "1043",
2342
+ "id11085": "1044",
2343
+ "id11086": "1045",
2344
+ "id11087": "1046",
2345
+ "id11088": "1047",
2346
+ "id11089": "1048",
2347
+ "id11090": "1049",
2348
+ "id11091": "1050",
2349
+ "id11092": "1051",
2350
+ "id11093": "1052",
2351
+ "id11094": "1053",
2352
+ "id11095": "1054",
2353
+ "id11096": "1055",
2354
+ "id11097": "1056",
2355
+ "id11098": "1057",
2356
+ "id11099": "1058",
2357
+ "id11100": "1059",
2358
+ "id11101": "1060",
2359
+ "id11102": "1061",
2360
+ "id11103": "1062",
2361
+ "id11104": "1063",
2362
+ "id11105": "1064",
2363
+ "id11106": "1065",
2364
+ "id11107": "1066",
2365
+ "id11108": "1067",
2366
+ "id11109": "1068",
2367
+ "id11110": "1069",
2368
+ "id11111": "1070",
2369
+ "id11112": "1071",
2370
+ "id11113": "1072",
2371
+ "id11114": "1073",
2372
+ "id11115": "1074",
2373
+ "id11116": "1075",
2374
+ "id11117": "1076",
2375
+ "id11118": "1077",
2376
+ "id11119": "1078",
2377
+ "id11120": "1079",
2378
+ "id11121": "1080",
2379
+ "id11122": "1081",
2380
+ "id11123": "1082",
2381
+ "id11124": "1083",
2382
+ "id11125": "1084",
2383
+ "id11126": "1085",
2384
+ "id11127": "1086",
2385
+ "id11128": "1087",
2386
+ "id11129": "1088",
2387
+ "id11130": "1089",
2388
+ "id11131": "1090",
2389
+ "id11132": "1091",
2390
+ "id11133": "1092",
2391
+ "id11134": "1093",
2392
+ "id11135": "1094",
2393
+ "id11136": "1095",
2394
+ "id11137": "1096",
2395
+ "id11138": "1097",
2396
+ "id11139": "1098",
2397
+ "id11140": "1099",
2398
+ "id11141": "1100",
2399
+ "id11142": "1101",
2400
+ "id11143": "1102",
2401
+ "id11144": "1103",
2402
+ "id11145": "1104",
2403
+ "id11146": "1105",
2404
+ "id11147": "1106",
2405
+ "id11148": "1107",
2406
+ "id11149": "1108",
2407
+ "id11150": "1109",
2408
+ "id11151": "1110",
2409
+ "id11152": "1111",
2410
+ "id11153": "1112",
2411
+ "id11154": "1113",
2412
+ "id11155": "1114",
2413
+ "id11156": "1115",
2414
+ "id11157": "1116",
2415
+ "id11158": "1117",
2416
+ "id11159": "1118",
2417
+ "id11160": "1119",
2418
+ "id11161": "1120",
2419
+ "id11162": "1121",
2420
+ "id11163": "1122",
2421
+ "id11164": "1123",
2422
+ "id11165": "1124",
2423
+ "id11166": "1125",
2424
+ "id11167": "1126",
2425
+ "id11168": "1127",
2426
+ "id11169": "1128",
2427
+ "id11170": "1129",
2428
+ "id11171": "1130",
2429
+ "id11172": "1131",
2430
+ "id11173": "1132",
2431
+ "id11174": "1133",
2432
+ "id11175": "1134",
2433
+ "id11176": "1135",
2434
+ "id11177": "1136",
2435
+ "id11178": "1137",
2436
+ "id11179": "1138",
2437
+ "id11180": "1139",
2438
+ "id11181": "1140",
2439
+ "id11182": "1141",
2440
+ "id11183": "1142",
2441
+ "id11184": "1143",
2442
+ "id11185": "1144",
2443
+ "id11186": "1145",
2444
+ "id11187": "1146",
2445
+ "id11188": "1147",
2446
+ "id11189": "1148",
2447
+ "id11190": "1149",
2448
+ "id11191": "1150",
2449
+ "id11192": "1151",
2450
+ "id11193": "1152",
2451
+ "id11194": "1153",
2452
+ "id11195": "1154",
2453
+ "id11196": "1155",
2454
+ "id11197": "1156",
2455
+ "id11198": "1157",
2456
+ "id11199": "1158",
2457
+ "id11200": "1159",
2458
+ "id11201": "1160",
2459
+ "id11202": "1161",
2460
+ "id11203": "1162",
2461
+ "id11204": "1163",
2462
+ "id11205": "1164",
2463
+ "id11206": "1165",
2464
+ "id11207": "1166",
2465
+ "id11208": "1167",
2466
+ "id11209": "1168",
2467
+ "id11210": "1169",
2468
+ "id11211": "1170",
2469
+ "id11212": "1171",
2470
+ "id11213": "1172",
2471
+ "id11214": "1173",
2472
+ "id11215": "1174",
2473
+ "id11216": "1175",
2474
+ "id11217": "1176",
2475
+ "id11218": "1177",
2476
+ "id11219": "1178",
2477
+ "id11220": "1179",
2478
+ "id11221": "1180",
2479
+ "id11222": "1181",
2480
+ "id11223": "1182",
2481
+ "id11224": "1183",
2482
+ "id11225": "1184",
2483
+ "id11226": "1185",
2484
+ "id11227": "1186",
2485
+ "id11228": "1187",
2486
+ "id11229": "1188",
2487
+ "id11230": "1189",
2488
+ "id11231": "1190",
2489
+ "id11232": "1191",
2490
+ "id11233": "1192",
2491
+ "id11234": "1193",
2492
+ "id11235": "1194",
2493
+ "id11236": "1195",
2494
+ "id11237": "1196",
2495
+ "id11238": "1197",
2496
+ "id11239": "1198",
2497
+ "id11240": "1199",
2498
+ "id11241": "1200",
2499
+ "id11242": "1201",
2500
+ "id11243": "1202",
2501
+ "id11244": "1203",
2502
+ "id11245": "1204",
2503
+ "id11246": "1205",
2504
+ "id11247": "1206",
2505
+ "id11248": "1207",
2506
+ "id11249": "1208",
2507
+ "id11250": "1209",
2508
+ "id11251": "1210"
2509
+ },
2510
+ "label_smoothing": 0.0,
2511
+ "log": true,
2512
+ "log_zero_guard_type": "add",
2513
+ "log_zero_guard_value": 5.960464477539063e-08,
2514
+ "lowfreq": 0,
2515
+ "mag_power": 2,
2516
+ "mask_value": 0,
2517
+ "mel_norm": "slaney",
2518
+ "mel_spectrogram_config": {
2519
+ "dither": 1e-05,
2520
+ "exact_pad": false,
2521
+ "features": 80,
2522
+ "frame_splicing": 1,
2523
+ "highfreq": null,
2524
+ "log": true,
2525
+ "log_zero_guard_type": "add",
2526
+ "log_zero_guard_value": 5.960464477539063e-08,
2527
+ "lowfreq": 0,
2528
+ "mag_power": 2,
2529
+ "mel_norm": "slaney",
2530
+ "n_fft": 512,
2531
+ "n_window_size": null,
2532
+ "n_window_stride": null,
2533
+ "nb_augmentation_prob": 0,
2534
+ "nb_max_freq": 4000,
2535
+ "normalize": "per_feature",
2536
+ "pad_to": 16,
2537
+ "pad_value": 0,
2538
+ "preemph": 0.97,
2539
+ "rng": null,
2540
+ "sample_rate": 16000,
2541
+ "use_torchaudio": true,
2542
+ "window": "hann",
2543
+ "window_size": 0.025,
2544
+ "window_stride": 0.01
2545
+ },
2546
+ "n_fft": 512,
2547
+ "n_window_size": null,
2548
+ "n_window_stride": null,
2549
+ "nb_augmentation_prob": 0,
2550
+ "nb_max_freq": 4000,
2551
+ "normalize": "per_feature",
2552
+ "objective": "additive_angular_margin",
2553
+ "objective_config": {
2554
+ "margin": 0.2,
2555
+ "scale": 30
2556
+ },
2557
+ "pad_to": 16,
2558
+ "pad_token_id": 0,
2559
+ "pad_value": 0,
2560
+ "pool_mode": "attention",
2561
+ "preemph": 0.97,
2562
+ "rect_freq": 20,
2563
+ "rect_masks": 0,
2564
+ "rect_time": 5,
2565
+ "res2net": false,
2566
+ "res2net_scale": 8,
2567
+ "rng": null,
2568
+ "sample_rate": 16000,
2569
+ "scale": 8,
2570
+ "spectrogram_augmentation_config": {
2571
+ "freq_masks": 3,
2572
+ "freq_width": 4,
2573
+ "mask_value": 0,
2574
+ "rect_freq": 20,
2575
+ "rect_masks": 0,
2576
+ "rect_time": 5,
2577
+ "time_masks": 5,
2578
+ "time_width": 0.03,
2579
+ "use_vectorized_spec_augment": true
2580
+ },
2581
+ "time_masks": 5,
2582
+ "time_width": 0.03,
2583
+ "torch_dtype": "float32",
2584
+ "transformers_version": "4.48.3",
2585
+ "use_torchaudio": true,
2586
+ "use_vectorized_spec_augment": true,
2587
+ "window": "hann",
2588
+ "window_size": 0.025,
2589
+ "window_stride": 0.01
2590
+ }
models/ecapa-tdnn-voxceleb1-c512-aam/configuration_ecapa_tdnn.py ADDED
@@ -0,0 +1,196 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from typing import Any, Union
2
+
3
+ from transformers.configuration_utils import PretrainedConfig
4
+
5
+
6
+ class EcapaTdnnConfig(PretrainedConfig):
7
+
8
+ def __init__(
9
+ self,
10
+ sample_rate: int = 16000,
11
+ window_size: float = 0.02,
12
+ window_stride: float = 0.01,
13
+ n_window_size: Any = None,
14
+ n_window_stride: Any = None,
15
+ window: str = "hann",
16
+ normalize: str = "per_feature",
17
+ n_fft: Any = None,
18
+ preemph: float = 0.97,
19
+ features: int = 64,
20
+ lowfreq: int = 0,
21
+ highfreq: Any = None,
22
+ log: bool = True,
23
+ log_zero_guard_type: str = "add",
24
+ log_zero_guard_value: Any = 2 ** -24,
25
+ dither: float = 0.00001,
26
+ pad_to: int = 16,
27
+ frame_splicing: int = 1,
28
+ exact_pad: bool = False,
29
+ pad_value: int = 0,
30
+ mag_power: float = 2,
31
+ rng: Any = None,
32
+ nb_augmentation_prob: float = 0,
33
+ nb_max_freq: int = 4000,
34
+ use_torchaudio: bool = False,
35
+ mel_norm: str = "slaney",
36
+ freq_masks: int = 0,
37
+ time_masks: int = 0,
38
+ freq_width: int = 10,
39
+ time_width: int = 10,
40
+ rect_masks: int = 0,
41
+ rect_time: int = 5,
42
+ rect_freq: int = 20,
43
+ mask_value: float = 0,
44
+ use_vectorized_spec_augment: bool = True,
45
+ filters: list = [512, 512, 512, 512, 1500],
46
+ kernel_sizes: list = [5, 3, 3, 1, 1],
47
+ dilations: list = [1, 2, 3, 1, 1],
48
+ scale: int = 8,
49
+ res2net: bool = False,
50
+ res2net_scale: int = 8,
51
+ init_mode: str = 'xavier_uniform',
52
+ emb_sizes: Union[int, list] = 256,
53
+ pool_mode: str = 'xvector',
54
+ angular: bool = False,
55
+ attention_channels: int = 128,
56
+ objective: str = 'additive_angular_margin', # additive_margin, additive_angular_margin, cross_entropy
57
+ angular_scale = 30,
58
+ angular_margin: float = 0.2,
59
+ label_smoothing: float = 0.0,
60
+ initializer_range=0.02,
61
+ pad_token_id=0,
62
+ bos_token_id=1,
63
+ eos_token_id=2,
64
+ **kwargs,
65
+ ):
66
+ super().__init__(**kwargs, pad_token_id=pad_token_id, bos_token_id=bos_token_id, eos_token_id=eos_token_id)
67
+
68
+ self.initializer_range = initializer_range
69
+
70
+ # Mel-spectrogram configuration
71
+ self.sample_rate = sample_rate
72
+ self.window_size = window_size
73
+ self.window_stride = window_stride
74
+ self.n_window_size = n_window_size
75
+ self.n_window_stride = n_window_stride
76
+ self.window = window
77
+ self.normalize = normalize
78
+ self.n_fft = n_fft
79
+ self.preemph = preemph
80
+ self.features = features
81
+ self.lowfreq = lowfreq
82
+ self.highfreq = highfreq
83
+ self.log = log
84
+ self.log_zero_guard_type = log_zero_guard_type
85
+ self.log_zero_guard_value = log_zero_guard_value
86
+ self.dither = dither
87
+ self.pad_to = pad_to
88
+ self.frame_splicing = frame_splicing
89
+ self.exact_pad = exact_pad
90
+ self.pad_value = pad_value
91
+ self.mag_power = mag_power
92
+ self.rng = rng
93
+ self.nb_augmentation_prob = nb_augmentation_prob
94
+ self.nb_max_freq = nb_max_freq
95
+ self.use_torchaudio = use_torchaudio
96
+ self.mel_norm = mel_norm
97
+ self.mel_spectrogram_config = {
98
+ "sample_rate": sample_rate,
99
+ "window_size": window_size,
100
+ "window_stride": window_stride,
101
+ "n_window_size": n_window_size,
102
+ "n_window_stride": n_window_stride,
103
+ "window": window,
104
+ "normalize": normalize,
105
+ "n_fft": n_fft,
106
+ "preemph": preemph,
107
+ "features": features,
108
+ "lowfreq": lowfreq,
109
+ "highfreq": highfreq,
110
+ "log": log,
111
+ "log_zero_guard_type": log_zero_guard_type,
112
+ "log_zero_guard_value": log_zero_guard_value,
113
+ "dither": dither,
114
+ "pad_to": pad_to,
115
+ "frame_splicing": frame_splicing,
116
+ "exact_pad": exact_pad,
117
+ "pad_value": pad_value,
118
+ "mag_power": mag_power,
119
+ "rng": rng,
120
+ "nb_augmentation_prob": nb_augmentation_prob,
121
+ "nb_max_freq": nb_max_freq,
122
+ "use_torchaudio": use_torchaudio,
123
+ "mel_norm": mel_norm,
124
+ }
125
+
126
+ # Spectrogram Augmentation configuration
127
+ self.freq_masks = freq_masks
128
+ self.time_masks = time_masks
129
+ self.freq_width = freq_width
130
+ self.time_width = time_width
131
+ self.rect_masks = rect_masks
132
+ self.rect_time = rect_time
133
+ self.rect_freq = rect_freq
134
+ self.mask_value = mask_value
135
+ self.use_vectorized_spec_augment = use_vectorized_spec_augment
136
+ self.spectrogram_augmentation_config = {
137
+ "freq_masks": freq_masks,
138
+ "time_masks": time_masks,
139
+ "freq_width": freq_width,
140
+ "time_width": time_width,
141
+ "rect_masks": rect_masks,
142
+ "rect_time": rect_time,
143
+ "rect_freq": rect_freq,
144
+ "mask_value": mask_value,
145
+ "use_vectorized_spec_augment": use_vectorized_spec_augment,
146
+ }
147
+
148
+ # Encoder configuration
149
+ self.feat_in = features
150
+ self.filters = filters
151
+ self.kernel_sizes = kernel_sizes
152
+ self.dilations = dilations
153
+ self.scale = scale
154
+ self.res2net = res2net
155
+ self.res2net_scale = res2net_scale
156
+ self.init_mode = init_mode
157
+ self.encoder_config = {
158
+ "feat_in": self.features,
159
+ "filters": self.filters,
160
+ "kernel_sizes": self.kernel_sizes,
161
+ "dilations": self.dilations,
162
+ "scale": self.scale,
163
+ "res2net": self.res2net,
164
+ "res2net_scale": self.res2net_scale,
165
+ "init_mode": self.init_mode,
166
+ }
167
+
168
+ # Decoder configuration
169
+ self.emb_sizes = emb_sizes
170
+ self.pool_mode = pool_mode
171
+ self.angular = True if objective in ['additive_angular_margin', 'additive_margin'] else False
172
+ self.attention_channels = attention_channels
173
+ self.decoder_config = {
174
+ "feat_in": filters[-1],
175
+ "num_classes": self.num_labels,
176
+ "emb_sizes": emb_sizes,
177
+ "pool_mode": pool_mode,
178
+ "angular": angular,
179
+ "attention_channels": attention_channels,
180
+ "init_mode": init_mode,
181
+ }
182
+
183
+ # Loss function configuration
184
+ self.objective = objective
185
+ self.angular_scale = angular_scale
186
+ self.angular_margin = angular_margin
187
+ self.label_smoothing = label_smoothing
188
+ if objective in ['additive_angular_margin', 'additive_margin']:
189
+ self.objective_config = {
190
+ "scale": angular_scale,
191
+ "margin": angular_margin,
192
+ }
193
+ elif objective == 'cross_entropy':
194
+ self.objective_config = {
195
+ "label_smoothing": label_smoothing,
196
+ }