import { AUDIO_API_BASE_URL } from '$lib/constants'; export const getAudioConfig = async (token: string) => { let error = null; const res = await fetch(`${AUDIO_API_BASE_URL}/config`, { method: 'GET', headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${token}` } }) .then(async (res) => { if (!res.ok) throw await res.json(); return res.json(); }) .catch((err) => { console.log(err); error = err.detail; return null; }); if (error) { throw error; } return res; }; type OpenAIConfigForm = { url: string; key: string; model: string; speaker: string; }; export const updateAudioConfig = async (token: string, payload: OpenAIConfigForm) => { let error = null; const res = await fetch(`${AUDIO_API_BASE_URL}/config/update`, { method: 'POST', headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${token}` }, body: JSON.stringify({ ...payload }) }) .then(async (res) => { if (!res.ok) throw await res.json(); return res.json(); }) .catch((err) => { console.log(err); error = err.detail; return null; }); if (error) { throw error; } return res; }; export const transcribeAudio = async (token: string, file: File) => { const data = new FormData(); data.append('file', file); let error = null; const res = await fetch(`${AUDIO_API_BASE_URL}/transcriptions`, { method: 'POST', headers: { Accept: 'application/json', authorization: `Bearer ${token}` }, body: data }) .then(async (res) => { if (!res.ok) throw await res.json(); return res.json(); }) .catch((err) => { error = err.detail; console.log(err); return null; }); if (error) { throw error; } return res; }; export const synthesizeOpenAISpeech = async ( token: string = '', speaker: string = 'alloy', text: string = '', model: string = 'tts-1' ) => { let error = null; const res = await fetch(`${AUDIO_API_BASE_URL}/speech`, { method: 'POST', headers: { Authorization: `Bearer ${token}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ model: model, input: text, voice: speaker }) }) .then(async (res) => { if (!res.ok) throw await res.json(); return res; }) .catch((err) => { error = err.detail; console.log(err); return null; }); if (error) { throw error; } return res; };