audio-speech

OpenAI

Batch speech-to-text with word timestamps, but a strict 25 MB cap and weak code-switching make it a mixed fit for hard audio.

Visit OpenAI
25 MB capWord timestampsJargon testedCode-switching weak
TL;DR — our verdictUpdated September 2026 · 7 test artifacts

Useful on small, mostly-English audio; mixed on hard cases.

Where it wins
  • You need a simple hosted batch STT API that returns word-level timestamps.
  • Your audio files are under 25 MB.
  • Your audio is mostly English or jargon-heavy narration rather than strongly code-switched speech.
Main limitation
  • You need speaker labels or confidence scores.
Pricing (verified plans)
whisper-1 $0.006/mingpt-4o-transcribe $0.006/mingpt-4o-mini-transcribe $0.003/mingpt-4o-transcribe-diarize $0.006/min
Strongest test artifacts

Our take

Benchmarked on whisper-1, OpenAI Speech-to-Text returned usable transcripts on the jargon-heavy sample and exposed word-level timestamps in verbose JSON. But the 65.39 MB crosstalk file was hard-rejected by the API's 25 MB cap, and the bilingual clip only recovered 46.2% of Spanish tokens, so this is a practical batch API for smaller English-heavy audio rather than a strong multilingual or meeting-style engine.

Screen recording of the benchmark workflow and result views for OpenAI Speech-to-Text.

In-Depth Review

Our detailed analysis of OpenAI — features, performance, and real-world testing.

AD
AI Demos Team
Expert Reviewer
Verified Review

Feature-by-Feature Breakdown

Audio Transcription
Works on sub-25 MB files, but hard-rejects oversized audio.
Test Summary
Feature tested: Audio Transcription
Result: Partial — Works on sub-25 MB files, but hard-rejects oversized audio.

Feature tested: Audio Transcription

Result: Partial

Verdict: Works on sub-25 MB files, but hard-rejects oversized audio.

Expected behavior: Transcribes uploaded audio into text, including multipart uploads under the documented size cap. The exercised inputs included jargon-heavy English medical narration, a Spanish-English mixed clip, and larger multipart files such as the 8.6 MB medical narration and 22.2 MB bilingual clip.

Test case: Audio file → Image

Input type: Audio file

Input used: Input artifact (Audio file): INPUT: Overlapping Speech / Crosstalk (crosstalk.wav, 65.39 MB WAV). — crosstalk.wav

Observed output: Output artifact (Image): The API rejected the 65.39 MB WAV with HTTP 413 after 50.08s because it exceeded the documented 25 MB upload cap. No transcript was returned and the run was charged $0.0, so this is a hard limit rather than a transcription-quality failure. — 05-limit-evidence-input-1-2.png

Input artifact: Input artifact (Audio file): INPUT: Overlapping Speech / Crosstalk (crosstalk.wav, 65.39 MB WAV). — crosstalk.wav

Output artifact: Output artifact (Image): The API rejected the 65.39 MB WAV with HTTP 413 after 50.08s because it exceeded the documented 25 MB upload cap. No transcript was returned and the run was charged $0.0, so this is a hard limit rather than a transcription-quality failure. — 05-limit-evidence-input-1-2.png

What changed: Audio file transformed into Image

Test case: Audio file → Image

Input type: Audio file

Input used: Input artifact (Audio file): INPUT: Medical Jargon (run metrics for the same anatomy sample). — medical_terms.mp3

Observed output: Output artifact (Image): The run metrics confirm the same accepted run at 62.12s latency, 0.05526 RTF, and $0.1124 estimated cost. — 03-terminal-metrics-input-2.png

Input artifact: Input artifact (Audio file): INPUT: Medical Jargon (run metrics for the same anatomy sample). — medical_terms.mp3

Output artifact: Output artifact (Image): The run metrics confirm the same accepted run at 62.12s latency, 0.05526 RTF, and $0.1124 estimated cost. — 03-terminal-metrics-input-2.png

What changed: Audio file transformed into Image

Test case: Audio file → Image

Input type: Audio file

Input used: Input artifact (Audio file): INPUT: Bilingual Code-Switching (run metrics for the same mixed-language sample). — mix_language.mp3

Observed output: Output artifact (Image): The run metrics confirm the accepted run at 139.49s latency, 0.07196 RTF, and $0.19385 estimated cost. — 03-terminal-metrics-input-3.png

Input artifact: Input artifact (Audio file): INPUT: Bilingual Code-Switching (run metrics for the same mixed-language sample). — mix_language.mp3

