Google Cloud icon
audio-speech

Google Cloud

Batch transcription with word timestamps, but uneven accuracy on overlap and code-switching.

Visit Google Cloud
Batch STTWord timestampsHard audio testedStandard tier
TL;DR — our verdictUpdated August 2026 · 6 test artifacts

Useful batch STT, but not a clear winner on hard audio

Where it wins
  • You need batch speech-to-text with word-level timestamps for long audio.
  • You are comparing engines on technical narration and can tolerate uneven performance on harder clips.
  • You want a straightforward API-backed transcription workflow with published Standard-tier pricing.
Main limitation
  • You need speaker diarization or confidence scores in the published chirp configuration.
Pricing (verified plans)
Free tier $0V2 Standard — batch or real-time $0.016/minV2 Dynamic Batch $0.004/minVolume discounts as low as ~$0.004/min
Strongest test artifacts

Our take

Google Cloud STT v2 completed all three benchmarked batch transcriptions and returned word-level timestamps, but performance was uneven: it was strongest on the medical-jargon file and much weaker on overlapping speech and Spanish-English code-switching. The published Standard-tier run cost about $1.39 across the three inputs, and the output lacked speaker labels and confidence scores in this configuration.

Terminal screen recording of the benchmark run selecting Google Cloud STT v2 and showing the three scored inputs and their run summaries.

In-Depth Review

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

AD
AI Demos Team
Expert Reviewer
Verified Review

Feature-by-Feature Breakdown

Batch Speech Transcription
Works as a batch transcription engine, but accuracy varied a lot by audio type.
Test Summary
Feature tested: Batch Speech Transcription
Result: Partial — Works as a batch transcription engine, but accuracy varied a lot by audio type.

Feature tested: Batch Speech Transcription

Result: Partial

Verdict: Works as a batch transcription engine, but accuracy varied a lot by audio type.

Expected behavior: Google Cloud STT v2 can take long-form audio and return a complete transcript in batch. The benchmark exercised it on overlapping crosstalk, technical medical narration, and bilingual code-switching, showing the same transcription capability across varied audio inputs.

Test case: Audio file → Text/code file

Input type: Audio file

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

Observed output: Output artifact (Text/code file): Raw JSON transcript for the crosstalk run. The engine returned 5,454 words against a 7,579-word reference and the benchmark scored it at 35.89% WER, with large omissions in the overlap-heavy portions. — raw-response.json

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

Output artifact: Output artifact (Text/code file): Raw JSON transcript for the crosstalk run. The engine returned 5,454 words against a 7,579-word reference and the benchmark scored it at 35.89% WER, with large omissions in the overlap-heavy portions. — raw-response.json

What changed: Audio file transformed into Text/code file

Test case: Audio file → Text/code file

Input type: Audio file

Input used: Input artifact (Audio file): INPUT 2 — Medical Jargon (medical_terms.mp3, 8.58 MB, 1123.971s) — medical_terms.mp3

Observed output: Output artifact (Text/code file): Raw JSON transcript for the medical-jargon run. The engine returned 2,746 words against a 2,728-word reference and scored 9.42% WER, which was the best result of the three inputs. — raw-response-2.json

Input artifact: Input artifact (Audio file): INPUT 2 — Medical Jargon (medical_terms.mp3, 8.58 MB, 1123.971s) — medical_terms.mp3

Output artifact: Output artifact (Text/code file): Raw JSON transcript for the medical-jargon run. The engine returned 2,746 words against a 2,728-word reference and scored 9.42% WER, which was the best result of the three inputs. — raw-response-2.json

What changed: Audio file transformed into Text/code file

Test case: Audio file → Text/code file

Input type: Audio file

Input used: Input artifact (Audio file): INPUT 3 — Bilingual Code-Switching (mix_language.mp3, 22.19 MB, 1938.495s) — mix_language.mp3

Observed output: Output artifact (Text/code file): Raw JSON transcript for the bilingual run. The engine returned 4,442 words against a 6,517-word reference and scored 41.72% WER, with especially poor handling of the Spanish portion. — raw-response-3.json

Input artifact: Input artifact (Audio file): INPUT 3 — Bilingual Code-Switching (mix_language.mp3, 22.19 MB, 1938.495s) — mix_language.mp3

Output artifact: Output artifact (Text/code file): Raw JSON transcript for the bilingual run. The engine returned 4,442 words against a 6,517-word reference and scored 41.72% WER, with especially poor handling of the Spanish portion. — raw-response-3.json

What changed: Audio file transformed into Text/code file

Why it matters / Conclusion: It reliably produced transcripts, but the quality spread was wide: acceptable on the technical narration, weak on crosstalk, and very weak on code-switching.

Google Cloud STT v2 can take long-form audio and return a complete transcript in batch. The benchmark exercised it on overlapping crosstalk, technical medical narration, and bilingual code-switching, showing the same transcription capability across varied audio inputs.

audio
0:00 / 0:00
Loading audio...
INPUT 1 — Overlapping Speech / Crosstalk (crosstalk.wav, 65.39 MB, 2142.709s)
OUTPUT
raw-response.json
Loading file...
Raw JSON transcript for the crosstalk run. The engine returned 5,454 words against a 7,579-word reference and the benchmark scored it at 35.89% WER, with large omissions in the overlap-heavy portions.
audio
0:00 / 0:00
Loading audio...
INPUT 2 — Medical Jargon (medical_terms.mp3, 8.58 MB, 1123.971s)
OUTPUT
raw-response-2.json
Loading file...
Raw JSON transcript for the medical-jargon run. The engine returned 2,746 words against a 2,728-word reference and scored 9.42% WER, which was the best result of the three inputs.
audio
0:00 / 0:00
Loading audio...
INPUT 3 — Bilingual Code-Switching (mix_language.mp3, 22.19 MB, 1938.495s)
OUTPUT
raw-response-3.json
Loading file...
Raw JSON transcript for the bilingual run. The engine returned 4,442 words against a 6,517-word reference and scored 41.72% WER, with especially poor handling of the Spanish portion.
Bottom Line
It reliably produced transcripts, but the quality spread was wide: acceptable on the technical narration, weak on crosstalk, and very weak on code-switching.
Word-Level Timestamping
Word offsets are present in the raw response for all three runs.
Test Summary
Feature tested: Word-Level Timestamping
Result: Passed — Word offsets are present in the raw response for all three runs.

Feature tested: Word-Level Timestamping

Result: Passed

Verdict: Word offsets are present in the raw response for all three runs.

Expected behavior: The API response can include per-word start and end offsets alongside the transcript. In the benchmark runs, these timestamps were present consistently, providing timing metadata for captions, alignment, and search indexing.

Test case: Audio file → Text/code file

Input type: Audio file

Input used: Input artifact (Audio file): INPUT 1 — Overlapping Speech / Crosstalk (crosstalk.wav) — crosstalk.wav

Observed output: Output artifact (Text/code file): The raw JSON response includes word-level timing fields for the crosstalk transcript. The payload also lacks confidence scores and speaker labels. — raw-response.json

Input artifact: Input artifact (Audio file): INPUT 1 — Overlapping Speech / Crosstalk (crosstalk.wav) — crosstalk.wav

Output artifact: Output artifact (Text/code file): The raw JSON response includes word-level timing fields for the crosstalk transcript. The payload also lacks confidence scores and speaker labels. — raw-response.json

What changed: Audio file transformed into Text/code file

Test case: Audio file → Text/code file

Input type: Audio file

Input used: Input artifact (Audio file): INPUT 2 — Medical Jargon (medical_terms.mp3) — medical_terms.mp3

Observed output: Output artifact (Text/code file): The raw JSON response includes word-level timing fields for the medical-jargon transcript. The payload also lacks confidence scores and speaker labels. — raw-response-2.json

Input artifact: Input artifact (Audio file): INPUT 2 — Medical Jargon (medical_terms.mp3) — medical_terms.mp3

Output artifact: Output artifact (Text/code file): The raw JSON response includes word-level timing fields for the medical-jargon transcript. The payload also lacks confidence scores and speaker labels. — raw-response-2.json

What changed: Audio file transformed into Text/code file

Test case: Audio file → Text/code file

Input type: Audio file

Input used: Input artifact (Audio file): INPUT 3 — Bilingual Code-Switching (mix_language.mp3) — mix_language.mp3

Observed output: Output artifact (Text/code file): The raw JSON response includes word-level timing fields for the bilingual transcript. The payload also lacks confidence scores and speaker labels. — raw-response-3.json

Input artifact: Input artifact (Audio file): INPUT 3 — Bilingual Code-Switching (mix_language.mp3) — mix_language.mp3

Output artifact: Output artifact (Text/code file): The raw JSON response includes word-level timing fields for the bilingual transcript. The payload also lacks confidence scores and speaker labels. — raw-response-3.json

What changed: Audio file transformed into Text/code file

Why it matters / Conclusion: Word timing is available consistently, but the output metadata is sparse beyond that.

