VisionVoice v2 é uma aplicação de acessibilidade que transforma imagens em narrativas de áudio naturais usando serviços de IA da AWS. O sistema analisa imagens com Amazon Rekognition, traduz labels com Amazon Translate, melhora as descrições com IA (Groq), e sintetiza voz humana com Amazon Polly.
O VisionVoice permite que usuários enviem uma imagem e recebam:
✅ Descrição detalhada do conteúdo visual
✅ Análise de pessoas (idade, gênero, emoção, acessórios como óculos/barba)
✅ Detecção de animais (tipo, raça quando aplicável)
✅ Reconhecimento de celebridades (quando confiança ≥ 95%)
✅ Áudio narrado com voz natural em português brasileiro
Tudo isso em um frontend moderno com suporte a múltiplas vozes da AWS Polly.
Fornecer acessibilidade digital para pessoas com deficiência visual, permitindo que elas "vejam" imagens através de descrições faladas naturalmente.
- Upload de imagens (JPG, PNG, GIF, até 5MB)
- Detecção de objetos, cenas e atividades
- Reconhecimento de texto em imagens (OCR)
- Detecção de pessoas na imagem
- Análise de atributos (idade, gênero, emoção)
- Identificação de acessórios (óculos, barba)
- Detecção de expressões (sorriso, olhos abertos/fechados)
- Identificação do tipo de animal
- Reconhecimento de raças específicas (cães, gatos)
- Detecção de filhotes vs adultos
- Identificação de personalidades públicas
- Apenas quando confiança ≥ 95% (evita falsos positivos)
- Tradução de labels do inglês para português
- Dicionário local com 600+ termos (cobertura de 95%)
- Fallback para Amazon Translate quando necessário
- Integração com Groq API (Llama 3.3)
- Elimina redundâncias ("celular" ao invés de "eletrônico, telefone, celular")
- Organiza informações de forma natural
- Reduz tamanho das descrições em ~60%
- Geração de áudio com AWS Polly
- 3 vozes disponíveis (Camila, Vitoria, Ricardo)
- Voz neural para maior naturalidade
- Áudio em formato MP3
- Design responsivo (desktop e mobile)
- Preview de imagem em tempo real
- Player de áudio integrado
- Feedback visual durante processamento
- Animações suaves
- Node.js (v18+) - Runtime JavaScript
- Express - Framework web
- Multer - Upload de arquivos
- AWS SDK v3:
@aws-sdk/client-rekognition- Análise de imagens@aws-sdk/client-polly- Síntese de voz@aws-sdk/client-translate- Tradução
- Groq SDK - IA para melhorar descrições
- dotenv - Gerenciamento de variáveis de ambiente
- HTML5 - Estrutura
- CSS3 - Estilização moderna
- Gradientes personalizados
- Animações e transições
- Design responsivo
- JavaScript (ES6+) - Lógica do cliente
- Fetch API
- Async/Await
- FileReader API
- Audio API
- Git - Controle de versão
- GitHub - Repositório remoto
- npm - Gerenciamento de pacotes
┌──────────────────────────────────────────────────────────────┐
│ FRONTEND │
│ ┌────────────┐ ┌────────────┐ ┌────────────┐ │
│ │ Upload │ │ Preview │ │ Player │ │
│ │ Imagem │ │ Visual │ │ Áudio │ │
│ └─────┬──────┘ └────────────┘ └─────▲──────┘ │
│ │ │ │
└────────┼─────────────────────────────────┼────────────────────┘
│ │
│ HTTP POST │ Audio MP3
▼ │
┌──────────────────────────────────────────┼────────────────────┐
│ BACKEND (Express) │ │
│ │ │
│ ┌───────────────────────────────────────┴─────────┐ │
│ │ Processamento de Imagem │ │
│ └───┬──────────┬──────────┬──────────┬────────────┘ │
│ │ │ │ │ │
│ ▼ ▼ ▼ ▼ │
│ ┌───────┐ ┌───────┐ ┌───────┐ ┌──────────┐ │
│ │ Rekog │ │Transl.│ │ Groq │ │ Polly │ │
│ │nition │ │ │ │ AI │ │ │ │
│ └───┬───┘ └───┬───┘ └───┬───┘ └────┬─────┘ │
└──────┼─────────┼─────────┼──────────┼────────────────────────┘
│ │ │ │
▼ ▼ ▼ ▼
┌───────┐ ┌───────┐ ┌───────┐ ┌───────┐
│ AWS │ │ AWS │ │ Groq │ │ AWS │
│ API │ │ API │ │ API │ │ API │
└───────┘ └───────┘ └───────┘ └───────┘
- Upload: Usuário envia imagem (máx 5MB)
- Validação: Backend valida formato e tamanho
- Rekognition: Detecta objetos, pessoas, emoções, celebridades
- Tradução: Labels são traduzidos (dicionário local + Translate)
- IA (Groq): Descrição é melhorada e humanizada
- Polly: Texto é convertido em áudio MP3
- Resposta: Frontend recebe descrição + áudio em base64
- Apresentação: Exibe texto e reproduz áudio
Antes de começar, certifique-se de ter instalado:
- Node.js v18 ou superior (Download)
- npm (vem com Node.js)
- Git (Download)
- Conta AWS com credenciais configuradas
- Conta Groq (grátis) para a IA (Console)
git clone https://github.com/Vini1227/VisionVoicev2.git
cd VisionVoicev2npm installPacotes instalados:
- express
- multer
- cors
- dotenv
- @aws-sdk/client-rekognition
- @aws-sdk/client-polly
- @aws-sdk/client-translate
- groq-sdk
Na raiz do projeto, crie um arquivo chamado .env:
touch .envAbra o .env e adicione suas chaves:
# ========== AWS CREDENTIALS ==========
AWS_REGION=us-east-1
AWS_ACCESS_KEY_ID=sua_access_key_aqui
AWS_SECRET_ACCESS_KEY=sua_secret_key_aqui
# ========== GROQ API (IA) ==========
GROQ_API_KEY=gsk_sua_chave_groq_aqui
# ========== SERVIDOR ==========
PORT=3000AWS:
- Acesse o Console AWS
- Vá em IAM → Usuários → Criar usuário
- Anexe as políticas:
AmazonRekognitionFullAccessAmazonPollyFullAccessTranslateFullAccess
- Crie as chaves de acesso
- Copie
Access Key IDeSecret Access Key
Groq (100% gratuito):
- Acesse console.groq.com
- Crie uma conta (pode usar Google)
- Vá em API Keys
- Clique em Create API Key
- Copie a chave (começa com
gsk_)
.env no Git! Ele já está no .gitignore.
node server.jsSaída esperada:
🚀 Servidor rodando em http://localhost:3000
🌎 Região AWS: us-east-1
📚 Dicionário: 646 palavras
🌐 Backup: Amazon Translate (quando disponível)
💾 Cache ativo
✅ Cobertura: ~95% das labels do Rekognition
🤖 IA (Groq): 🟢 Ativo
📍 Rotas disponíveis:
POST /analisar - Processar imagem
POST /api/process-image - Processar imagem (alternativa)
GET /api/health - Status do servidor
GET /api/cache-status - Status do cache
GET /api/ia-status - Status da IA
Abra seu navegador e acesse:
http://localhost:3000
- Abra a aplicação no navegador
- Clique ou arraste uma imagem para a área de upload
- Selecione a voz desejada (Camila, Vitoria ou Ricardo)
- Clique em "Analisar Imagem"
- Aguarde o processamento (geralmente 2-4 segundos)
- Veja a descrição gerada automaticamente
- Reproduza o áudio clicando no botão play