MR Transcribe: spraak-naar-tekst op je eigen server
Een transcriptie-webapp die draait op mijn Mac Mini. Opnemen in de browser of bestand uploaden, en de transcriptie wordt automatisch opgeslagen in de juiste klantmap op Nextcloud.
Het probleem
Externe transcriptiediensten zijn duur, je data staat bij derden, en je moet de output handmatig opslaan en organiseren. Ik wilde een tool die ik zelf beheer, die direct integreert met mijn bestandsstructuur.
Wat ik gebouwd heb
Een web-app op transcript.missionrelearn.com met:
Twee input-opties: direct opnemen via de browser (MediaRecorder API) of een audiobestand uploaden (mp3, m4a, wav, webm)
Whisper large-v3: het beste open-source spraakherkenningsmodel, draaiend op mijn Mac Mini via faster-whisper (int8 quantized)
Automatische klantkoppeling: een dropdown toont al mijn klanten en projecten uit Nextcloud. Selecteer een klant, en de transcriptie wordt automatisch opgeslagen in de juiste map
Realtime voortgang: Server-Sent Events streamen de status (uploaden, model laden, transcriberen, opslaan) met percentage
Token-authenticatie: alleen ik heb toegang via een token dat op de server staat
Hoe het werkt
Je opent de webapp, selecteert een klant, drukt op opnemen (of uploadt een bestand), voegt een beschrijving toe, en klikt op transcriberen. De server verwerkt de audio, genereert een transcript met timestamps, en slaat zowel de audio als de transcriptie op in de Notulen-map van die klant. Alles wordt genaamd met datum en beschrijving.
De techniek
FastAPI als backend, vanilla JavaScript als frontend (geen framework nodig voor een single-page tool). Cloudflare Tunnel maakt de app bereikbaar via HTTPS zonder poorten te openen. Een launchd-service zorgt dat de server automatisch herstart bij een crash.
Resultaat
Transcripties kosten me niets meer per minuut. De output staat direct waar ik hem nodig heb, zonder handmatig kopieren. En mijn gespreksdata verlaat nooit mijn eigen server.