// Estrutura do fluxo [ { // 1. Webhook Trigger "name": "Webhook", "type": "n8n-nodes-base.webhook", "parameters": { "path": "audio-processing", "responseMode": "lastNode" } }, { // 2. Download do Áudio do Supabase "name": "Supabase", "type": "n8n-nodes-base.supabase", "parameters": { "operation": "download", "bucket": "audios", "filePath": "={{$json.file_path}}" } }, { // 3. Pré-processamento do Áudio (usando FFmpeg) "name": "FFmpeg", "type": "n8n-nodes-base.executeCommand", "parameters": { "command": "ffmpeg -i input.wav -af 'anlmdn,highpass=f=200,lowpass=f=3000,silenceremove=1:0:-50dB' output.wav" } }, { // 4. Transcrição (usando OpenAI Whisper) "name": "Whisper", "type": "n8n-nodes-base.httpRequest", "parameters": { "url": "https://api.openai.com/v1/audio/transcriptions", "method": "POST", "headers": { "Authorization": "Bearer {{$env.OPENAI_API_KEY}}" } } }, { // 5. Análise do Texto (usando GPT-4) "name": "GPT4Analysis", "type": "n8n-nodes-base.openAi", "parameters": { "model": "gpt-4", "prompt": `Analise a seguinte transcrição considerando: 1. Fluência (velocidade, pausas, prosódia) 2. Pronúncia (precisão fonética, clareza) 3. Erros (substituições, omissões) 4. Compreensão (coerência, autocorreção) Transcrição: {{$node.Whisper.data.text}} Forneça uma análise detalhada seguindo as métricas especificadas.` } }, { // 6. Salvar Resultados no Supabase "name": "SaveResults", "type": "n8n-nodes-base.supabase", "parameters": { "operation": "insert", "table": "audio_analysis", "data": { "audio_path": "={{$json.file_path}}", "transcription": "={{$node.Whisper.data.text}}", "analysis": "={{$node.GPT4Analysis.data.choices[0].text}}", "metrics": { "fluency": "={{$node.GPT4Analysis.data.metrics.fluency}}", "pronunciation": "={{$node.GPT4Analysis.data.metrics.pronunciation}}", "errors": "={{$node.GPT4Analysis.data.metrics.errors}}", "comprehension": "={{$node.GPT4Analysis.data.metrics.comprehension}}" } } } } ]