123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189 |
- 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
- ) => {
- 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({
- input: text,
- voice: speaker,
- ...(model && { model })
- })
- })
- .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;
- };
- export const getModels = async (token: string = '') => {
- let error = null;
- const res = await fetch(`${AUDIO_API_BASE_URL}/models`, {
- 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) => {
- error = err.detail;
- console.log(err);
- return null;
- });
- if (error) {
- throw error;
- }
- return res;
- };
- export const getVoices = async (token: string = '') => {
- let error = null;
- const res = await fetch(`${AUDIO_API_BASE_URL}/voices`, {
- 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) => {
- error = err.detail;
- console.log(err);
- return null;
- });
- if (error) {
- throw error;
- }
- return res;
- };
|