story-generator/n8n.js
Lucas Santana 797967ca5b 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

79 lines
2.4 KiB
JavaScript

// 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}}"
}
}
}
}
]