|
|
|
############################################
|
|
|
|
# Network Architecture #
|
|
|
|
############################################
|
|
|
|
freeze_wav2vec2: False
|
|
|
|
normalize_wav: True
|
|
|
|
output_norm: True
|
|
|
|
init_type: 'kaiming_uniform' # !Warning: need to convergence
|
|
|
|
enc:
|
|
|
|
input_shape: 1024
|
|
|
|
dnn_blocks: 3
|
|
|
|
dnn_neurons: 1024
|
|
|
|
activation: True
|
|
|
|
normalization: True
|
|
|
|
dropout_rate: [0.15, 0.15, 0.0]
|
|
|
|
ctc:
|
|
|
|
enc_n_units: 1024
|
|
|
|
blank_id: 0
|
|
|
|
dropout_rate: 0.0
|
|
|
|
|
|
|
|
audio_augment:
|
|
|
|
speeds: [90, 100, 110]
|
|
|
|
|
|
|
|
spec_augment:
|
|
|
|
time_warp: True
|
|
|
|
time_warp_window: 5
|
|
|
|
time_warp_mode: bicubic
|
|
|
|
freq_mask: True
|
|
|
|
n_freq_mask: 2
|
|
|
|
time_mask: True
|
|
|
|
n_time_mask: 2
|
|
|
|
replace_with_zero: False
|
|
|
|
freq_mask_width: 30
|
|
|
|
time_mask_width: 40
|
|
|
|
wav2vec2_params_path: exp/wav2vec2/chinese-wav2vec2-large.pdparams
|
|
|
|
|
|
|
|
|
|
|
|
############################################
|
|
|
|
# Wav2Vec2.0 #
|
|
|
|
############################################
|
|
|
|
# vocab_size: 1000000
|
|
|
|
hidden_size: 1024
|
|
|
|
num_hidden_layers: 24
|
|
|
|
num_attention_heads: 16
|
|
|
|
intermediate_size: 4096
|
|
|
|
hidden_act: gelu
|
|
|
|
hidden_dropout: 0.1
|
|
|
|
activation_dropout: 0.0
|
|
|
|
attention_dropout: 0.1
|
|
|
|
feat_proj_dropout: 0.1
|
|
|
|
feat_quantizer_dropout: 0.0
|
|
|
|
final_dropout: 0.0
|
|
|
|
layerdrop: 0.1
|
|
|
|
initializer_range: 0.02
|
|
|
|
layer_norm_eps: 1e-5
|
|
|
|
feat_extract_norm: layer
|
|
|
|
feat_extract_activation: gelu
|
|
|
|
conv_dim: [512, 512, 512, 512, 512, 512, 512]
|
|
|
|
conv_stride: [5, 2, 2, 2, 2, 2, 2]
|
|
|
|
conv_kernel: [10, 3, 3, 3, 3, 2, 2]
|
|
|
|
conv_bias: True
|
|
|
|
num_conv_pos_embeddings: 128
|
|
|
|
num_conv_pos_embedding_groups: 16
|
|
|
|
do_stable_layer_norm: True
|
|
|
|
apply_spec_augment: False
|
|
|
|
mask_channel_length: 10
|
|
|
|
mask_channel_min_space: 1
|
|
|
|
mask_channel_other: 0.0
|
|
|
|
mask_channel_prob: 0.0
|
|
|
|
mask_channel_selection: static
|
|
|
|
mask_feature_length: 10
|
|
|
|
mask_feature_min_masks: 0
|
|
|
|
mask_feature_prob: 0.0
|
|
|
|
mask_time_length: 10
|
|
|
|
mask_time_min_masks: 2
|
|
|
|
mask_time_min_space: 1
|
|
|
|
mask_time_other: 0.0
|
|
|
|
mask_time_prob: 0.075
|
|
|
|
mask_time_selection: static
|
|
|
|
num_codevectors_per_group: 320
|
|
|
|
num_codevector_groups: 2
|
|
|
|
contrastive_logits_temperature: 0.1
|
|
|
|
num_negatives: 100
|
|
|
|
codevector_dim: 256
|
|
|
|
proj_codevector_dim: 256
|
|
|
|
diversity_loss_weight: 0.1
|
|
|
|
use_weighted_layer_sum: False
|
|
|
|
# pad_token_id: 0
|
|
|
|
# bos_token_id: 1
|
|
|
|
# eos_token_id: 2
|
|
|
|
add_adapter: False
|
|
|
|
adapter_kernel_size: 3
|
|
|
|
adapter_stride: 2
|
|
|
|
num_adapter_layers: 3
|
|
|
|
output_hidden_size: None
|
|
|
|
|
|
|
|
###########################################
|
|
|
|
# Data #
|
|
|
|
###########################################
|
|
|
|
|
|
|
|
train_manifest: data/manifest.train
|
|
|
|
dev_manifest: data/manifest.dev
|
|
|
|
test_manifest: data/manifest.test
|
|
|
|
vocab_filepath: data/lang_char/vocab.txt
|
|
|
|
|
|
|
|
###########################################
|
|
|
|
# Dataloader #
|
|
|
|
###########################################
|
|
|
|
|
|
|
|
unit_type: 'char'
|
|
|
|
tokenizer: bert-base-chinese
|
|
|
|
mean_std_filepath:
|
|
|
|
preprocess_config: conf/preprocess.yaml
|
|
|
|
sortagrad: -1 # Feed samples from shortest to longest ; -1: enabled for all epochs, 0: disabled, other: enabled for 'other' epochs
|
|
|
|
batch_size: 5 # Different batch_size may cause large differences in results
|
|
|
|
maxlen_in: 51200000000 # if input length > maxlen-in batchsize is automatically reduced
|
|
|
|
maxlen_out: 1500000 # if output length > maxlen-out batchsize is automatically reduced
|
|
|
|
minibatches: 0 # for debug
|
|
|
|
batch_count: auto
|
|
|
|
batch_bins: 0
|
|
|
|
batch_frames_in: 0
|
|
|
|
batch_frames_out: 0
|
|
|
|
batch_frames_inout: 0
|
|
|
|
num_workers: 6
|
|
|
|
subsampling_factor: 1
|
|
|
|
num_encs: 1
|
|
|
|
dist_sampler: True
|
|
|
|
shortest_first: True
|
|
|
|
return_lens_rate: True
|
|
|
|
|
|
|
|
###########################################
|
|
|
|
# use speechbrain dataloader #
|
|
|
|
###########################################
|
|
|
|
use_sb_pipeline: True # whether use speechbrain pipeline. Default is True.
|
|
|
|
sb_pipeline_conf: conf/train_with_wav2vec.yaml
|
|
|
|
|
|
|
|
###########################################
|
|
|
|
# Training #
|
|
|
|
###########################################
|
|
|
|
n_epoch: 80
|
|
|
|
accum_grad: 1
|
|
|
|
global_grad_clip: 5.0
|
|
|
|
|
|
|
|
model_optim: sgd
|
|
|
|
model_optim_conf:
|
|
|
|
lr: 1.0
|
|
|
|
weight_decay: 0.0
|
|
|
|
|
|
|
|
wav2vec2_optim: adam
|
|
|
|
wav2vec2_optim_conf:
|
|
|
|
lr: 0.0001
|
|
|
|
weight_decay: 0.0
|
|
|
|
|
|
|
|
model_scheduler: newbobscheduler
|
|
|
|
model_scheduler_conf:
|
|
|
|
improvement_threshold: 0.0025
|
|
|
|
annealing_factor: 0.8
|
|
|
|
patient: 0
|
|
|
|
wav2vec2_scheduler: newbobscheduler
|
|
|
|
wav2vec2_scheduler_conf:
|
|
|
|
improvement_threshold: 0.0025
|
|
|
|
annealing_factor: 0.9
|
|
|
|
patient: 0
|
|
|
|
log_interval: 1
|
|
|
|
checkpoint:
|
|
|
|
kbest_n: 50
|
|
|
|
latest_n: 5
|
|
|
|
|