nahue-passano's picture
Upload 6 files
22da9a9 verified
from pydantic import BaseModel
import yaml
class FrequencyConfig(BaseModel):
min: int
max: int
n_bins: int
class AcousticalConstantsConfig(BaseModel):
sound_speed: float
air_density: float
atmospheric_pressure: int
reference_pressure: float
measurement_distance: float
directivity_factor: int
class Config(BaseModel):
default_loudspeaker_cfg: str
frequency: FrequencyConfig
acoustical_constants: AcousticalConstantsConfig
def load_config(yaml_path: str) -> Config:
with open(yaml_path, "r") as file:
data = yaml.safe_load(file)
return Config(**data)
class ElectricalConfig(BaseModel):
input_voltage: float
coil_resistance: float
coil_inductance: float
class MechanicalConfig(BaseModel):
mass: float
compliance: float
resistance: float
class AcousticalConfig(BaseModel):
effective_diameter: float
class LoudspeakerConfig(BaseModel):
electrical: ElectricalConfig
electromechanical_factor: float
mechanical: MechanicalConfig
acoustical: AcousticalConfig
def load_loudspeaker_config(yaml_path: str) -> LoudspeakerConfig:
with open(yaml_path, "r") as file:
data = yaml.safe_load(file)
return LoudspeakerConfig(**data)