Output artifact: Output artifact (Image): The run metrics confirm the accepted run at 139.49s latency, 0.07196 RTF, and $0.19385 estimated cost. — 03-terminal-metrics-input-3.png

What changed: Audio file transformed into Image

Test case: Audio file → Image

Input type: Audio file

Input used: Input artifact (Audio file): INPUT: Medical Jargon (anatomy narration dense with technical terms). — medical_terms.mp3

Observed output: Output artifact (Image): The comparison highlights a single missed medical term, 'trabeculae', and reports 5.17% WER with 88.9% jargon recall on the anatomy sample. — 04-transcript-detail-input-2.png

Input artifact: Input artifact (Audio file): INPUT: Medical Jargon (anatomy narration dense with technical terms). — medical_terms.mp3

Output artifact: Output artifact (Image): The comparison highlights a single missed medical term, 'trabeculae', and reports 5.17% WER with 88.9% jargon recall on the anatomy sample. — 04-transcript-detail-input-2.png

What changed: Audio file transformed into Image

Test case: Audio file → Image

Input type: Audio file

Input used: Input artifact (Audio file): INPUT: Bilingual Code-Switching (mostly English conversation with Spanish phrases). — mix_language.mp3

Observed output: Output artifact (Image): The comparison shows a dropped Spanish span around 'mi entonces ahora' and reports 26.12% WER with 46.2% Spanish token recall on the bilingual sample. — 04-transcript-detail-input-3.png

Input artifact: Input artifact (Audio file): INPUT: Bilingual Code-Switching (mostly English conversation with Spanish phrases). — mix_language.mp3

Output artifact: Output artifact (Image): The comparison shows a dropped Spanish span around 'mi entonces ahora' and reports 26.12% WER with 46.2% Spanish token recall on the bilingual sample. — 04-transcript-detail-input-3.png

What changed: Audio file transformed into Image

Why it matters / Conclusion: Good for small batch uploads; the 25 MB cap is a real deployment constraint.

Transcribes uploaded audio into text, including multipart uploads under the documented size cap. The exercised inputs included jargon-heavy English medical narration, a Spanish-English mixed clip, and larger multipart files such as the 8.6 MB medical narration and 22.2 MB bilingual clip.

audio
0:00 / 0:00
Loading audio...
INPUT: Overlapping Speech / Crosstalk (crosstalk.wav, 65.39 MB WAV).
image
Output artifact for "Audio Transcription" test: The API rejected the 65.39 MB WAV with HTTP 413 after 50.08s because it exceeded the documented 25 MB upload cap. No transcript was returned and the run was charged $0.0, so this is a hard limit rather than a transcription-quality failure., 05-limit-evidence-input-1-2.png
The API rejected the 65.39 MB WAV with HTTP 413 after 50.08s because it exceeded the documented 25 MB upload cap. No transcript was returned and the run was charged $0.0, so this is a hard limit rather than a transcription-quality failure.
audio
0:00 / 0:00
Loading audio...
INPUT: Medical Jargon (run metrics for the same anatomy sample).
image
Output artifact for "Audio Transcription" test: The run metrics confirm the same accepted run at 62.12s latency, 0.05526 RTF, and $0.1124 estimated cost., 03-terminal-metrics-input-2.png
The run metrics confirm the same accepted run at 62.12s latency, 0.05526 RTF, and $0.1124 estimated cost.
audio
0:00 / 0:00
Loading audio...
INPUT: Bilingual Code-Switching (run metrics for the same mixed-language sample).
image
Output artifact for "Audio Transcription" test: The run metrics confirm the accepted run at 139.49s latency, 0.07196 RTF, and $0.19385 estimated cost., 03-terminal-metrics-input-3.png
The run metrics confirm the accepted run at 139.49s latency, 0.07196 RTF, and $0.19385 estimated cost.
audio
0:00 / 0:00
Loading audio...
INPUT: Medical Jargon (anatomy narration dense with technical terms).
image
Output artifact for "Audio Transcription" test: The comparison highlights a single missed medical term, 'trabeculae', and reports 5.17% WER with 88.9% jargon recall on the anatomy sample., 04-transcript-detail-input-2.png
The comparison highlights a single missed medical term, 'trabeculae', and reports 5.17% WER with 88.9% jargon recall on the anatomy sample.
audio
0:00 / 0:00
Loading audio...
INPUT: Bilingual Code-Switching (mostly English conversation with Spanish phrases).
image
Output artifact for "Audio Transcription" test: The comparison shows a dropped Spanish span around 'mi entonces ahora' and reports 26.12% WER with 46.2% Spanish token recall on the bilingual sample., 04-transcript-detail-input-3.png
The comparison shows a dropped Spanish span around 'mi entonces ahora' and reports 26.12% WER with 46.2% Spanish token recall on the bilingual sample.
Bottom Line
Good for small batch uploads; the 25 MB cap is a real deployment constraint.
From our researchTranscribe Audio Accurately — Speech-to-Text Engine Benchmarkearlier research
Word-Level Timestamped Transcript Output
Timed tokens are present, but there is no confidence or speaker-label signal.
Test Summary
Feature tested: Word-Level Timestamped Transcript Output
Result: Passed — Timed tokens are present, but there is no confidence or speaker-label signal.

