Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Zappe

Real-time Québécois French to English speech transcriber with speaker diarization.

Browser mic audio streams over WebSocket to a Rust backend, which relays it to Deepgram for transcription (with diarization and word timestamps), translates each finalized segment via DeepL, and pushes ordered, timestamped segments back to the browser.

Setup

Copy .env.example to .env and fill in your API keys:

cp .env.example .env

You need:

  • A Deepgram API key (nova-3 model with diarization)
  • A DeepL API key (Free tier works)

Run

cargo run

Then open http://localhost:3000 in your browser.

Press Start, allow mic access, and speak. Transcription appears live. Press Stop when done, then Export to download JSON and SRT files.

Environment variables

Variable Description
DEEPGRAM_API_KEY Deepgram API key
DEEPL_API_KEY DeepL API key
PORT Server port (default: 3000)

Architecture

Browser mic
  └─ AudioWorklet (PCM 16kHz mono int16)
      └─ WebSocket /ws
          └─ Rust (axum)
              └─ WebSocket → Deepgram (nova-3, diarize, FR)
              └─ DeepL REST (FR→EN per finalized segment)
              └─ Ordered buffer (BTreeMap by start time)
              └─ WebSocket → Browser (JSON segments)

Status

Phase 1 complete: audio pipeline + Deepgram transcription wired end-to-end. FR text echoed as EN placeholder. Phase 2: DeepL translation + ordered buffer. Phase 3: UI polish (speaker renaming, export, Québécois keyterms).

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages