This is a submission for the Postmark Challenge: Inbox Innovators.
What I Built
I built Voice Notes Transcriber, an AI-powered system that transforms voice memos sent via email into searchable, organized text notes.
Simply email an audio file to your Postmark inbound address, and the system automatically:
- ποΈ Transcribes audio using Google Speech-to-Text API
- π€ Generates summaries and extracts action items with AI
- π·οΈ Auto-categorizes notes using NLP
- π Makes everything searchable
- π Provides a beautiful dashboard to manage your notes
- π Optionally syncs to Notion
It solves the problem of voice notes being quick to create but hard to organize and search through later.
Demo
Live App: https://voice-notes.jugaad.digital/
Test Credentials:
- Email: demo@voicenotes.app
- Password: demo123
How to Test:
- Login with test credentials
- Send an audio file (MP3, WAV, M4A) to:
your-address@inbound.postmarkapp.com
- Wait ~30 (depending on duration) seconds for processing
- See your transcribed note appear in the dashboard!
Screenshots
Audio Player with Transcription
Code Repository
ποΈ Voice Notes Transcriber & Organizer
Un sistema intelligente che trascrive automaticamente le note vocali inviate via email utilizzando il parsing delle email in entrata di Postmark, l'API Google Speech-to-Text, e le organizza con categorizzazione basata su AI.
β¨ Caratteristiche
FunzionalitΓ Core
- π§ Email-to-Transcription: Invia note vocali come allegati email per ottenere trascrizioni istantanee
- π― Elaborazione AI: Trascrizione automatica usando Google Speech-to-Text
- π Riassunti Intelligenti: Generazione di riassunti e estrazione di action items
- π·οΈ Auto-Categorizzazione: Categorizzazione intelligente basata sul contenuto
- π Ricerca Full-Text: Cerca attraverso trascrizioni, riassunti e metadati
- π± Dashboard Responsive: Interfaccia web elegante per gestire le note
FunzionalitΓ Avanzate
- π Integrazione Notion: Sincronizza le note trascritte con il tuo workspace Notion
- π΅ Riproduzione Audio: Player audio integrato con visualizzazione dell'onda
- π Supporto Multilingua: Trascrivi audio in piΓΉ lingue
- π Dashboard Analitica: Monitora pattern di utilizzo e insights
- πβ¦
How I Built It
Tech Stack
- Backend: Node.js, Express, PostgreSQL, Redis
- Frontend: React, Vite, TailwindCSS
- AI/ML: Google Speech-to-Text API, Google Cloud AI
- Email: Postmark Inbound Email Parsing
- Storage: Google Cloud Storage (optional) or local
- Infrastructure: Docker, Docker Compose, Nginx
Postmark Implementation
The core feature uses Postmark's inbound email parsing webhook:
javascript
// Webhook endpoint that receives emails from Postmark
async handleInboundEmail(req, res) {
const inboundEmail = req.body;
// Validate webhook signature for security
if (!postmarkService.validateWebhookSignature(req)) {
return res.status(401).json({ error: 'Invalid signature' });
}
// Extract audio attachments
const audioAttachments = inboundEmail.Attachments?.filter(att =>
['audio/mpeg', 'audio/wav', 'audio/mp4'].includes(att.ContentType)
);
// Process each audio file
for (const attachment of audioAttachments) {
// Decode base64 audio
const audioBuffer = Buffer.from(attachment.Content, 'base64');
// Save to Google Cloud Storage or local
const audioUrl = await storageService.uploadAudio(audioBuffer);
// Queue transcription job
await transcriptionQueue.add({
audioUrl,
userId: user.id,
emailSubject: inboundEmail.Subject
});
}
// Send confirmation email
await postmarkService.sendProcessingConfirmation(inboundEmail.From);
}
Top comments (1)
This is actually super useful for organizing all those scattered voice notes. Which use case do you see getting the most traction so far?