Feature tested: Word-Level Timestamped Transcript Output

Result: Passed

Verdict: Timed tokens are present, but there is no confidence or speaker-label signal.

Expected behavior: Returns transcript output with word-level timing metadata when verbose JSON and timestamp granularity are enabled. The exercised outputs were structured JSON exports with timed tokens for captioning, search alignment, and downstream synchronization.

Test case: Audio file → Image

Input type: Audio file

Input used: Input artifact (Audio file): INPUT: Medical Jargon with response_format set to verbose_json and timestamp_granularities[] word. — medical_terms.mp3

Observed output: Output artifact (Image): The raw JSON transcript includes word-level timestamps, and the feature summary shows word_timestamps yes, confidence no, and speaker_labels no. — 02-response-raw-input-2.png

Input artifact: Input artifact (Audio file): INPUT: Medical Jargon with response_format set to verbose_json and timestamp_granularities[] word. — medical_terms.mp3

Output artifact: Output artifact (Image): The raw JSON transcript includes word-level timestamps, and the feature summary shows word_timestamps yes, confidence no, and speaker_labels no. — 02-response-raw-input-2.png

What changed: Audio file transformed into Image

Test case: Audio file → Image

Input type: Audio file

Input used: Input artifact (Audio file): INPUT: Bilingual Code-Switching with response_format set to verbose_json and timestamp_granularities[] word. — mix_language.mp3

Observed output: Output artifact (Image): The raw JSON transcript includes word-level timestamps, and the feature summary again shows word_timestamps yes with confidence no and speaker_labels no. — 02-response-raw-input-3.png

Input artifact: Input artifact (Audio file): INPUT: Bilingual Code-Switching with response_format set to verbose_json and timestamp_granularities[] word. — mix_language.mp3

Output artifact: Output artifact (Image): The raw JSON transcript includes word-level timestamps, and the feature summary again shows word_timestamps yes with confidence no and speaker_labels no. — 02-response-raw-input-3.png

What changed: Audio file transformed into Image

Why it matters / Conclusion: Useful alignment metadata, but not enough for diarization or confidence gating.

Returns transcript output with word-level timing metadata when verbose JSON and timestamp granularity are enabled. The exercised outputs were structured JSON exports with timed tokens for captioning, search alignment, and downstream synchronization.

audio
0:00 / 0:00
Loading audio...
INPUT: Medical Jargon with response_format set to verbose_json and timestamp_granularities[] word.
image
Output artifact for "Word-Level Timestamped Transcript Output" test: The raw JSON transcript includes word-level timestamps, and the feature summary shows word_timestamps yes, confidence no, and speaker_labels no., 02-response-raw-input-2.png
The raw JSON transcript includes word-level timestamps, and the feature summary shows word_timestamps yes, confidence no, and speaker_labels no.
audio
0:00 / 0:00
Loading audio...
INPUT: Bilingual Code-Switching with response_format set to verbose_json and timestamp_granularities[] word.
image
Output artifact for "Word-Level Timestamped Transcript Output" test: The raw JSON transcript includes word-level timestamps, and the feature summary again shows word_timestamps yes with confidence no and speaker_labels no., 02-response-raw-input-3.png
The raw JSON transcript includes word-level timestamps, and the feature summary again shows word_timestamps yes with confidence no and speaker_labels no.
Bottom Line
Useful alignment metadata, but not enough for diarization or confidence gating.
From our researchTranscribe Audio Accurately — Speech-to-Text Engine Benchmarkearlier research

How it scored on the research's own criteria

The 4 evaluation dimensions from our hands-on research on OpenAI , each judged from recorded runs on 3 test inputs — the same verdicts the ranking page ranks on.

held up  partial  failed  not exercised by this input

