MP3 to Text
Turn an MP3 or an M4A to text — a timestamp on every line, plus SRT and VTT subtitles. Everything runs on this device; your audio file is never uploaded.
Yes — drop an MP3 and the words come back as timestamped text.
- Text, SRT and VTT — all three from the same run.
- Runs on your device. No upload, no account, no queue.
- M4A to text — an iPhone .m4a works as it is.
- Not only MP3 — WAV, M4A, FLAC, OGG and video files too.
- No speech in the file? It says so — never an empty box.
The ceiling is this device's memory, not the file size — why.
Drop an audio file here
or
MP3 · WAV · M4A · AAC · FLAC · OGG — and video files too, the audio is extracted first
Preparing…
What this tool does
This is an MP3 to text converter that runs entirely in your browser. Drop in an audio file and the spoken words come back as plain text with a timestamp at the start of every line. The same run also produces SRT and VTT subtitle files, and you can copy the text or download any of the three.
It is also an MP3 to transcript tool in the plain sense: no account, no email, no queue, nothing counting your runs. If what you searched for was MP3 to TXT, this is that page — TXT is the first of the three outputs below. And it is not limited to MP3 — a video file works too, because the audio track is extracted first. The engine is OpenAI's Whisper, running locally through WebAssembly.
How to convert an MP3 to text
- Pick a model.
whisper-tinyis the smallest and fastest;whisper-baseis more accurate and is the default. If your audio is English only,whisper-tiny.enis the quickest of the three. - Drop the file in. Drag it onto the area above, or press browse your device and pick it. Nothing is sent anywhere while this happens.
- Read, copy or export. The transcript appears with a timestamp on every line. Copy it, or switch to SRT or VTT and download the file.
Supported input formats
Audio: MP3, WAV, M4A, AAC, FLAC, OGG. Video: MP4, MOV, WEBM and others — the audio track is extracted in the browser, so there is no separate conversion step. In practice anything your browser can decode will work, because the file is handed to the browser's own decoder rather than to a format list of ours. FLAC is on the list because it is lossless and therefore large, and it opens here like the rest. The one thing a format list cannot tell you is whether a particular .m4a will open, because that extension covers two different codecs — the next section is about exactly that.
That list was not copied from a spec sheet. On 2026-10-21 one 42-second recording of continuous speech was copied into nine containers — WAV, MP3, M4A carrying AAC, a bare AAC stream, FLAC, OGG, MP4, MOV and WEBM — and each copy was dropped into this page and transcribed with the same model. Every one of them opened: three cues, the same 67 words, the same three timestamps. The container moved no word. It moved one comma: the MP3, OGG and WEBM copies wrote the first line without the comma after dog that the other six wrote. Three runs of the unchanged WAV came back identical to the character, so that comma belongs to the copy rather than to the run. What the nine do not prove is that every file of these types will open — an .m4a holding ALAC is refused, and the next section is about why.
Scope note: the formats above are matched against the widest list among the three pages that currently rank first for this term, which is ElevenLabs' — MP3, WAV, M4A, AAC, FLAC, OGG plus video. Nothing was left out. The list was compared on 2026-10-02, and every container in it was then run through this page on 2026-10-21.
M4A to text: the extension is not the format
An .m4a is a container, not a codec. In practice it is an MP4 file with an audio track inside, and that track is usually AAC — what an iPhone writes when you record a voice memo. The same extension also carries ALAC, Apple's lossless codec. The two files look identical in a folder: same ending, same icon, both open in a player. Only one of them opens here.
That is not a guess. One 30-second recording of continuous speech was re-encoded six ways, given the .m4a name every time, and run through this page one file at a time, each in a fresh tab:
- AAC at 128 kbps — 229 KB. Eight lines, 88 words. This is the shape an iPhone produces.
- AAC at 48 kbps — 173 KB. Eight lines, 87 words; the only difference in the whole transcript was "three" coming back as "3".
- ALAC, Apple lossless — 2.2 MB. Refused at the decode step. The transcript panel never opened and no text was invented.
- MP3 bytes under an .m4a name — 481 KB. Eight lines, 88 words, byte-identical to the first file.
- WAV bytes under an .m4a name — 2.6 MB. Eight lines, 88 words, byte-identical to the first file.
- Text bytes under an .m4a name — 56 bytes. Refused at the decode step, with the same message as the lossless file.
Read that list again for what the result does not depend on. Size is not a signal: the 2.2 MB file failed and the 229 KB file worked. The name is not a signal either — two files that were never MP4 at all transcribed exactly as well as the real thing, because the browser reads the bytes and never asks what the file is called. What decides the outcome is the audio itself.
So renaming a file cannot fix it and cannot break it. Converting can: an ALAC recording re-encoded as AAC, MP3 or WAV comes back as a normal transcript, and that is the whole fix.
What a refusal looks like. When the audio cannot be decoded, the progress line says so — "the audio in this file could not be decoded" — and the panel stays closed. Nothing is filled in. The message also records both attempts the page makes, first the audio decoder and then a media element, so a file your browser cannot play is a file this page cannot read.
Measured 2026-10-19 in Chrome on Windows with whisper-tiny.en, using one 30.023-second mono recording at 44.1 kHz for every row. The ALAC and 48 kbps copies were encoded from it; the MP3 and WAV rows are that same audio with the extension changed. Whether an ALAC file opens is a property of the browser's decoder rather than of this page, so the check to run is your own: drop the file in and read what the progress line says.
If your .m4a will not open
- Convert it; do not rename it. An ALAC file re-encoded as AAC or MP3 transcribes normally. The same file with a different extension changes nothing, because the bytes are what get read.
- Play it first. If your browser will not play the file, this page will not read it — the two use the same decoder, and the error message shows both attempts failing on the same file.
- Compare the size with the length. Lossless audio is roughly ten times the size of the same recording as AAC: the 30 seconds above were 229 KB lossy and 2.2 MB lossless. A very large .m4a for a short recording is usually the lossless kind.
What comes out
Three formats, all from the same run:
- TXT — one line per cue, each starting with
[HH:MM:SS.mmm]and then the words that were spoken. - SRT — numbered cues with
HH:MM:SS,mmm --> HH:MM:SS,mmmtimecodes. - VTT — the same, as a
WEBVTTfile with a full stop instead of a comma before the milliseconds.
Every format can be copied with one button and downloaded with another. There is no watermark, no paid tier above the download button, and no sign-up between you and the file.
What is not produced, stated up front: DOCX, PDF and JSON are not offered. Some tools in this category do offer them. Adding them here would mean shipping a document-writing library that everyone would download even if they only wanted the text, so this page carries TXT, SRT and VTT and says so plainly instead of leaving it to be discovered after a run.
Supported languages
whisper-base and whisper-tiny auto-detect the spoken language and transcribe in it. That is decided one pause-delimited piece at a time rather than once for the file, so a recording that changes language partway through is not written down in both — the measurement is on the podcast page. whisper-tiny.en is English-only.
The figure on this page was counted, not copied: the model files served from this site each carry exactly 99 language tokens (<|af|> through <|zh|>), and whisper-tiny.en carries 0, which is what makes it English-only. Counted 2026-10-02 in models/Xenova/whisper-base/tokenizer_config.json, models/Xenova/whisper-tiny/tokenizer_config.json and models/Xenova/whisper-tiny.en/tokenizer_config.json. The same 99 languages are listed on OpenAI's Whisper model card.
Accuracy
This page does not print an accuracy percentage. Word error rate depends heavily on the recording — audio quality, accent, background music, how fast the speaker talks — so a single headline number would be marketing rather than information. What can be said precisely: the models offered here are the official Whisper checkpoints converted to ONNX by the Xenova project, and larger models are generally more accurate. If a transcript matters, use whisper-base.
What is worth knowing instead of a percentage is where a speech model goes wrong: names, numbers, brand names and technical terms fail first, because they are the words the model cannot infer from context. Spot-check those and the rest is usually sound.
Some tools in this category do print a headline figure for the same task. Four of the ten pages currently ranking for this term state one; the other six, like this page, do not. Measured 2026-10-02 by reading each of the ten pages.
Where your file goes
Nowhere. The audio is read and decoded inside this browser tab, and the Whisper model runs in the same tab through WebAssembly. There is no backend behind this page, so there is no upload step to skip and no retention policy to read — the file is not sent anywhere, because there is nowhere to send it.
Four requests do leave this browser, and none of them carries your audio: the one-time download of the model weights from this site, a cookieless page-view count reported to Cloudflare Web Analytics, the Google Analytics script this page loads, and the visit reports that script sends on to Google. The privacy policy lists exactly what each of them is.
You do not have to take any of that on trust. Open your browser's developer tools, switch to the Network tab, and start a transcription. No request appears that carries your file, because none is made.
What the limit actually is
No limit is imposed by this page and no counter runs, so there is no daily cap, no monthly quota and nothing that resets. That is not a promotion — it is a consequence of there being no server to meter. The practical ceiling is your device's memory, because the whole audio track is decoded into memory before transcription begins, so a very long recording on a low-memory machine may fail. Splitting the file is the usual fix — and where the cut lands decides whether anything is lost: measured on this site's tool, one 29-second recording cut in two at a real pause came back as the same 94 words as the single run, while the same recording cut at an arbitrary second left the two words under the cut out of both halves. Cut at a pause, not at a second. And where it is the model that does not fit in memory, the page steps down to a smaller model and tells you it did.
Where the other tools in this category stand, measured on the same day: four of the ten pages ranking for this term state a concrete single-file size or duration figure, two state none at all, and one states two figures that contradict each other on the same page. Read 2026-10-02.
FAQ
Is this MP3 to text tool free, and do I need an account?
Free, with no account and no sign-up, and the reason is structural rather than promotional: the transcription runs on your own device, so there is no server usage to meter and nothing to bill. There is no email address, no counter and no daily or monthly quota. What you spend instead is your device's processor and memory, plus a one-time model download of 41 to 76 MB that the browser caches afterwards.
Is my MP3 uploaded to a server?
No. The file is read and decoded in the browser, and the Whisper model runs in the browser via WebAssembly. There is no backend to upload to. Four requests leave this browser: the one-time download of the model weights from this site, a cookieless view count reported to Cloudflare Web Analytics, the Google Analytics script this page loads, and the reports that script sends on to Google. The privacy policy lists exactly what each of them is. You do not have to take that on trust — open your browser's developer tools, switch to the Network tab, and start a transcription: no request appears that carries your file, because none is made.
How do I convert an MP3 to text?
Three steps. Pick a model — whisper-tiny is the smallest and fastest, whisper-base is more accurate. Drop your MP3 onto the drop area, or use the browse button. Then read the transcript, copy it, or switch to SRT or VTT and download it. There is nothing to install and nothing to sign up for.
Does the transcript come with timestamps?
Yes. Every line of the TXT output begins with the time that line was spoken, in hours, minutes, seconds and milliseconds, so any line can be played back against the recording. The SRT and VTT outputs carry start and end times for each cue instead. The cue times come from where the speech actually pauses in your audio rather than from the model's own timestamp mode, which is why a silent stretch produces no line at all.
Can I transcribe a file that is not an MP3?
Yes. MP3 is the common case but not the only one. Audio formats accepted are MP3, WAV, M4A, AAC, FLAC and OGG. Video files also work — MP4, MOV, WEBM and others — because the audio track is extracted in the browser before transcription, so a screen recording or a downloaded video needs no separate conversion step.
Were those formats actually tested, or is that just a list?
Tested, on one recording, in one sitting on 2026-10-21. A 42-second clip of continuous speech was copied into nine containers — WAV, MP3, M4A carrying AAC, a bare AAC stream, FLAC, OGG, MP4, MOV and WEBM — and each copy was dropped into this page and transcribed with the same model. All nine came back as three cues and the same 67 words, on the same three timestamps, so the container never moved a word. One comma did move: the MP3, OGG and WEBM copies wrote the first line without the comma after dog that the other six wrote. Running the unchanged WAV three times returned text identical to the character, which is why that comma is put down to the copy rather than to the run. What this does not claim is that every file of these types opens — an .m4a holding ALAC still does not.
Why does my M4A file fail to convert?
Because of what is inside it, not what it is called. An .m4a is an MP4 container, and the audio in it is usually AAC but can be ALAC, Apple's lossless codec. Measured on this page with one 30-second recording: the AAC copy came back as eight lines and 88 words, the ALAC copy was refused at the decode step and the panel never opened, and the same audio renamed from MP3 or WAV transcribed byte-identically to the AAC file. Convert the file to AAC, MP3 or WAV rather than renaming it.
Is there a file size or length limit?
No limit is imposed by this page, and no counter runs. The practical ceiling is your device's memory, because the whole audio track is decoded into memory before transcription, so a very long recording on a low-memory machine may fail. Splitting the file is the usual fix — and where the cut lands decides whether anything is lost: measured on this site's tool, one 29-second recording cut in two at a real pause came back as the same 94 words as the single run, while the same recording cut at an arbitrary second left the two words under the cut out of both halves. Cut at a pause, not at a second. Where it is the model that does not fit in memory, the page steps down to a smaller model and says so.
What are TXT, SRT and VTT?
TXT is plain text with a timestamp at the start of each line. SRT is numbered cues with a start and end time on each and a comma before the milliseconds; VTT is the same cues without the numbers and a dot before the milliseconds. Both are standard subtitle formats, and that they read outside this site was checked rather than assumed: the exported SRT and VTT were handed to four independent subtitle consumers — three parser libraries and ffmpeg — and each read back every cue, with a round trip through ffmpeg keeping every word. If you want to put subtitles on a video, export SRT or VTT rather than TXT.
Can I get a Word document or a PDF out of it?
No, and it is stated here rather than left to be discovered after a run. This page produces TXT, SRT and VTT. DOCX, PDF and JSON are not offered. Adding them would mean shipping a document-writing library, which this page deliberately does not carry, because the same download would be paid by everyone who only wanted the text.
How accurate is it?
No percentage is printed on this page, because word error rate depends on audio quality, accent, background music and speaking speed, so a single headline figure would be marketing rather than information. What is precise: the models are the official Whisper checkpoints converted to ONNX by the Xenova project, and larger models are generally more accurate. If a transcript matters, use whisper-base. What to watch for is names, numbers, brand names and technical terms, which are where a speech model is weakest.
Why is the first run slow?
The model weights are fetched once and then cached by the browser. whisper-tiny is 42 MB, whisper-tiny.en is 41 MB and whisper-base is 76 MB, so the first run moves tens of megabytes before any transcription starts. That is why the progress line names the size. After that the cached model loads quickly.
Does it work on a phone?
The layout adapts down to phone widths and the drop area stays tappable. Transcription does run in a mobile browser, but it is heavy work — on a phone, prefer whisper-tiny and short clips. If a tab is killed mid-run by the browser or the system, the next visit says the previous run did not finish rather than silently starting over.
Can it run without an internet connection?
Once the model has been downloaded and cached by the browser, a transcription run downloads no model weights from the network — the audio decoding and the Whisper model both run locally, and that was measured by switching the network off: the same clip returned a transcript byte-identical to the online run, and the browser attempted no requests at all while it ran. The page itself is the part that still needs a connection, and it needs one every time you open it. This page is not served from the browser's cache, so coming back to it with the network off fails before the tool even loads — measured twice, once after a long session and once immediately after a fresh online load. The offline window is the tab you already have open, not a page you can return to later.
What happens if the file has no speech in it?
The page says so in words, rather than returning an empty panel or a transcript that was not really heard. That covers an audio track that is silent, a recording too quiet to hold speech, and a video whose only words are painted into the picture — nothing burned into the image is ever read, because the picture is never decoded. A loud music bed is the exception worth knowing about: it passes the level test, so the first cue can come back as a marker or a line nobody said.
Can I paste a link to an MP3 instead of uploading it?
There is no link box on this page, and that is a deliberate choice rather than a missing feature. This page has no server, so nothing could fetch a remote file for you, and an audio file has no public URL that a browser is allowed to read directly. Rather than ship a box that exists only to apologise, the page has one input: the file. Save it to your device and drop it in.
Privacy
Nothing you drop here is transmitted anywhere, and there is no account to create. Two tools count the visit: Cloudflare Web Analytics, which sets no cookies and does not fingerprint visitors, and Google Analytics, which stores _ga and _ga_KJ155PR9B7 in this browser for two years. The privacy policy says exactly what each one records. Close the tab and the file is gone.
Other pages
The same engine, set up for other sources. The TikTok transcript generator handles TikTok video to text, and the Instagram transcript generator does the same for Instagram Reels. For longer video there is the YouTube video transcript generator, for an episode there is podcast transcription, and for a memo off a phone there is voice memo to text. If what you want is a subtitle file rather than a transcript, the subtitle converter starts from the recording and shows what the cues it produces actually look like. All of them run in the browser with no upload, exactly like this one.