From d5d23202a9d03231259c8e42e2267f8b5ab8718c Mon Sep 17 00:00:00 2001 From: eeeeeaaan Date: Tue, 25 Aug 2026 23:22:54 +0900 Subject: [PATCH 01/16] fix: show only the final AI-translated sentence, not the live caption The live recognized-word caption overlay and the AI-translated sentence banner were both visible at once, which is redundant now that the translation delay is short enough not to matter. Remove the caption overlay (ActiveSignOverlay) entirely and keep only the translated sentence banner at the bottom of the view. Co-Authored-By: Claude Sonnet 5 --- .../sign-capture/ui/sign-capture-view.tsx | 65 ------------------- 1 file changed, 65 deletions(-) diff --git a/src/features/sign-capture/ui/sign-capture-view.tsx b/src/features/sign-capture/ui/sign-capture-view.tsx index 340fac5..bd19bd9 100644 --- a/src/features/sign-capture/ui/sign-capture-view.tsx +++ b/src/features/sign-capture/ui/sign-capture-view.tsx @@ -4,7 +4,6 @@ import { Bot, Camera, CameraOff, - CheckCircle2, ChevronDown, Eye, EyeOff, @@ -91,57 +90,6 @@ function CameraStatusBar({ ); } -function ActiveSignOverlay({ - activeSign, - wordBuffer, - isComposing, -}: { - activeSign: RecognizedSign | null; - wordBuffer: string[]; - isComposing: boolean; -}) { - // Caption-style accumulated words ("날씨 맛있다"), not chips -- the live single-word - // indicator (below) is a separate, smaller strip so it no longer blocks the caption once - // a second word starts accumulating. - const caption = wordBuffer.length > 0 ? wordBuffer.join(" ") : null; - - return ( -
- {activeSign && ( -
- {activeSign.icon} - {activeSign.label} - - {Math.round(activeSign.confidence * 100)}% - - - - 인식 중 - -
- )} - - {caption ? ( -
- {isComposing ? ( - - ) : ( - - )} - {caption} -
- ) : ( - !activeSign && ( -
- - 수어 동작이나 제스처를 취하면 실시간으로 인식되고 문장으로 합성됩니다 -
- ) - )} -
- ); -} - function SentenceResultBanner({ composedSentence, isComposing, @@ -380,9 +328,7 @@ export function SignCaptureView({ detectedHandsCount, isArmDetected, isComposing, - activeSign, recentSigns, - wordBuffer, composedSentence, references, toggleCamera, @@ -474,17 +420,6 @@ export function SignCaptureView({ {(!isCameraActive || cameraError) && ( )} - - {/* Bottom Active Recognized Sign HUD */} - {isCameraActive && ( -
- -
- )} {/* AI Translated Natural Sentence Banner */} From 948036f089c410f37e493dc615b71e6443cdc689 Mon Sep 17 00:00:00 2001 From: eeeeeaaan Date: Tue, 25 Aug 2026 23:28:05 +0900 Subject: [PATCH 02/16] feat: replace single-click DTW word capture with a 10s auto-split take MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Registering a custom sign word required timing a single click against a 30-frame rolling window at exactly the right instant mid-gesture -- too fiddly to use reliably. Replace it with a guided take: the signer clicks "학습 시작", repeats the gesture once per second for 10 seconds while a live counter/progress ticks, and the continuous recording is automatically bucketed by elapsed second into up to 10 reference samples (matching dtw.ts's MAX_SAMPLES_PER_WORD), replacing whatever was previously stored for that word. Co-Authored-By: Claude Sonnet 5 --- .../sign-capture/model/use-sign-capture.ts | 131 ++++++++++++++++-- .../sign-capture/ui/sign-capture-view.tsx | 106 ++++++++++---- 2 files changed, 201 insertions(+), 36 deletions(-) diff --git a/src/features/sign-capture/model/use-sign-capture.ts b/src/features/sign-capture/model/use-sign-capture.ts index bd6380d..bd73b3e 100644 --- a/src/features/sign-capture/model/use-sign-capture.ts +++ b/src/features/sign-capture/model/use-sign-capture.ts @@ -43,10 +43,15 @@ export interface UseSignCaptureReturn { wordBuffer: string[]; composedSentence: string | null; references: Record; + isRecordingWord: boolean; + recordingSecond: number; + recordingTotalSeconds: number; + recordingResult: { ok: boolean; message: string } | null; toggleCamera: () => void; toggleSkeleton: () => void; clearHistory: () => void; - recordReference: (word: string) => boolean; + startRecordingReference: (word: string) => boolean; + cancelRecordingReference: () => void; removeReference: (word: string) => void; } @@ -55,6 +60,14 @@ const NO_SIGN_STREAK_TO_RESET = 5; const UTTERANCE_PAUSE_MS = 3000; // How many prior turns (both sides combined) to send as context with each compose call. const MAX_HISTORY_TURNS = 12; +// Custom-word recording: the signer repeats the gesture once per second for this long, and +// the continuous recording is split into one DTW reference sample per second -- this matches +// dtw.ts's MAX_SAMPLES_PER_WORD (10), so a single take fully replaces a word's reference set. +const RECORD_TOTAL_SECONDS = 10; +const RECORD_REPS = RECORD_TOTAL_SECONDS; +// Skip a per-second bucket that's mostly empty (hand out of frame, dropped frames) rather +// than saving a near-empty/garbage reference sample for it. +const MIN_SEGMENT_FRAMES = 5; function renderLandmarksToCanvas( canvas: HTMLCanvasElement | null, @@ -153,6 +166,14 @@ export function useSignCapture( const historyRef = useRef([]); const processedCaptionIdsRef = useRef>(new Set()); + // Custom-word (DTW) recording: continuously buffers frames for RECORD_TOTAL_SECONDS while + // recordingWordRef is set, then finishRecordingReference splits them into per-second samples. + const recordingWordRef = useRef(null); + const recordingFramesRef = useRef<{ t: number; f: number[] }[]>([]); + const recordingStartRef = useRef(0); + const recordingTickTimerRef = useRef | null>(null); + const recordingEndTimerRef = useRef | null>(null); + const [isCameraActive, setIsCameraActive] = useState(true); const [cameraError, setCameraError] = useState(false); const [showSkeleton, setShowSkeleton] = useState(true); @@ -166,6 +187,11 @@ export function useSignCapture( const [recognizedText, setRecognizedText] = useState(null); const [composedSentence, setComposedSentence] = useState(null); const [references, setReferences] = useState>(() => listReferences()); + const [isRecordingWord, setIsRecordingWord] = useState(false); + const [recordingSecond, setRecordingSecond] = useState(0); + const [recordingResult, setRecordingResult] = useState<{ ok: boolean; message: string } | null>( + null, + ); // Start webcam stream const startCamera = useCallback(async () => { @@ -241,6 +267,8 @@ export function useSignCapture( return () => { stopCamera(); if (utteranceTimerRef.current) clearTimeout(utteranceTimerRef.current); + if (recordingTickTimerRef.current) clearInterval(recordingTickTimerRef.current); + if (recordingEndTimerRef.current) clearTimeout(recordingEndTimerRef.current); }; }, [startCamera, stopCamera]); @@ -378,9 +406,14 @@ export function useSignCapture( ); const { leftHandLandmarks, rightHandLandmarks } = splitHandsByHandedness(handResult); - windowRef.current.push( - extractFeatures({ poseLandmarks, leftHandLandmarks, rightHandLandmarks }), - ); + const features = extractFeatures({ poseLandmarks, leftHandLandmarks, rightHandLandmarks }); + windowRef.current.push(features); + if (recordingWordRef.current) { + recordingFramesRef.current.push({ + t: performance.now() - recordingStartRef.current, + f: features, + }); + } const frames = windowRef.current.toArray(); if (!frames || predictingRef.current) return; @@ -419,12 +452,85 @@ export function useSignCapture( handleLandmarkerResult, ); - const recordReference = useCallback((word: string): boolean => { - const frames = windowRef.current.toArray(); - if (!frames || !word.trim()) return false; - saveReference(word.trim(), frames); + // Splits the just-recorded continuous take into one reference sample per second (bucketed + // by elapsed time, not frame count, so it's robust to frame-rate jitter) and replaces the + // word's entire reference set with them -- a full 10s take is meant to supersede whatever + // was recorded before, not accumulate alongside it. + const finishRecordingReference = useCallback(() => { + if (recordingTickTimerRef.current) clearInterval(recordingTickTimerRef.current); + if (recordingEndTimerRef.current) clearTimeout(recordingEndTimerRef.current); + recordingTickTimerRef.current = null; + recordingEndTimerRef.current = null; + + const word = recordingWordRef.current; + const frames = recordingFramesRef.current; + recordingWordRef.current = null; + recordingFramesRef.current = []; + setIsRecordingWord(false); + setRecordingSecond(0); + if (!word) return; + + const buckets: number[][][] = Array.from({ length: RECORD_REPS }, () => []); + for (const { t, f } of frames) { + const idx = Math.min(RECORD_REPS - 1, Math.floor(t / 1000)); + buckets[idx]?.push(f); + } + + clearReference(word); + let saved = 0; + for (const bucket of buckets) { + if (bucket.length < MIN_SEGMENT_FRAMES) continue; + saveReference(word, bucket); + saved += 1; + } setReferences(listReferences()); - return true; + setRecordingResult( + saved > 0 + ? { ok: true, message: `'${word}' 동작 샘플 ${saved}개를 저장했습니다.` } + : { + ok: false, + message: "동작이 감지되지 않았습니다. 손이 잘 보이는 곳에서 다시 시도해주세요.", + }, + ); + }, []); + + const startRecordingReference = useCallback( + (word: string): boolean => { + const trimmed = word.trim(); + if (!trimmed || recordingWordRef.current) return false; + + recordingWordRef.current = trimmed; + recordingFramesRef.current = []; + recordingStartRef.current = performance.now(); + setRecordingResult(null); + setRecordingSecond(1); + setIsRecordingWord(true); + + recordingTickTimerRef.current = setInterval(() => { + const elapsedMs = performance.now() - recordingStartRef.current; + setRecordingSecond(Math.min(RECORD_TOTAL_SECONDS, Math.floor(elapsedMs / 1000) + 1)); + }, 1000); + recordingEndTimerRef.current = setTimeout( + finishRecordingReference, + RECORD_TOTAL_SECONDS * 1000, + ); + + return true; + }, + [finishRecordingReference], + ); + + const cancelRecordingReference = useCallback(() => { + if (!recordingWordRef.current) return; + if (recordingTickTimerRef.current) clearInterval(recordingTickTimerRef.current); + if (recordingEndTimerRef.current) clearTimeout(recordingEndTimerRef.current); + recordingTickTimerRef.current = null; + recordingEndTimerRef.current = null; + recordingWordRef.current = null; + recordingFramesRef.current = []; + setIsRecordingWord(false); + setRecordingSecond(0); + setRecordingResult(null); }, []); const removeReference = useCallback((word: string) => { @@ -450,10 +556,15 @@ export function useSignCapture( recognizedText, composedSentence, references, + isRecordingWord, + recordingSecond, + recordingTotalSeconds: RECORD_TOTAL_SECONDS, + recordingResult, toggleCamera, toggleSkeleton, clearHistory, - recordReference, + startRecordingReference, + cancelRecordingReference, removeReference, }; } diff --git a/src/features/sign-capture/ui/sign-capture-view.tsx b/src/features/sign-capture/ui/sign-capture-view.tsx index bd19bd9..8265ac1 100644 --- a/src/features/sign-capture/ui/sign-capture-view.tsx +++ b/src/features/sign-capture/ui/sign-capture-view.tsx @@ -198,26 +198,29 @@ function RecentSignsHistory({ function CustomWordRecorder({ references, - onRecord, + isRecording, + recordingSecond, + recordingTotalSeconds, + recordingResult, + onStartRecording, + onCancelRecording, onRemove, }: { references: Record; - onRecord: (word: string) => boolean; + isRecording: boolean; + recordingSecond: number; + recordingTotalSeconds: number; + recordingResult: { ok: boolean; message: string } | null; + onStartRecording: (word: string) => boolean; + onCancelRecording: () => void; onRemove: (word: string) => void; }) { const [newWord, setNewWord] = useState(""); - const [recordHint, setRecordHint] = useState(null); - const handleRecord = () => { + const handleStart = () => { const word = newWord.trim(); if (!word) return; - const ok = onRecord(word); - if (ok) { - setRecordHint(`'${word}' 동작 샘플을 저장했습니다.`); - setNewWord(""); - } else { - setRecordHint("카메라 프레임이 충분히 모이지 않았습니다. 잠시 후 다시 눌러주세요."); - } + onStartRecording(word); }; return ( @@ -228,27 +231,67 @@ function CustomWordRecorder({

- 기본 모델에 없는 단어(예: 병원, 예약, 도움)를 카메라 앞에서 표현한 뒤 "이 동작 저장"을 - 누르면, 브라우저가 기억하여 다음부터 인식합니다. + 기본 모델에 없는 단어(예: 병원, 예약, 도움)를 등록해보세요. "학습 시작"을 누르면{" "} + {recordingTotalSeconds}초 동안 1초에 한 번씩 그 단어의 동작을 반복해주시면 자동으로 나눠서 + 저장합니다.

setNewWord(e.target.value)} + disabled={isRecording} className="h-9 border-neutral-700 bg-neutral-800/80 text-xs text-white" /> - + {isRecording ? ( + + ) : ( + + )}
- {recordHint &&

{recordHint}

} + + {isRecording && ( +
+ + {recordingSecond}초 / {recordingTotalSeconds}초 — 1초에 한 번씩 동작을 반복해주세요 + +
+ {Array.from({ length: recordingTotalSeconds }, (_, i) => ( +
+ ))} +
+
+ )} + + {!isRecording && recordingResult && ( +

+ {recordingResult.message} +

+ )} + {Object.keys(references).length > 0 && (
    {Object.entries(references).map(([word, count]) => ( @@ -259,7 +302,8 @@ function CustomWordRecorder({ + <> + + + ) : (
)} @@ -504,6 +519,7 @@ export function SignCaptureView({ toggleSkeleton, clearHistory, startRecordingReference, + finishRecordingNow, cancelRecordingReference, removeReference, } = useSignCapture(room, captions); @@ -625,6 +641,7 @@ export function SignCaptureView({ recordingRepIntervalSeconds={recordingRepIntervalSeconds} recordingResult={recordingResult} onStartRecording={startRecordingReference} + onFinishNow={finishRecordingNow} onCancelRecording={cancelRecordingReference} onRemove={removeReference} /> From fd20c24e5d3d7051d9d0e0dec590d89f38fe3748 Mon Sep 17 00:00:00 2001 From: eeeeeaaan Date: Wed, 26 Aug 2026 00:46:11 +0900 Subject: [PATCH 11/16] fix: prefer a matched custom word over the base LSTM guess finalCandidate was lstmCandidate ?? dtwMatch?.word -- LSTM always wins when confident. But the LSTM is a 12-class softmax (11 words + "no action") that always emits some top-1 guess, so it routinely produced a confident-enough label for arbitrary hand motion and permanently shadowed DTW candidates: a registered custom word could match the DTW reference perfectly and still never be the one shown, because the base model's generic guess for that frame took priority every time. Flip it: a DTW match (a deliberate, user-trained signal) now wins over the LSTM's generic guess, which becomes the fallback for words that aren't custom-registered. Co-Authored-By: Claude Sonnet 5 --- .../sign-capture/model/use-sign-capture.ts | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/features/sign-capture/model/use-sign-capture.ts b/src/features/sign-capture/model/use-sign-capture.ts index ec128ed..bc6cab3 100644 --- a/src/features/sign-capture/model/use-sign-capture.ts +++ b/src/features/sign-capture/model/use-sign-capture.ts @@ -99,10 +99,15 @@ interface ResolvedPrediction { debug: RecognitionDebug; } -// Combines the LSTM's per-frame classification with the closest DTW reference match (LSTM -// wins when confident, DTW is the fallback for custom words) and packages a debug snapshot -// alongside it -- pulled out of handleLandmarkerResult's predictSign callback to keep that -// callback's cognitive complexity down. +// Combines the LSTM's per-frame classification with the closest DTW reference match -- +// DTW wins whenever a custom word matches, LSTM is the fallback for the 11 base words. A +// registered custom word is a deliberate, user-trained signal; the base LSTM model was +// previously checked first and, since it always emits *some* top-1 guess (softmax over 12 +// classes, including "no action"), it routinely produced a confident-enough guess for +// arbitrary hand motion and permanently shadowed DTW candidates -- a custom word could match +// perfectly and still never win. Packages a debug snapshot alongside the result -- pulled out +// of handleLandmarkerResult's predictSign callback to keep that callback's cognitive +// complexity down. function resolvePrediction( frames: number[][], label: string | null, @@ -120,9 +125,9 @@ function resolvePrediction( const dtwConfidence = dtwMatch ? Math.max(0, 1 - dtwMatch.distance / DEFAULT_DTW_THRESHOLD) : 0; return { - finalCandidate: lstmCandidate ?? dtwMatch?.word ?? null, - finalConfidence: lstmCandidate ? confidence : dtwConfidence, - isDtw: !lstmCandidate, + finalCandidate: dtwMatch?.word ?? lstmCandidate ?? null, + finalConfidence: dtwMatch ? dtwConfidence : confidence, + isDtw: Boolean(dtwMatch), debug: { lstmLabel: label, lstmConfidence: confidence, From a2318f967d94346cf389703d5e3c1209919fbbb1 Mon Sep 17 00:00:00 2001 From: eeeeeaaan Date: Wed, 26 Aug 2026 01:04:24 +0900 Subject: [PATCH 12/16] feat: remove the pretrained LSTM model, recognition is DTW-only now The hybrid LSTM+DTW setup kept producing conflicting-priority bugs: a registered custom word could DTW-match perfectly and still never win, because the LSTM (a 12-class softmax that always emits some top-1 guess, including for arbitrary hand motion) was checked first and routinely produced a confident-enough guess that shadowed it. Every attempt to patch the interaction between the two systems just moved the bug rather than removing the cause. Drop the LSTM path entirely: - Delete sign-model.ts (model loading, tensor inference, SIGN_LABELS, CONFIDENCE_THRESHOLD) and the @tensorflow/tfjs dependency (~800kB, gone from the build output entirely) and public/ksl/model assets. - Keep KSL_WORD_METADATA (icons/descriptions) in a new word-metadata.ts -- now just a "suggested starter vocabulary" for the guide, not a promise that these words already work. - resolvePrediction is now pure DTW lookup; handleKslPrediction and updateCandidateStreak drop the isDtw/requiredStreak split (was 1 for DTW vs 2 for LSTM) since only one recognition source remains. - handleKslPrediction is now called every frame including with a null candidate (previously gated behind `if (finalCandidate)`), which was itself a real bug: the "no sign" streak logic that clears the live indicator and lets the same word be confirmed again after a pause never ran when nothing was recognized, because the function that contains that logic was never invoked on those frames. Tradeoff: every word, including a starter vocabulary, now has to actually be recorded by the signer before it's recognized -- there is no zero-setup recognition anymore. In exchange, recognition behavior is fully predictable: whatever is recorded is what gets recognized, with no competing system that can silently override it. Co-Authored-By: Claude Sonnet 5 --- bun.lock | 83 +------ package.json | 1 - public/ksl/model/NOTICE.md | 14 -- public/ksl/model/group1-shard1of1.bin | Bin 362160 -> 0 bytes public/ksl/model/model.json | 207 ------------------ src/features/sign-capture/model/sign-model.ts | 71 ------ .../sign-capture/model/use-sign-capture.ts | 117 ++++------ .../sign-capture/model/word-metadata.ts | 17 ++ .../sign-capture/ui/sign-capture-view.tsx | 29 +-- 9 files changed, 74 insertions(+), 465 deletions(-) delete mode 100644 public/ksl/model/NOTICE.md delete mode 100644 public/ksl/model/group1-shard1of1.bin delete mode 100644 public/ksl/model/model.json delete mode 100644 src/features/sign-capture/model/sign-model.ts create mode 100644 src/features/sign-capture/model/word-metadata.ts diff --git a/bun.lock b/bun.lock index 16942a6..6a01ed0 100644 --- a/bun.lock +++ b/bun.lock @@ -17,7 +17,6 @@ "@tailwindcss/vite": "^4.3.3", "@tanstack/react-query": "^5.102.1", "@tanstack/react-router": "^1.170.32", - "@tensorflow/tfjs": "^4.22.0", "axios": "^1.19.0", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", @@ -543,40 +542,18 @@ "@tanstack/virtual-file-routes": ["@tanstack/virtual-file-routes@1.162.0", "", {}, "sha512-uhOeFyxLcU41HzvrxsGpiWdcMbScY1EDgbZ5K7DVRMYInbLYWAC0EA/kx9wXAoSM8q82bUG2hRl8+EAjE6XAbA=="], - "@tensorflow/tfjs": ["@tensorflow/tfjs@4.22.0", "", { "dependencies": { "@tensorflow/tfjs-backend-cpu": "4.22.0", "@tensorflow/tfjs-backend-webgl": "4.22.0", "@tensorflow/tfjs-converter": "4.22.0", "@tensorflow/tfjs-core": "4.22.0", "@tensorflow/tfjs-data": "4.22.0", "@tensorflow/tfjs-layers": "4.22.0", "argparse": "^1.0.10", "chalk": "^4.1.0", "core-js": "3.29.1", "regenerator-runtime": "^0.13.5", "yargs": "^16.0.3" }, "bin": { "tfjs-custom-module": "dist/tools/custom_module/cli.js" } }, "sha512-0TrIrXs6/b7FLhLVNmfh8Sah6JgjBPH4mZ8JGb7NU6WW+cx00qK5BcAZxw7NCzxj6N8MRAIfHq+oNbPUNG5VAg=="], - - "@tensorflow/tfjs-backend-cpu": ["@tensorflow/tfjs-backend-cpu@4.22.0", "", { "dependencies": { "@types/seedrandom": "^2.4.28", "seedrandom": "^3.0.5" }, "peerDependencies": { "@tensorflow/tfjs-core": "4.22.0" } }, "sha512-1u0FmuLGuRAi8D2c3cocHTASGXOmHc/4OvoVDENJayjYkS119fcTcQf4iHrtLthWyDIPy3JiPhRrZQC9EwnhLw=="], - - "@tensorflow/tfjs-backend-webgl": ["@tensorflow/tfjs-backend-webgl@4.22.0", "", { "dependencies": { "@tensorflow/tfjs-backend-cpu": "4.22.0", "@types/offscreencanvas": "~2019.3.0", "@types/seedrandom": "^2.4.28", "seedrandom": "^3.0.5" }, "peerDependencies": { "@tensorflow/tfjs-core": "4.22.0" } }, "sha512-H535XtZWnWgNwSzv538czjVlbJebDl5QTMOth4RXr2p/kJ1qSIXE0vZvEtO+5EC9b00SvhplECny2yDewQb/Yg=="], - - "@tensorflow/tfjs-converter": ["@tensorflow/tfjs-converter@4.22.0", "", { "peerDependencies": { "@tensorflow/tfjs-core": "4.22.0" } }, "sha512-PT43MGlnzIo+YfbsjM79Lxk9lOq6uUwZuCc8rrp0hfpLjF6Jv8jS84u2jFb+WpUeuF4K33ZDNx8CjiYrGQ2trQ=="], - - "@tensorflow/tfjs-core": ["@tensorflow/tfjs-core@4.22.0", "", { "dependencies": { "@types/long": "^4.0.1", "@types/offscreencanvas": "~2019.7.0", "@types/seedrandom": "^2.4.28", "@webgpu/types": "0.1.38", "long": "4.0.0", "node-fetch": "~2.6.1", "seedrandom": "^3.0.5" } }, "sha512-LEkOyzbknKFoWUwfkr59vSB68DMJ4cjwwHgicXN0DUi3a0Vh1Er3JQqCI1Hl86GGZQvY8ezVrtDIvqR1ZFW55A=="], - - "@tensorflow/tfjs-data": ["@tensorflow/tfjs-data@4.22.0", "", { "dependencies": { "@types/node-fetch": "^2.1.2", "node-fetch": "~2.6.1", "string_decoder": "^1.3.0" }, "peerDependencies": { "@tensorflow/tfjs-core": "4.22.0", "seedrandom": "^3.0.5" } }, "sha512-dYmF3LihQIGvtgJrt382hSRH4S0QuAp2w1hXJI2+kOaEqo5HnUPG0k5KA6va+S1yUhx7UBToUKCBHeLHFQRV4w=="], - - "@tensorflow/tfjs-layers": ["@tensorflow/tfjs-layers@4.22.0", "", { "peerDependencies": { "@tensorflow/tfjs-core": "4.22.0" } }, "sha512-lybPj4ZNj9iIAPUj7a8ZW1hg8KQGfqWLlCZDi9eM/oNKCCAgchiyzx8OrYoWmRrB+AM6VNEeIT+2gZKg5ReihA=="], - "@ts-morph/common": ["@ts-morph/common@0.27.0", "", { "dependencies": { "fast-glob": "^3.3.3", "minimatch": "^10.0.1", "path-browserify": "^1.0.1" } }, "sha512-Wf29UqxWDpc+i61k3oIOzcUfQt79PIT9y/MWfAGlrkjg6lBC1hwDECLXPVJAhWjiGbfBCxZd65F/LIZF3+jeJQ=="], "@types/bun": ["@types/bun@1.4.0", "", { "dependencies": { "bun-types": "1.4.0" } }, "sha512-K+lZULY23vRgK/CfTjFIV+tyifaNdSMlPh9j+6mQ/cLfpOznLyAuzgV/JQysyECpkBQLVMSyvjlr2fBUSA9wFQ=="], "@types/dom-mediacapture-record": ["@types/dom-mediacapture-record@1.0.22", "", {}, "sha512-mUMZLK3NvwRLcAAT9qmcK+9p7tpU2FHdDsntR3YI4+GY88XrgG4XiE7u1Q2LAN2/FZOz/tdMDC3GQCR4T8nFuw=="], - "@types/long": ["@types/long@4.0.2", "", {}, "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA=="], - "@types/node": ["@types/node@26.2.0", "", { "dependencies": { "undici-types": "~8.3.0" } }, "sha512-5IviulTZeRNp2vAJ514cc/HUlY5nZ9fCbq9DMyC52BrhFZACo3nI0R7qBxhQmo/d27NFe96ur/b7Wwxklda+kg=="], - "@types/node-fetch": ["@types/node-fetch@2.6.13", "", { "dependencies": { "@types/node": "*", "form-data": "^4.0.4" } }, "sha512-QGpRVpzSaUs30JBSGPjOg4Uveu384erbHBoT1zeONvyCfwQxIkUshLAOqN/k9EjGviPRmWTTe6aH2qySWKTVSw=="], - - "@types/offscreencanvas": ["@types/offscreencanvas@2019.3.0", "", {}, "sha512-esIJx9bQg+QYF0ra8GnvfianIY8qWB0GBx54PK5Eps6m+xTj86KLavHv6qDhzKcu5UUOgNfJ2pWaIIV7TRUd9Q=="], - "@types/react": ["@types/react@19.2.18", "", { "dependencies": { "csstype": "^3.2.2" } }, "sha512-AnzbBERsrLKtk2XSfTbYRLjQPdy116Sty4q+T+Bp3IC4l6jNBvreVPAHmpq9qhXQM7CXZPjLVmGMw9sy+hxQ3w=="], "@types/react-dom": ["@types/react-dom@19.2.4", "", { "peerDependencies": { "@types/react": "^19.2.0" } }, "sha512-Bsc+QHgp+P/F02XDzNCY9jnZNCUuLki36KT7VKrTXXLdHf+vHMNZnW1rVu5DNW/rCK+fya3DATySbLM4yhtKUw=="], - "@types/seedrandom": ["@types/seedrandom@2.4.34", "", {}, "sha512-ytDiArvrn/3Xk6/vtylys5tlY6eo7Ane0hvcx++TKo6RxQXuVfW0AF/oeWqAj9dN29SyhtawuXstgmPlwNcv/A=="], - "@types/validate-npm-package-name": ["@types/validate-npm-package-name@4.0.2", "", {}, "sha512-lrpDziQipxCEeK5kWxvljWYhUvOiB2A9izZd9B2AFarYAkqZshb4lPbRs7zKEic6eGtH8V/2qJW+dPp9OtF6bw=="], "@typescript/typescript-aix-ppc64": ["@typescript/typescript-aix-ppc64@7.0.2", "", { "os": "aix", "cpu": "ppc64" }, "sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ=="], @@ -621,8 +598,6 @@ "@vitejs/plugin-react": ["@vitejs/plugin-react@6.1.0", "", { "dependencies": { "@rolldown/pluginutils": "^1.0.1" }, "peerDependencies": { "@rolldown/plugin-babel": "^0.1.7 || ^0.2.0", "babel-plugin-react-compiler": "^1.0.0", "oxc-transform-react": "^0.145.0", "vite": "^8.0.0" }, "optionalPeers": ["@rolldown/plugin-babel", "babel-plugin-react-compiler", "oxc-transform-react"] }, "sha512-qd2BzUBehkov86WFhg0JkEFEYyCLG9uPCe6qWTY/kRlss9OvJrOF2UbIWT7p+8IzZHkEu0DNGHc4HSv+JdDLsw=="], - "@webgpu/types": ["@webgpu/types@0.1.38", "", {}, "sha512-7LrhVKz2PRh+DD7+S+PVaFd5HxaWQvoMqBbsV9fNJO1pjUs1P8bM2vQVNfk+3URTqbuTI7gkXi0rfsN0IadoBA=="], - "accepts": ["accepts@2.0.0", "", { "dependencies": { "mime-types": "^3.0.0", "negotiator": "^1.0.0" } }, "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng=="], "agent-base": ["agent-base@6.0.2", "", { "dependencies": { "debug": "4" } }, "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ=="], @@ -639,7 +614,7 @@ "ansis": ["ansis@4.3.1", "", {}, "sha512-BJ8/l4R5LRE7hW9WdSuGYrLSHi2ynxeFpDFbH0K/CgNeY/tyhk+vO6TYxXC5r5CpUhNVX310xzPsN/H9lCdfOA=="], - "argparse": ["argparse@1.0.10", "", { "dependencies": { "sprintf-js": "~1.0.2" } }, "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg=="], + "argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], "aria-hidden": ["aria-hidden@1.2.6", "", { "dependencies": { "tslib": "^2.0.0" } }, "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA=="], @@ -681,7 +656,7 @@ "caniuse-lite": ["caniuse-lite@1.0.30001809", "", {}, "sha512-xxWVywk6a6Arlk+hymeycyn/VgqEfLDxupvhH/xiY5SJ/18kmi9o6MiO320DCUzypORHLtvh0I4i04tUhCNHNQ=="], - "chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "chalk": ["chalk@5.6.2", "", {}, "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA=="], "chokidar": ["chokidar@5.0.0", "", { "dependencies": { "readdirp": "^5.0.0" } }, "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw=="], @@ -719,8 +694,6 @@ "cookie-signature": ["cookie-signature@1.2.2", "", {}, "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg=="], - "core-js": ["core-js@3.29.1", "", {}, "sha512-+jwgnhg6cQxKYIIjGtAHq2nwUOolo9eoFZ4sHfUH09BLXBgxnH4gA0zEd+t+BO2cNB8idaBtZFcFTRjQJRJmAw=="], - "cors": ["cors@2.8.6", "", { "dependencies": { "object-assign": "^4", "vary": "^1" } }, "sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw=="], "cosmiconfig": ["cosmiconfig@9.0.2", "", { "dependencies": { "env-paths": "^2.2.1", "import-fresh": "^3.3.0", "js-yaml": "^4.1.0", "parse-json": "^5.2.0" }, "peerDependencies": { "typescript": ">=4.9.5" }, "optionalPeers": ["typescript"] }, "sha512-gtTZxTDau1wL7Y7zifc2dd8jHSK/k6BTx/2Xp/BpdlAdnlYWFVt7qhJqgwi7637yRwRQ3qL4ZidbB4I8tA5VOg=="], @@ -883,8 +856,6 @@ "graceful-fs": ["graceful-fs@4.2.11", "", {}, "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="], - "has-flag": ["has-flag@4.0.0", "", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="], - "has-symbols": ["has-symbols@1.1.0", "", {}, "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ=="], "has-tostringtag": ["has-tostringtag@1.0.2", "", { "dependencies": { "has-symbols": "^1.0.3" } }, "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw=="], @@ -1031,8 +1002,6 @@ "loglevel": ["loglevel@1.9.2", "", {}, "sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg=="], - "long": ["long@4.0.0", "", {}, "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA=="], - "lru-cache": ["lru-cache@5.1.1", "", { "dependencies": { "yallist": "^3.0.2" } }, "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="], "lucide-react": ["lucide-react@1.33.0", "", { "peerDependencies": { "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-MTRwMy0ZlL8Ur/vOAiJ9XGHE+kFPC7brq6MxAm0GiGXEBj0qy0jA/pG4N675oSzciO/UCdX8T+5yUQdmDeTLxg=="], @@ -1071,8 +1040,6 @@ "negotiator": ["negotiator@1.1.0", "", { "dependencies": { "content-type": "^2.1.0" } }, "sha512-NMPBRMJgiQHjbd8phG3Vebdx4kZ1H121rbl5IkMqeOsahptB9BKo/d7oJ3zTXqTgagn2bWlNSXkh0QUGM31RYg=="], - "node-fetch": ["node-fetch@2.6.13", "", { "dependencies": { "whatwg-url": "^5.0.0" }, "peerDependencies": { "encoding": "^0.1.0" }, "optionalPeers": ["encoding"] }, "sha512-StxNAxh15zr77QvvkmveSQ8uCQ4+v5FkvNTj0OESmiHu+VRi/gXArXtkWMElOsOUNLtUEvI4yS+rdtOHZTwlQA=="], - "node-releases": ["node-releases@2.0.53", "", {}, "sha512-D9UOmYG3UH1V+ENW56t5QXBwJw1YEY18ruVeus89Rw+SyIgjPkCO84bRzO3uNIYosJbNwiabWVn48o3uJLjxFQ=="], "npm-run-path": ["npm-run-path@6.0.0", "", { "dependencies": { "path-key": "^4.0.0", "unicorn-magic": "^0.3.0" } }, "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA=="], @@ -1167,8 +1134,6 @@ "recast": ["recast@0.23.21", "", { "dependencies": { "ast-types": "^0.16.1", "esprima": "~4.0.0", "source-map": "~0.6.1", "tiny-invariant": "^1.3.3", "tslib": "^2.0.1" } }, "sha512-mFAyJq9vUbSTARLZUvAEf1z3YxlvAwswbmxMx2mPA/MSm4KmpwvwvhsH/NIrZhyOuwD60Lzyw2qh83uCbgTPYw=="], - "regenerator-runtime": ["regenerator-runtime@0.13.11", "", {}, "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="], - "require-directory": ["require-directory@2.1.1", "", {}, "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="], "require-from-string": ["require-from-string@2.0.2", "", {}, "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="], @@ -1191,8 +1156,6 @@ "rxjs": ["rxjs@7.8.2", "", { "dependencies": { "tslib": "^2.1.0" } }, "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA=="], - "safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="], - "safer-buffer": ["safer-buffer@2.1.2", "", {}, "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="], "scheduler": ["scheduler@0.27.0", "", {}, "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q=="], @@ -1201,8 +1164,6 @@ "sdp-transform": ["sdp-transform@2.15.0", "", { "bin": { "sdp-verify": "checker.js" } }, "sha512-KrOH82c/W+GYQ0LHqtr3caRpM3ITglq3ljGUIb8LTki7ByacJZ9z+piSGiwZDsRyhQbYBOBJgr2k6X4BZXi3Kw=="], - "seedrandom": ["seedrandom@3.0.5", "", {}, "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg=="], - "semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], "send": ["send@1.2.1", "", { "dependencies": { "debug": "^4.4.3", "encodeurl": "^2.0.0", "escape-html": "^1.0.3", "etag": "^1.8.1", "fresh": "^2.0.0", "http-errors": "^2.0.1", "mime-types": "^3.0.2", "ms": "^2.1.3", "on-finished": "^2.4.1", "range-parser": "^1.2.1", "statuses": "^2.0.2" } }, "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ=="], @@ -1245,8 +1206,6 @@ "source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="], - "sprintf-js": ["sprintf-js@1.0.3", "", {}, "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="], - "statuses": ["statuses@2.0.2", "", {}, "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw=="], "stdin-discarder": ["stdin-discarder@0.2.2", "", {}, "sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ=="], @@ -1255,8 +1214,6 @@ "string-width": ["string-width@7.2.0", "", { "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", "strip-ansi": "^7.1.0" } }, "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ=="], - "string_decoder": ["string_decoder@1.3.0", "", { "dependencies": { "safe-buffer": "~5.2.0" } }, "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA=="], - "stringify-object": ["stringify-object@5.0.0", "", { "dependencies": { "get-own-enumerable-keys": "^1.0.0", "is-obj": "^3.0.0", "is-regexp": "^3.1.0" } }, "sha512-zaJYxz2FtcMb4f+g60KsRNFOpVMUyuJgA51Zi5Z1DOTC3S59+OQiVOzE9GZt0x72uBGWKsQIuBKeF9iusmKFsg=="], "strip-ansi": ["strip-ansi@7.2.0", "", { "dependencies": { "ansi-regex": "^6.2.2" } }, "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w=="], @@ -1265,7 +1222,7 @@ "strip-final-newline": ["strip-final-newline@4.0.0", "", {}, "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw=="], - "supports-color": ["supports-color@7.2.0", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="], + "supports-color": ["supports-color@10.2.2", "", {}, "sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g=="], "systeminformation": ["systeminformation@5.33.1", "", { "os": "!aix", "bin": { "systeminformation": "lib/cli.js" } }, "sha512-DEN6ICHk3Tk0Uf/hrAHh7xlt7iL5CJFBtPZinA0H62DrGG/KPKqq/Nzj6lCXPS4Ay/sf/14zNnk9LpqKzBIc+w=="], @@ -1285,8 +1242,6 @@ "toidentifier": ["toidentifier@1.0.1", "", {}, "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="], - "tr46": ["tr46@0.0.3", "", {}, "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="], - "ts-morph": ["ts-morph@26.0.0", "", { "dependencies": { "@ts-morph/common": "~0.27.0", "code-block-writer": "^13.0.3" } }, "sha512-ztMO++owQnz8c/gIENcM9XfCEzgoGphTv+nKpYNM1bgsdOVC/jRZuEBf6N+mLLDNg68Kl+GgUZfOySaRiG1/Ug=="], "tsconfck": ["tsconfck@3.1.6", "", { "peerDependencies": { "typescript": "^5.0.0" }, "optionalPeers": ["typescript"], "bin": { "tsconfck": "bin/tsconfck.js" } }, "sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w=="], @@ -1335,14 +1290,10 @@ "web-tree-sitter": ["web-tree-sitter@0.26.13", "", {}, "sha512-5bUZ7vbQ1kcondet96wzP974+JfCZDeQ7bTpacICm2nnvHpa5cO0ByRsoMcAhUP+743vpkb4m0BFlVSm+Ye9VA=="], - "webidl-conversions": ["webidl-conversions@3.0.1", "", {}, "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="], - "webpack-virtual-modules": ["webpack-virtual-modules@0.6.2", "", {}, "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ=="], "webrtc-adapter": ["webrtc-adapter@9.0.6", "", { "dependencies": { "sdp": "^3.2.0" } }, "sha512-CHbl2ZQbxx164IgWRgzJno4hWtM4tFbRam1QfI3Yxhs3w/DvqluVxVWeXs3oL5/fbGkSNLKo0Ty5MgUWceNhog=="], - "whatwg-url": ["whatwg-url@5.0.0", "", { "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" } }, "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw=="], - "which": ["which@4.0.0", "", { "dependencies": { "isexe": "^3.1.1" }, "bin": { "node-which": "bin/which.js" } }, "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg=="], "workerd": ["workerd@1.20260820.1", "", { "optionalDependencies": { "@cloudflare/workerd-darwin-64": "1.20260820.1", "@cloudflare/workerd-darwin-arm64": "1.20260820.1", "@cloudflare/workerd-linux-64": "1.20260820.1", "@cloudflare/workerd-linux-arm64": "1.20260820.1", "@cloudflare/workerd-windows-64": "1.20260820.1" }, "bin": { "workerd": "bin/workerd" } }, "sha512-/wk4rFNHH6IVMXFe6aPEZsT5YWpWtfKTUMt7+rFkyeGbXcGCy4yxODmJatbqYj0jmqHETdz0+m2mT+vNjXnF7w=="], @@ -1391,8 +1342,6 @@ "@feature-sliced/filesystem/typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="], - "@poppinss/dumper/supports-color": ["supports-color@10.2.2", "", {}, "sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g=="], - "@radix-ui/react-use-controllable-state/@radix-ui/react-use-layout-effect": ["@radix-ui/react-use-layout-effect@1.1.1", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ=="], "@radix-ui/react-use-effect-event/@radix-ui/react-use-layout-effect": ["@radix-ui/react-use-layout-effect@1.1.1", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ=="], @@ -1415,10 +1364,6 @@ "@tailwindcss/oxide-wasm32-wasi/tslib": ["tslib@2.8.1", "", { "bundled": true }, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], - "@tensorflow/tfjs/yargs": ["yargs@16.2.2", "", { "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", "string-width": "^4.2.0", "y18n": "^5.0.5", "yargs-parser": "^20.2.2" } }, "sha512-Nt9ZJjXTv5R8MHbqby/wXQ6Gi0Bb3TcYZkR1bzuL4yB2OxWPkXknz513gEF0GoA6tn00UpbPvERW8rzCuWCA6w=="], - - "@tensorflow/tfjs-core/@types/offscreencanvas": ["@types/offscreencanvas@2019.7.3", "", {}, "sha512-ieXiYmgSRXUDeOntE1InxjWyvEelZGP63M+cGuquuRLuIKKT1osnkXjxev9B7d1nXSug5vpunx+gNlbVxMlC9A=="], - "accepts/mime-types": ["mime-types@3.0.2", "", { "dependencies": { "mime-db": "^1.54.0" } }, "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A=="], "body-parser/content-type": ["content-type@2.1.0", "", {}, "sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag=="], @@ -1447,10 +1392,6 @@ "is-inside-container/is-docker": ["is-docker@3.0.0", "", { "bin": { "is-docker": "cli.js" } }, "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ=="], - "js-yaml/argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], - - "log-symbols/chalk": ["chalk@5.6.2", "", {}, "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA=="], - "log-symbols/is-unicode-supported": ["is-unicode-supported@1.3.0", "", {}, "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ=="], "micromatch/picomatch": ["picomatch@2.3.2", "", {}, "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA=="], @@ -1461,8 +1402,6 @@ "onetime/mimic-fn": ["mimic-fn@2.1.0", "", {}, "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="], - "ora/chalk": ["chalk@5.6.2", "", {}, "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA=="], - "prompts/kleur": ["kleur@3.0.3", "", {}, "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w=="], "restore-cursor/onetime": ["onetime@7.0.0", "", { "dependencies": { "mimic-function": "^5.0.0" } }, "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ=="], @@ -1531,12 +1470,6 @@ "@tailwindcss/node/lightningcss/lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.32.0", "", { "os": "win32", "cpu": "x64" }, "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q=="], - "@tensorflow/tfjs/yargs/cliui": ["cliui@7.0.4", "", { "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^7.0.0" } }, "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ=="], - - "@tensorflow/tfjs/yargs/string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], - - "@tensorflow/tfjs/yargs/yargs-parser": ["yargs-parser@20.2.9", "", {}, "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w=="], - "accepts/mime-types/mime-db": ["mime-db@1.54.0", "", {}, "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ=="], "cliui/string-width/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], @@ -1563,16 +1496,6 @@ "yargs/string-width/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], - "@tensorflow/tfjs/yargs/cliui/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], - - "@tensorflow/tfjs/yargs/string-width/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], - - "@tensorflow/tfjs/yargs/string-width/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], - "yargs/string-width/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], - - "@tensorflow/tfjs/yargs/cliui/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], - - "@tensorflow/tfjs/yargs/string-width/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], } } diff --git a/package.json b/package.json index e940b7d..0e751c2 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,6 @@ "@tailwindcss/vite": "^4.3.3", "@tanstack/react-query": "^5.102.1", "@tanstack/react-router": "^1.170.32", - "@tensorflow/tfjs": "^4.22.0", "axios": "^1.19.0", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", diff --git a/public/ksl/model/NOTICE.md b/public/ksl/model/NOTICE.md deleted file mode 100644 index 473bddc..0000000 --- a/public/ksl/model/NOTICE.md +++ /dev/null @@ -1,14 +0,0 @@ -# 모델 출처 - -`model.json` / weight shard는 [legatalee/Korean-Sign-Language-Translation](https://github.com/legatalee/Korean-Sign-Language-Translation)의 -`Recognition/model1/my_model.h5`(MIT License, Copyright (c) 2025 Jimin Lee)를 -`tensorflowjs_converter`로 TF.js Layers 포맷으로 변환한 결과물이다. - -- 원본 저장소: https://github.com/legatalee/Korean-Sign-Language-Translation -- 라이선스: MIT -- 입력 shape: `(30, 150)` — pose 6개 landmark(x,y,z,visibility) + 양손 각 21개 landmark(x,y,z) -- 출력: 12 클래스 (0=no-action, 1~11=오늘/날씨/좋다/맛있다/식사/감사/안녕/소개/나/만나다/반갑다) -- 변환 명령: `tensorflowjs_converter --input_format=keras my_model.h5 ` - -라벨 index 매핑은 `Recognition/model1/MP_Data/<라벨>/`의 실제 landmark 샘플을 원본 -h5 모델에 넣어 재검증했다 (`../fixtures/siksa.json` 참고). diff --git a/public/ksl/model/group1-shard1of1.bin b/public/ksl/model/group1-shard1of1.bin deleted file mode 100644 index 4e3c3c8dac81081b632aa4a683006b3874659908..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 362160 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

q*okv?7^{p~FtUy;D+efoud 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≫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 kujJdLY~~Q_0O{}c-pA^-pY diff --git a/public/ksl/model/model.json b/public/ksl/model/model.json deleted file mode 100644 index 39ef937..0000000 --- a/public/ksl/model/model.json +++ /dev/null @@ -1,207 +0,0 @@ -{ - "format": "layers-model", - "generatedBy": "keras v2.21.0", - "convertedBy": "TensorFlow.js Converter v3.18.0", - "modelTopology": { - "keras_version": "2.21.0", - "backend": "tensorflow", - "model_config": { - "class_name": "Sequential", - "config": { - "name": "sequential", - "layers": [ - { - "class_name": "InputLayer", - "config": { - "batch_input_shape": [null, 30, 150], - "dtype": "float32", - "sparse": false, - "ragged": false, - "name": "lstm_input", - "optional": false - } - }, - { - "class_name": "LSTM", - "config": { - "name": "lstm", - "trainable": true, - "dtype": "float32", - "batch_input_shape": [null, 30, 150], - "return_sequences": true, - "return_state": false, - "go_backwards": false, - "stateful": false, - "unroll": false, - "time_major": false, - "units": 64, - "activation": "relu", - "recurrent_activation": "sigmoid", - "use_bias": true, - "kernel_initializer": { - "module": "keras.initializers", - "class_name": "GlorotUniform", - "config": { "seed": null }, - "registered_name": null - }, - "recurrent_initializer": { - "module": "keras.initializers", - "class_name": "Orthogonal", - "config": { "gain": 1.0, "seed": null }, - "registered_name": null - }, - "bias_initializer": { - "module": "keras.initializers", - "class_name": "Zeros", - "config": {}, - "registered_name": null - }, - "unit_forget_bias": true, - "kernel_regularizer": null, - "recurrent_regularizer": null, - "bias_regularizer": null, - "activity_regularizer": null, - "kernel_constraint": null, - "recurrent_constraint": null, - "bias_constraint": null, - "dropout": 0.0, - "recurrent_dropout": 0.0, - "implementation": 2 - } - }, - { - "class_name": "LSTM", - "config": { - "name": "lstm_1", - "trainable": true, - "dtype": "float32", - "return_sequences": false, - "return_state": false, - "go_backwards": false, - "stateful": false, - "unroll": false, - "time_major": false, - "units": 64, - "activation": "relu", - "recurrent_activation": "sigmoid", - "use_bias": true, - "kernel_initializer": { - "module": "keras.initializers", - "class_name": "GlorotUniform", - "config": { "seed": null }, - "registered_name": null - }, - "recurrent_initializer": { - "module": "keras.initializers", - "class_name": "Orthogonal", - "config": { "gain": 1.0, "seed": null }, - "registered_name": null - }, - "bias_initializer": { - "module": "keras.initializers", - "class_name": "Zeros", - "config": {}, - "registered_name": null - }, - "unit_forget_bias": true, - "kernel_regularizer": null, - "recurrent_regularizer": null, - "bias_regularizer": null, - "activity_regularizer": null, - "kernel_constraint": null, - "recurrent_constraint": null, - "bias_constraint": null, - "dropout": 0.0, - "recurrent_dropout": 0.0, - "implementation": 2 - } - }, - { - "class_name": "Dropout", - "config": { - "name": "dropout", - "trainable": true, - "dtype": "float32", - "rate": 0.5, - "noise_shape": null, - "seed": null - } - }, - { - "class_name": "Dense", - "config": { - "name": "dense", - "trainable": true, - "dtype": "float32", - "units": 32, - "activation": "relu", - "use_bias": true, - "kernel_initializer": { - "module": "keras.initializers", - "class_name": "GlorotUniform", - "config": { "seed": null }, - "registered_name": null - }, - "bias_initializer": { - "module": "keras.initializers", - "class_name": "Zeros", - "config": {}, - "registered_name": null - }, - "kernel_regularizer": null, - "bias_regularizer": null, - "activity_regularizer": null, - "kernel_constraint": null, - "bias_constraint": null - } - }, - { - "class_name": "Dense", - "config": { - "name": "dense_1", - "trainable": true, - "dtype": "float32", - "units": 12, - "activation": "softmax", - "use_bias": true, - "kernel_initializer": { - "module": "keras.initializers", - "class_name": "GlorotUniform", - "config": { "seed": null }, - "registered_name": null - }, - "bias_initializer": { - "module": "keras.initializers", - "class_name": "Zeros", - "config": {}, - "registered_name": null - }, - "kernel_regularizer": null, - "bias_regularizer": null, - "activity_regularizer": null, - "kernel_constraint": null, - "bias_constraint": null - } - } - ] - } - } - }, - "weightsManifest": [ - { - "paths": ["group1-shard1of1.bin"], - "weights": [ - { "name": "dense/kernel", "shape": [64, 32], "dtype": "float32" }, - { "name": "dense/bias", "shape": [32], "dtype": "float32" }, - { "name": "dense_1/kernel", "shape": [32, 12], "dtype": "float32" }, - { "name": "dense_1/bias", "shape": [12], "dtype": "float32" }, - { "name": "lstm/lstm_cell/kernel", "shape": [150, 256], "dtype": "float32" }, - { "name": "lstm/lstm_cell/recurrent_kernel", "shape": [64, 256], "dtype": "float32" }, - { "name": "lstm/lstm_cell/bias", "shape": [256], "dtype": "float32" }, - { "name": "lstm_1/lstm_cell/kernel", "shape": [64, 256], "dtype": "float32" }, - { "name": "lstm_1/lstm_cell/recurrent_kernel", "shape": [64, 256], "dtype": "float32" }, - { "name": "lstm_1/lstm_cell/bias", "shape": [256], "dtype": "float32" } - ] - } - ] -} diff --git a/src/features/sign-capture/model/sign-model.ts b/src/features/sign-capture/model/sign-model.ts deleted file mode 100644 index ad19287..0000000 --- a/src/features/sign-capture/model/sign-model.ts +++ /dev/null @@ -1,71 +0,0 @@ -import type * as TF from "@tensorflow/tfjs"; - -const MODEL_URL = "/ksl/model/model.json"; - -// index 0 is the model's own "no sign" class and is never treated as a recognized word. -// See public/ksl/model/NOTICE.md for provenance and label-mapping verification. -export const SIGN_LABELS = [ - null, - "오늘", - "날씨", - "좋다", - "맛있다", - "식사", - "감사", - "안녕", - "소개", - "나", - "만나다", - "반갑다", -] as const; - -export const KSL_WORD_METADATA: Record = { - 오늘: { icon: "📅", description: "양손을 가슴 앞에서 아래로 가볍게 내리는 수어" }, - 날씨: { icon: "☀️", description: "손을 펴서 뺨이나 가슴 쪽에서 흔드는 수어" }, - 좋다: { icon: "👍", description: "엄지손가락을 세워 긍정과 만족을 나타내는 수어" }, - 맛있다: { icon: "😋", description: "손끝을 뺨이나 턱에 대고 톡톡 치는 수어" }, - 식사: { icon: "🍚", description: "손을 모아 입 쪽으로 가져가는 식사 수어" }, - 감사: { icon: "🙏", description: "왼손 등 위에 오른손을 얹어 톡톡 두드리는 수어" }, - 안녕: { icon: "👋", description: "손과 팔을 들어 반갑게 인사하는 수어" }, - 소개: { icon: "💁‍♂️", description: "손바닥을 위로 하여 부드럽게 펼치는 수어" }, - 나: { icon: "🙋", description: "검지손가락으로 자신의 가슴 중앙을 가리키는 수어" }, - 만나다: { icon: "👥", description: "양손을 가슴 중앙으로 모아 마주보는 수어" }, - 반갑다: { icon: "😊", description: "양 손바닥으로 가슴을 가볍게 쓸어내리는 수어" }, -}; - -export const CONFIDENCE_THRESHOLD = 0.75; - -// @tensorflow/tfjs is ~800kB and only needed by DEAF-mode signers, so it's -// dynamically imported (code-split) instead of pulled into the main call chunk. -let modelPromise: Promise<{ tf: typeof TF; model: TF.LayersModel }> | null = null; - -function loadSignModel(): Promise<{ tf: typeof TF; model: TF.LayersModel }> { - modelPromise ??= import("@tensorflow/tfjs").then(async (tf) => ({ - tf, - model: await tf.loadLayersModel(MODEL_URL), - })); - return modelPromise; -} - -export interface SignPrediction { - label: (typeof SIGN_LABELS)[number]; - confidence: number; -} - -/** Runs the 30x150 landmark window through the Legatalee LSTM classifier. */ -export async function predictSign(frames: number[][]): Promise { - const { tf, model } = await loadSignModel(); - const input = tf.tensor3d([frames]); - const output = model.predict(input) as TF.Tensor; - try { - const values = output.dataSync(); - let bestIndex = 0; - for (let i = 1; i < values.length; i += 1) { - if ((values[i] ?? -Infinity) > (values[bestIndex] ?? -Infinity)) bestIndex = i; - } - return { label: SIGN_LABELS[bestIndex] ?? null, confidence: values[bestIndex] ?? 0 }; - } finally { - input.dispose(); - output.dispose(); - } -} diff --git a/src/features/sign-capture/model/use-sign-capture.ts b/src/features/sign-capture/model/use-sign-capture.ts index bc6cab3..e2a7fe0 100644 --- a/src/features/sign-capture/model/use-sign-capture.ts +++ b/src/features/sign-capture/model/use-sign-capture.ts @@ -22,13 +22,11 @@ import { RollingWindow, splitHandsByHandedness, } from "./landmarks"; -import { CONFIDENCE_THRESHOLD, KSL_WORD_METADATA, predictSign } from "./sign-model"; import type { RecognizedSign } from "./types"; +import { KSL_WORD_METADATA } from "./word-metadata"; -/** Live LSTM/DTW readout for the recognition-clarity debug strip -- not used for logic. */ +/** Live DTW readout for the recognition-clarity debug strip -- not used for logic. */ export interface RecognitionDebug { - lstmLabel: string | null; - lstmConfidence: number; dtwWord: string | null; dtwDistance: number | null; } @@ -67,7 +65,10 @@ export interface UseSignCaptureReturn { removeReference: (word: string) => void; } -const CONSECUTIVE_REQUIRED = 2; +// A DTW match already represents a whole-window judgment (the last 30 frames as a whole +// resemble a reference), not a per-frame class score, so a single frame under threshold is +// enough to confirm -- see updateCandidateStreak. +const REQUIRED_STREAK = 1; const NO_SIGN_STREAK_TO_RESET = 5; export const UTTERANCE_PAUSE_MS = 3000; // How many prior turns (both sides combined) to send as context with each compose call. @@ -81,10 +82,10 @@ const MAX_DISPLAYED_SENTENCES = 20; // matches dtw.ts's MAX_SAMPLES_PER_WORD (10), so a single take fully replaces a word's // reference set. REP_INTERVAL_SECONDS is deliberately close to how long the live recognition // window (WINDOW_FRAMES=30 processed frames, landmarks.ts) actually spans in wall-clock time -// -- on a typical device running both landmarkers plus periodic LSTM inference per frame, -// that's on the order of 1-2s, not a flat 1s. Pacing reps faster than that risks each -// recorded sample capturing only part of the gesture, which DTW's time-warping can't fix -// (warping absorbs speed differences, not missing motion). +// -- on a typical device running the hand+pose landmarkers per frame, that's on the order of +// 1-2s, not a flat 1s. Pacing reps faster than that risks each recorded sample capturing only +// part of the gesture, which DTW's time-warping can't fix (warping absorbs speed differences, +// not missing motion). const RECORD_REPS = 10; const REP_INTERVAL_SECONDS = 2; const RECORD_TOTAL_SECONDS = RECORD_REPS * REP_INTERVAL_SECONDS; @@ -95,25 +96,20 @@ const MIN_SEGMENT_FRAMES = 5; interface ResolvedPrediction { finalCandidate: string | null; finalConfidence: number; - isDtw: boolean; debug: RecognitionDebug; } -// Combines the LSTM's per-frame classification with the closest DTW reference match -- -// DTW wins whenever a custom word matches, LSTM is the fallback for the 11 base words. A -// registered custom word is a deliberate, user-trained signal; the base LSTM model was -// previously checked first and, since it always emits *some* top-1 guess (softmax over 12 -// classes, including "no action"), it routinely produced a confident-enough guess for -// arbitrary hand motion and permanently shadowed DTW candidates -- a custom word could match -// perfectly and still never win. Packages a debug snapshot alongside the result -- pulled out -// of handleLandmarkerResult's predictSign callback to keep that callback's cognitive -// complexity down. -function resolvePrediction( - frames: number[][], - label: string | null, - confidence: number, -): ResolvedPrediction { - const lstmCandidate = label && confidence >= CONFIDENCE_THRESHOLD ? label : null; +// Finds the closest DTW reference match for the current window. Recognition is DTW-only: a +// pretrained LSTM classifier for a fixed 11-word vocabulary used to run alongside this and be +// checked first, but it always emitted *some* confident top-1 guess (softmax over 12 classes, +// including "no action") for arbitrary hand motion, and since it was checked first it +// permanently shadowed DTW candidates -- a registered custom word could match its reference +// perfectly and still never be the one shown. Dropping it means every word, including a +// starter vocabulary, now has to actually be recorded by the signer, but recognition behavior +// becomes fully predictable: whatever you record is what gets recognized. Packages a debug +// snapshot alongside the result -- pulled out of handleLandmarkerResult to keep that +// callback's cognitive complexity down. +function resolvePrediction(frames: number[][]): ResolvedPrediction { // Always compute the closest DTW reference (even above threshold) so the debug readout // can show it -- otherwise a near-miss custom word is invisible to the user instead of // showing "so close, just tune the threshold or re-record." @@ -125,12 +121,9 @@ function resolvePrediction( const dtwConfidence = dtwMatch ? Math.max(0, 1 - dtwMatch.distance / DEFAULT_DTW_THRESHOLD) : 0; return { - finalCandidate: dtwMatch?.word ?? lstmCandidate ?? null, - finalConfidence: dtwMatch ? dtwConfidence : confidence, - isDtw: Boolean(dtwMatch), + finalCandidate: dtwMatch?.word ?? null, + finalConfidence: dtwConfidence, debug: { - lstmLabel: label, - lstmConfidence: confidence, dtwWord: dtwBest?.word ?? null, dtwDistance: dtwBest?.distance ?? null, }, @@ -174,7 +167,7 @@ interface PredictionState { lastConfirmedCandidate: string | null; } -// Confirms a candidate once it has held steady for `requiredStreak` frames, as long as it +// Confirms a candidate once it has held steady for REQUIRED_STREAK frames, as long as it // isn't the same word already confirmed last (which would just be the signer continuing to // hold the same pose). Gating on "already confirmed *this word*" rather than "already // confirmed *something* this segment" is what lets consecutive different words (A -> B with @@ -182,17 +175,9 @@ interface PredictionState { // signs performed back-to-back) each get confirmed on their own -- previously a single // shared `insertedForSegment` flag only re-armed after a sustained no-sign streak, so a // second word right after the first was silently dropped unless the signer paused. -// -// requiredStreak is 1 for DTW-sourced candidates (see handleLandmarkerResult): a DTW match -// already means "the whole last-30-frame window closely matches the reference," a judgment -// over the full window, unlike the LSTM's per-frame class score -- and because that window -// slides by one frame at a time, a genuine match can occur for only a single frame before -// sliding past alignment, so requiring 2 consecutive hits (as for LSTM) made custom words -// effectively never confirm in practice. function updateCandidateStreak( state: PredictionState, candidate: string | null, - requiredStreak: number = CONSECUTIVE_REQUIRED, ): { isConfirmed: boolean } { if (candidate === state.lastCandidate) { state.candidateStreak += 1; @@ -208,7 +193,7 @@ function updateCandidateStreak( return { isConfirmed: false }; } - if (state.candidateStreak >= requiredStreak && state.lastConfirmedCandidate !== candidate) { + if (state.candidateStreak >= REQUIRED_STREAK && state.lastConfirmedCandidate !== candidate) { state.lastConfirmedCandidate = candidate; return { isConfirmed: true }; } @@ -217,13 +202,16 @@ function updateCandidateStreak( } /** - * Captures webcam stream and recognizes signs purely from the 30-frame sequence window - * (LSTM for the trained 11 words, DTW for custom-recorded ones) -- sign language is + * Captures webcam stream and recognizes signs purely from the 30-frame sequence window via + * DTW matching against signer-recorded reference samples (see dtw.ts) -- sign language is * distinguished by motion over time, not a single frame, so there is deliberately no * single-frame/static-pose classifier here (an earlier version had one for zero-latency * generic gestures like "thumbs up"/numbers; it was removed because judging any KSL sign * from one still frame produced false positives, especially during the pause between - * words that the utterance-compose debounce relies on). + * words that the utterance-compose debounce relies on). There is also no pretrained + * classifier for a fixed vocabulary -- every recognized word has to be recorded by the + * signer first, which trades zero-setup recognition for fully predictable behavior (see + * resolvePrediction's docstring for why the earlier hybrid LSTM+DTW setup was dropped). * Accumulates confirmed words and converts them to natural sentences via LLM translation. */ export function useSignCapture( @@ -234,7 +222,7 @@ export function useSignCapture( const canvasRef = useRef(null); const streamRef = useRef(null); - // 30-Frame Rolling Window & LSTM State + // 30-Frame Rolling Window & DTW Recognition State const windowRef = useRef(new RollingWindow()); const latestPoseRef = useRef(null); const predictionStateRef = useRef({ @@ -242,7 +230,6 @@ export function useSignCapture( candidateStreak: 0, lastConfirmedCandidate: null, }); - const predictingRef = useRef(false); // Word buffer & Utterance state for LLM translation const wordBufferRef = useRef([]); @@ -437,16 +424,12 @@ export function useSignCapture( }); const handleKslPrediction = useCallback( - (candidate: string | null, confidence: number, isDtw: boolean) => { + (candidate: string | null, confidence: number) => { const meta = candidate ? KSL_WORD_METADATA[candidate] : undefined; const icon = meta?.icon ?? "🤟"; - const desc = meta?.description ?? `KSL 수어: ${candidate}`; + const desc = meta?.description ?? `등록한 수어: ${candidate}`; - const { isConfirmed } = updateCandidateStreak( - predictionStateRef.current, - candidate, - isDtw ? 1 : CONSECUTIVE_REQUIRED, - ); + const { isConfirmed } = updateCandidateStreak(predictionStateRef.current, candidate); if (candidate) { setActiveSign({ @@ -482,8 +465,8 @@ export function useSignCapture( [commitConfirmedSign], ); - // Main frame processing callback: sequence-only recognition (LSTM + DTW), no - // single-frame static gesture path. + // Main frame processing callback: sequence-only DTW recognition, no single-frame + // static gesture path. const handleLandmarkerResult = useCallback( (handResult: HandLandmarkerResult) => { const hands = handResult.landmarks ?? []; @@ -515,27 +498,11 @@ export function useSignCapture( if (recordingWordRef.current) return; const frames = windowRef.current.toArray(); - if (!frames || predictingRef.current) return; - - predictingRef.current = true; - predictSign(frames) - .then(({ label, confidence }) => { - const { finalCandidate, finalConfidence, isDtw, debug } = resolvePrediction( - frames, - label, - confidence, - ); - setRecognitionDebug(debug); - if (finalCandidate) { - handleKslPrediction(finalCandidate, finalConfidence, isDtw); - } - }) - .catch((err) => { - console.error("Sign prediction error:", err); - }) - .finally(() => { - predictingRef.current = false; - }); + if (!frames) return; + + const { finalCandidate, finalConfidence, debug } = resolvePrediction(frames); + setRecognitionDebug(debug); + handleKslPrediction(finalCandidate, finalConfidence); }, [showSkeleton, handleKslPrediction], ); diff --git a/src/features/sign-capture/model/word-metadata.ts b/src/features/sign-capture/model/word-metadata.ts new file mode 100644 index 0000000..276f38a --- /dev/null +++ b/src/features/sign-capture/model/word-metadata.ts @@ -0,0 +1,17 @@ +// Icons/descriptions for a starter KSL vocabulary -- purely a display/onboarding aid (the +// vocabulary guide, and metadata for a recognized word if it happens to match one of these +// names). Recognition itself is DTW-only now: every word, including these, has to actually be +// recorded by the signer via the "고급: 나만의 수어 단어 등록" flow before it's recognized. +export const KSL_WORD_METADATA: Record = { + 오늘: { icon: "📅", description: "양손을 가슴 앞에서 아래로 가볍게 내리는 수어" }, + 날씨: { icon: "☀️", description: "손을 펴서 뺨이나 가슴 쪽에서 흔드는 수어" }, + 좋다: { icon: "👍", description: "엄지손가락을 세워 긍정과 만족을 나타내는 수어" }, + 맛있다: { icon: "😋", description: "손끝을 뺨이나 턱에 대고 톡톡 치는 수어" }, + 식사: { icon: "🍚", description: "손을 모아 입 쪽으로 가져가는 식사 수어" }, + 감사: { icon: "🙏", description: "왼손 등 위에 오른손을 얹어 톡톡 두드리는 수어" }, + 안녕: { icon: "👋", description: "손과 팔을 들어 반갑게 인사하는 수어" }, + 소개: { icon: "💁‍♂️", description: "손바닥을 위로 하여 부드럽게 펼치는 수어" }, + 나: { icon: "🙋", description: "검지손가락으로 자신의 가슴 중앙을 가리키는 수어" }, + 만나다: { icon: "👥", description: "양손을 가슴 중앙으로 모아 마주보는 수어" }, + 반갑다: { icon: "😊", description: "양 손바닥으로 가슴을 가볍게 쓸어내리는 수어" }, +}; diff --git a/src/features/sign-capture/ui/sign-capture-view.tsx b/src/features/sign-capture/ui/sign-capture-view.tsx index f528bf1..7619a88 100644 --- a/src/features/sign-capture/ui/sign-capture-view.tsx +++ b/src/features/sign-capture/ui/sign-capture-view.tsx @@ -20,18 +20,18 @@ import { useEffect, useState } from "react"; import type { CaptionType } from "@/entities/caption"; import { Button, Input } from "@/shared/ui"; import { DEFAULT_DTW_THRESHOLD } from "../model/dtw"; -import { KSL_WORD_METADATA } from "../model/sign-model"; import type { RecognizedSign } from "../model/types"; import { type RecognitionDebug, UTTERANCE_PAUSE_MS, useSignCapture, } from "../model/use-sign-capture"; +import { KSL_WORD_METADATA } from "../model/word-metadata"; -// Only the real, sequence-trained KSL words -- the guide used to also list a handful of -// single-frame static gestures (thumbs up, OK sign, finger-counted numbers), but that -// recognizer was removed (see use-sign-capture.ts's docstring), so listing them here -// would promise something that no longer works. +// Suggested starter vocabulary for the guide -- recognition is DTW-only now, so none of these +// (or any word) are recognized until the signer actually records them via the "고급: 나만의 +// 수어 단어 등록" flow. This list is just icons/descriptions to help someone decide what to +// record first, not a promise that these already work. const KSL_VOCABULARY_LIST = Object.entries(KSL_WORD_METADATA).map(([label, meta]) => ({ label, icon: meta.icon, @@ -63,7 +63,7 @@ function CameraStatusBar({ {isModelReady && isCameraActive && ( - 하이브리드 AI + 동작 인식 준비됨 )} @@ -117,23 +117,18 @@ function ActiveSignBadge({ activeSign }: { activeSign: RecognizedSign | null }) ); } -// Always-on technical readout of what the recognizer is actually seeing -- both LSTM's top -// guess/confidence and the closest DTW reference (even above threshold, so a near-miss custom -// word is visible instead of the recognizer just looking silently broken). +// Always-on technical readout of what the recognizer is actually seeing -- the closest DTW +// reference (even above threshold, so a near-miss custom word is visible instead of the +// recognizer just looking silently broken). function RecognitionDebugStrip({ debug }: { debug: RecognitionDebug | null }) { if (!debug) return null; - const lstmText = debug.lstmLabel - ? `${debug.lstmLabel} ${Math.round(debug.lstmConfidence * 100)}%` - : `없음 (${Math.round(debug.lstmConfidence * 100)}%)`; const dtwText = debug.dtwWord ? `${debug.dtwWord} · 거리 ${debug.dtwDistance?.toFixed(2)} / 임계값 ${DEFAULT_DTW_THRESHOLD}` : "저장된 커스텀 단어 없음"; return (

); @@ -453,7 +448,7 @@ function GesturesGuide({ onClose }: { onClose: () => void }) {
- 지원하는 한국수어(KSL) 단어 + 추천 시작 단어 (아래에서 직접 녹화해야 인식됩니다)
- {/* Recognition Clarity: what LSTM/DTW are actually seeing right now */} + {/* Recognition Clarity: what DTW is actually seeing right now */} {/* When the buffered words will be sent off for translation */} From 575e847364a83c24ba81450f7bcb06022a3c6b5b Mon Sep 17 00:00:00 2001 From: eeeeeaaan Date: Wed, 26 Aug 2026 01:21:57 +0900 Subject: [PATCH 13/16] feat: always show the closest match, flush utterance on hands-gone MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two UX changes to the DTW-only recognizer: - The live recognition card only showed a word once it cleared DEFAULT_DTW_THRESHOLD; anything below that was invisible except in the small debug strip. Now the closest reference match is always shown as the "인식 중" card with its similarity %, however low -- actual confirmation into the sentence buffer still requires clearing the threshold (resolvePrediction keeps finalCandidate threshold-gated separately from the display-only closestWord/closestSimilarity), so translation quality is unaffected. - Replace the pause-since-last-confirmed-word debounce (UTTERANCE_PAUSE_MS, fired 3s after the last new word) with a hands-gone trigger: both hands undetected for HANDS_GONE_FLUSH_MS (3s) sends whatever's been confirmed so far. The old trigger didn't distinguish "hands down, done signing" from "hands still up, just pausing mid-sentence" -- putting your hands down is a clearer, more intentional end-of-turn signal. sendUtteranceNow replaces the debounced flushUtterance; handleLandmarkerResult tracks the gap via updateHandsGoneTracking (pulled out to keep cognitive complexity down) and exposes handsGoneSince for the UI's countdown. Co-Authored-By: Claude Sonnet 5 --- .../sign-capture/model/use-sign-capture.ts | 236 +++++++++++------- .../sign-capture/ui/sign-capture-view.tsx | 30 ++- 2 files changed, 162 insertions(+), 104 deletions(-) diff --git a/src/features/sign-capture/model/use-sign-capture.ts b/src/features/sign-capture/model/use-sign-capture.ts index e2a7fe0..a47dd29 100644 --- a/src/features/sign-capture/model/use-sign-capture.ts +++ b/src/features/sign-capture/model/use-sign-capture.ts @@ -50,6 +50,7 @@ export interface UseSignCaptureReturn { composedSentences: string[]; references: Record; recognitionDebug: RecognitionDebug | null; + handsGoneSince: number | null; isRecordingWord: boolean; recordingSecond: number; recordingTotalSeconds: number; @@ -70,7 +71,11 @@ export interface UseSignCaptureReturn { // enough to confirm -- see updateCandidateStreak. const REQUIRED_STREAK = 1; const NO_SIGN_STREAK_TO_RESET = 5; -export const UTTERANCE_PAUSE_MS = 3000; +// If both hands haven't been detected for this long, treat it as the end of the signer's +// turn and send whatever's been confirmed so far off for translation. Replaces a +// pause-since-last-confirmed-word debounce, which didn't distinguish "hands down, done +// signing" from "hands still up, just pausing mid-sentence." +export const HANDS_GONE_FLUSH_MS = 3000; // How many prior turns (both sides combined) to send as context with each compose call. const MAX_HISTORY_TURNS = 12; // How many past translated sentences to keep around for display -- translation keeps @@ -96,6 +101,8 @@ const MIN_SEGMENT_FRAMES = 5; interface ResolvedPrediction { finalCandidate: string | null; finalConfidence: number; + closestWord: string | null; + closestSimilarity: number; debug: RecognitionDebug; } @@ -111,18 +118,24 @@ interface ResolvedPrediction { // callback's cognitive complexity down. function resolvePrediction(frames: number[][]): ResolvedPrediction { // Always compute the closest DTW reference (even above threshold) so the debug readout - // can show it -- otherwise a near-miss custom word is invisible to the user instead of - // showing "so close, just tune the threshold or re-record." + // and the live "인식 중" card can show it -- otherwise a near-miss custom word is + // invisible to the user instead of showing "this is what it thinks you're doing, just + // not confidently enough." const dtwBest = closestReference(frames); + // Only a match under threshold actually confirms a word into the sentence buffer -- + // showing every closest guess as a live card is fine (it's just a hint), but sending + // every closest guess to the LLM as a "recognized word" would wreck translation quality. const dtwMatch = dtwBest && dtwBest.distance <= DEFAULT_DTW_THRESHOLD ? dtwBest : null; - // DTW has no natural 0-1 confidence -- derive one from how close the match distance is - // to the threshold, so a borderline match doesn't look as trustworthy in the UI as a - // near-exact one. - const dtwConfidence = dtwMatch ? Math.max(0, 1 - dtwMatch.distance / DEFAULT_DTW_THRESHOLD) : 0; + // DTW has no natural 0-1 similarity -- derive one from how close the distance is to the + // threshold. Computed for the closest match regardless of whether it clears the + // threshold, so it can drive the always-shown card. + const similarity = dtwBest ? Math.max(0, 1 - dtwBest.distance / DEFAULT_DTW_THRESHOLD) : 0; return { finalCandidate: dtwMatch?.word ?? null, - finalConfidence: dtwConfidence, + finalConfidence: similarity, + closestWord: dtwBest?.word ?? null, + closestSimilarity: similarity, debug: { dtwWord: dtwBest?.word ?? null, dtwDistance: dtwBest?.distance ?? null, @@ -130,6 +143,25 @@ function resolvePrediction(frames: number[][]): ResolvedPrediction { }; } +// Builds the live "인식 중" card from the closest DTW match, or null if there's no reference +// to compare against at all (no custom words registered yet). +function buildActiveSignFromClosest( + word: string | null, + similarity: number, +): RecognizedSign | null { + if (!word) return null; + const meta = KSL_WORD_METADATA[word]; + return { + id: `dtw_${word}`, + label: word, + description: meta?.description ?? `등록한 수어: ${word}`, + icon: meta?.icon ?? "🤟", + confidence: similarity, + category: "action", + timestamp: Date.now(), + }; +} + function renderLandmarksToCanvas( canvas: HTMLCanvasElement | null, video: HTMLVideoElement | null, @@ -231,9 +263,14 @@ export function useSignCapture( lastConfirmedCandidate: null, }); - // Word buffer & Utterance state for LLM translation + // Word buffer for LLM translation const wordBufferRef = useRef([]); - const utteranceTimerRef = useRef | null>(null); + + // Utterance-end detection: both hands absent for HANDS_GONE_FLUSH_MS triggers a send. + // handsGoneAtRef is the timestamp hands were last seen missing (null while visible); + // flushedForGapRef prevents re-sending repeatedly for the same absence. + const handsGoneAtRef = useRef(null); + const flushedForGapRef = useRef(false); // Conversation history for LLM context: this side's own composed sentences plus the // other side's final captions, in chronological order. @@ -262,6 +299,7 @@ export function useSignCapture( const [composedSentences, setComposedSentences] = useState([]); const [references, setReferences] = useState>(() => listReferences()); const [recognitionDebug, setRecognitionDebug] = useState(null); + const [handsGoneSince, setHandsGoneSince] = useState(null); const [isRecordingWord, setIsRecordingWord] = useState(false); const [recordingSecond, setRecordingSecond] = useState(0); const [recordingResult, setRecordingResult] = useState<{ ok: boolean; message: string } | null>( @@ -312,6 +350,9 @@ export function useSignCapture( setIsArmDetected(false); setActiveSign(null); setRecognitionDebug(null); + handsGoneAtRef.current = null; + flushedForGapRef.current = false; + setHandsGoneSince(null); }, []); const toggleCamera = useCallback(() => { @@ -342,7 +383,6 @@ export function useSignCapture( startCamera(); return () => { stopCamera(); - if (utteranceTimerRef.current) clearTimeout(utteranceTimerRef.current); if (recordingTickTimerRef.current) clearInterval(recordingTickTimerRef.current); if (recordingEndTimerRef.current) clearTimeout(recordingEndTimerRef.current); }; @@ -360,61 +400,57 @@ export function useSignCapture( } }, [captions]); - // Debounced LLM translation of word sequence. Fires UTTERANCE_PAUSE_MS after the last - // confirmed word; clears the buffer immediately so a word signed while this request is - // in flight starts a fresh utterance instead of being resent with the old one. - const flushUtterance = useCallback(() => { - if (utteranceTimerRef.current) clearTimeout(utteranceTimerRef.current); - utteranceTimerRef.current = setTimeout(() => { - const words = [...wordBufferRef.current]; - wordBufferRef.current = []; - setWordBuffer([]); - if (words.length === 0) return; - - setIsComposing(true); - // Snapshot history before this turn -- it must not include the sentence this - // call is about to produce. - const historyForThisTurn = historyRef.current; - composeSignSentence(words, historyForThisTurn) - .then((sentence) => { - setComposedSentences((prev) => [...prev, sentence].slice(-MAX_DISPLAYED_SENTENCES)); - const turn: ConversationTurn = { speaker: "DEAF", text: sentence }; - historyRef.current = [...historyRef.current, turn].slice(-MAX_HISTORY_TURNS); - if (room) { - sendChatText(room, sentence); - } - }) - .catch(() => { - const fallback = words.join(" "); - setComposedSentences((prev) => [...prev, fallback].slice(-MAX_DISPLAYED_SENTENCES)); - const turn: ConversationTurn = { speaker: "DEAF", text: fallback }; - historyRef.current = [...historyRef.current, turn].slice(-MAX_HISTORY_TURNS); - if (room) { - sendChatText(room, fallback); - } - }) - .finally(() => { - setIsComposing(false); - }); - }, UTTERANCE_PAUSE_MS); + // Sends whatever's in the word buffer off for LLM translation right now -- triggered when + // both hands have been gone for HANDS_GONE_FLUSH_MS (see handleLandmarkerResult), not on a + // timer per word. Clears the buffer immediately so a word signed while this request is in + // flight starts a fresh utterance instead of being resent with the old one. + const sendUtteranceNow = useCallback(() => { + const words = [...wordBufferRef.current]; + wordBufferRef.current = []; + setWordBuffer([]); + if (words.length === 0) return; + + setIsComposing(true); + // Snapshot history before this turn -- it must not include the sentence this call is + // about to produce. + const historyForThisTurn = historyRef.current; + composeSignSentence(words, historyForThisTurn) + .then((sentence) => { + setComposedSentences((prev) => [...prev, sentence].slice(-MAX_DISPLAYED_SENTENCES)); + const turn: ConversationTurn = { speaker: "DEAF", text: sentence }; + historyRef.current = [...historyRef.current, turn].slice(-MAX_HISTORY_TURNS); + if (room) { + sendChatText(room, sentence); + } + }) + .catch(() => { + const fallback = words.join(" "); + setComposedSentences((prev) => [...prev, fallback].slice(-MAX_DISPLAYED_SENTENCES)); + const turn: ConversationTurn = { speaker: "DEAF", text: fallback }; + historyRef.current = [...historyRef.current, turn].slice(-MAX_HISTORY_TURNS); + if (room) { + sendChatText(room, fallback); + } + }) + .finally(() => { + setIsComposing(false); + }); }, [room]); - const commitConfirmedSign = useCallback( - (sign: RecognizedSign) => { - setLastConfirmedSign(sign); - setRecentSigns((prev) => [sign, ...prev.slice(0, 9)]); - - // Append word to sentence buffer (avoid consecutive duplicate words in buffer) - const lastWord = wordBufferRef.current[wordBufferRef.current.length - 1]; - if (lastWord !== sign.label) { - wordBufferRef.current = [...wordBufferRef.current, sign.label]; - setWordBuffer([...wordBufferRef.current]); - setRecognizedText(wordBufferRef.current.join(" ")); - flushUtterance(); - } - }, - [flushUtterance], - ); + const commitConfirmedSign = useCallback((sign: RecognizedSign) => { + setLastConfirmedSign(sign); + setRecentSigns((prev) => [sign, ...prev.slice(0, 9)]); + + // Append word to sentence buffer (avoid consecutive duplicate words in buffer). The + // buffer is sent off for translation when both hands go missing for + // HANDS_GONE_FLUSH_MS (handleLandmarkerResult), not from here. + const lastWord = wordBufferRef.current[wordBufferRef.current.length - 1]; + if (lastWord !== sign.label) { + wordBufferRef.current = [...wordBufferRef.current, sign.label]; + setWordBuffer([...wordBufferRef.current]); + setRecognizedText(wordBufferRef.current.join(" ")); + } + }, []); // Pose Landmarker hook for upper body / arm tracking usePoseLandmarker(videoRef, isCameraActive, (result: PoseLandmarkerResult) => { @@ -423,38 +459,20 @@ export function useSignCapture( setIsArmDetected(Boolean(pose && pose.length >= 17)); }); + // Confirms a candidate into the word buffer once it holds steady for REQUIRED_STREAK + // frames. Doesn't touch activeSign -- that's driven directly by the closest DTW match + // (see handleLandmarkerResult), independent of whether it clears the confirmation + // threshold. const handleKslPrediction = useCallback( (candidate: string | null, confidence: number) => { - const meta = candidate ? KSL_WORD_METADATA[candidate] : undefined; - const icon = meta?.icon ?? "🤟"; - const desc = meta?.description ?? `등록한 수어: ${candidate}`; - const { isConfirmed } = updateCandidateStreak(predictionStateRef.current, candidate); - - if (candidate) { - setActiveSign({ - id: `ksl_${candidate}`, - label: candidate, - description: desc, - icon, - confidence, - category: "action", - timestamp: Date.now(), - }); - } else if (predictionStateRef.current.candidateStreak >= NO_SIGN_STREAK_TO_RESET) { - // Only clear once the "no sign" streak is sustained, not on every single null - // tick -- otherwise the live indicator flickers off during brief detection - // gaps mid-gesture. This mirrors the same threshold updateCandidateStreak uses - // to reset the segment, so "recognition ended" and "indicator cleared" agree. - setActiveSign(null); - } - if (candidate && isConfirmed) { + const meta = KSL_WORD_METADATA[candidate]; const kslSign: RecognizedSign = { id: `ksl_${candidate}_${Date.now()}`, label: candidate, - description: desc, - icon, + description: meta?.description ?? `등록한 수어: ${candidate}`, + icon: meta?.icon ?? "🤟", confidence, category: "action", timestamp: Date.now(), @@ -465,12 +483,41 @@ export function useSignCapture( [commitConfirmedSign], ); + // Utterance-end detection: both hands gone for HANDS_GONE_FLUSH_MS sends whatever has been + // confirmed so far, instead of waiting on a per-word pause timer. Pulled out of + // handleLandmarkerResult to keep that callback's cognitive complexity down. + const updateHandsGoneTracking = useCallback( + (handsLength: number) => { + if (handsLength > 0) { + if (handsGoneAtRef.current !== null) { + handsGoneAtRef.current = null; + flushedForGapRef.current = false; + setHandsGoneSince(null); + } + return; + } + + if (handsGoneAtRef.current === null) { + handsGoneAtRef.current = performance.now(); + setHandsGoneSince(handsGoneAtRef.current); + } else if ( + !flushedForGapRef.current && + performance.now() - handsGoneAtRef.current >= HANDS_GONE_FLUSH_MS + ) { + flushedForGapRef.current = true; + sendUtteranceNow(); + } + }, + [sendUtteranceNow], + ); + // Main frame processing callback: sequence-only DTW recognition, no single-frame // static gesture path. const handleLandmarkerResult = useCallback( (handResult: HandLandmarkerResult) => { const hands = handResult.landmarks ?? []; setDetectedHandsCount(hands.length); + updateHandsGoneTracking(hands.length); const poseLandmarks = latestPoseLandmarks(latestPoseRef.current); renderLandmarksToCanvas( @@ -500,11 +547,17 @@ export function useSignCapture( const frames = windowRef.current.toArray(); if (!frames) return; - const { finalCandidate, finalConfidence, debug } = resolvePrediction(frames); + const { finalCandidate, finalConfidence, closestWord, closestSimilarity, debug } = + resolvePrediction(frames); setRecognitionDebug(debug); + // Always show the closest match as a live card, however low the similarity -- lets + // the signer see "this is what it thinks you're doing" even when it isn't + // confident enough to confirm the word into the sentence. + setActiveSign(buildActiveSignFromClosest(closestWord, closestSimilarity)); + handleKslPrediction(finalCandidate, finalConfidence); }, - [showSkeleton, handleKslPrediction], + [showSkeleton, handleKslPrediction, updateHandsGoneTracking], ); const { isLoading: isLoadingModel, isReady: isModelReady } = useHandLandmarker( @@ -622,6 +675,7 @@ export function useSignCapture( composedSentences, references, recognitionDebug, + handsGoneSince, isRecordingWord, recordingSecond, recordingTotalSeconds: RECORD_TOTAL_SECONDS, diff --git a/src/features/sign-capture/ui/sign-capture-view.tsx b/src/features/sign-capture/ui/sign-capture-view.tsx index 7619a88..b052368 100644 --- a/src/features/sign-capture/ui/sign-capture-view.tsx +++ b/src/features/sign-capture/ui/sign-capture-view.tsx @@ -22,8 +22,8 @@ import { Button, Input } from "@/shared/ui"; import { DEFAULT_DTW_THRESHOLD } from "../model/dtw"; import type { RecognizedSign } from "../model/types"; import { + HANDS_GONE_FLUSH_MS, type RecognitionDebug, - UTTERANCE_PAUSE_MS, useSignCapture, } from "../model/use-sign-capture"; import { KSL_WORD_METADATA } from "../model/word-metadata"; @@ -134,34 +134,38 @@ function RecognitionDebugStrip({ debug }: { debug: RecognitionDebug | null }) { ); } -// Ticks locally (display-only) so the signer knows exactly how much longer to wait before the -// buffered words get sent off for translation, instead of the 3s pause being invisible. +// Ticks locally (display-only) so the signer knows exactly how much longer their hands can +// stay out of frame before the buffered words get sent off for translation -- the utterance +// ends when both hands have been gone for HANDS_GONE_FLUSH_MS, not after a pause since the +// last confirmed word. function UtteranceCountdown({ wordBuffer, - lastConfirmedAt, + handsGoneSince, isComposing, }: { wordBuffer: string[]; - lastConfirmedAt: number | null; + handsGoneSince: number | null; isComposing: boolean; }) { - const pending = wordBuffer.length > 0 && !isComposing && lastConfirmedAt !== null; - const [now, setNow] = useState(() => Date.now()); + const pending = wordBuffer.length > 0 && !isComposing && handsGoneSince !== null; + // handsGoneSince is a performance.now() timestamp (see use-sign-capture.ts), so this must + // tick on the same clock -- Date.now() would produce a nonsense diff. + const [now, setNow] = useState(() => performance.now()); useEffect(() => { if (!pending) return; - const id = setInterval(() => setNow(Date.now()), 200); + const id = setInterval(() => setNow(performance.now()), 200); return () => clearInterval(id); }, [pending]); - if (!pending || lastConfirmedAt === null) return null; + if (!pending || handsGoneSince === null) return null; - const remainingMs = UTTERANCE_PAUSE_MS - (now - lastConfirmedAt); + const remainingMs = HANDS_GONE_FLUSH_MS - (now - handsGoneSince); if (remainingMs <= 0) return null; return (

- {Math.ceil(remainingMs / 1000)}초간 더 동작이 없으면 "{wordBuffer.join(" ")}"를 문장으로 + 손이 {Math.ceil(remainingMs / 1000)}초간 더 안 보이면 "{wordBuffer.join(" ")}"를 문장으로 번역합니다.

); @@ -498,12 +502,12 @@ export function SignCaptureView({ isArmDetected, isComposing, activeSign, - lastConfirmedSign, recentSigns, wordBuffer, composedSentences, references, recognitionDebug, + handsGoneSince, isRecordingWord, recordingSecond, recordingTotalSeconds, @@ -616,7 +620,7 @@ export function SignCaptureView({ {/* When the buffered words will be sent off for translation */} From 9c8977357e2eb786cb11bb790c93c4c6e3aab2fd Mon Sep 17 00:00:00 2001 From: eeeeeaaan Date: Wed, 26 Aug 2026 01:32:53 +0900 Subject: [PATCH 14/16] fix: confirm closest match unconditionally, drop the % from the card MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Recognition confirmation was still gated behind DEFAULT_DTW_THRESHOLD even though the live card already showed the closest match regardless. Drop the gate entirely: whichever registered word is closest is now what gets added to the word list, full stop -- there's no "nothing recognized" state once at least one word is registered (the only null candidate now comes from handleLandmarkerResult's no-hands-in-frame check, added alongside this so an empty frame doesn't keep confirming some "closest" word against a zero-filled hand vector). Also remove the similarity % from the live card per feedback -- it's redundant now that whatever's shown is exactly what gets confirmed. Also refreshed /test-camera's description text, which still mentioned "KSL 수어 인식" as if separate from DTW -- it's the same DTW-only path now. That page (teammate-built, gated to preview/dev via isLocalOrPreview(), linked from the home page) already renders SignCaptureView standalone with room=null, which exercises the full word-list -> LLM sentence pipeline without needing an active call. Co-Authored-By: Claude Sonnet 5 --- .../sign-capture/model/use-sign-capture.ts | 51 ++++++++++--------- .../sign-capture/ui/sign-capture-view.tsx | 3 -- src/pages/test-camera/ui/test-camera-page.tsx | 4 +- 3 files changed, 28 insertions(+), 30 deletions(-) diff --git a/src/features/sign-capture/model/use-sign-capture.ts b/src/features/sign-capture/model/use-sign-capture.ts index a47dd29..ab3ab07 100644 --- a/src/features/sign-capture/model/use-sign-capture.ts +++ b/src/features/sign-capture/model/use-sign-capture.ts @@ -99,10 +99,8 @@ const RECORD_TOTAL_SECONDS = RECORD_REPS * REP_INTERVAL_SECONDS; const MIN_SEGMENT_FRAMES = 5; interface ResolvedPrediction { - finalCandidate: string | null; - finalConfidence: number; - closestWord: string | null; - closestSimilarity: number; + candidate: string | null; + confidence: number; debug: RecognitionDebug; } @@ -116,26 +114,19 @@ interface ResolvedPrediction { // becomes fully predictable: whatever you record is what gets recognized. Packages a debug // snapshot alongside the result -- pulled out of handleLandmarkerResult to keep that // callback's cognitive complexity down. +// +// Unconditional: whichever registered word is closest is the candidate, with no distance +// threshold gating confirmation -- once at least one word is registered there's no "nothing +// recognized" state (only handleLandmarkerResult's hands-not-detected check produces a null +// candidate). DEFAULT_DTW_THRESHOLD is used only to scale the debug/display similarity +// percentage, not to accept or reject a match. function resolvePrediction(frames: number[][]): ResolvedPrediction { - // Always compute the closest DTW reference (even above threshold) so the debug readout - // and the live "인식 중" card can show it -- otherwise a near-miss custom word is - // invisible to the user instead of showing "this is what it thinks you're doing, just - // not confidently enough." const dtwBest = closestReference(frames); - // Only a match under threshold actually confirms a word into the sentence buffer -- - // showing every closest guess as a live card is fine (it's just a hint), but sending - // every closest guess to the LLM as a "recognized word" would wreck translation quality. - const dtwMatch = dtwBest && dtwBest.distance <= DEFAULT_DTW_THRESHOLD ? dtwBest : null; - // DTW has no natural 0-1 similarity -- derive one from how close the distance is to the - // threshold. Computed for the closest match regardless of whether it clears the - // threshold, so it can drive the always-shown card. const similarity = dtwBest ? Math.max(0, 1 - dtwBest.distance / DEFAULT_DTW_THRESHOLD) : 0; return { - finalCandidate: dtwMatch?.word ?? null, - finalConfidence: similarity, - closestWord: dtwBest?.word ?? null, - closestSimilarity: similarity, + candidate: dtwBest?.word ?? null, + confidence: similarity, debug: { dtwWord: dtwBest?.word ?? null, dtwDistance: dtwBest?.distance ?? null, @@ -544,18 +535,28 @@ export function useSignCapture( // word buffer/LLM compose flow with junk from the practice reps. if (recordingWordRef.current) return; + // No hands in frame means no gesture is happening -- skip DTW lookup entirely + // rather than matching a zero-filled hand vector against whatever's registered + // (which, since confirmation is unconditional, would otherwise keep confirming + // some "closest" word even with nobody signing). + if (hands.length === 0) { + setActiveSign(null); + handleKslPrediction(null, 0); + return; + } + const frames = windowRef.current.toArray(); if (!frames) return; - const { finalCandidate, finalConfidence, closestWord, closestSimilarity, debug } = - resolvePrediction(frames); + const { candidate, confidence, debug } = resolvePrediction(frames); setRecognitionDebug(debug); // Always show the closest match as a live card, however low the similarity -- lets - // the signer see "this is what it thinks you're doing" even when it isn't - // confident enough to confirm the word into the sentence. - setActiveSign(buildActiveSignFromClosest(closestWord, closestSimilarity)); + // the signer see "this is what it thinks you're doing." Confirmation into the + // sentence buffer is unconditional too (see resolvePrediction), so this is also + // exactly what's about to be added to the word list. + setActiveSign(buildActiveSignFromClosest(candidate, confidence)); - handleKslPrediction(finalCandidate, finalConfidence); + handleKslPrediction(candidate, confidence); }, [showSkeleton, handleKslPrediction, updateHandsGoneTracking], ); diff --git a/src/features/sign-capture/ui/sign-capture-view.tsx b/src/features/sign-capture/ui/sign-capture-view.tsx index b052368..dc9a26d 100644 --- a/src/features/sign-capture/ui/sign-capture-view.tsx +++ b/src/features/sign-capture/ui/sign-capture-view.tsx @@ -106,9 +106,6 @@ function ActiveSignBadge({ activeSign }: { activeSign: RecognizedSign | null })
{activeSign.icon} {activeSign.label} - - {Math.round(activeSign.confidence * 100)}% - 인식 중 diff --git a/src/pages/test-camera/ui/test-camera-page.tsx b/src/pages/test-camera/ui/test-camera-page.tsx index 72d5906..2a64a59 100644 --- a/src/pages/test-camera/ui/test-camera-page.tsx +++ b/src/pages/test-camera/ui/test-camera-page.tsx @@ -28,8 +28,8 @@ export function TestCameraPage() {
- 통화 연결 없이 실시간 웹캠 관절 추적, KSL 수어 인식, DTW 커스텀 단어 등록을 테스트할 - 수 있습니다. + 통화 연결 없이 실시간 웹캠 관절 추적, 단어 등록(DTW), 등록한 단어가 문장으로 잘 + 번역되는지를 테스트할 수 있습니다.
From e2c6396130f45a31e40906b238cdc431a715d5f8 Mon Sep 17 00:00:00 2001 From: eeeeeaaan Date: Wed, 26 Aug 2026 01:38:18 +0900 Subject: [PATCH 15/16] fix: shorten hands-gone flush from 3s to 1.5s Co-Authored-By: Claude Sonnet 5 --- src/features/sign-capture/model/use-sign-capture.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/features/sign-capture/model/use-sign-capture.ts b/src/features/sign-capture/model/use-sign-capture.ts index ab3ab07..7bad9aa 100644 --- a/src/features/sign-capture/model/use-sign-capture.ts +++ b/src/features/sign-capture/model/use-sign-capture.ts @@ -75,7 +75,7 @@ const NO_SIGN_STREAK_TO_RESET = 5; // turn and send whatever's been confirmed so far off for translation. Replaces a // pause-since-last-confirmed-word debounce, which didn't distinguish "hands down, done // signing" from "hands still up, just pausing mid-sentence." -export const HANDS_GONE_FLUSH_MS = 3000; +export const HANDS_GONE_FLUSH_MS = 1500; // How many prior turns (both sides combined) to send as context with each compose call. const MAX_HISTORY_TURNS = 12; // How many past translated sentences to keep around for display -- translation keeps From b17e3f956b0bd9d982f8fe6f9ec1efbb3dcd1332 Mon Sep 17 00:00:00 2001 From: eeeeeaaan Date: Wed, 26 Aug 2026 01:58:19 +0900 Subject: [PATCH 16/16] feat: back DTW word references by the shared backend DB, move training to My Info MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Custom sign-language word DTW references only ever lived in each browser's localStorage -- one signer's trained vocabulary never carried over to a different device or browser (it only looked "persistent" because a Cloudflare Pages preview branch reuses the same origin across redeploys, not because of any real sync). The backend now exposes a global reference store (see backend PR: GET/PUT/DELETE /api/sign-language/references) since this app has no per-user auth -- a word one signer records becomes recognizable for everyone. dtw.ts changes: - loadReferencesFromServer() fetches the full store once and populates an in-memory cache; closestReference() (called every video frame) reads that cache synchronously -- DTW matching has to stay client-side for performance, so this is a one-time sync point, not a per-frame network call. - saveReference/clearReference (per-bucket, synchronous) replaced by replaceReferenceSamples/deleteReference (async, whole-word, optimistically update the cache alongside the network call). - Dropped the now-unused matchReference (recognition confirmation is unconditional, see the earlier resolvePrediction change -- only closestReference is called). use-sign-capture.ts: loads references from the server on mount; finishRecordingReference and removeReference are now async, with a new isSavingReference state so the recorder UI can show "저장 중..." and disable actions while a save/delete is in flight, and a failure path if the network call fails. Also moves the camera-based word-training UI (SignCaptureView) from the preview/dev-only /test-camera route (linked from a isLocalOrPreview()-gated home-page button) to a permanent, real-user section on the Profile ("나의 정보") page, since training now needs to happen from a real device to actually populate the shared store -- removes /test-camera, its page, the home-page entry point, and the now-unused isLocalOrPreview() (shared/lib/is-preview.ts). Co-Authored-By: Claude Sonnet 5 --- src/app/routeTree.gen.ts | 24 +---- src/app/routes/test-camera.tsx | 6 -- src/features/sign-capture/model/dtw.ts | 90 +++++++++---------- .../sign-capture/model/use-sign-capture.ts | 74 +++++++++++---- .../sign-capture/ui/sign-capture-view.tsx | 15 ++-- src/pages/home/ui/home-page.tsx | 15 +--- src/pages/profile/ui/profile-page.tsx | 23 +++++ src/pages/test-camera/index.ts | 1 - src/pages/test-camera/ui/test-camera-page.tsx | 40 --------- src/shared/lib/index.ts | 1 - src/shared/lib/is-preview.ts | 17 ---- 11 files changed, 132 insertions(+), 174 deletions(-) delete mode 100644 src/app/routes/test-camera.tsx delete mode 100644 src/pages/test-camera/index.ts delete mode 100644 src/pages/test-camera/ui/test-camera-page.tsx delete mode 100644 src/shared/lib/is-preview.ts diff --git a/src/app/routeTree.gen.ts b/src/app/routeTree.gen.ts index 320ca5d..3360fc0 100644 --- a/src/app/routeTree.gen.ts +++ b/src/app/routeTree.gen.ts @@ -14,7 +14,6 @@ import { Route as CallRouteImport } from './routes/call' import { Route as LobbyRouteImport } from './routes/lobby' import { Route as MyRouteImport } from './routes/my' import { Route as RecentRouteImport } from './routes/recent' -import { Route as TestCameraRouteImport } from './routes/test-camera' const IndexRoute = IndexRouteImport.update({ id: '/', @@ -41,11 +40,6 @@ const RecentRoute = RecentRouteImport.update({ path: '/recent', getParentRoute: () => rootRouteImport, } as any) -const TestCameraRoute = TestCameraRouteImport.update({ - id: '/test-camera', - path: '/test-camera', - getParentRoute: () => rootRouteImport, -} as any) export interface FileRoutesByFullPath { '/': typeof IndexRoute @@ -53,7 +47,6 @@ export interface FileRoutesByFullPath { '/lobby': typeof LobbyRoute '/my': typeof MyRoute '/recent': typeof RecentRoute - '/test-camera': typeof TestCameraRoute } export interface FileRoutesByTo { '/': typeof IndexRoute @@ -61,7 +54,6 @@ export interface FileRoutesByTo { '/lobby': typeof LobbyRoute '/my': typeof MyRoute '/recent': typeof RecentRoute - '/test-camera': typeof TestCameraRoute } export interface FileRoutesById { __root__: typeof rootRouteImport @@ -70,14 +62,13 @@ export interface FileRoutesById { '/lobby': typeof LobbyRoute '/my': typeof MyRoute '/recent': typeof RecentRoute - '/test-camera': typeof TestCameraRoute } export interface FileRouteTypes { fileRoutesByFullPath: FileRoutesByFullPath - fullPaths: '/' | '/call' | '/lobby' | '/my' | '/recent' | '/test-camera' + fullPaths: '/' | '/call' | '/lobby' | '/my' | '/recent' fileRoutesByTo: FileRoutesByTo - to: '/' | '/call' | '/lobby' | '/my' | '/recent' | '/test-camera' - id: '__root__' | '/' | '/call' | '/lobby' | '/my' | '/recent' | '/test-camera' + to: '/' | '/call' | '/lobby' | '/my' | '/recent' + id: '__root__' | '/' | '/call' | '/lobby' | '/my' | '/recent' fileRoutesById: FileRoutesById } export interface RootRouteChildren { @@ -86,7 +77,6 @@ export interface RootRouteChildren { LobbyRoute: typeof LobbyRoute MyRoute: typeof MyRoute RecentRoute: typeof RecentRoute - TestCameraRoute: typeof TestCameraRoute } declare module '@tanstack/react-router' { @@ -126,13 +116,6 @@ declare module '@tanstack/react-router' { preLoaderRoute: typeof RecentRouteImport parentRoute: typeof rootRouteImport } - '/test-camera': { - id: '/test-camera' - path: '/test-camera' - fullPath: '/test-camera' - preLoaderRoute: typeof TestCameraRouteImport - parentRoute: typeof rootRouteImport - } } } @@ -142,7 +125,6 @@ const rootRouteChildren: RootRouteChildren = { LobbyRoute: LobbyRoute, MyRoute: MyRoute, RecentRoute: RecentRoute, - TestCameraRoute: TestCameraRoute, } export const routeTree = rootRouteImport ._addFileChildren(rootRouteChildren) diff --git a/src/app/routes/test-camera.tsx b/src/app/routes/test-camera.tsx deleted file mode 100644 index d85e13e..0000000 --- a/src/app/routes/test-camera.tsx +++ /dev/null @@ -1,6 +0,0 @@ -import { createFileRoute } from "@tanstack/react-router"; -import { TestCameraPage } from "@/pages/test-camera"; - -export const Route = createFileRoute("/test-camera")({ - component: TestCameraPage, -}); diff --git a/src/features/sign-capture/model/dtw.ts b/src/features/sign-capture/model/dtw.ts index c201ef7..2b1b7d4 100644 --- a/src/features/sign-capture/model/dtw.ts +++ b/src/features/sign-capture/model/dtw.ts @@ -1,26 +1,33 @@ -// v2: references are now stored body-relative (see normalizeFrame) instead of raw -// screen-space coordinates. v1 references would silently mismatch under the new -// normalization, so this bumps the key and effectively starts everyone fresh -- -// re-record any custom words after this ships. -const STORAGE_KEY = "naru-sign-references-v2"; +import { apiClient } from "@/shared/api"; + const MAX_SAMPLES_PER_WORD = 10; -// Starting point -- tune against real recordings. Distances are now body-relative -// (shoulder-width units), so this is unrelated to the old v1 threshold's scale. +// Starting point -- tune against real recordings. Distances are body-relative +// (shoulder-width units). export const DEFAULT_DTW_THRESHOLD = 0.6; type ReferenceStore = Record; -// Reference sequences never leave the browser: no server call, no upload. -function loadReferences(): ReferenceStore { - try { - return JSON.parse(localStorage.getItem(STORAGE_KEY) ?? "{}"); - } catch { - return {}; - } +// Reference samples are global now (see backend PR: com.ssu.unithon.sign.domain.SignWordReference) +// -- there's no per-user auth in this app, so a word one signer records becomes recognizable +// for everyone. DTW matching runs client-side on every video frame (15-30x/second), so it +// cannot be a network call -- this in-memory cache is the thing actually queried per frame, +// refreshed from the server on load and kept in sync optimistically on save/delete. +let cache: ReferenceStore = {}; + +/** Fetches the full reference store from the server and refreshes the in-memory matching cache. Call once on mount; recognition uses the cache, not the network, per frame. */ +export async function loadReferencesFromServer(): Promise> { + const { data } = await apiClient.get("/api/sign-language/references"); + cache = data; + return countsFromCache(); +} + +function countsFromCache(): Record { + return Object.fromEntries(Object.entries(cache).map(([word, samples]) => [word, samples.length])); } -function persist(store: ReferenceStore) { - localStorage.setItem(STORAGE_KEY, JSON.stringify(store)); +/** word -> saved sample count, for display in the recording UI. Reads the in-memory cache -- call loadReferencesFromServer first to populate it. */ +export function listReferences(): Record { + return countsFromCache(); } // Layout matches landmarks.ts's extractFeatures: pose is 6 landmarks x [x,y,z,visibility] @@ -62,27 +69,19 @@ function normalizeSequence(frames: number[][]): number[][] { return frames.map(normalizeFrame); } -/** Stores one 30-frame landmark sample as a reference for `word`. Returns the sample count for that word. */ -export function saveReference(word: string, sequence: number[][]): number { - const store = loadReferences(); - const samples = [...(store[word] ?? []), normalizeSequence(sequence)].slice( - -MAX_SAMPLES_PER_WORD, - ); - store[word] = samples; - persist(store); - return samples.length; +/** Replaces `word`'s entire reference set on the server with `samples` (each a raw, un-normalized landmark sequence) and updates the in-memory matching cache to match. A take is meant to supersede whatever was recorded before, not accumulate alongside it. */ +export async function replaceReferenceSamples(word: string, samples: number[][][]): Promise { + const normalized = samples.map(normalizeSequence).slice(-MAX_SAMPLES_PER_WORD); + await apiClient.put(`/api/sign-language/references/${encodeURIComponent(word)}`, { + samples: normalized, + }); + cache = { ...cache, [word]: normalized }; } -export function clearReference(word: string) { - const store = loadReferences(); - delete store[word]; - persist(store); -} - -/** word -> saved sample count, for display in the recording UI. */ -export function listReferences(): Record { - const store = loadReferences(); - return Object.fromEntries(Object.entries(store).map(([word, samples]) => [word, samples.length])); +export async function deleteReference(word: string): Promise { + await apiClient.delete(`/api/sign-language/references/${encodeURIComponent(word)}`); + const { [word]: _removed, ...rest } = cache; + cache = rest; } function frameDistance(a: number[], b: number[]): number { @@ -131,16 +130,16 @@ export interface DtwMatch { } /** - * Finds the closest saved reference to `sequence` (raw, un-normalized) regardless of - * threshold -- exposed separately from matchReference so the caller can show diagnostics - * (e.g. "closest match: 병원, distance 0.83, threshold 0.60") even when nothing currently - * passes, instead of the recognizer being a black box when it isn't matching. + * Finds the closest saved reference to `sequence` (raw, un-normalized), regardless of + * distance -- confirmation is unconditional (use-sign-capture.ts), so this is the only + * lookup recognition needs; DEFAULT_DTW_THRESHOLD is used only to scale the display + * similarity, not to gate this. Reads the in-memory cache synchronously (no network call) + * since this runs every video frame. */ export function closestReference(sequence: number[][]): DtwMatch | null { - const store = loadReferences(); const normalized = normalizeSequence(sequence); let best: DtwMatch | null = null; - for (const [word, samples] of Object.entries(store)) { + for (const [word, samples] of Object.entries(cache)) { for (const sample of samples) { const distance = dtwDistance(normalized, sample); if (!best || distance < best.distance) { @@ -150,12 +149,3 @@ export function closestReference(sequence: number[][]): DtwMatch | null { } return best; } - -/** Finds the closest saved reference to `sequence` (raw, un-normalized), or null if nothing is within threshold. */ -export function matchReference( - sequence: number[][], - threshold = DEFAULT_DTW_THRESHOLD, -): DtwMatch | null { - const best = closestReference(sequence); - return best && best.distance <= threshold ? best : null; -} diff --git a/src/features/sign-capture/model/use-sign-capture.ts b/src/features/sign-capture/model/use-sign-capture.ts index 7bad9aa..5bd51b7 100644 --- a/src/features/sign-capture/model/use-sign-capture.ts +++ b/src/features/sign-capture/model/use-sign-capture.ts @@ -10,11 +10,12 @@ import type { CaptionType } from "@/entities/caption"; import { drawFullBodySkeleton, useHandLandmarker, usePoseLandmarker } from "@/shared/lib"; import { type ConversationTurn, composeSignSentence } from "../api/sign-api"; import { - clearReference, closestReference, DEFAULT_DTW_THRESHOLD, + deleteReference, listReferences, - saveReference, + loadReferencesFromServer, + replaceReferenceSamples, } from "./dtw"; import { extractFeatures, @@ -52,6 +53,7 @@ export interface UseSignCaptureReturn { recognitionDebug: RecognitionDebug | null; handsGoneSince: number | null; isRecordingWord: boolean; + isSavingReference: boolean; recordingSecond: number; recordingTotalSeconds: number; recordingTotalReps: number; @@ -292,6 +294,7 @@ export function useSignCapture( const [recognitionDebug, setRecognitionDebug] = useState(null); const [handsGoneSince, setHandsGoneSince] = useState(null); const [isRecordingWord, setIsRecordingWord] = useState(false); + const [isSavingReference, setIsSavingReference] = useState(false); const [recordingSecond, setRecordingSecond] = useState(0); const [recordingResult, setRecordingResult] = useState<{ ok: boolean; message: string } | null>( null, @@ -379,6 +382,23 @@ export function useSignCapture( }; }, [startCamera, stopCamera]); + // Load the global reference store once on mount -- recognition itself reads the + // in-memory cache dtw.ts keeps (synchronous, per video frame), so this is a one-time + // sync point, not something re-fetched per frame. + useEffect(() => { + let cancelled = false; + loadReferencesFromServer() + .then((counts) => { + if (!cancelled) setReferences(counts); + }) + .catch((err) => { + console.error("Failed to load sign word references:", err); + }); + return () => { + cancelled = true; + }; + }, []); + // Records each newly-finalized caption (the HEARING side's speech) into the shared // history so the next compose call has it as context. Interim captions are skipped — // only the final text for a given segment id is recorded, once. @@ -593,23 +613,35 @@ export function useSignCapture( const idx = Math.min(RECORD_REPS - 1, Math.floor(t / (REP_INTERVAL_SECONDS * 1000))); buckets[idx]?.push(f); } + const validSamples = buckets.filter((bucket) => bucket.length >= MIN_SEGMENT_FRAMES); - clearReference(word); - let saved = 0; - for (const bucket of buckets) { - if (bucket.length < MIN_SEGMENT_FRAMES) continue; - saveReference(word, bucket); - saved += 1; + if (validSamples.length === 0) { + setRecordingResult({ + ok: false, + message: "동작이 감지되지 않았습니다. 손이 잘 보이는 곳에서 다시 시도해주세요.", + }); + return; } - setReferences(listReferences()); - setRecordingResult( - saved > 0 - ? { ok: true, message: `'${word}' 동작 샘플 ${saved}개를 저장했습니다.` } - : { - ok: false, - message: "동작이 감지되지 않았습니다. 손이 잘 보이는 곳에서 다시 시도해주세요.", - }, - ); + + setIsSavingReference(true); + replaceReferenceSamples(word, validSamples) + .then(() => { + setReferences(listReferences()); + setRecordingResult({ + ok: true, + message: `'${word}' 동작 샘플 ${validSamples.length}개를 저장했습니다.`, + }); + }) + .catch((err) => { + console.error("Failed to save sign word reference:", err); + setRecordingResult({ + ok: false, + message: "저장에 실패했습니다. 네트워크 연결을 확인하고 다시 시도해주세요.", + }); + }) + .finally(() => { + setIsSavingReference(false); + }); }, []); const startRecordingReference = useCallback( @@ -653,8 +685,11 @@ export function useSignCapture( }, []); const removeReference = useCallback((word: string) => { - clearReference(word); - setReferences(listReferences()); + deleteReference(word) + .then(() => setReferences(listReferences())) + .catch((err) => { + console.error("Failed to delete sign word reference:", err); + }); }, []); return { @@ -678,6 +713,7 @@ export function useSignCapture( recognitionDebug, handsGoneSince, isRecordingWord, + isSavingReference, recordingSecond, recordingTotalSeconds: RECORD_TOTAL_SECONDS, recordingTotalReps: RECORD_REPS, diff --git a/src/features/sign-capture/ui/sign-capture-view.tsx b/src/features/sign-capture/ui/sign-capture-view.tsx index dc9a26d..6b89082 100644 --- a/src/features/sign-capture/ui/sign-capture-view.tsx +++ b/src/features/sign-capture/ui/sign-capture-view.tsx @@ -288,6 +288,7 @@ function RecentSignsHistory({ function CustomWordRecorder({ references, isRecording, + isSaving, recordingSecond, recordingTotalSeconds, recordingTotalReps, @@ -300,6 +301,7 @@ function CustomWordRecorder({ }: { references: Record; isRecording: boolean; + isSaving: boolean; recordingSecond: number; recordingTotalSeconds: number; recordingTotalReps: number; @@ -334,14 +336,15 @@ function CustomWordRecorder({

기본 모델에 없는 단어(예: 병원, 예약, 도움)를 등록해보세요. "학습 시작"을 누르면{" "} {recordingTotalSeconds}초 동안 {recordingRepIntervalSeconds}초에 한 번씩 그 단어의 동작을 - 반복해주시면(총 {recordingTotalReps}번) 자동으로 나눠서 저장합니다. + 반복해주시면(총 {recordingTotalReps}번) 자동으로 나눠서 저장합니다. 등록한 단어는 모든 + 사용자에게 공유됩니다.

setNewWord(e.target.value)} - disabled={isRecording} + disabled={isRecording || isSaving} className="h-9 border-neutral-700 bg-neutral-800/80 text-xs text-white" /> {isRecording ? ( @@ -365,12 +368,12 @@ function CustomWordRecorder({ ) : ( )}
@@ -428,7 +431,7 @@ function CustomWordRecorder({ - ) : ( -
- )} +
{(registration.isError || outgoing.isError || incoming.isError) && (

전화번호 등록 또는 연결을 확인해 주세요. diff --git a/src/pages/profile/ui/profile-page.tsx b/src/pages/profile/ui/profile-page.tsx index d007648..25f64e1 100644 --- a/src/pages/profile/ui/profile-page.tsx +++ b/src/pages/profile/ui/profile-page.tsx @@ -17,6 +17,7 @@ import { setCallPreferences, setMyPhone, } from "@/entities/call"; +import { SignCaptureView } from "@/features/sign-capture"; import { snackbar } from "@/shared/lib"; import { ActionButton, @@ -52,6 +53,7 @@ function registrationErrorMessage(error: unknown) { export function ProfilePage() { const [phone, setPhone] = useState(getMyPhone); const [preferences, setPreferencesState] = useState(getCallPreferences); + const [showSignTraining, setShowSignTraining] = useState(false); const updatePreference = ( key: Key, value: CallPreferences[Key], @@ -150,6 +152,27 @@ export function ProfilePage() { ]} /> + + + 수어 단어 학습 + +

+ 모델에 없는 수어 단어를 카메라로 직접 녹화해서 등록할 수 있어요. 등록한 단어는 모든 + 사용자에게 공유돼요. +

+ setShowSignTraining((prev) => !prev)} + > + {showSignTraining ? "카메라 닫기" : "카메라로 단어 학습하기"} + + {showSignTraining && ( +
+ +
+ )} diff --git a/src/pages/test-camera/index.ts b/src/pages/test-camera/index.ts deleted file mode 100644 index 2a68243..0000000 --- a/src/pages/test-camera/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { TestCameraPage } from "./ui/test-camera-page"; diff --git a/src/pages/test-camera/ui/test-camera-page.tsx b/src/pages/test-camera/ui/test-camera-page.tsx deleted file mode 100644 index 2a64a59..0000000 --- a/src/pages/test-camera/ui/test-camera-page.tsx +++ /dev/null @@ -1,40 +0,0 @@ -import { useNavigate } from "@tanstack/react-router"; -import { ArrowLeft, Camera, Sparkles } from "lucide-react"; -import { SignCaptureView } from "@/features/sign-capture"; - -export function TestCameraPage() { - const navigate = useNavigate(); - - return ( -
-
- -
- - 수어 카메라 테스트 모드 -
-
- -
-
-
- - - 통화 연결 없이 실시간 웹캠 관절 추적, 단어 등록(DTW), 등록한 단어가 문장으로 잘 - 번역되는지를 테스트할 수 있습니다. - -
-
- -
-
- ); -} diff --git a/src/shared/lib/index.ts b/src/shared/lib/index.ts index c620027..a5db3c9 100644 --- a/src/shared/lib/index.ts +++ b/src/shared/lib/index.ts @@ -1,6 +1,5 @@ export { cn } from "./cn"; export { dayjs } from "./dayjs"; -export { isLocalOrPreview } from "./is-preview"; export { connectRoom, onRoomText, sendRoomText } from "./livekit"; export { SnackbarBridge, snackbar } from "./snackbar"; export { diff --git a/src/shared/lib/is-preview.ts b/src/shared/lib/is-preview.ts deleted file mode 100644 index 52fc33a..0000000 --- a/src/shared/lib/is-preview.ts +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Returns true if running in local development (vite dev) or preview deployment (Cloudflare pages.dev / PR preview). - */ -export function isLocalOrPreview(): boolean { - if (import.meta.env.DEV) return true; - if (typeof window !== "undefined") { - const host = window.location.hostname; - return ( - host === "localhost" || - host === "127.0.0.1" || - host.includes("pages.dev") || - host.includes("preview") || - window.location.search.includes("preview=true") - ); - } - return false; -}