SoftwareSeptember 9, 202610 min read

Local vs. Cloud Transcription for Desktop Recording

For a desktop recording app, cloud-hosted transcription is almost always the right default because of the GPU impact of local transcription.

Local vs. Cloud Transcription for Desktop Recording

Short answer: For a desktop recording app, cloud-hosted transcription is almost always the right default, because the GPU on your user's laptop is already fully claimed by the meeting itself. A video call consumes GPU for decode, encode, background segmentation, and compositing. Screen capture consumes more. Local ASR is a fourth tenant competing for the same silicon, and it is the only one of the four whose failure mode is a degraded meeting for the user. Cloud transcription trades that GPU cost for roughly 32 KB/s of upstream bandwidth — about 6% of a 1080p video call — which is the cheaper resource to spend by a wide margin.

This article breaks down the GPU budget concretely: what each workload actually costs, what the models need, and how to decide.


Who is already using the GPU during a recorded meeting?

Before you can evaluate local ASR, it’s important to understand what the GPU is doing at the moment you want to run a model on it. During a recorded video call on a typical laptop, there are four main things taking up GPU:

ClaimantWhat it does on the GPURoughly how much
Meeting clientDecodes incoming participant video streams; encodes the outgoing webcam streamScales with participant count and resolution; hardware decode blocks are fixed-function and finite
Meeting effectsBackground blur / virtual background segmentation, touch-up filters, noise suppressionA per-frame neural segmentation model running at 15–30 fps for the whole call
Your capture pipelineReceives frames from ScreenCaptureKit or the Windows equivalent, converts pixel formats, encodes to H.264/HEVCContinuous, for the full duration of the recording
OS compositorDraws every window on screen, including the meeting UI and your app's UIConstant baseline

The question is not whether a MacBook can run an ASR like Whisper: it obviously can. The question is whether it can run local transcription while simultaneously decoding eight video streams, running a segmentation model, and encoding a screen recording, for 60 minutes, on battery, without impacting the user.

Key definition: The GPU budget of a desktop recording app is the share of GPU compute, memory bandwidth, and thermal headroom your app can consume before the user perceives degradation in the meeting they are actually attending. It is much smaller than the machine's total capacity, and it shrinks as more people join a meeting.

Can I just run transcription on the CPU instead?

For a desktop recorder, CPU is often the better local choice. Since the GPU is busy handling the video and capture pipeline, the CPU, which only uses a few cores out of all the ones available to a modern laptop, could be a better choice. Some smaller local transcription models work decently well on CPU.

But this moves the cost rather than removing it. CPU inference is less energy-efficient per unit of work, and will burn more energy for the same transcript. This means that devices can end up with worse battery life and more chassis heat than on a GPU path. The smaller models that can be run on CPU are also more prone to errors: Whisper’s tiny and base models have a roughly 13% word error rate compared to around 3.5% for large-v3, which runs on GPU.

That is the pattern across every local backend: the CPU loses on power and accuracy, while the GPU loses on contention with the meeting itself. There is no configuration where local transcription is simply better — only a choice about which cost to absorb.


Comparing open source local transcription models

If you decide to run transcription locally, there are really only two serious candidates. Whisper is the incumbent, released by OpenAI in 2022 and now the basis of most on-device transcription in production. Parakeet TDT is NVIDIA's more recent entrant, and on the raw numbers it is arguably the better model: comparable accuracy to Whisper’s large-v3 at roughly a sixth of the memory, with far higher throughput.

The reason Whisper still wins for a desktop recorder is hardware reach. Parakeet is built for CUDA, and its tooling assumes an NVIDIA GPU. That is fine on a server and close to disqualifying in a desktop app, where your users might be using Apple Silicon, Intel integrated graphics, AMD cards, and other devices. Parakeet's language coverage is also narrower, at 25 European languages against Whisper's 99.

Whisper (OpenAI)Parakeet TDT (NVIDIA)
SizesSix, from tiny (39 MB) to large-v3 (1.55 GB)One, 0.6B params (~2.4 GB weights)
Memory~0.4 GB (tiny) to 8–10 GB (large-v3)~1.4 GB at FP16
Languages9925 European
Accuracy~13% WER on tiny, ~3.5% on large-v3~6.3% WER, competitive with large-v3 at a fraction of the size
Runtimeswhisper.cpp, faster-whisper, WhisperKit, MLX, ONNX RuntimeNVIDIA NeMo, ParakeetKit (Apple, commercial)
DiarizationNone — requires pyannote separatelyNone — requires NeMo diarization separately
Custom vocabularyinitial_prompt, ~224 tokens, first window onlyLimited

Note: Throughout this article, "Whisper" refers to OpenAI's open-source model weights, which are MIT-licensed and free to run on your own hardware — not to OpenAI's hosted Whisper API or the various third-party services that use the name commercially.

Since Whisper is the more popular local model, we’ll be primarily discussing Whisper in this article.


What do local transcription models require?

The table below gives parameter count, download size, and accuracy for each Whisper model size. The last column is the one that matters for a meeting recorder: whether the model can realistically run while your user is on a call.

