# https://yaml.org/type/float.html
data:
  train_manifest: data/manifest.train
  dev_manifest: data/manifest.dev
  test_manifest: data/manifest.test
  min_input_len: 0.0
  max_input_len: 27.0 # second
  min_output_len: 0.0
  max_output_len: .inf
  min_output_input_ratio: 0.00
  max_output_input_ratio: .inf

collator:
  batch_size: 32 # one gpu
  mean_std_filepath: data/mean_std.json
  unit_type: char
  vocab_filepath: data/vocab.txt 
  augmentation_config: conf/augmentation.json
  random_seed: 0
  spm_model_prefix: 
  specgram_type: linear #linear, mfcc, fbank
  feat_dim: 
  delta_delta: False
  stride_ms: 10.0
  window_ms: 20.0
  n_fft: None
  max_freq: None
  target_sample_rate: 16000
  use_dB_normalization: True
  target_dB: -20
  dither: 1.0
  keep_transcription_text: False
  sortagrad: True
  shuffle_method: batch_shuffle
  num_workers: 0

model:
  num_conv_layers: 2
  num_rnn_layers: 3
  rnn_layer_size: 1024
  rnn_direction: forward # [forward, bidirect]
  num_fc_layers: 1
  fc_layers_size_list: 512,
  use_gru: True 

training:
  n_epoch: 50
  lr: 2e-3
  lr_decay: 0.83  # 0.83
  weight_decay: 1e-06
  global_grad_clip: 3.0
  log_interval: 100
  checkpoint:
    kbest_n: 50
    latest_n: 5
  
decoding:
  batch_size: 32
  error_rate_type: cer 
  decoding_method: ctc_beam_search
  lang_model_path: data/lm/zh_giga.no_cna_cmn.prune01244.klm
  alpha: 1.9
  beta: 5.0
  beam_size: 300
  cutoff_prob: 0.99
  cutoff_top_n: 40
  num_proc_bsearch: 10
