Files
frigate/web/src/components/config-form/section-configs/audio_transcription.ts
T
Nicolas MowenandGitHub 334073967b
CI / AMD64 Build (push) Canceled after 0s
CI / AMD64 Smoke Test (push) Canceled after 0s
CI / ARM Build (push) Canceled after 0s
CI / Jetson Jetpack 6 (push) Canceled after 0s
CI / AMD64 Extra Build (push) Canceled after 0s
CI / ARM Extra Build (push) Canceled after 0s
CI / Synaptics Build (push) Canceled after 0s
CI / Assemble and push default build (push) Canceled after 0s
Support using GenAI for audio transcription (#24396)
* Add support for running transcription with GenAI

* Improve audio joining

* Fix GenAI model capability reporting

* Support language correctly

* Migrate existing users to keep english selected

* Fix models

* Fix tests

* Fix accepted null model

* Handle slwo providers
2026-09-17 16:34:47 -05:00

67 lines
2.2 KiB
TypeScript

import type { SectionConfigOverrides } from "./types";
const audioTranscription: SectionConfigOverrides = {
base: {
sectionDocs: "/configuration/audio_detectors#audio-transcription",
messages: [
{
key: "audio-detection-disabled",
health: (ctx) =>
ctx.fullCameraConfig?.audio_transcription?.enabled === true,
messageKey: "configMessages.audioTranscription.audioDetectionDisabled",
severity: "warning",
condition: (ctx) => {
if (ctx.level === "camera" && ctx.fullCameraConfig) {
return (
!ctx.fullCameraConfig.ffmpeg?.inputs?.some((input) =>
input.roles?.includes("audio"),
) || ctx.fullCameraConfig.audio.enabled === false
);
}
return false;
},
},
],
restartRequired: [],
fieldOrder: ["enabled", "language", "device", "model_size"],
hiddenFields: ["enabled_in_config", "live_enabled"],
advancedFields: ["language", "device", "model_size"],
overrideFields: ["enabled", "live_enabled"],
uiSchema: {
model_size: {
"ui:options": { size: "xs", enumI18nPrefix: "modelSize" },
},
},
},
global: {
fieldOrder: ["enabled", "model", "language", "device", "model_size"],
advancedFields: ["language", "device", "model_size"],
restartRequired: ["enabled", "model", "language", "device", "model_size"],
fieldMessages: [
{
key: "genai-provider-ignores-local-settings",
health: (ctx) => ctx.fullConfig.audio_transcription?.enabled === true,
field: "device",
messageKey: "configMessages.audioTranscription.genaiProviderSelected",
severity: "info",
position: "after",
condition: (ctx) =>
typeof ctx.formData?.model === "string" &&
ctx.formData.model !== "" &&
ctx.formData.model !== "whisper",
},
],
uiSchema: {
model: {
"ui:widget": "audioTranscriptionModel",
},
model_size: {
"ui:widget": "audioTranscriptionModelSize",
"ui:options": { size: "xs", enumI18nPrefix: "modelSize" },
},
},
},
};
export default audioTranscription;