ModelParametersWeights on diskApprox. WERViable during a live call?
tiny39M~75 MB~13%Yes, but accuracy is too low for meeting notes
base74M~142 MB~10%Marginal
small244M~466 MB~7%Yes on 16 GB machines, contentious on 8 GB
medium769M~1.5 GB~5%Risky — thermal ceiling lands mid-meeting
large-v31550M~2.9 GB~3.5%No, not on a laptop during a call
large-v3-turbo809M~1.6 GB~4%Only via the Apple Neural Engine, and only on Mac

The models accurate enough for usable meeting transcripts are the ones a laptop cannot spare the memory or thermal headroom for during a call, and the models that run comfortably are the ones producing double-digit word error rates. There is no row that is both accurate and safe to run.

That squeeze does not close by picking a better model, because it isn't really about the models. large-v3 runs fine on a laptop that isn't doing anything else. The constraint is that your user's machine is simultaneously decoding participant video, encoding a webcam feed, running background segmentation, and encoding your screen capture — and it has to keep doing all of that for the full length of the meeting without slowing down the user.

In practice, most developers ship something in the base-to-small range in order to accommodate all devices their users might be on. That means the customer with a 64 GB M4 Max and the customer with an 8 GB M1 Air both get a transcript built by the same mediocre model. Cloud transcription gives every user large-v3-class accuracy regardless of what they bought, for about $0.20 to $0.45 per audio hour.


What cloud transcription costs instead

Cloud transcription doesn’t require GPU spend, but it does require bandwidth. Streaming ASR providers overwhelmingly want 16 kHz mono 16-bit PCM.

  • 16,000 samples/s × 2 bytes = 32 KB/s = 256 kbps
  • Over a 60-minute meeting: ~115 MB uploaded
  • A 1080p video conference typically consumes 1.5–4 Mbps

So uncompressed streaming ASR adds roughly 6–17% on top of the video call's own bandwidth. Encode to Opus at 24–32 kbps first and it drops under 2%. On any connection that can sustain the video call at all, this is not the constraint.

More arguments against local transcription for a desktop recorder

Extra software to download. When you base your application’s transcription on a local transcription model, your users need to have that model installed on their device if they want to use your desktop app. Forcing users to install additional third-party software has implications for compliance and creates extra friction for your customers.

No speaker names. Even when running a version of Whisper with diarized transcripts enabled, you will just receive generic speaker labels like Speaker 1 and Speaker 2. Speaker names do not come from the audio, they come from the meeting platform's participant metadata. For that reason, it’s essential to work with a provider that offers that metadata in the transcripts.

Without speaker labels, diarized transcripts are not useful for any product built on meeting data, as the platform won’t know the identities of the people speaking. This impacts the ability to create artifacts like action items, CRM updates, and more.

Issues with custom vocabulary. Accurately transcribing things like company or product names and industry jargon is an essential part of usable meeting transcripts. Many cloud providers have extensive support for the vocabulary used by various companies and situations. For example, AssemblyAI's “keyterms prompting” feature allows you to provide a list of up to 1,000 words or phrases to improve transcription accuracy.

Whisper's equivalent is initial_prompt, which is capped at roughly 224 tokens and, critically, only biases the first window of audio. If your customer's product name comes up forty minutes into the call, the prompt has long since stopped applying.

No provider optionality. With a cloud SDK, switching transcription providers is a configuration change, which means you can A/B test two providers on real traffic, measure accuracy on your own audio, and move if one degrades or reprices. With a local stack, the provider is your architecture. Evaluating an alternative means a rewrite, so in practice you never evaluate one.


A Desktop Recording SDK offers flexible, high-quality transcription

The reason we recommend Recall.ai's Desktop Recording SDK for this specific problem is that it offers high-quality transcripts for a desktop application, and works efficiently across all of your users’ devices.

Swap transcription providers easily. The Desktop Recording SDK supports Recall.ai's own transcription service plus AssemblyAI Deepgram, ElevenLabs, AWS Transcribe, Rev, and Speechmatics. Developers can switch between these transcription providers with a single field in the Create Desktop SDK Upload request:

recording_config: {
  transcript: {
    provider: {
      recallai_streaming: {}       // or deepgram_streaming, assembly_ai_v3_streaming, elevenlabs_streaming
    }
  },
  realtime_endpoints: [
    { type: 'desktop_sdk_callback', events: ['transcript.data', 'transcript.partial_data'] }
  ]
}

With the Desktop Recording SDK, changing transcription providers is a small change in the configuration, not a full rewrite of the architecture.

Offers speaker names. The SDK collects participant metadata from the meeting platform itself, so utterances are attributed to real people.

Supports privacy without the GPU cost. Most teams reaching for local ASR are not chasing performance, they’re chasing a compliance requirement. Recall.ai offers zero data retention, meaning information is processed but not stored by Recall’s servers. That is the outcome local Whisper is usually being asked to deliver, without asking the user's laptop to host a model during their call.