"Translate audio to text" means two different things
By Andrey ChmerevI build Kekoso, which does the first of these two things and not the second, so the section on translation sends you elsewhere on purpose. The Whisper behaviour is quoted from its own README; the keyword counts are from a 5,388-query export I pulled from Google Keyword Planner on 3 September 2026.

If you searched for how to translate audio to text — or to translate audio into text, which people type just as often — you probably meant one of two things, and they need different tools:
- Turn the speech into written words. Spanish audio, Spanish text. This is transcription, and “translate” is just the verb people use.
- Turn the speech into words in another language. Spanish audio, English text. This is translation, and it is two problems stacked.
Most people mean the first. In a 5,388-query keyword export, 103 phrases contained the word “translate” — and only 11 of them named a language. The other 92 are shapes like “translate audio to text”, “translate voice to text”, “translate mp3 to text”, “translate audio file to text”, “translate sound into text”. No source language, no target language, because none was meant.
So: if you did not think about which language the result should be in, you want a transcript.
If you want a transcript
Everything is straightforward and this article is nearly over. Any local transcription tool takes the file and writes down what was said. The full list of formats and the routes available is a separate page; the short version is that the file goes in as it is and text comes out.
One thing worth setting deliberately: the language. Not because detection is bad, but because the default is sometimes not what you would guess. In WhisperKit, the framework a lot of Mac apps build on, leaving the language unset does not mean “detect it” — the prefill prompt fills in en, and the model is asked to transcribe your Russian audio as though it were English. The result is not an error message; it is confident nonsense. Detection has to be turned on explicitly, and any app doing this properly turns it on for you.
That is the same class of trap as the translate flag below: a default that quietly answers a different question than the one you asked.
If you actually want another language
Searches for translate audio to text free usually mean this, and the free part is where the two jobs come apart.
Now the two-problem part. There are two routes, and one of them is more broken than people expect.
Route one: Whisper’s translate task
Whisper can do speech translation in a single pass, and its README shows the flag:
“To translate speech into English, use:
whisper japanese.wav --model medium --language Japanese --task translate”
Two limits are hiding in that line.
English is the only target. Not “into a language of your choice” — into English. Japanese to English, yes. Japanese to German, no. If your target is anything else, this route does not exist for you at all.
The best model ignores the flag. From the same README:
“The
turbomodel will return the original language even if--task translateis specified. Usemediumorlargefor the best translation results.”
This is the part that costs people an afternoon. Turbo is the variant most tools default to, because it is the fastest of the accurate Whisper builds. You pass --task translate, it runs happily, and you get the original language back with no warning. Nothing failed; the flag was simply not honoured.
I checked this rather than trusting the README, because a documented quirk is
worth confirming before you plan around it. Three sentences of the same content
were synthesised in Spanish, Russian and Japanese and run through
whisper-cli --translate, once with the language auto-detected and once with it
named explicitly:
| Model | Result | Speed | Size on disk |
|---|---|---|---|
| large-v3-turbo | original language, both times | 13.6× real time | 1,549 MB |
| large-v3 | English, as asked | 7.5× real time | 2,952 MB |
So the workaround is real, and it is not free. The model that translates is twice the size and roughly half the speed of the one that does not.
The quality of the model that does work is worth knowing too. Russian came back
as “Yesterday’s deployment went smoothly. There are no errors on the monitoring
panel” — flawless, including the technical term. Spanish lost one word:
despliegue became display instead of deployment. Japanese kept the meaning
but turned “a full day’s worth” into 1/1. Useful for understanding a recording;
not something to publish without reading it first.
Route two: transcribe, then translate
Run the transcription, read the text, then translate the text with a tool built for translating.
This is slower by one step and better for almost every purpose, for a reason that has nothing to do with quality of either tool: you get to see the intermediate result. Speech recognition makes one kind of mistake (mishearing a word) and machine translation makes another (misreading a sentence). Stacked into one pass, they are indistinguishable — you receive a fluent English sentence that says something nobody said, and no way to tell which stage invented it.
Split them, and a mishearing is visible while it is still a mishearing. It is also the only route if your target language is not English.
The practical order:
- Transcribe locally, in the spoken language.
- Read the transcript. Fix names, terms and anything the model clearly misheard.
- Translate the corrected text — DeepL, Google Translate, or a translator you trust for the pair.
- Have a speaker of the target language read the result if it is going anywhere public.
Step 4 is not padding. Machine translation of transcribed speech carries both error rates at once, and spoken language — with its false starts and half-sentences — is harder to translate than written prose.
Where subtitles fit
If the end product is subtitles rather than a document, the same split applies with an extra wrinkle: timing.
Translate a subtitle file and the cues stay where they were, but the text length changes — German runs longer than English, Chinese much shorter. That arithmetic is the same wall dubbing hits, only harsher: a dubbed line cannot be shortened without the viewer losing the words entirely. Cues that fitted the reading-speed limits before translation often do not afterwards, so a translated subtitle file usually needs its cue boundaries revisited rather than just its words swapped.
That is why generating subtitles and translating them are separate jobs in every tool that does both properly, and why an app that offers to do it in one click is worth checking closely.
What this app does, so you can stop reading
Kekoso, which I build, does the transcription half only. It writes down what was said, in the language it was said in, and does not expose Whisper’s translate task at all — a Spanish file gives you Spanish text.
That is a deliberate choice rather than a missing feature. Shipping one-pass translation would mean handing you output where a recognition error and a translation error look identical, inside an app whose entire claim is that you can check what it did.
For the transcription half: which model covers which language matters more than anything else here, because a model that does not speak your language cannot transcribe it, let alone translate it.
Whisper’s behaviour above is quoted from its README, read on 4 September 2026. The keyword counts are from a Google Keyword Planner export of 5,388 queries pulled on 3 September 2026.
Questions people ask
Does translate audio to text mean transcription or translation?
Usually transcription. In a 5,388-query keyword export, 103 phrases contained the word translate and only 11 of them named a language — the rest are phrasings like 'translate audio to text' and 'translate voice to text', where translate is being used to mean convert. If you did not name a source and target language, what you want is a transcript.
Can Whisper translate speech into another language?
Into English only. Its README shows the flag as 'To translate speech into English, use: whisper japanese.wav --model medium --language Japanese --task translate'. There is no option to translate into German or Japanese in one pass — English is the single target the task supports.
Why does Whisper ignore my translate flag?
If you are using the turbo model, that is documented behaviour rather than a bug. The Whisper README states: 'The turbo model will return the original language even if --task translate is specified. Use medium or large for the best translation results.' Turbo is the fastest and most accurate variant, which is why people reach for it first and then wonder why nothing was translated.
Is it better to transcribe first and translate second?
For anything you will publish or quote, yes. Two steps let you see the transcript before it is translated, so a mishearing is caught while it is still one error instead of being carried into a fluent-sounding wrong sentence. One-step translation hides which of the two stages failed. The exception is when you only need the gist and nobody will quote it.
How do I translate an MP3 into another language for free?
Transcribe it locally with a Whisper build or a local app, then paste the text into a translation service. Both halves have free options, and splitting them means the translation step can use a dedicated translator rather than a speech model doing translation as a side job.
Does Kekoso translate audio?
No. It transcribes into the language that was spoken and does not expose Whisper's translate task at all. If your file is Spanish, you get Spanish text. Translation is a separate step with separate tools, and shipping unreviewed machine translation inside a transcription app would blur which of the two produced an error.