feat: add deepgram audio options

This commit is contained in:
Peter Steinberger
2026-01-17 08:50:28 +00:00
parent e637bbdfb5
commit ae6792522d
9 changed files with 110 additions and 3 deletions

View File

@@ -65,12 +65,18 @@ describe("transcribeDeepgramAudio", () => {
language: " en ",
mime: "audio/wav",
headers: { "X-Custom": "1" },
query: {
punctuate: false,
smart_format: true,
},
fetchFn,
});
expect(result.model).toBe("nova-3");
expect(result.text).toBe("hello");
expect(seenUrl).toBe("https://api.example.com/v1/listen?model=nova-3&language=en");
expect(seenUrl).toBe(
"https://api.example.com/v1/listen?model=nova-3&language=en&punctuate=false&smart_format=true",
);
expect(seenInit?.method).toBe("POST");
expect(seenInit?.signal).toBeInstanceOf(AbortSignal);

View File

@@ -29,6 +29,12 @@ export async function transcribeDeepgramAudio(
const url = new URL(`${baseUrl}/listen`);
url.searchParams.set("model", model);
if (params.language?.trim()) url.searchParams.set("language", params.language.trim());
if (params.query) {
for (const [key, value] of Object.entries(params.query)) {
if (value === undefined) continue;
url.searchParams.set(key, String(value));
}
}
const headers = new Headers(params.headers);
if (!headers.has("authorization")) {