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