From f2521d2b9e7eb82bfe0b6b7e17a898471ec12bad Mon Sep 17 00:00:00 2001 From: Benjamin Admin Date: Sun, 1 Mar 2026 11:08:52 +0100 Subject: [PATCH] feat(ocr-pipeline): British/American IPA pronunciation choice - Integrate Britfone dictionary (MIT, 15k British English IPA entries) - Add pronunciation parameter: 'british' (default) or 'american' - British uses Britfone (Received Pronunciation), falls back to CMU - American uses eng_to_ipa/CMU, falls back to Britfone - Frontend: dropdown to switch pronunciation, default = British - API: ?pronunciation=british|american query parameter Co-Authored-By: Claude Opus 4.6 --- .../ocr-pipeline/StepWordRecognition.tsx | 13 ++- klausur-service/backend/cv_vocab_pipeline.py | 107 ++++++++++++++---- .../backend/data/britfone_ipa.json | 1 + klausur-service/backend/ocr_pipeline_api.py | 4 +- 4 files changed, 102 insertions(+), 23 deletions(-) create mode 100644 klausur-service/backend/data/britfone_ipa.json diff --git a/admin-lehrer/components/ocr-pipeline/StepWordRecognition.tsx b/admin-lehrer/components/ocr-pipeline/StepWordRecognition.tsx index 1d49d76..5b90ade 100644 --- a/admin-lehrer/components/ocr-pipeline/StepWordRecognition.tsx +++ b/admin-lehrer/components/ocr-pipeline/StepWordRecognition.tsx @@ -34,6 +34,7 @@ export function StepWordRecognition({ sessionId, onNext, goToStep }: StepWordRec const [mode, setMode] = useState<'overview' | 'labeling'>('overview') const [ocrEngine, setOcrEngine] = useState<'auto' | 'tesseract' | 'rapid'>('auto') const [usedEngine, setUsedEngine] = useState('') + const [pronunciation, setPronunciation] = useState<'british' | 'american'>('british') const enRef = useRef(null) @@ -73,7 +74,7 @@ export function StepWordRecognition({ sessionId, onNext, goToStep }: StepWordRec setDetecting(true) setError(null) try { - const res = await fetch(`${KLAUSUR_API}/api/v1/ocr-pipeline/sessions/${sessionId}/words?engine=${eng}`, { + const res = await fetch(`${KLAUSUR_API}/api/v1/ocr-pipeline/sessions/${sessionId}/words?engine=${eng}&pronunciation=${pronunciation}`, { method: 'POST', }) if (!res.ok) { @@ -538,6 +539,16 @@ export function StepWordRecognition({ sessionId, onNext, goToStep }: StepWordRec + {/* Pronunciation selector */} + +