surfup

Local meeting transcription

A desktop app transcribes meeting recordings locally without sending audio to a public AI service.

Development · AI workflows · AutomationPrivate client · NDA
01 · Challenge

Managers needed transcripts for meeting notes and action items, but confidential discussions could not go to public AI

services and manual transcription took time.

02 · Work completed

Built a macOS and Windows desktop app with Tkinter/ttk. Apple Silicon uses MLX Whisper; Intel Mac and Windows use Faster Whisper with CTranslate2 on CPU. Users choose a file, language and TXT/SRT output. Background workers keep the interface responsive and show progress and detailed errors. The first run downloads dependencies and the model; later transcription runs locally.

The stack includes Python 3.10+, Hugging Face Hub for model downloads and cache, and FFmpeg for audio/video decoding (installed through Homebrew when needed on macOS). Apple Silicon uses mlx-community/whisper-large-v3-turbo; CPU mode uses Faster Whisper, CTranslate2 and large-v3-turbo. Model download progress is weighted by file size so the percentage does not reset between files. Processing runs in worker threads with a GUI event queue; errors show captured output and a full, copyable Python traceback.

03 · Outcome

According to the case materials, a one-hour meeting is transcribed in 3–5 minutes instead of 1–2 hours of manual work. Audio is processed locally; the materials also report saving 6–8 hours of team documentation time per week.

04 · Key results
MetricResult
Transcription of a one-hour recording1–2 hours manually → 3–5 minutes automatically
Audio sent to external services0 bytes
Team documentation time per week6–8 hours → minutes of review
Windows without a GPURuns on CPU (CTranslate2)

Speed and time savings are stated in the case materials; actual performance depends on the recording and computer.

Latest materials

All materials

Practical articles and guides by SurfUp.

Guide · 10 min

“What is…” pages and AI answers: lost clicks or falling demand

A bank’s reference section lost 24% of visits as demand fell 13%. How to tell clicks lost to an AI block from falling demand and how to measure it.

Read
Guide · 8 min

Traffic dropped after a Google update

How to tell whether a traffic drop comes from a Google update, seasonality or a site fault. 2026 update timeline, a six-question check and a plan for the first 14 days.

Read
Guide · 9 min

Demand fell or the site lost: reconciling traffic with Wordstat

Demand for deposits fell 75%, traffic 37%; for cards demand −35%, traffic −63%. How to reconcile traffic with demand and not blame the site for the market.

Read