Translate
Translate medical text or documents without sending them off your device.
Accuracy and required review
Small local models can miss medical terminology, numbers and negations. Keep drug names and dosages in the source language when unsure, and verify the translation before use.
Choose languages
Select the source and result language.
Enter text and translate
The result appears beside your text.
Translate a documentExcel or Word
Translation model and cache
Anonymize
Find and replace personal data in medical documents. Processing stays on this device.
Accuracy and required review
Recall is the share of identifiers found; every missed identifier can expose personal data. Precision measures how many detections were correct; F1 balances precision and recall. Removing names and numbers does not guarantee anonymity: combinations of profession, age, place and clinical details can still identify someone. Review the highlighted mapping and search the output for missed identifiers before sharing it.
Detection methodSelected automatically for this device
Advanced settings — model selection
NER / detector
CPU-friendly span detectorsLLM
WebGPU Qwen verificationHow it works · models & hardware
LLM only (recommended on WebGPU devices): Qwen3.5 handles all PII detection in a single pass.
NER + LLM: Run a NER model first, then let the LLM verify and catch remaining PII. Useful for additional coverage or comparison.
NER only: Run just the selected NER model. Fastest option, no GPU required, but lower accuracy.
Hardware: LLM modes need a modern GPU or Apple Silicon Mac with WebGPU (Chrome/Edge 113+, Safari 18+). The 4B model needs ~3.9 GB GPU memory; pick a smaller model on devices with limited VRAM. NER-only mode runs on CPU.
- Qwen3.5 2B (default) — ~2.2 GB VRAM. See the Benchmark page for measured identifier detection scores.
- Qwen3.5 4B — ~3.9 GB VRAM. Largest browser-feasible option; needs ~4 GB GPU memory. All models are kept ≤4B by design.
- Multilingual PII NER — ~280 MB. XLM-RoBERTa, no GPU needed. Names, addresses, dates, IDs in 8+ languages.
- GLiNER PII Edge — ~46 MB. Zero-shot, no GPU needed. Best for English.
- Multilingual BERT NER — ~100 MB. Lighter general-purpose NER (people, places, organizations).
- OpenAI Privacy Filter — ~1.5 B params (q4 ≈ 800 MB). OpenAI's bidirectional token classifier with 8 PII categories: person, email, phone, address, date, URL, account number, secret. Runs in-browser via Transformers.js + WebGPU; WASM/CPU is not supported for its quantized embedding op in this browser stack. Primarily English with multilingual robustness reported. Pick it under Advanced settings → NER Model with the NER only or NER + LLM pipeline.
Always manually review the output. First load downloads the selected model; subsequent runs use the browser cache.
Review required. Anonymization can miss identifiers. Check every result before sharing.
Add content
Upload a document or paste text below.
Upload document
Drop document here
.pdf, .xlsx, .docx, .txt
Use a mapping file Optional
Drop mapping file
.xlsx or .json
Paste text instead
Summarize
Turn medical notes into a structured draft while keeping the source on this device.
Accuracy and required review
Local models can omit clinical facts or introduce unsupported statements. Compare every summary with its source, especially medication, dosage, negation and risk information.
Add source notes
Upload a document or paste the text to summarize.
Upload document
Drop document here
.xlsx, .docx, .txt
Paste text
Speech to text
Record or upload audio and create a private, on-device transcript.
Accuracy and required review
Local speech models can mishear accents, background noise, names and medical terminology. Use short, clear recordings and always proofread numbers, dosages and names.
Choose mode and language
Whisper Small is the recommended default.
How transcription works
Workflow: record first, then transcribe. Transcription begins automatically when you stop recording.
Long recordings: 15+ minutes are supported. On a phone, keep Medmorf visible and the screen on; use Dictaphone mode for shorter entries.
- Whisper Tiny — ~150 MB. Fastest, basic quality.
- Whisper Base — ~300 MB. Fair quality.
- Whisper Small (recommended) — ~500 MB. Good quality, best for clinical use.
All models run via WebAssembly (ONNX Runtime). First use downloads the model; subsequent runs use browser cache.
Add audio
Record here, or choose an existing audio file.
Record audio
Upload audio
Drop audio file here
.mp3, .wav, .ogg, .webm, .m4a, .flac
12-second synthetic Dutch dictation
DICOM
Index, inspect, and sort imaging folders locally without uploading patient data.
1 Choose a source folder
Scan settings Optional
Merge PDF
Combine PDF files in the order you choose. Everything stays on this device.
1 Add your PDF files
Storage
Prepare for offline work and manage model files stored by this browser.
Prepare for Offline Use
Download all models now while you have internet. Once cached, everything works in airplane mode.
App Updates
Force-refresh the app code without redownloading model weights. Useful after a new version is deployed.
Note: Private/incognito browser windows discard all caches when closed — including model weights. To keep models between sessions, use a normal window.
Personal Data — Where It Goes
Your documents, text and patient data are never written to disk or browser storage. They exist only in temporary JavaScript memory and are automatically removed.
Currently in memory
No personal data in memory
Cache API (Model Files)
Translation and NER models are cached here. These are safe AI model weights — no personal data.
Scanning...
IndexedDB (LLM Model Cache)
WebLLM/MLC caches Qwen model weights here. These are safe AI model data — no personal data.
Scanning...
This will remove all cached models. You will need to re-download them on next use.
Benchmark
Measured model quality, grouped by tool. Explore the results or run the benchmarks yourself.
Open this tab to load the benchmark.