Learn · Qualitative research
Transcribe research interviews locally with Whisper
Whisper can transcribe research interviews on your own computer. After installation it works offline, so recordings stay on the machine. This guide covers setup, model choice, transcription, correction, and the change log.
After this guide you will be able to:
- Install Whisper in about 10 minutes, free.
- Transcribe interview audio completely offline.
- Keep participant recordings on your own computer.
- Produce a timestamped transcript ready for human checking.
- Judge when Whisper is reliable, and when hand transcription is still the better choice.
What to expect with real interview audio
From our own work. We ran Whisper on interviews with Finland-Swedish speakers. Roughly half the lines needed correction, because the model heard standard Swedish where the speakers were not speaking standard Swedish. In the end we transcribed by hand, using the machine draft as scaffolding. That number belongs in a tutorial just as much as the install commands do.
So calibrate interview transcription by language, not by hype:
| Audio | Expectation |
|---|---|
| English, clear recording | Very good. Fix names, terms, and numbers. |
| Standard Swedish | Good with the largest model. |
| Standard Finnish | Good with the largest model. |
| Dialects and minority variants | Needs substantial correction. Treat as a first draft. |
| Mixed languages, code-switching | Human review essential. Sometimes hand transcription wins. |
A machine transcript you correct on your own computer is a normal research task. A polished-looking transcript from a cloud service, with the audio already elsewhere, is a methods problem wearing a convenience costume.
Why local transcription is easier to defend
Interview recordings are directly identifying data. Voice is identity. Keeping transcription on your own computer means no participant audio is uploaded to a third-party service, which is usually far easier to justify during ethics review. Offline transcription makes the disclosure question disappear instead of answering it.
Read more: ethics boards, the GDPR, and interview audio
Research ethics boards apply this strictly. In one of our own projects the board's position meant we could not release even ten-second audio snippets for teaching purposes. Under the GDPR, sending audio to a cloud transcription service is a disclosure of identifying personal data that you must justify, name in consent forms, and cover with processor agreements. The EU AI Act has sharpened the frame around voice and biometric data further. None of this is legal advice, and your board's word beats this page. But if your approval says the data stays local, this workflow is built around that sentence.
What you need
- A Mac, Windows, or Linux computer with 8 GB of memory. No account, no license, no internet after setup.
- About 3 GB of disk space for the best model (smaller options below).
- Your recording as a file: mp3, m4a, wav, and most other formats work.
Step 1 — install Whisper · about 10 minutes
Install Python 3 from python.org. On Windows, tick "Add python.exe to PATH" in the installer.
Then open the command window. On a Mac: press cmd + space, type Terminal, press Enter. On Windows: open PowerShell. Paste this line and press Enter:
pip3 install faster-whisper
That is the whole installation. The speech model downloads itself the first time you transcribe, then lives in a cache on your machine and works offline.
Step 2 — pick a model size
| Model | Download | Use it when |
|---|---|---|
large-v3 | ~3 GB | the research default: best accuracy, best outside English, best on messy audio |
medium | ~1.5 GB | good accuracy, faster, smaller disk |
small | ~460 MB | quick drafts of clear English audio |
Step 3 — run the transcription
Copy the script below into a plain-text file called transcribe.py, saved in the same folder as your audio. Then, in Terminal, move into that folder (type cd with a space, drag the folder into the window, press Enter) and run:
python3 transcribe.py
On Windows, type python transcribe.py instead — the python.org installer does not create a python3 command.
Show the script (about 15 lines, copy-paste)
from faster_whisper import WhisperModel
model = WhisperModel("large-v3", device="cpu", compute_type="int8")
segments, info = model.transcribe(
"interview1.mp3",
language="sv", # force the language; leave out to auto-detect
initial_prompt=( # your study's words: places, names, clinical terms
"Vasa, Korsholm, cellgiftsbehandling, pemetrexed, kontrollbesök"
),
)
with open("interview1_raw.txt", "w", encoding="utf-8") as out:
for s in segments:
t = int(s.start)
stamp = f"{t//3600:02d}:{t%3600//60:02d}:{t%60:02d}"
out.write(f"[{stamp}] ?: {s.text.strip()}\n")
print("done - now correct it against the audio")
Two lines in there earn their keep:
language=forces the language. Do this for bilingual interviews; auto-detection can flip mid-file when speakers code-switch.initial_prompt=takes a short line of your study's own vocabulary. The model spells proper nouns and domain terms far better when it has seen them once. Municipalities, drug names, local institutions: put them here.
Transcription runs at roughly the speed of the recording on a normal laptop. A one-hour interview takes about an hour. Start it, work on something else.
Step 4 — correct the transcript and log every change
The ? on every line is deliberate. The model does not know who is speaking, and it should not pretend to. The human pass is part of the method:
- Listen with the transcript beside you. Fix misheard words. Names, terms, numbers, and doses get checked every time.
- Replace every
?with the speaker (Interviewer,P01). Pseudonymize names in the text as you go. - Keep a change log, one row per correction. Minutes of work, and it turns "transcripts were checked" from a claim into a record:
| Time | Original | Corrected | Reason |
|---|---|---|---|
| 00:02:09 | electric city | electricity | misheard, checked against audio |
| 00:00:06 | Marja | P01 | name pseudonymized |
Do not tidy how people actually speak. Hesitations, repairs, and dialect are data. The corrected transcript, with its change log, is the citable object.
What offline transcription does not do
- It does not separate speakers automatically. You assign them, which for interview data is minutes of work. Cloud services do offer speaker separation — the trade is that your audio leaves your machine.
- It does not make the transcript true. It makes a draft; the human pass makes it usable.
- It does not replace your ethics board or your judgment. It removes one disclosure they would otherwise have to weigh.
If you only need transcription, this guide is enough.
If you also need coding, a codebook, AI-suggested codes under full human review, an audit trail, and visual evidence maps in an Obsidian research vault, QualiVahti Local packages the complete qualitative workflow. One payment, runs on the same machine, same rule throughout: models suggest, you decide.
See the vault that codes it too — €49Related guides
More local-first qualitative research guides are on the way: anonymizing transcripts, Obsidian for qualitative analysis, AI-assisted coding with human review, and building an audit trail. They will appear on the Learn page.