Voice Recorder

Record voice and audio in your browser. Save as WebM or MP3 with live waveform. Free, unlimited, no signup, no upload. Microphone permission required.

Preparing private browser tool…

Your file will stay on this device.

How to record your voice in the browser

Press start and the page asks the browser for microphone access. Granting it opens an audio stream, which is fed to two things at once: a MediaRecorder that collects the actual recording, and an analyser node used only to draw the live waveform. The recorder is told to emit a chunk every second, so a long take builds up as a series of small pieces rather than one growing buffer, and the timer next to the waveform counts the elapsed seconds.

Press stop and the collected chunks are joined into a single blob, given a local object URL, and handed to a player so you can listen back before deciding what to do with it. The size of the finished recording is shown next to the controls. Nothing has been sent anywhere at this point, and nothing will be: the capture, the joining, the playback, and the format conversion all happen inside the tab.

A typical use is the two minute voice note, a pronunciation check, a rough podcast take, or capturing a thought before it disappears. Because there is no account and no upload step, the gap between deciding to record and recording is a single click plus a permission prompt.

WebM with Opus by default, MP3 when you need compatibility

The recorder walks a short list of container and codec combinations and takes the first one your browser reports it can produce: audio/webm with Opus, then plain audio/webm, then audio/mp4 with AAC, then plain audio/mp4, then audio/ogg with Opus. On Chrome, Edge, and Firefox the first entry wins, so the default download is a WebM file carrying Opus. Opus is a modern speech codec and the files are small, often only a few hundred kilobytes for a couple of minutes of talking.

Safari does not produce WebM, so it falls through to the MP4 branch and the download is named with an .m4a extension instead, which is what the file actually is. The tool picks the extension from the blob type rather than assuming, so you do not end up with a WebM name wrapped around AAC data.

The second download button converts the recording to MP3 on the spot. It loads ffmpeg compiled to WebAssembly, writes the recording into the WebAssembly filesystem, and runs ffmpeg -i input.webm -vn -c:a libmp3lame -b:a 192k output.mp3. That is a constant 192 kbps, which is comfortably above what speech needs and means the MP3 is noticeably larger than the WebM it came from. The ffmpeg engine is served from this site rather than a third party network, so the recording still never leaves the device, though the engine itself is fetched the first time you ask for MP3. If the conversion fails for any reason, the tool quietly falls back to downloading the original WebM so you are never left with nothing.

What the microphone processing options actually do

Three pieces of browser audio processing are involved. Echo cancellation and automatic gain control are always on. Noise suppression is the one you can switch off, and it defaults to on. All three are requested as constraints when the stream is opened, which means the toggle only takes effect on the next recording, not on one already in progress.

Noise suppression removes steady background sound such as fan noise, air conditioning, or traffic hum. For a spoken voice memo that is almost always what you want. For anything musical it is the wrong tool: it will chew through sustained notes, flatten room ambience, and make an instrument sound like it is being heard down a phone line. Switch it off before recording music, a room tone, or anything where the background is part of the material.

Automatic gain control is the reason a quiet recording often comes back louder than you expected, and also the reason a silence between sentences can seem to hiss. It is trying to keep the level constant. If your recording is quiet despite it, the usual causes are the operating system input level rather than the browser, or a microphone that is physically covered. The live waveform is a useful check here: if it barely moves while you speak, the problem is upstream of this page.

Pausing, resuming, and reading the live waveform

Pause stops the recorder appending data without ending the take, and the elapsed timer stops with it. Resume continues into the same recording, so the paused interval simply is not there in the finished file. There is no gap, no marker, and no separate file to join afterwards, which makes pause the right way to handle an interruption, a cough, or a moment spent finding the next point.

The waveform is drawn from an analyser node with an FFT size of 2048, reading the time domain data on every animation frame and painting it across a canvas. It shows the shape of the signal arriving right now, not a scrolling history of the recording, so it is a level meter rather than a document. Watch it while you set up: a healthy speaking voice should move the trace well clear of the centre line without flattening against the top and bottom of the canvas, which would mean the input is clipping.

Downloads are named from the clock at the moment you press the button, in the form voice-20260916-143052.webm, so a run of takes sorts into recording order by filename alone. Starting a new recording releases the previous object URL and clears the preview, so listen back and download before you press new.

Frequently asked questions

What are the downloaded files called?
They are timestamped, in the form voice-20260916-143052.webm, using the date and time at the moment you press download. That makes a series of takes sort into recording order by filename with no renaming.
Why does the MP3 download take a moment the first time?
MP3 is produced by ffmpeg compiled to WebAssembly, and that engine is only fetched when you first ask for MP3. The core is about 30 MiB, downloaded in parts from this site and joined in the tab. The conversion itself is quick; the first wait is almost entirely the engine arriving.
Why is the MP3 bigger than the WebM recording?
The WebM file uses Opus, a modern codec that is efficient with speech, while the MP3 is encoded at a constant 192 kbps with libmp3lame. Both sound fine for voice, but the older format needs more data to get there. Keep the WebM unless something downstream specifically needs MP3.
Can I choose which microphone is used?
Not from this page. It asks for the default audio input, so the choice is made in your operating system sound settings or in the browser's site permissions panel. Change it there, then reload and start a new recording.
Should I turn noise suppression off?
Leave it on for speech, where it removes fan noise and traffic hum. Turn it off for music, singing, instruments, or when you want the room ambience preserved, because the processing is tuned for voice and will audibly damage sustained sound.
Does pausing split the recording into separate files?
No. Pause and resume write into the same take, and the paused interval is simply absent from the finished file. You get one continuous recording with no gap and nothing to join afterwards.