123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- 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 = '',
- OpenAIModel: 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: OpenAIModel,
- 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;
- };
|