The API response can include per-word start and end offsets alongside the transcript. In the benchmark runs, these timestamps were present consistently, providing timing metadata for captions, alignment, and search indexing.

audio
0:00 / 0:00
Loading audio...
INPUT 1 — Overlapping Speech / Crosstalk (crosstalk.wav)
OUTPUT
raw-response.json
Loading file...
The raw JSON response includes word-level timing fields for the crosstalk transcript. The payload also lacks confidence scores and speaker labels.
audio
0:00 / 0:00
Loading audio...
INPUT 2 — Medical Jargon (medical_terms.mp3)
OUTPUT
raw-response-2.json
Loading file...
The raw JSON response includes word-level timing fields for the medical-jargon transcript. The payload also lacks confidence scores and speaker labels.
audio
0:00 / 0:00
Loading audio...
INPUT 3 — Bilingual Code-Switching (mix_language.mp3)
OUTPUT
raw-response-3.json
Loading file...
The raw JSON response includes word-level timing fields for the bilingual transcript. The payload also lacks confidence scores and speaker labels.
Bottom Line
Word timing is available consistently, but the output metadata is sparse beyond that.

How it scored on the research's own criteria

The 4 evaluation dimensions from our hands-on research on Google Cloud, 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 qualityWeak2/5The anatomy narration is the best case, but the meeting audio is rough and the Spanish-English conversation is very poor, so the engine is not consistently accurate enough to score well overall.open proof ↗
Automation levelStrong4/5Once started, the runs proceed automatically through batch processing and return results without hands-on polling, but the recorded workflow still needs a manual start and model choice, so it is not fully hands-off.open proof ↗
ExportMixed3/5The returned payload is useful for timing and basic inspection, but it stays shallow across all three runs because it omits confidence and speaker attribution, limiting downstream use.
Input handlingStrong5/5It accepted all three long files, finished each run, and reported time and cost every time, so the benchmark shows dependable end-to-end processing rather than partial or failed ingestion.open proof ↗

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 pricing

The benchmark used the V2 Standard tier; Dynamic Batch is cheaper but was not used for the published run.

Free tier
$0
60 audio-minutes per month; applies across V1 and V2.
TESTED
V2 Standard — batch or real-time
$0.016/min ($0.96/audio-hour)
Pay-as-you-go; this is the tier the benchmark was billed at.
V2 Dynamic Batch
$0.004/min ($0.24/audio-hour)
Lower-urgency processing with no latency guarantee; not used in the published benchmark.
Volume discounts
as low as ~$0.004/min
Large monthly commitments; requires sales contact.
V1 API
$0.016/min
Same headline rate as Standard.

Free tier is 60 audio-minutes per month. The benchmark used about 86 minutes across three inputs, so one full pass exceeds the free allowance.

✓ Use This If
You need batch speech-to-text with word-level timestamps for long audio.
You are comparing engines on technical narration and can tolerate uneven performance on harder clips.
You want a straightforward API-backed transcription workflow with published Standard-tier pricing.
✕ Skip This If
You need speaker diarization or confidence scores in the published chirp configuration.
You need strong multilingual or code-switching accuracy.
You need streaming latency numbers from this benchmark, because streaming was not measured here.
audio-speechaudio-to-textspeechOther
No. The published chirp run returned no speaker labels, and the diarization request was rejected as unsupported for chirp in the report. The notes say chirp_3 is the model to re-run if diarization becomes available.
Yes. The raw JSON responses show per-word startOffset and endOffset fields on all three inputs.
That was its best input: 9.42% WER on the medical-jargon file, with 2,746 words returned against a 2,728-word reference. It still missed terms such as diaphysis, medullary, sesamoid, and trabeculae.
It struggled on the crosstalk file: 35.89% WER, with 2,183 deletions against a 7,579-word reference.
Poorly. The benchmark recorded 41.72% WER and only 3.8% recall on Spanish token types, so it handled the Spanish portion very weakly in this setup.
The benchmark used the V2 Standard tier at $0.016/min, or $0.96 per audio-hour. The vendor also lists a 60-minute free tier and a cheaper Dynamic Batch option at $0.004/min, but those were not the figures used for the published run.
No. This was a batch benchmark, so streaming latency was not measured.

Banner Preview

How the embed badge will look on your site

Google Cloud featured on AI Demos

Embed HTML

Copy this code to your website source

<a target="_blank" href="https://aidemos.com/tools/google-cloud-stt-v2?utm_source=google-cloud-stt-v2_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="Google Cloud | 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 Google Cloud 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 transcription, batch audio transcription, or captioning workflow 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