sepformer-libri3mix-48k / hyperparams.yaml
hahmadraz's picture
Upload 10 files
4ef0f28 verified
raw
history blame
5.7 kB
# Generated 2024-02-06 from:
# /mnt3/speechbrain/recipes/LibriMix/separation/hparams/sepformer-libri3mix.yaml
# yamllint disable
# ################################
# Model: SepFormer for source separation
# https://arxiv.org/abs/2010.13154
# Dataset : Libri3Mix
# ################################
#
# Basic parameters
# Seed needs to be set at top of yaml, before objects with parameters are made
#
seed: 1234
__set_seed: !apply:torch.manual_seed [1234]
# Data params
# e.g. '/yourpath/Libri3Mix/train-clean-360/'
# the data folder is needed even if dynamic mixing is applied
data_folder: /mnt3/Libri3Mix_48k_own/Libri3Mix/
# This is needed only if dynamic mixing is applied
base_folder_dm: /yourpath/LibriSpeech/train-clean-360/
experiment_name: sepformer-libri3mix-48k
output_folder: results/sepformer-libri3mix-48k/1234
train_log: results/sepformer-libri3mix-48k/1234/train_log.txt
save_folder: results/sepformer-libri3mix-48k/1234/save
train_data: results/sepformer-libri3mix-48k/1234/save/libri3mix_train-360.csv
valid_data: results/sepformer-libri3mix-48k/1234/save/libri3mix_test.csv
test_data: results/sepformer-libri3mix-48k/1234/save/libri3mix_test.csv
skip_prep: false
ckpt_interval_minutes: 60
# Experiment params
precision: fp16 # bf16, fp16 or fp32 # Set it to True for mixed precision
num_spks: 3
noprogressbar: false
save_audio: false # Save estimated sources on disk
sample_rate: 48000
# Training parameters
N_epochs: 50
batch_size: 1
lr: 0.0005
clip_grad_norm: 5
loss_upper_lim: 999999 # this is the upper limit for an acceptable loss
# if True, the training sequences are cut to a specified length
limit_training_signal_len: true
# this is the length of sequences if we choose to limit
# the signal length of training sequences
training_signal_len: 100000
# Set it to True to dynamically create mixtures at training time
dynamic_mixing: false
use_wham_noise: true
# Parameters for data augmentation
use_wavedrop: false
use_speedperturb: true
use_rand_shift: false
min_shift: -8000
max_shift: 8000
# Speed perturbation
speed_changes: &id001 [95, 100, 105]
# Frequency drop: randomly drops a number of frequency bands to zero.
speed_perturb: !new:speechbrain.augment.time_domain.SpeedPerturb
orig_freq: 48000
speeds: *id001
drop_freq_low: 0 # Min frequency band dropout probability
drop_freq_high: 1 # Max frequency band dropout probability
drop_freq_count_low: 1 # Min number of frequency bands to drop
drop_freq_count_high: 3 # Max number of frequency bands to drop
drop_freq_width: 0.05 # Width of frequency bands to drop
drop_freq: !new:speechbrain.augment.time_domain.DropFreq
drop_freq_low: 0
drop_freq_high: 1
drop_freq_count_low: 1
drop_freq_count_high: 3
drop_freq_width: 0.05
# Time drop: randomly drops a number of temporal chunks.
drop_chunk_count_low: 1 # Min number of audio chunks to drop
drop_chunk_count_high: 5 # Max number of audio chunks to drop
drop_chunk_length_low: 1000 # Min length of audio chunks to drop
drop_chunk_length_high: 2000 # Max length of audio chunks to drop
drop_chunk: !new:speechbrain.augment.time_domain.DropChunk
drop_length_low: 1000
drop_length_high: 2000
drop_count_low: 1
drop_count_high: 5
# loss thresholding -- this thresholds the training loss
threshold_byloss: true
threshold: -30
# Encoder parameters
N_encoder_out: 256
out_channels: 256
kernel_size: 16
kernel_stride: 8
d_ffn: 1024
# Dataloader options
dataloader_opts:
batch_size: 1
num_workers: 3
# Specifying the network
Encoder: &id004 !new:speechbrain.lobes.models.dual_path.Encoder
kernel_size: 16
out_channels: 256
SBtfintra: &id002 !new:speechbrain.lobes.models.dual_path.SBTransformerBlock
num_layers: 8
d_model: 256
nhead: 8
d_ffn: 1024
dropout: 0
use_positional_encoding: true
norm_before: true
SBtfinter: &id003 !new:speechbrain.lobes.models.dual_path.SBTransformerBlock
num_layers: 8
d_model: 256
nhead: 8
d_ffn: 1024
dropout: 0
use_positional_encoding: true
norm_before: true
MaskNet: &id006 !new:speechbrain.lobes.models.dual_path.Dual_Path_Model
num_spks: 3
in_channels: 256
out_channels: 256
num_layers: 2
K: 250
intra_model: *id002
inter_model: *id003
norm: ln
linear_layer_after_inter_intra: false
skip_around_intra: true
Decoder: &id005 !new:speechbrain.lobes.models.dual_path.Decoder
in_channels: 256
out_channels: 1
kernel_size: 16
stride: 8
bias: false
optimizer: !name:torch.optim.Adam
lr: 0.0005
weight_decay: 0
loss: !name:speechbrain.nnet.losses.get_si_snr_with_pitwrapper
lr_scheduler: !new:speechbrain.nnet.schedulers.ReduceLROnPlateau
factor: 0.5
patience: 2
dont_halve_until_epoch: 5
epoch_counter: &id007 !new:speechbrain.utils.epoch_loop.EpochCounter
# lr_scheduler: !ref <lr_scheduler>
limit: 50
modules:
encoder: *id004
decoder: *id005
masknet: *id006
checkpointer: !new:speechbrain.utils.checkpoints.Checkpointer
checkpoints_dir: results/sepformer-libri3mix-48k/1234/save
recoverables:
encoder: *id004
decoder: *id005
masknet: *id006
counter: *id007
train_logger: !new:speechbrain.utils.train_logger.FileTrainLogger
save_file: results/sepformer-libri3mix-48k/1234/train_log.txt
# If you do not want to use the pretrained separator you can simply delete pretrained_separator field.
pretrained_separator: !new:speechbrain.utils.parameter_transfer.Pretrainer
collect_in: results/sepformer-libri3mix-48k/1234/save
loadables:
encoder: *id004
decoder: *id005
masknet: *id006
paths:
encoder: speechbrain/sepformer-wsj03mix/encoder.ckpt
decoder: speechbrain/sepformer-wsj03mix/decoder.ckpt
masknet: speechbrain/sepformer-wsj03mix/masknet.ckpt