| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- # -*- coding: utf-8 -*-
- """
- Trainer-Konfiguration für ML-Modelle.
- """
- from dataclasses import dataclass, field
- @dataclass
- class WakewordTrainerConfig:
- """Konfiguration für Wakeword-Training."""
- model_name: str = "custom"
- epochs: int = 100
- batch_size: int = 32
- learning_rate: float = 0.001
- validation_split: float = 0.2
- augmentation_enabled: bool = True
- early_stopping_patience: int = 10
- @dataclass
- class VoiceRecognitionTrainerConfig:
- """Konfiguration für Sprechererkennungs-Training."""
- model_name: str = "default"
- epochs: int = 100
- batch_size: int = 16
- learning_rate: float = 0.0001
- validation_split: float = 0.2
- embedding_size: int = 256
- augmentation_enabled: bool = True
- early_stopping_patience: int = 10
- @dataclass
- class AudioProcessingConfig:
- """Audio-Verarbeitungs-Konfiguration für Training."""
- sample_rate: int = 16000
- n_mels: int = 80
- n_fft: int = 1024
- hop_length: int = 256
- win_length: int = 1024
- fmin: float = 0.0
- fmax: float = 8000.0
- @dataclass
- class DataConfig:
- """Daten-Konfiguration für Training."""
- raw_data_directory: str = "trainer/data"
- processed_data_directory: str = "trainer/processed"
- cache_directory: str = "trainer/cache"
- min_samples_per_class: int = 10
- @dataclass
- class OutputConfig:
- """Ausgabe-Konfiguration für Training."""
- models_directory: str = "models"
- export_onnx: bool = True
- export_torchscript: bool = True
- model_password: str = "" # Passwort für .pth Verschlüsselung
- @dataclass
- class TrainerConfig:
- """Haupt-Trainer-Konfiguration."""
- wakeword: WakewordTrainerConfig = field(default_factory=WakewordTrainerConfig)
- voice_recognition: VoiceRecognitionTrainerConfig = field(default_factory=VoiceRecognitionTrainerConfig)
- audio_processing: AudioProcessingConfig = field(default_factory=AudioProcessingConfig)
- data: DataConfig = field(default_factory=DataConfig)
- output: OutputConfig = field(default_factory=OutputConfig)
- device: str = "auto" # auto, cpu, cuda, mps
- num_workers: int = 4
- seed: int = 42
- verbose: bool = True
|