story-generator/src/services/audioService.ts
Lucas Santana df555c018b feat: adiciona integração com edge function para processamento de áudio
- Cria serviço audioService para upload e processamento
- Implementa componente AudioUploader com feedback visual
- Adiciona componente Button reutilizável
- Integra processamento de áudio na página de histórias
2024-12-21 16:12:02 -03:00

38 lines
1.0 KiB
TypeScript

import { supabase } from '../lib/supabase';
interface ProcessAudioResponse {
transcription?: string;
error?: string;
}
export async function processAudio(audioFile: File): Promise<ProcessAudioResponse> {
try {
// 1. Upload do arquivo para o bucket do Supabase
const fileName = `audio-${Date.now()}-${audioFile.name}`;
const { data: uploadData, error: uploadError } = await supabase.storage
.from('audio-uploads')
.upload(fileName, audioFile);
if (uploadError) throw new uploadError;
// 2. Chama a Edge Function para processar o áudio
const { data, error } = await supabase.functions.invoke<ProcessAudioResponse>('process-audio', {
body: {
fileName: uploadData.path,
bucket: 'audio-uploads'
}
});
if (error) throw error;
return {
transcription: data?.transcription
};
} catch (error) {
console.error('Erro ao processar áudio:', error);
return {
error: 'Falha ao processar o áudio. Tente novamente.'
};
}
}