{
  "model": {
    "name": "tcn",
    "num_visemes": 15,
    "layers": 5,
    "channels": 128,
    "kernel_size": 3,
    "dropout": 0.1,
    "normalization": "weight_norm"
  },
  "audio": {
    "sample_rate": 16000,
    "hop_length_ms": 10,
    "window_length_ms": 25,
    "n_mels": 80,
    "fmin": 50,
    "fmax": 6000,
    "n_fft": 1024,
    "normalization": "none",
    "hop_length_samples": 160,
    "window_length_samples": 400,
    "fps": 100.0
  },
  "training": {
    "batch_size": 32,
    "max_chunk_length_s": 16.0,
    "min_chunk_length_s": 1.0,
    "mixed_precision": false,
    "loss_type": "focal_loss",
    "class_weighting": false,
    "focal_loss_alpha": 1.0,
    "focal_loss_gamma": 2.0,
    "optimizer": "adamw",
    "learning_rate": 0.0003,
    "betas": [
      0.9,
      0.98
    ],
    "weight_decay": 0.01,
    "scheduler": "cosine",
    "warmup_ratio": 0.05,
    "max_epochs": 100,
    "early_stopping_patience": 10,
    "early_stopping_metric": "val_f1",
    "specaugment_enabled": true,
    "specaugment_time_mask_max_ms": 20,
    "multi_label": false,
    "target_crossfade_ms": 0,
    "mask_padded_frames": false,
    "viseme_overlap_enabled": false,
    "viseme_overlap_threshold": 0.0,
    "silence_bias": 0.1,
    "silence_energy_gate_db": -60.0,
    "silence_energy_gate_bias": 0.2
  },
  "data": {
    "dataset": "librispeech",
    "splits": [
      "train-clean-100",
      "train-clean-360"
    ],
    "val_split": "dev-clean",
    "test_split": "test-clean",
    "augmentation_enabled": true,
    "noise_snr_range": [
      10,
      30
    ],
    "gain_range": [
      0.8,
      1.2
    ],
    "phoneme_viseme_map": "training/configs/viseme_map_en_us_arpa.json",
    "silence_augment_prob": 0.1,
    "silence_noise_dbfs_range": [
      -65.0,
      -40.0
    ],
    "silence_chunk_length_s": [
      1.0,
      4.0
    ]
  },
  "evaluation": {
    "metrics": [
      "frame_accuracy",
      "macro_f1",
      "confusion_matrix"
    ],
    "compute_latency": true,
    "target_hardware": "cpu",
    "viseme_crossfade_enabled": false,
    "viseme_crossfade_ms": 0,
    "viseme_overlap_enabled": false,
    "viseme_overlap_threshold": 0.0
  },
  "hardware": {
    "device": "cpu",
    "num_workers": 8,
    "pin_memory": false
  },
  "logging": {
    "log_interval": 20,
    "save_interval": 500,
    "max_checkpoints": 10,
    "log_level": "INFO"
  },
  "tensorboard": {
    "enabled": true,
    "runs_dir": "training/runs",
    "run_name_format": "{experiment_name}_{timestamp}",
    "run_name": "audio_augmentation_full_dataset2_2025-08-22_09-14-37",
    "log_scalars": true,
    "log_histograms": false,
    "log_images": true,
    "log_audio": false,
    "scalar_log_interval": 20,
    "histogram_log_interval": 100,
    "image_log_interval": 500
  },
  "experiment": {
    "name": "audio_augmentation_full_dataset2",
    "tags": [
      "tcn",
      "viseme",
      "100fps"
    ],
    "notes": "TCN model test run with audio augmentation"
  }
}