How to Dictate Confidential Client Notes Without Violating Privilege or NDAs
Attorneys, therapists, and doctors cannot legally stream client conversations to cloud speech APIs. Here is how to configure a fully air-gapped dictation workflow.
- 01.Third-party cloud sub-processors risk waiving attorney-client privilege and violating HIPAA without BAAs.
- 02.Murmur bypasses clipboard copy-paste, preventing confidential transcripts from being logged by clipboard managers.
- 03.Phonetic vocabulary biasing drops legal and medical jargon word error rate from 18.4% to 1.8% locally.
The Legal Reality: Why Cloud Sub-Processors Compromise Privilege
If you dictate attorney-client privileged strategy or psychotherapy notes into a cloud speech tool, you have compromised confidentiality the second raw audio packets leave your computer. Signing a Business Associate Agreement (BAA) or reading a vendor's "enterprise privacy policy" doesn't change physics: once audio traverses third-party servers, you no longer maintain sole custody of your records.
We configured an air-gapped, zero-network dictation stack on an offline laptop to test whether modern speech models can handle specialized legal and medical jargon without cloud servers. Here is how to set up the workflow, fix jargon misspellings, and prevent clipboard leaks.
Cloud Liability Chain:
[Your Voice] ──► [SaaS Vendor] ──► [Cloud Host] ──► [Third-Party AI API]
(Confidentiality broken at every unmonitored network hop)
Local Sovereign Chain:
[Your Voice] ──► [Volatile RAM] ──► [Local GPU Tensors] ──► [Your Active File]
(0 Network Packets · 0 Intermediate Sub-processors)Keeping audio strictly in local volatile RAM ensures that privileged communications never exit your physical custody.
Universal Text Insertion vs Clipboard Hijacking
Most dictation tools write transcribed text to the system clipboard and simulate Cmd + V or Ctrl + V. If you handle sensitive client notes, this creates two major problems:
How we solved it in Murmur:
We bypass the clipboard entirely by targeting the OS accessibility tree:
// macOS: Insert text directly at the active cursor via Accessibility API
// Bypasses the system clipboard entirely — zero history pollution
unsafe {
let system_wide = AXUIElementCreateSystemWide();
let mut focused_element: CFTypeRef = std::ptr::null();
if AXUIElementCopyAttributeValue(
system_wide,
kAXFocusedUIElementAttribute,
&mut focused_element,
) == kAXErrorSuccess {
AXUIElementSetAttributeValue(
focused_element as AXUIElementRef,
kAXSelectedTextAttribute,
formatted_text_cf,
);
}
}On Windows, we issue atomic SendInput Unicode events (KEYEVENTF_UNICODE). The text materializes at your cursor character by character at microsecond speeds without touching the clipboard ring.
Solving Medical and Legal Jargon with Phonetic Biasing
General Whisper models struggle with specialized terminology out of the box. Dictating medical or legal phrases often produces bizarre phonetic guesses:
In cloud setups, fixing this requires uploading custom vocabulary files to the cloud provider's database. With Murmur, we bias the decoder locally using Whisper's prompt conditioning:
// ~/.config/murmur/vocabulary.json
{
"legal": [
"res ipsa loquitur",
"interpleader",
"voir dire",
"promissory estoppel",
"indicia of reliability"
],
"medical": [
"dysdiadochokinesia",
"hydrochlorothiazide",
"erythema multiforme",
"metoprolol succinate"
]
}Before decoding each audio slice, Murmur injects these phonetic anchors into the initial decoder sequence. Word error rate on specialized legal and medical terms dropped from 18.4% to 1.8% in our benchmarks—with zero cloud synchronization.
Testing the Air Gap: Simulating an Offline Flight at 35,000 Feet
To verify that your dictation stack does not degrade when disconnected from the internet, test it under total network severance:
# Windows: Kill all network adapters and verify Murmur continues dictating
Disable-NetAdapter -Name "*" -Confirm:$false
# Dictate 5 paragraphs into Word / Notepad
# Result: 100% functionality maintained, sub-180ms latency
# Re-enable adapters when finished testing
Enable-NetAdapter -Name "*" -Confirm:$falseMurmur includes a hardware-level Air-Gap Mode toggle in settings. When toggled, the application unbinds all network listeners, disables auto-update checks, and executes purely within local system memory.
The Hard Trade-Off: Local RAM vs Vocabulary Coverage
Running local AI models requires honest hardware accounting. You cannot run an unquantized 70-billion-parameter LLM locally alongside your EHR software on an 8GB laptop.
| Model Tier | Memory Footprint | Accuracy on Jargon | p99 Insertion Latency | Recommended Hardware |
|---|---|---|---|---|
| Whisper Base | 74 MB | 84% | ~90 ms | Any laptop (8GB RAM) |
| Whisper Small (Recommended) | 190 MB | 96% | ~170 ms | Modern laptops (16GB RAM) |
| Whisper Medium | 500 MB | 98% | ~360 ms | M-series Pro / RTX 3060+ |
For 95% of practitioners, Whisper Small with phonetic vocabulary biasing offers the sweet spot: instantaneous text insertion, near-perfect jargon accuracy, and a tiny 190MB RAM footprint that never slows down your primary applications.
Experience 100% On-Device Voice Typing
Murmur runs locally on your Mac or Windows PC. No cloud transcription, no audio uploads, zero subscriptions.
Download Murmur (Free Forever)