Voice & files · microphone capture
Voice Recorder
Record from your microphone in the browser, watch the live input waveform as you speak, and keep as many takes as you like. Each take can be played back or downloaded as a 16-bit PCM WAV file. The audio never leaves your device.
Recordings are processed entirely in your browser and are never uploaded. Record in a quiet room, and if your speakers are audible to the microphone you will capture echo or feedback - use headphones.
Ready. Press record to ask for microphone access.
No takes yet. Recordings appear here.
Four steps happen every time you press record and then stop, all of them on your machine.
1 · Permission and capture
getUserMedia({ audio: true }) asks the operating system for the microphone. On success you
get a MediaStream - a live pipe of audio samples. The same stream is split: one branch goes to a
MediaRecorder to be saved, another to an AnalyserNode so the page can draw the
waveform without disturbing the recording.
2 · Encoding on the fly
Browsers almost never hand you raw PCM. The MediaRecorder compresses the stream as it arrives,
typically to WebM/Opus, because that format is built for streaming and small files. The result is a Blob you
can already play back.
3 · Decoding for export
To produce a WAV, the page reads that Blob with arrayBuffer() and feeds it to
decodeAudioData(), which hands back the uncompressed samples as an AudioBuffer.
4 · Encoding the WAV
Those samples are written into a 44-byte WAV header and 16-bit little-endian PCM data, then offered as a download. That is a genuine WAV file any audio editor will open - not the compressed capture under a different name. If decoding fails, the page says so and offers the original file instead.
Where does my recording go?
Nowhere. The microphone stream is captured, drawn and encoded entirely inside this page in your browser. There is no upload step and no server to upload to - the site is a static collection of files. When you close the tab, the recording is gone unless you have downloaded it.
Why is the downloaded file a WAV and not a WebM?
Browsers capture with MediaRecorder, which usually produces a compressed format such as WebM/Opus because it is built for streaming. To give you a WAV, the page decodes that captured audio and re-encodes it as uncompressed 16-bit PCM before downloading. If decoding fails on your browser, it falls back to downloading the original file in its real format rather than pretending it is a WAV.
Why can no one hear me, or my recording is full of echo?
Two common causes. First, the wrong input device: check the system or browser microphone picker and select the right one. Second, echo: if your speakers are loud, the microphone hears them, and the recording picks up a delayed copy of itself or a feedback howl. Wear headphones when recording, or lower the speaker volume and record in a quiet room.
The page refuses to start recording - why?
Microphone access requires a secure context (HTTPS or localhost) and your explicit permission. If you denied permission earlier, the browser remembers it; reset it in the site settings. If no microphone is connected, or it is disabled at the OS level, the browser reports that no input device exists.
Online Tone Generator
Pure sine, square, sawtooth and triangle tones from 1 Hz to 20 kHz, with precise frequency entry and WAV export.
Voice Generator
Type anything and hear it spoken by the voices installed on your device - free and offline.
Pitch Shifter
Shift any audio file by semitones, with or without tempo correction, then export the result.
Time Stretcher
Change the tempo of a recording without changing its pitch - slow it down to practise.