diff --git a/frigate/config/camera/camera.py b/frigate/config/camera/camera.py index 68f874138..f8b251240 100644 --- a/frigate/config/camera/camera.py +++ b/frigate/config/camera/camera.py @@ -20,6 +20,7 @@ from frigate.util.builtin import ( from ..base import FrigateBaseModel from ..classification import ( AudioTranscriptionConfig, + CameraAudioTranscriptionConfig, CameraFaceRecognitionConfig, CameraLicensePlateRecognitionConfig, CameraSemanticSearchConfig, @@ -88,6 +89,10 @@ class CameraConfig(FrigateBaseModel): lpr: CameraLicensePlateRecognitionConfig = Field( default_factory=CameraLicensePlateRecognitionConfig, title="LPR config." ) + audio_transcription: CameraAudioTranscriptionConfig = Field( + default_factory=CameraAudioTranscriptionConfig, + title="Audio transcription config.", + ) motion: MotionConfig = Field(None, title="Motion detection configuration.") objects: ObjectConfig = Field( default_factory=ObjectConfig, title="Object configuration." diff --git a/frigate/config/classification.py b/frigate/config/classification.py index 5cc07d28a..56126e4d4 100644 --- a/frigate/config/classification.py +++ b/frigate/config/classification.py @@ -8,6 +8,7 @@ from .base import FrigateBaseModel __all__ = [ "CameraFaceRecognitionConfig", "CameraLicensePlateRecognitionConfig", + "CameraAudioTranscriptionConfig", "FaceRecognitionConfig", "SemanticSearchConfig", "CameraSemanticSearchConfig", @@ -47,14 +48,11 @@ class AudioTranscriptionConfig(FrigateBaseModel): ) device: Optional[EnrichmentsDeviceEnum] = Field( default=EnrichmentsDeviceEnum.CPU, - title="The device used for license plate recognition.", + title="The device used for audio transcription.", ) model_size: str = Field( default="small", title="The size of the embeddings model used." ) - enabled_in_config: Optional[bool] = Field( - default=None, title="Keep track of original state of camera." - ) live_enabled: Optional[bool] = Field( default=False, title="Enable live transcriptions." ) @@ -304,3 +302,15 @@ class CameraLicensePlateRecognitionConfig(FrigateBaseModel): ) model_config = ConfigDict(extra="forbid", protected_namespaces=()) + + +class CameraAudioTranscriptionConfig(FrigateBaseModel): + enabled: bool = Field(default=False, title="Enable audio transcription.") + enabled_in_config: Optional[bool] = Field( + default=None, title="Keep track of original state of audio transcription." + ) + live_enabled: Optional[bool] = Field( + default=False, title="Enable live transcriptions." + ) + + model_config = ConfigDict(extra="forbid", protected_namespaces=())