# 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

```bash
# Install dependencies
npm install

# Run development server
npm run dev

# Build for production
npm run build
```

## Docker Deployment

```bash
# 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:

```bash
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