CriterionVerdictWhat the runs showedPer inputProof
Output qualityMixed3/5It is clearly strong on the medical narration, but the code-switching run drops a lot of Spanish and the overall error rate jumps sharply. With one good result, one poor result, and one untested file, the right read is a mixed middle score rather than a win or a failure.open proof ↗
Automation levelStrong4/5It runs as a single posted request with no operator back-and-forth on the successful jobs, which is the simple case you want. I kept this at 4 rather than 5 because the oversized WAV never made it through to completion, so the workflow is not universally end-to-end across the tested files.
ExportMixed3/5The successful runs return detailed JSON with word timing, so the payload is usable and fairly rich. But it stops short of a fully featured transcript package because there are no confidence values or speaker labels, and the failed upload returns only an error instead of transcript content, which makes this a middle score.open proof ↗
Input handlingMixed3/5It handles the two under-cap audio files without complaint, but it refuses the larger meeting recording outright. That split behavior is enough to keep it from a strong score: it accepts normal benchmark files, yet it cannot take every provided input as-is.

Verdicts come verbatim from the study's recorded observations, never re-derived at render; a criterion with no recorded run shows Not exercised — this section cannot invent a score.

Official list prices from OpenAI's pricing page

Per-minute API pricing; whisper-1 is the benchmarked model on this page.

TESTED
whisper-1
$0.006/min
Flat per-minute pricing; this was the benchmarked model.
gpt-4o-transcribe
$0.006/min
Vendor lists this as an estimated cost column.
gpt-4o-mini-transcribe
$0.003/min
Cheapest 4o-family transcribe model listed on the pricing page.
gpt-4o-transcribe-diarize
$0.006/min
Diarization is included at the same rate; it is not a separate surcharge.
gpt-transcribe
$0.0045/min
Newer non-4o transcribe model.
gpt-live-transcribe
$0.017/min
Live/streaming transcription.

Prices were read from OpenAI's pricing page on 2026-08-14 and should be re-verified at test time. No free tier or free credits are published on the API pricing page, and Batch API is not priced separately for transcription.

✓ Use This If
You need a simple hosted batch STT API that returns word-level timestamps.
Your audio files are under 25 MB.
Your audio is mostly English or jargon-heavy narration rather than strongly code-switched speech.
✕ Skip This If
You need speaker labels or confidence scores.
You need balanced multilingual transcription or strong code-switching support.
Your audio routinely exceeds 25 MB or includes long meeting recordings over the cap.
audio-speechaudio-to-texttextOther
A 65.39 MB WAV was rejected with HTTP 413 because the documented upload cap is 25 MB. The failed request took 50.08 seconds and was charged $0.0.
Yes. With verbose_json and timestamp_granularities[] word enabled, the accepted runs returned timed tokens; the raw response shows 2,664 word-level tokens on the medical sample and 5,703 on the bilingual sample.
No. The raw response summary shows confidence=no and speaker_labels=no on both accepted runs.
WER was 5.17% on the anatomy sample, with 88.9% jargon recall. The highlighted miss was 'trabeculae'.
WER was 26.12%, and Spanish token recall was 46.2% (37/80 types) on a clip that was mostly English, so balanced multilingual performance is not demonstrated here.
OpenAI's pricing page lists whisper-1 at $0.006/min ($0.36/hour). The report also lists gpt-4o-mini-transcribe at $0.003/min and gpt-transcribe at $0.0045/min. No free tier or free credits are published on the API pricing page.
The medical-jargon run cost $0.1124 and the bilingual run cost $0.19385 at the report's list-price assumptions. The oversize overlapping-speech run was charged $0.0 because it was rejected before transcription.

Banner Preview

How the embed badge will look on your site

OpenAI  featured on AI Demos

Embed HTML

Copy this code to your website source

<a target="_blank" href="https://aidemos.com/tools/openai-speech-to-text?utm_source=openai-speech-to-text_embed" style="width: 250px; height: 80px; border-radius:4px;" width="250" height="80"> <img src="https://aidemos-website-images.s3.amazonaws.com/featured.png" alt="OpenAI | Featured on AI Demos" style="width: 250px; height: 80px; border-radius:4px;" width="250" height="80"> </a>

Quick Integration Guide

  • 1Copy the HTML code block above.
  • 2Paste it into your site's HTML or CMS editor.
  • 3Banner appears instantly on your page.
  • 4Links back to your tool profile here.
Similar Tools

Similar Tools

Discover more AI tools like OpenAI to enhance your workflow.

Comments (0)

Please Log in to join the discussion.

Built by FutureSmart AI — the team behind AI Demos

Need a custom AI solution for this use case?

If you are looking to build a custom speech-to-text, audio transcription, or word timestamping system for your business or internal workflow, email us at contact@futuresmart.ai.

Get a custom build

Found something inaccurate or missing? We try to keep our AI research accurate and useful. If you found outdated information, an issue, or have a suggestion, email us at collaborate@aidemos.com.

Back to Top