summaryrefslogtreecommitdiff
path: root/apps/web/src/lib/transcription
diff options
context:
space:
mode:
authorMaze Winther <mazewinther@gmail.com>2026-04-14 18:17:14 +0200
committerMaze Winther <mazewinther@gmail.com>2026-04-14 18:17:14 +0200
commit6de6c7fd95de1de9d8d3107eaf7ce1dd150ed094 (patch)
tree75d5eb387b867449fc2218f5fe9b3acc70731561 /apps/web/src/lib/transcription
parent34c67ef8e85eafd6dfe6808280c807aceb00a345 (diff)
downloadopencut-6de6c7fd95de1de9d8d3107eaf7ce1dd150ed094.tar.gz
refactor: move constants to domain modules
Diffstat (limited to 'apps/web/src/lib/transcription')
-rw-r--r--apps/web/src/lib/transcription/audio.ts4
-rw-r--r--apps/web/src/lib/transcription/caption-defaults.ts2
-rw-r--r--apps/web/src/lib/transcription/caption.ts2
-rw-r--r--apps/web/src/lib/transcription/languages.ts14
-rw-r--r--apps/web/src/lib/transcription/models.ts34
-rw-r--r--apps/web/src/lib/transcription/supported-languages.ts1
-rw-r--r--apps/web/src/lib/transcription/types.ts2
7 files changed, 57 insertions, 2 deletions
diff --git a/apps/web/src/lib/transcription/audio.ts b/apps/web/src/lib/transcription/audio.ts
new file mode 100644
index 00000000..e2dc96d9
--- /dev/null
+++ b/apps/web/src/lib/transcription/audio.ts
@@ -0,0 +1,4 @@
+export const DEFAULT_TRANSCRIPTION_SAMPLE_RATE = 16000;
+
+export const DEFAULT_CHUNK_LENGTH_SECONDS = 30;
+export const DEFAULT_STRIDE_SECONDS = 5;
diff --git a/apps/web/src/lib/transcription/caption-defaults.ts b/apps/web/src/lib/transcription/caption-defaults.ts
new file mode 100644
index 00000000..fc277158
--- /dev/null
+++ b/apps/web/src/lib/transcription/caption-defaults.ts
@@ -0,0 +1,2 @@
+export const DEFAULT_WORDS_PER_CAPTION = 3;
+export const MIN_CAPTION_DURATION_SECONDS = 0.8;
diff --git a/apps/web/src/lib/transcription/caption.ts b/apps/web/src/lib/transcription/caption.ts
index 6f73ddec..5e23bad8 100644
--- a/apps/web/src/lib/transcription/caption.ts
+++ b/apps/web/src/lib/transcription/caption.ts
@@ -2,7 +2,7 @@ import type { TranscriptionSegment, CaptionChunk } from "@/lib/transcription/typ
import {
DEFAULT_WORDS_PER_CAPTION,
MIN_CAPTION_DURATION_SECONDS,
-} from "@/constants/transcription-constants";
+} from "@/lib/transcription/caption-defaults";
export function buildCaptionChunks({
segments,
diff --git a/apps/web/src/lib/transcription/languages.ts b/apps/web/src/lib/transcription/languages.ts
new file mode 100644
index 00000000..e5678145
--- /dev/null
+++ b/apps/web/src/lib/transcription/languages.ts
@@ -0,0 +1,14 @@
+export const LANGUAGES = [
+ { code: "en", name: "English" },
+ { code: "es", name: "Spanish" },
+ { code: "it", name: "Italian" },
+ { code: "fr", name: "French" },
+ { code: "de", name: "German" },
+ { code: "pt", name: "Portuguese" },
+ { code: "ru", name: "Russian" },
+ { code: "ja", name: "Japanese" },
+ { code: "zh", name: "Chinese" },
+] as const;
+
+export type Language = (typeof LANGUAGES)[number];
+export type LanguageCode = Language["code"];
diff --git a/apps/web/src/lib/transcription/models.ts b/apps/web/src/lib/transcription/models.ts
new file mode 100644
index 00000000..ee9047e7
--- /dev/null
+++ b/apps/web/src/lib/transcription/models.ts
@@ -0,0 +1,34 @@
+import type {
+ TranscriptionModel,
+ TranscriptionModelId,
+} from "./types";
+
+export const TRANSCRIPTION_MODELS: TranscriptionModel[] = [
+ {
+ id: "whisper-tiny",
+ name: "Tiny",
+ huggingFaceId: "onnx-community/whisper-tiny",
+ description: "Fastest, lower accuracy",
+ },
+ {
+ id: "whisper-small",
+ name: "Small",
+ huggingFaceId: "onnx-community/whisper-small",
+ description: "Good balance of speed and accuracy",
+ },
+ {
+ id: "whisper-medium",
+ name: "Medium",
+ huggingFaceId: "onnx-community/whisper-medium",
+ description: "Higher accuracy, slower",
+ },
+ {
+ id: "whisper-large-v3-turbo",
+ name: "Large v3 Turbo",
+ huggingFaceId: "onnx-community/whisper-large-v3-turbo",
+ description: "Best accuracy, requires WebGPU for good performance",
+ },
+];
+
+export const DEFAULT_TRANSCRIPTION_MODEL: TranscriptionModelId =
+ "whisper-small";
diff --git a/apps/web/src/lib/transcription/supported-languages.ts b/apps/web/src/lib/transcription/supported-languages.ts
new file mode 100644
index 00000000..0adc1332
--- /dev/null
+++ b/apps/web/src/lib/transcription/supported-languages.ts
@@ -0,0 +1 @@
+export { LANGUAGES as TRANSCRIPTION_LANGUAGES } from "./languages";
diff --git a/apps/web/src/lib/transcription/types.ts b/apps/web/src/lib/transcription/types.ts
index c4a87aa8..7ab0da7f 100644
--- a/apps/web/src/lib/transcription/types.ts
+++ b/apps/web/src/lib/transcription/types.ts
@@ -1,4 +1,4 @@
-import type { LanguageCode } from "@/constants/language-constants";
+import type { LanguageCode } from "./languages";
export type TranscriptionLanguage = LanguageCode | "auto";