TapeText

Transcribe an interview without handing it to a service

Open the recording, let it transcribe in the browser, then label who is speaking and correct what was misheard. Clicking any word jumps the audio to that moment, so checking a quote takes a second. The recording is never uploaded, which is what makes it usable for a source who agreed to talk to you and not to a transcription company.

An interview recording is not a generic audio file. It carries a person who agreed to speak to you under conditions, and often under an assurance about who would hear it. Sending it to a service to be transcribed quietly adds a party to that agreement, a party the person you interviewed never met and did not consent to.

For most recordings that is a theoretical worry. For a source talking about their employer, a patient, a litigant, or anybody who asked you not to spread it around, it is the reason the recording sits untranscribed for three weeks.

Open the transcriber

How it goes

  1. 1

    Drop the recording in

    A phone voice memo (.m4a), a recorder file (.wav or .mp3), or a video call recording (.mp4, .mov, .webm). The audio is pulled out of the container locally.

  2. 2

    Label who is speaking

    There is no automatic speaker separation here. You name a speaker once and the label runs forward until the next change, so a two-person interview is one click per turn rather than one per paragraph.

  3. 3

    Check the quotes against the tape

    Every word is timed. Click the one you want to verify and the audio jumps there, which is the whole reason to transcribe before writing rather than after.

  4. 4

    Export what you need

    Timecoded Markdown for notes you will cite, plain text for a draft, SRT or VTT if any of it is going on video.

Why there is no automatic speaker separation, and what to do instead

Separating speakers automatically, or diarisation, is a different model from speech recognition, and it is not in this tool. It is worth saying plainly rather than burying, because other browser transcribers advertise it and you should know what you are choosing between.

The reason is accuracy in exactly the case that matters. Diarisation is reliable when speakers take clean turns on separate microphones, and unreliable when they talk over each other, when one is on a phone line, or when a room microphone catches both, which describes most real interviews. A wrong speaker label is worse than no speaker label: an unlabelled paragraph makes you listen, while a confidently mislabelled one puts a quote in the wrong person's mouth and reads as fact afterwards.

So labelling is manual, and it is built to be fast rather than thorough. Name a speaker on one segment and every segment after it takes the same name until you set a different one. In a two-person interview you are marking the turns, not the paragraphs, and the turns are where you were going to look anyway.

If automatic separation is what you need and you accept the error rate, a server-side service will do it and we would rather point you at one than pretend. What this tool offers instead is that the recording never left your desk.

Questions

Does it identify who is speaking automatically?
No. Speaker labels are applied by hand, and a label carries forward until you change it. Automatic separation is unreliable on crosstalk and phone audio, and a confidently wrong attribution in a transcript is worse than a blank one.
How accurate is it on a phone recording?
Noticeably better on the accurate model than the fast one. Phone audio is band-limited and compressed, which is the case where model size shows most, so switch models if a recording is coming out rough.
Can I transcribe a Zoom or Teams recording?
Yes. Those save as MP4 or M4A, and the audio track is extracted from the container in the browser. Video is never decoded; only the sound is needed.
What about a language other than English?
Ninety-nine, and you choose which one before you start. There is no automatic detection, because the library this is built on silently assumes English when no language is set rather than detecting one. You can also ask for an English translation instead of a transcript in the spoken language.