| 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}") |