Skip to content

Repository files navigation

Echo Scribe logo

Echo Scribe

Turn voice notes into text in seconds — just email the audio.

Next.js TypeScript Deployed on Vercel License: MIT

Tired of listening to long voice messages? Echo Scribe converts WhatsApp voice notes (or any audio) into readable text in under a minute. Forward the audio to your personal email address — or tap an iOS Shortcut — and the words come back to you. No apps to install, no uploads, no fuss.

Voice note forwarding demo

How it works

  1. Record a voice note in WhatsApp (or any app)
  2. Email the audio file to your personal transcription address (abc123@yourdomain.com)
  3. Read the raw transcript 15–30 seconds later — with optional AI-cleaned and summarized versions following right behind
sequenceDiagram
    actor You
    participant Mailgun
    participant App as Next.js API (Vercel)
    participant Whisper as OpenAI Whisper
    participant GPT as GPT-4.1 nano

    You->>Mailgun: Email voice note to abc123@yourdomain.com
    Mailgun->>App: Webhook with audio attachment
    App->>Whisper: Stream audio (in memory only)
    Whisper-->>App: Raw transcript
    App-->>You: Raw transcript email (15-30 s)
    opt Enhancements enabled
        App->>GPT: Clean up / summarize in background
        GPT-->>App: Enhanced versions
        App-->>You: Cleaned transcript and/or summary email
    end
Loading

The raw transcript is always delivered first — enhancements never make you wait. Each version arrives as a separate, clearly labeled email ([Raw], [Cleaned], [Summary]).

Proven in production

Echo Scribe has been running continuously since July 2025 and in steady use ever since — hundreds of voice notes and hours of audio transcribed. The production deployment has run for over a year without needing a redeploy, and it costs almost nothing to operate: everything runs on free tiers except OpenAI usage (~$0.006 per minute of audio).

Features

  • Always raw + optional enhancements — instant verbatim transcript, plus opt-in grammar cleanup and structured summaries (key points, action items) powered by GPT-4.1 nano
  • iOS Shortcut integration — every user gets a personal API key; transcribe straight from your iPhone without opening an app
  • Privacy-first — audio is processed entirely in memory, transcripts are never stored or logged, only metadata is kept
  • User management — Google sign-in, admin approval workflow, per-user preferences and voice history dashboards
  • Production hardening — rate limiting, CSRF protection, security headers, Sentry monitoring (content-free), reCAPTCHA on the contact form
  • Wide format support — M4A, MP3, WAV, OGG, AAC, and FLAC files up to 15 MB / ~25 minutes

Architecture

A hybrid deployment that leans on each platform's strengths — Vercel for the Next.js app, Cloudflare D1 for the database, accessed over REST:

flowchart LR
    subgraph Vercel
        UI[Next.js app - dashboards]
        API[API routes - webhook, transcribe, preferences]
    end

    subgraph Cloudflare
        D1[(D1 database - users and metadata only)]
    end

    Shortcut[iOS Shortcut] -->|Bearer API key| API
    Mailgun[Mailgun email] -->|inbound webhook| API
    API -->|Whisper + GPT-4.1 nano| OpenAI[OpenAI]
    API -->|REST| D1
    UI -->|REST| D1
    API -->|transcript emails| Mailgun
Loading

Voice transcripts never touch the database — they go straight from OpenAI to your inbox. See ARCHITECTURE.md for the full system design, data flows, and operational details.

API & iOS Shortcut

Every approved user gets a permanent API key (managed from the dashboard) for programmatic transcription:

curl -X POST \
  -H "Authorization: Bearer your-api-key" \
  -F "file=@voice-note.m4a" \
  https://your-domain.vercel.app/api/transcribe
{ "text": "Your transcribed voice note content here..." }

The dashboard includes a one-click iOS Shortcut download with visual setup instructions — paste your API key once and transcribe from anywhere on your iPhone (see Credit & Inspiration for the original concept).

Run your own

Echo Scribe is designed to run (almost) free: Vercel Hobby + Cloudflare D1 free tier + Mailgun free tier. Only OpenAI usage costs money.

Prerequisites

Quick start

git clone https://github.com/jchu96/whatsapp-echo.git
cd whatsapp-echo
npm install

# Configure environment
cp env.example .env.local   # then fill in your credentials

# Create and initialize the database
wrangler d1 create voice-transcription-prod
wrangler d1 execute voice-transcription-prod --file=./sql/schema.sql --remote

# Run locally
npm run dev

# Deploy
vercel --prod

See env.example for the full list of environment variables, and the Deployment Guide for step-by-step service configuration (Mailgun webhooks, OAuth redirect URIs, Vercel settings).

Privacy & security

The whole system is built around one rule: your words are never stored.

  • Audio is processed in memory only — never written to disk
  • Transcript content is never logged, stored, or sent to monitoring
  • The database holds only account info and technical metadata (file size, duration, status)
  • Sentry error reports are scrubbed of all content

Security measures include Google OAuth + JWT sessions, per-user rate limiting, CSRF tokens, strict security headers, and SHA256 token auth for background processing. Full details in SECURITY.md.

Documentation

Document What's inside
Architecture System design, component inventory, data flows
Deployment Guide Step-by-step production setup
User Manual End-user guide from signup to daily use
Security Policy Security measures, privacy guarantees, vulnerability reporting
Changelog Version history

Credit & Inspiration

About

Voice note transcription service that converts WhatsApp audio to text via email with AI-powered enhancements and user management.

Topics

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages