whispercpp.ts 708 B

12345678910111213141516171819202122232425262728293031
  1. import { STTBackend } from "@/types/backend";
  2. export async function whispercpp(
  3. config: STTBackend["whispercpp"],
  4. file: File,
  5. prompt?: string,
  6. ) {
  7. // Request body
  8. const formData = new FormData();
  9. formData.append('file', file);
  10. if (prompt) {
  11. formData.append('prompt', prompt);
  12. }
  13. console.debug('whispercpp req', formData);
  14. const res = await fetch(`${config?.whispercpp_url}/inference`, {
  15. method: "POST",
  16. body: formData,
  17. headers: {
  18. 'Accept': 'text/html',
  19. },
  20. });
  21. if (! res.ok) {
  22. throw new Error(`Whisper.cpp API Error (${res.status})`);
  23. }
  24. const data = await res.json();
  25. console.debug('whispercpp res', data);
  26. return { text: data.text.trim() };
  27. }