forked from speechbrain/speechbrain
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsepformer-dns-16k.yaml
203 lines (172 loc) · 6.12 KB
/
sepformer-dns-16k.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
# ################################
# Model: SepFormer model for speech enhancement
# https://arxiv.org/abs/2010.13154
#
# Author: Sangeet Sagar 2022
# Dataset : Microsoft-DNS 4
# ################################
# Basic parameters
# Seed needs to be set at top of yaml, before objects with parameters are made
seed: 1234
__set_seed: !apply:speechbrain.utils.seed_everything [!ref <seed>]
output_folder: !ref results/sepformer-enhancement-16k/<seed>
save_folder: !ref <output_folder>/save
train_log: !ref <output_folder>/train_log.txt
# Data params
data_folder: !PLACEHOLDER # ../noisyspeech_synthesizer/synthesized_data_shards/
train_data: !ref <data_folder>/train_shards/
valid_data: !ref <data_folder>/valid_shards/
baseline_noisy_shards_folder: !PLACEHOLDER # ../DNS-shards/devsets_fullband/
baseline_shards: !ref <baseline_noisy_shards_folder>/shard-{000000..999999}.tar
# Set to a directory on a large disk if using Webdataset shards hosted on the web.
shard_cache_dir:
# Basic parameters
use_tensorboard: True
tensorboard_logs: !ref <output_folder>/logs/
dereverberate: False
# Experiment params
precision: fp16 # bf16, fp16 or fp32
test_only: False
num_spks: 1
noprogressbar: False
save_audio: True # Save estimated sources on disk
sample_rate: 16000
audio_length: 4 # seconds
n_audio_to_save: 20
####################### Training Parameters ####################################
N_epochs: 100
batch_size: 4
batch_size_test: 1
lr: 0.00015
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: False
# this is the length of sequences if we choose to limit
# the signal length of training sequences
training_signal_len: 32000
ckpt_interval_minutes: 60
# Parameters for data augmentation
use_wavedrop: False
use_speedperturb: True
use_rand_shift: False
min_shift: -8000
max_shift: 8000
# Speed perturbation
speed_changes: [95, 100, 105] # List of speed changes for time-stretching
speed_perturb: !new:speechbrain.augment.time_domain.SpeedPerturb
orig_freq: !ref <sample_rate>
speeds: !ref <speed_changes>
# Frequency drop: randomly drops a number of frequency bands to zero.
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: !ref <drop_freq_low>
drop_freq_high: !ref <drop_freq_high>
drop_freq_count_low: !ref <drop_freq_count_low>
drop_freq_count_high: !ref <drop_freq_count_high>
drop_freq_width: !ref <drop_freq_width>
# 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: !ref <drop_chunk_length_low>
drop_length_high: !ref <drop_chunk_length_high>
drop_count_low: !ref <drop_chunk_count_low>
drop_count_high: !ref <drop_chunk_count_high>
# 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
# Dataloader options
dataloader_opts:
batch_size: !ref <batch_size>
num_workers: 3
dataloader_opts_valid:
batch_size: !ref <batch_size>
num_workers: 3
dataloader_opts_test:
batch_size: !ref <batch_size_test>
num_workers: 3
# Specifying the network
Encoder: !new:speechbrain.lobes.models.dual_path.Encoder
kernel_size: !ref <kernel_size>
out_channels: !ref <N_encoder_out>
SBtfintra: !new:speechbrain.lobes.models.dual_path.SBTransformerBlock
num_layers: 8
d_model: !ref <out_channels>
nhead: 8
d_ffn: 1024
dropout: 0
use_positional_encoding: True
norm_before: True
SBtfinter: !new:speechbrain.lobes.models.dual_path.SBTransformerBlock
num_layers: 8
d_model: !ref <out_channels>
nhead: 8
d_ffn: 1024
dropout: 0
use_positional_encoding: True
norm_before: True
MaskNet: !new:speechbrain.lobes.models.dual_path.Dual_Path_Model
num_spks: !ref <num_spks>
in_channels: !ref <N_encoder_out>
out_channels: !ref <out_channels>
num_layers: 2
K: 250
intra_model: !ref <SBtfintra>
inter_model: !ref <SBtfinter>
norm: ln
linear_layer_after_inter_intra: False
skip_around_intra: True
Decoder: !new:speechbrain.lobes.models.dual_path.Decoder
in_channels: !ref <N_encoder_out>
out_channels: 1
kernel_size: !ref <kernel_size>
stride: !ref <kernel_stride>
bias: False
optimizer: !name:torch.optim.Adam
lr: !ref <lr>
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: 85
epoch_counter: !new:speechbrain.utils.epoch_loop.EpochCounter
limit: !ref <N_epochs>
modules:
encoder: !ref <Encoder>
decoder: !ref <Decoder>
masknet: !ref <MaskNet>
save_all_checkpoints: False
checkpointer: !new:speechbrain.utils.checkpoints.Checkpointer
checkpoints_dir: !ref <save_folder>
recoverables:
encoder: !ref <Encoder>
decoder: !ref <Decoder>
masknet: !ref <MaskNet>
counter: !ref <epoch_counter>
lr_scheduler: !ref <lr_scheduler>
train_logger: !new:speechbrain.utils.train_logger.FileTrainLogger
save_file: !ref <train_log>
## Uncomment to fine-tune a pre-trained model.
# pretrained_enhancement: !new:speechbrain.utils.parameter_transfer.Pretrainer
# collect_in: !ref <save_folder>
# loadables:
# encoder: !ref <Encoder>
# decoder: !ref <Decoder>
# masknet: !ref <MaskNet>
# paths:
# encoder: !PLACEHOLDER
# decoder: !PLACEHOLDER
# masknet: !PLACEHOLDER