fix(coach): use nova-2-general for ar/tr STT to avoid 400 errors

This commit is contained in:
chahinebrini 2026-05-30 02:14:16 +02:00
parent 6d59bfd62b
commit d31d5b3b83

View File

@ -83,31 +83,39 @@ export default defineEventHandler(async (event) => {
buffer.length, buffer.length,
); );
// Deepgram language mapping. WICHTIG: model=nova-3, NICHT nova-2 — // Deepgram language mapping.
// nova-2 unterstützt weder Arabisch (ar) noch Türkisch (tr) und antwortet // Live-Diagnose (2026-05-30): nova-3 lehnt language=ar (und tr) mit
// dafür mit 400 "No such model/language/tier combination" → leeres // 400 "No such model/language/tier combination found" ab — entgegen
// Transcript / Fehler beim Client ("kein Text nach Speech"). nova-3 deckt // der vorherigen Annahme. Fallback für ar/tr: nova-2-general
// alle hier gelisteten Sprachen als diskrete Codes ab (inkl. ar + tr), // (multilingual auto-detect). Für alle anderen Sprachen bleibt nova-3
// ohne Regression für de/en/fr/es/pt/it. Verifiziert gg. Deepgram-Doc // (bessere Genauigkeit, diskrete language-codes).
// models-languages-overview (2026-05).
const deepgramLang = const deepgramLang =
language && language &&
["de", "en", "tr", "ar", "fr", "es", "pt", "it"].includes(language) ["de", "en", "tr", "ar", "fr", "es", "pt", "it"].includes(language)
? language ? language
: "de"; : "de";
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-3`;
console.log(
"[transcribe] language:",
deepgramLang,
"model:",
needsGeneralModel ? "nova-2-general" : "nova-3",
);
try { try {
const response = await fetch( const response = await fetch(deepgramUrl, {
`https://api.deepgram.com/v1/listen?language=${deepgramLang}&model=nova-3`, method: "POST",
{ headers: {
method: "POST", Authorization: `Token ${config.deepgramApiKey}`,
headers: { "Content-Type": blobType,
Authorization: `Token ${config.deepgramApiKey}`,
"Content-Type": blobType,
},
body: buffer,
}, },
); body: buffer,
});
const result = await response.json(); const result = await response.json();