|
--- |
|
tags: |
|
- espnet |
|
- audio |
|
- language-identification |
|
language: multilingual |
|
datasets: |
|
- geolid |
|
license: cc-by-4.0 |
|
--- |
|
|
|
## ESPnet2 LID model |
|
|
|
### `espnet/geolid_combined_shared_trainable` |
|
|
|
This model was trained by Qingzheng-Wang using geolid recipe in [espnet](https://github.com/espnet/espnet/). |
|
|
|
### Demo: How to use in ESPnet2 |
|
|
|
Follow the [ESPnet installation instructions](https://espnet.github.io/espnet/installation.html) |
|
if you haven't done that already. |
|
|
|
```bash |
|
cd espnet |
|
git checkout 77e4293952083b9e32bc19a5ddc19efe45e70e4a |
|
pip install -e . |
|
cd egs2/geolid/lid1 |
|
./run.sh --skip_data_prep false --skip_train true --download_model espnet/geolid_combined_shared_trainable |
|
``` |
|
|
|
|
|
|
|
## LID config |
|
|
|
<details><summary>expand</summary> |
|
|
|
``` |
|
config: /work/nvme/bbjs/qwang20/espnet/egs2/lid_delta/lid1/conf/mms_1b_all_no_filter_balanced_dataset/mms_ecapa_upcon_32_44_it0.4_sharedCondProj_butUpdate_50k_lr1e-5_datasetup0.3_backup_33epoch.yaml |
|
print_config: false |
|
log_level: INFO |
|
drop_last_iter: false |
|
dry_run: false |
|
iterator_type: category |
|
valid_iterator_type: category |
|
output_dir: exp_all_no_filter_raw/spk_mms_ecapa_upcon_32_44_it0.4_sharedCondProj_butUpdate_50k_lr1e-5_datasetup0.3_backup_33epoch_raw |
|
ngpu: 1 |
|
seed: 3702 |
|
num_workers: 8 |
|
num_att_plot: 0 |
|
dist_backend: nccl |
|
dist_init_method: env:// |
|
dist_world_size: null |
|
dist_rank: null |
|
local_rank: 0 |
|
dist_master_addr: null |
|
dist_master_port: null |
|
dist_launcher: null |
|
multiprocessing_distributed: false |
|
unused_parameters: true |
|
sharded_ddp: false |
|
use_deepspeed: false |
|
deepspeed_config: null |
|
cudnn_enabled: true |
|
cudnn_benchmark: true |
|
cudnn_deterministic: false |
|
use_tf32: false |
|
collect_stats: false |
|
write_collected_feats: false |
|
max_epoch: 33 |
|
patience: null |
|
val_scheduler_criterion: |
|
- valid |
|
- loss |
|
early_stopping_criterion: |
|
- valid |
|
- loss |
|
- min |
|
best_model_criterion: |
|
- - valid |
|
- accuracy |
|
- max |
|
keep_nbest_models: 2 |
|
nbest_averaging_interval: 0 |
|
grad_clip: 9999 |
|
grad_clip_type: 2.0 |
|
grad_noise: false |
|
accum_grad: 4 |
|
no_forward_run: false |
|
resume: true |
|
train_dtype: float32 |
|
use_amp: true |
|
log_interval: 100 |
|
use_matplotlib: true |
|
use_tensorboard: true |
|
create_graph_in_tensorboard: false |
|
use_wandb: true |
|
wandb_project: lid |
|
wandb_id: null |
|
wandb_entity: qingzhew-carnegie-mellon-university |
|
wandb_name: null |
|
wandb_model_log_interval: -1 |
|
detect_anomaly: false |
|
use_adapter: false |
|
adapter: lora |
|
save_strategy: all |
|
adapter_conf: {} |
|
pretrain_path: null |
|
init_param: [] |
|
ignore_init_mismatch: false |
|
freeze_param: [] |
|
num_iters_per_epoch: 2000 |
|
batch_size: 20 |
|
valid_batch_size: null |
|
batch_bins: 1440000 |
|
valid_batch_bins: null |
|
category_sample_size: 10 |
|
train_shape_file: |
|
- exp_all_no_filter_raw/spk_stats_16k/train/speech_shape |
|
valid_shape_file: |
|
- exp_all_no_filter_raw/spk_stats_16k/valid/speech_shape |
|
batch_type: catpow_balance_dataset |
|
upsampling_factor: 0.5 |
|
language_upsampling_factor: 0.5 |
|
dataset_upsampling_factor: 0.3 |
|
dataset_scaling_factor: 1.2 |
|
max_batch_size: 6 |
|
valid_batch_type: null |
|
fold_length: |
|
- 120000 |
|
sort_in_batch: descending |
|
shuffle_within_batch: false |
|
sort_batch: descending |
|
multiple_iterator: false |
|
chunk_length: 500 |
|
chunk_shift_ratio: 0.5 |
|
num_cache_chunks: 1024 |
|
chunk_excluded_key_prefixes: [] |
|
chunk_default_fs: null |
|
chunk_max_abs_length: null |
|
chunk_discard_short_samples: true |
|
train_data_path_and_name_and_type: |
|
- - dump/raw/train_all_no_filter_lang/wav.scp |
|
- speech |
|
- sound |
|
- - dump/raw/train_all_no_filter_lang/utt2spk |
|
- lid_labels |
|
- text |
|
valid_data_path_and_name_and_type: |
|
- - dump/raw/dev_ml_superb2_lang/wav.scp |
|
- speech |
|
- sound |
|
- - dump/raw/dev_ml_superb2_lang/utt2spk |
|
- lid_labels |
|
- text |
|
multi_task_dataset: false |
|
allow_variable_data_keys: false |
|
max_cache_size: 0.0 |
|
max_cache_fd: 32 |
|
allow_multi_rates: false |
|
valid_max_cache_size: null |
|
exclude_weight_decay: false |
|
exclude_weight_decay_conf: {} |
|
optim: adam |
|
optim_conf: |
|
lr: 1.0e-05 |
|
betas: |
|
- 0.9 |
|
- 0.98 |
|
scheduler: tristagelr |
|
scheduler_conf: |
|
max_steps: 12500 |
|
warmup_ratio: 0.1 |
|
hold_ratio: 0.4 |
|
decay_ratio: 0.5 |
|
init_lr_scale: 0.6 |
|
final_lr_scale: 0.1 |
|
init: null |
|
use_preprocessor: true |
|
input_size: null |
|
target_duration: 3.0 |
|
spk2utt: dump/raw/train_all_no_filter_lang/spk2utt |
|
spk_num: 157 |
|
sample_rate: 16000 |
|
num_eval: 10 |
|
rir_scp: '' |
|
model: upstream_condition |
|
model_conf: |
|
lang2vec_conditioning_layers: |
|
- 32 |
|
- 36 |
|
- 40 |
|
- 44 |
|
lid_conditioning_layers: [] |
|
frozen_ecapa: false |
|
apply_intermediate_lang2vec_loss: true |
|
apply_intermediate_lid_class_loss: false |
|
apply_intermediate_lang2vec_condition: true |
|
apply_intermediate_lid_class_condition: false |
|
inter_lang2vec_loss_weight: 0.4 |
|
inter_lid_class_loss_weight: 0.0 |
|
cutoff_gradient_from_backbone: false |
|
cutoff_gradient_before_condtrans: true |
|
independent_module: true |
|
use_gate: false |
|
gate_type: null |
|
shared_conditioning_proj: true |
|
frontend: s3prl_condition |
|
frontend_conf: |
|
frontend_conf: |
|
upstream: hf_wav2vec2_condition |
|
path_or_url: facebook/mms-1b |
|
download_dir: ./hub |
|
multilayer_feature: true |
|
specaug: null |
|
specaug_conf: {} |
|
normalize: utterance_mvn |
|
normalize_conf: |
|
norm_vars: false |
|
encoder: ecapa_tdnn |
|
encoder_conf: |
|
model_scale: 8 |
|
ndim: 512 |
|
output_size: 1536 |
|
pooling: chn_attn_stat |
|
pooling_conf: {} |
|
projector: rawnet3 |
|
projector_conf: |
|
output_size: 192 |
|
encoder_condition: identity |
|
encoder_condition_conf: {} |
|
pooling_condition: chn_attn_stat |
|
pooling_condition_conf: {} |
|
projector_condition: rawnet3 |
|
projector_condition_conf: {} |
|
preprocessor: lid |
|
preprocessor_conf: |
|
fix_duration: false |
|
sample_rate: 16000 |
|
noise_apply_prob: 0.0 |
|
noise_info: |
|
- - 1.0 |
|
- dump/raw/musan_speech.scp |
|
- - 4 |
|
- 7 |
|
- - 13 |
|
- 20 |
|
- - 1.0 |
|
- dump/raw/musan_noise.scp |
|
- - 1 |
|
- 1 |
|
- - 0 |
|
- 15 |
|
- - 1.0 |
|
- dump/raw/musan_music.scp |
|
- - 1 |
|
- 1 |
|
- - 5 |
|
- 15 |
|
rir_apply_prob: 0.0 |
|
rir_scp: dump/raw/rirs.scp |
|
use_lang2vec: true |
|
lang2vec_type: geo |
|
loss: aamsoftmax_sc_topk_lang2vec |
|
loss_conf: |
|
margin: 0.5 |
|
scale: 30 |
|
K: 3 |
|
mp: 0.06 |
|
k_top: 5 |
|
lang2vec_dim: 299 |
|
lang2vec_type: geo |
|
lang2vec_weight: 0.2 |
|
required: |
|
- output_dir |
|
version: '202412' |
|
distributed: false |
|
``` |
|
|
|
</details> |
|
|
|
|
|
|
|
### Citing ESPnet |
|
|
|
```BibTex |
|
@inproceedings{watanabe2018espnet, |
|
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}, |
|
title={{ESPnet}: End-to-End Speech Processing Toolkit}, |
|
year={2018}, |
|
booktitle={Proceedings of Interspeech}, |
|
pages={2207--2211}, |
|
doi={10.21437/Interspeech.2018-1456}, |
|
url={http://dx.doi.org/10.21437/Interspeech.2018-1456} |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
``` |
|
|
|
or arXiv: |
|
|
|
```bibtex |
|
@misc{watanabe2018espnet, |
|
title={ESPnet: End-to-End Speech Processing Toolkit}, |
|
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}, |
|
year={2018}, |
|
eprint={1804.00015}, |
|
archivePrefix={arXiv}, |
|
primaryClass={cs.CL} |
|
} |
|
``` |
|
|