Extracted from canvas-website with: - Web Speech API transcription (Chrome/Edge, fast) - Local Whisper AI model (offline capable, ~75MB) - PWA support with service worker - Docker + Runtipi deployment configs 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> |
||
|---|---|---|
| public/icons | ||
| runtipi | ||
| src | ||
| .gitignore | ||
| Dockerfile | ||
| README.md | ||
| docker-compose.yml | ||
| index.html | ||
| nginx.conf | ||
| package-lock.json | ||
| package.json | ||
| tsconfig.json | ||
| tsconfig.node.json | ||
| vite.config.ts | ||
README.md
Transcribe
A standalone Progressive Web App (PWA) for voice transcription, extracted from canvas-website.
Features
-
Two Transcription Modes:
- Web Speech API - Fast, real-time transcription using browser's built-in speech recognition (Chrome/Edge)
- Local Whisper - Offline-capable transcription using Whisper AI model running entirely in the browser
-
PWA Support - Install on any device, works offline
-
Simple UI - Start/stop recording, copy/download transcripts
-
No Server Required - All processing happens in the browser
Quick Start
# Install dependencies
npm install
# Run development server
npm run dev
# Build for production
npm run build
Docker Deployment
# Build and run with Docker
docker compose up -d --build
# Or build manually
docker build -t transcribe-app .
docker run -p 3000:80 transcribe-app
Runtipi Deployment
Copy the contents of the runtipi/ folder to your Runtipi apps directory:
cp -r runtipi/* /path/to/runtipi/user-config/transcribe/
Or use the pre-built Docker image from GitHub Container Registry.
Browser Compatibility
| Browser | Web Speech API | Whisper (Local) |
|---|---|---|
| Chrome | Full | Full |
| Edge | Full | Full |
| Safari | Partial | Full |
| Firefox | No | Full |
Tech Stack
- React 18 + TypeScript
- Vite with PWA plugin
- @xenova/transformers for local Whisper inference
- Web Speech API for browser-native transcription
License
MIT