From 55e3cdfb26f3e3e5f47757412b01b29b5168b9d7 Mon Sep 17 00:00:00 2001 From: chahinebrini Date: Sun, 31 May 2026 01:37:11 +0200 Subject: [PATCH] fix(transcribe): pass language=ar/tr to nova-2-general so Lyra answers in correct language MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Without explicit language param, nova-2-general falls back to multilingual auto-detect and often misdetects arabic audio as english (phonetic transcript 'salam alaikum' instead of 'السلام عليكم'). detectLang() then sees only latin chars and answers in english. Confirmed via Deepgram docs: nova-2-general accepts language=ar and language=tr (only nova-3 rejects them with HTTP 400). --- backend/server/api/coach/transcribe.post.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/backend/server/api/coach/transcribe.post.ts b/backend/server/api/coach/transcribe.post.ts index 1dcfe3a..f3f75b2 100644 --- a/backend/server/api/coach/transcribe.post.ts +++ b/backend/server/api/coach/transcribe.post.ts @@ -95,9 +95,15 @@ export default defineEventHandler(async (event) => { ? language : "de"; + // nova-2-general unterstützt language=ar/tr (im Gegensatz zu nova-3). + // Ohne expliziten language-Param fällt nova-2 auf Auto-Detect zurück und + // misdetektiert arabisches Audio oft als Englisch (phonetisches Transcript + // wie "salam alaikum" statt "السلام عليكم") — Lyra antwortet dann nicht + // auf Arabisch. Mit language=ar wird der korrekte Acoustic-Model-Pfad + // verwendet und die Schrift bleibt arabisch. const needsGeneralModel = ["ar", "tr"].includes(deepgramLang); const deepgramUrl = needsGeneralModel - ? "https://api.deepgram.com/v1/listen?model=nova-2-general" + ? `https://api.deepgram.com/v1/listen?language=${deepgramLang}&model=nova-2-general` : `https://api.deepgram.com/v1/listen?language=${deepgramLang}&model=nova-3`; console.log(