mirror of
https://github.com/lucasrcsantana/story-generator.git
synced 2025-12-18 14:27:51 +00:00
- 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
38 lines
1.0 KiB
TypeScript
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.'
|
|
};
|
|
}
|
|
}
|