mirror of
https://github.com/lucasrcsantana/story-generator.git
synced 2025-12-16 21:37: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
79 lines
2.4 KiB
JavaScript
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}}"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
] |