HandyTools Hub

Voice Recorder

Record voice memos and microphone audio right in your browser

00:00

Ready to record

Recording happens entirely in your browser — audio is never uploaded or stored.

The Voice Recorder captures audio through your microphone and saves it as a downloadable file, all in the browser. It offers start, pause, resume, and stop controls, a live elapsed timer that rolls over past an hour, a real-time input level meter, and in-page playback. Because the audio is handled by the MediaRecorder API on your own device, nothing is uploaded and no account is required.

How to Use

  1. Press Record and allow microphone access when the browser asks. The timer starts and the level bar reacts to your voice.
  2. Press Pause to stop capturing without ending the take; the timer freezes as well. Press Resume to continue the same recording.
  3. Press Stop to finish. The recorded clip appears in the playback panel with an audio element and a download link.
  4. Listen back in the page before saving.
  5. Click Download to save a file named with a timestamp, such as recording-2026-07-29-1430.webm. Pressing Record again with an existing take triggers a confirmation, because the new recording replaces the old one.

Browser Support and Permissions

Recording needs three things to line up. First, the browser must expose the MediaRecorder constructor; if it does not, the tool hides its controls and shows an unsupported message. Second, the page must be served from a secure context, meaning HTTPS or localhost, because navigator.mediaDevices.getUserMedia refuses to run otherwise. Third, the user must grant microphone permission — the browser asks once, and the choice is remembered for that origin until changed in site settings.

Chrome, Edge, and Firefox produce WebM/Opus audio. Safari produces MP4/AAC audio. The level meter is driven by an AnalyserNode with an FFT size of 2048, sampled with getByteTimeDomainData on each animation frame, so the bar tracks the loudest recent sample rather than an average.

Mobile behaviour varies. Chrome for Android records reliably while the tab is in the foreground, but some browsers suspend capture when the screen locks or the app is backgrounded. Firefox desktop has supported audio recording for years, while Safari added MediaRecorder in version 14.1 and initially supported only MP4. When the API exists but none of the preferred containers is supported, the recorder constructs a plain MediaRecorder and lets the browser pick its default encoder rather than failing.

How the Container Is Chosen

The recorder walks a fixed preference list and picks the first entry the browser accepts.

PriorityCandidateTypical browser
1audio/webm;codecs=opusChrome, Edge, Firefox
2audio/webmOlder WebM-capable browsers
3audio/mp4Safari

If none of the three is supported, the browser’s default recorder constructor is used without an explicit MIME type. The downloaded extension is derived from the chosen type, so a WebM recording is saved as .webm and an MP4 recording as .mp4.

Worked Examples

  • A 42-second voice memo recorded at 14:30 on 29 July 2026 downloads as recording-2026-07-29-1430.webm, and the timer shows 00:42.
  • A take paused at 01:10 and stopped after another fifty seconds of speech reads 02:00 on the timer, because paused time is excluded from the elapsed count.
  • A 95-minute lecture crosses the one-hour boundary, so the display shifts from 59:59 to 1:00:00 and finishes around 1:35:00.
  • A five-minute interview recorded as WebM/Opus at the browser’s default bitrate is typically a few megabytes, small enough to email or upload to a transcription service. A Safari MP4 recording of the same length is comparable in size.

Accuracy and Limits

  • Single take only. One recording exists at a time; starting a new one overwrites it after confirmation.
  • No persistence. The Blob lives in memory, and closing or reloading the page discards it unless you downloaded first.
  • No editing. Trimming, gain, fade, and noise reduction are out of scope. Any capture processing comes from the browser or OS, not the tool.
  • Timer precision is 250 ms, which is finer than the MM:SS display but not frame-accurate.
  • Long recordings stay in RAM, so multi-hour sessions can consume a lot of memory before download.
  • Channel count, sample rate, and bitrate are chosen by the browser and hardware. The tool does not force mono, stereo, or a specific quality level.
  • The timer measures active recording time, not wall-clock time. Paused intervals are excluded from the displayed duration and from the encoded clip.

Practical Tips

  • Test the level meter for a few seconds before an important recording; a flat bar means the wrong input device is selected in your OS.
  • Download as soon as you stop, especially for interviews or lectures, since a refresh loses the take.
  • WebM/Opus is compact and high quality for speech; if a downstream editor rejects WebM, convert the file after downloading.
  • Keep the tab in the foreground. Background throttling can interfere with timers, and some mobile browsers pause capture when the screen locks.
  • Audio Visualizer — see microphone input as waveforms and frequency bars.
  • Tone Generator — generate reference tones for audio testing.
  • Metronome — keep time while you record practice sessions.
  • Text to Speech — the reverse direction: turn written text into spoken audio.

Frequently Asked Questions

Why does Chrome save a .webm file while Safari saves .mp4?

The recorder tries three container types in order — audio/webm;codecs=opus, audio/webm, then audio/mp4 — and takes the first one the browser reports as supported via MediaRecorder.isTypeSupported. Chrome, Edge, and Firefox support WebM; Safari typically supports only MP4.

Do I need HTTPS to use the microphone?

Yes. getUserMedia only works in a secure context, which means HTTPS or localhost. Opening the page from a plain http:// address or a file:// path will leave the browser unable to prompt for microphone access.

Where is my recording kept if I do not download it?

Only in the page's memory, held as a Blob behind an object URL. There is no localStorage, no IndexedDB, and no copy on the clipboard. Closing or reloading the tab discards the take permanently, so download anything you want to keep.

Can I trim, split, or edit the recording here?

No. The tool records, pauses, resumes, plays back, and downloads. It has no waveform editor, no trimming, and no format conversion, so plan to edit the downloaded file in a dedicated audio editor.

Why does the timer read 1:05:00 instead of 65:00?

Once the elapsed time reaches one hour, the display switches from MM:SS to H:MM:SS. A 65-minute session therefore shows as 1:05:00. Below an hour, the same duration would be formatted as 59:59.

What happens if I deny the microphone permission prompt?

The recorder shows an error message and stops; it cannot record without input. To try again you must reopen the browser's site settings, allow the microphone for this origin, and reload the page.

Reviewed by the HandyTools Hub team · Last updated