ppgs_Mandarin_Aishell3 / defaults.py
haitaka773's picture
Add Mandarin Chinese PPG model trained on AISHELL-3 and default config file
09b48de
Raw
History Blame Contribute Delete
5.48 kB
import os
from pathlib import Path
###############################################################################
# Metadata
###############################################################################
# Configuration name
CONFIG = 'ppgs'
###############################################################################
# Audio parameters
###############################################################################
# Audio hopsize
HOPSIZE = 160 # samples
# Number of spectrogram channels
NUM_FFT = 1024
# Number of mel channels
NUM_MELS = 80
# Audio sample rate
SAMPLE_RATE = 16000
# Number of spectrogram channels
WINDOW_SIZE = 1024
###############################################################################
# Data parameters
###############################################################################
# Input and output
ALL_FEATURES = ['audio', 'phonemes']
# All supported input representations
ALL_REPRESENTATIONS = ['bottleneck', 'w2v2fb', 'w2v2fc', 'mel', 'encodec']
# All datasets used by this codebase
DATASETS = ['commonvoice', 'arctic', 'timit', 'aishell3_train', 'aishell3_test']
# Best representation
BEST_REPRESENTATION = 'mel'
# Default representation
REPRESENTATION = BEST_REPRESENTATION
# representation kind
# One of ['ppg', 'latents'].
REPRESENTATION_KIND = 'ppg'
# Datasets used for training
TRAINING_DATASET = 'aishell3_train'
###############################################################################
# Directories
###############################################################################
# Root location for saving outputs
ROOT_DIR = Path(__file__).parent.parent.parent
# Location to save assets to be bundled with pip release
ASSETS_DIR = Path(__file__).parent.parent / 'assets'
# Location of initial downloads before processing into DATA_DIR
SOURCES_DIR = Path(__file__).parent.parent.parent / 'data' / 'sources'
# Location of preprocessed features
CACHE_DIR = ROOT_DIR / 'data' / 'cache'
# Location of datasets on disk
DATA_DIR = ROOT_DIR / 'data' / 'datasets'
# Location to save evaluation artifacts
EVAL_DIR = ROOT_DIR / 'eval'
# Location to save training and adaptation artifacts
RUNS_DIR = ROOT_DIR / 'runs'
# Location of initial downloads before processing into DATA_DIR
SOURCES_DIR = ROOT_DIR / 'data' / 'sources'
# Location of similarity matrix
SIMILARITY_MATRIX_PATH = ASSETS_DIR / 'balanced_similarity.pt'
# Location of checkpoints
CHECKPOINT_DIR = ASSETS_DIR / 'checkpoints'
# Location of similarity matrix
SIMILARITY_MATRIX_PATH = ASSETS_DIR / 'balanced_similarity.pt'
###############################################################################
# Logging parameters
###############################################################################
# Number of steps between saving checkpoints
CHECKPOINT_INTERVAL = 25000 # steps
# Number of batches to perform during evaluation
DEFAULT_EVALUATION_STEPS = 16
# Number of steps between evaluation
EVALUATION_INTERVAL = 1000 # steps
###############################################################################
# Model parameters
###############################################################################
# Local checkpoint to use
# If None, Huggingface will be used unless a checkpoint is given in the CLI
LOCAL_CHECKPOINT = None
# Number of attention heads
ATTENTION_HEADS = 2
# Attention window size
ATTENTION_WINDOW_SIZE = 4
# Use causal masking/methods
IS_CAUSAL = False
# This function takes as input a torch.Device and returns a callable frontend
FRONTEND = None
# Network width
HIDDEN_CHANNELS = 256
# Dimensionality of input representation
INPUT_CHANNELS = 80
# Kernel width
KERNEL_SIZE = 5
# Model architecture.
# One of ['convolution', 'transformer', 'W2V2FC', 'Wav2Vec2.0'].
MODEL = 'transformer'
# Number of hidden layers
NUM_HIDDEN_LAYERS = 5
# Dimensionality of output representation English(40)
OUTPUT_CHANNELS = 187
# Additional context overlap between chunks
CHUNK_OVERLAP = 50
# Maximum number of frames in a chunk
CHUNK_LENGTH = 500
###############################################################################
# Training parameters
###############################################################################
# Number of buckets to partition training examples to minimize padding
BUCKETS = 1
# Whether to use class-balanced loss weights
CLASS_BALANCED = False
# Infinity norm gradient clipping threshold
GRADIENT_CLIP_THRESHOLD_INF = None
# L2 norm gradient clipping threshold
GRADIENT_CLIP_THRESHOLD_L2 = None
# Optimizer step size
LEARNING_RATE = 2e-4
# Maximum number of frames in a batch
MAX_TRAINING_FRAMES = 150000
# Maximum number of frames in a batch during preprocessing
MAX_PREPROCESS_FRAMES = 10000
# Number of training steps
STEPS = 100000
# Number of data loading worker threads
# TEMPORARY
# try:
# NUM_WORKERS = int(os.cpu_count() / max(1, len(GPUtil.getGPUs())))
# except ValueError:
# NUM_WORKERS = os.cpu_count()
NUM_WORKERS = 8
# Seed for all random number generators
RANDOM_SEED = 1234
###############################################################################
# Distance parameters
###############################################################################
# A hyperparameter that weights the relative contribution of the acoustic
# phoneme similarity matrix. The default value was tuned to maximize
# correlation between word error rate (WER) and the average JS divergence
# between PPGs.
SIMILARITY_EXPONENT = None