fix(coach): use nova-2-general for ar/tr STT to avoid 400 errors
This commit is contained in:
parent
6d59bfd62b
commit
d31d5b3b83
@ -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();
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user