| 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: str | |
| assistant_model: Optional[str] | |
| diarization_model: Optional[str] | |
| 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}") |