import logging from pydantic import BaseModel from pydantic_settings import BaseSettings from typing import Optional, Literal logger = logging.getLogger(__name__) class ModelSettings(BaseSettings): asr_model: openai/whisper-large-v3 assistant_model: distil-whisper/distil-large-v3 diarization_model: pyannote/speaker-diarization-3.1 hf_token: Optional[str] class InferenceConfig(BaseModel): task: Literal["transcribe", "translate"] = "transcribe" batch_size: int = 24 assisted: bool = False chunk_length_s: int = 30 sampling_rate: int = 16000 language: Optional[str] = None num_speakers: Optional[int] = None min_speakers: Optional[int] = None max_speakers: Optional[int] = None model_settings = ModelSettings() logger.info(f"asr model: {model_settings.asr_model}") logger.info(f"assist model: {model_settings.assistant_model}") logger.info(f"diar model: {model_settings.diarization_model}")