Spaces:
Running on Zero
A newer version of the Gradio SDK is available: 6.26.0
title: Medical Notes Using Google MedGemma and MedASR
emoji: 🩺
colorFrom: blue
colorTo: purple
sdk: gradio
sdk_version: 6.20.0
app_file: app.py
pinned: false
short_description: Turns a raw clinical recording into a structured SOAP note.
Medical Notes Using Google MedGemma and MedASR
Pipeline: audio file -> MedASR (transcription) -> MedGemma 4B, google/medgemma-4b-it
(SOAP note) -> Gradio UI.
This takes a raw clinical recording and turns it into a structured SOAP note, attributed by speaker, without inventing anything that wasn't actually said.
Not a diagnostic tool. For demonstration/research use only — don't upload real patient data.
Both models are gated on the Hugging Face Hub, so whichever environment runs
this needs an HF token with access to google/medasr and google/medgemma-4b-it.
Setup (local)
python3.12 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
hf auth login # token needs access to the gated google/medasr and google/medgemma-4b-it repos
Model weights are pulled straight from the Hub on first run (no local
models/ download step needed anymore). To point at a local copy instead,
set MEDASR_MODEL_ID / MEDGEMMA_MODEL_ID to a local directory.
Run (local)
python app.py
Opens a local Gradio app: pick a wav/mp3 file, click Run, see the MedASR transcript, the generated SOAP note, and per-step timing.
Deploying to Hugging Face Spaces (ZeroGPU)
- Create a Space with SDK "Gradio" and hardware "ZeroGPU".
- Push this repo's contents to the Space:
app.py,llm.py,requirements.txt,README.md,test_audio/clips/*.wav. - In the Space's Settings -> Variables and secrets, add a secret
HF_TOKENset to a token with access to the gatedgoogle/medasrandgoogle/medgemma-4b-itrepos.huggingface_hubreads this automatically. llm.py'srun_pipelineis decorated with@spaces.GPU, so ZeroGPU attaches a GPU only for the duration of that call; both the ASR and SOAP-note models load lazily on first invocation.