Fast or Accurate: Picking Speech-to-Text for a Game You Play by Talking

In mid-2025 I tested speech-to-text models for a voice-driven game. Google fell short on accuracy, Deepgram was the fastest, and Whisper gave by far the best transcripts.

2026-07-30 · AI SYSTEMS

In the summer of 2025 I was designing a game you play by talking. The idea was simple enough: the player says something, the game understands it, a language model decides what happens next, and the game answers back out loud. The tricky part was doing all of that while the player is still in the moment, which in my notes from July turned into four asynchronous pipelines running side by side, with speech-to-text sitting at the very front of the chain. Every turn waits for that first step, so if transcription is slow or wrong, nothing after it can save the experience. That's why, before building the game itself, I sat down and tested the speech-to-text options. ## How I tested I took several of the popular models at the time, including Google Speech-to-Text, Deepgram and OpenAI's Whisper, and ran the same recordings through each of them. For every model I looked at three things: how close the transcript was to what was actually said, how quickly the text came back, and how much it would cost per minute of audio once the game had real players. I also recorded in more than one language, because I didn't want the game to be English-only from day one. At the same time I was working out what the live loop itself would need: the browser's Web Audio API to capture and resample the microphone, raw PCM audio sent over FastAPI WebSockets, Python asyncio to keep everything non-blocking, streaming transcripts coming back as events, and the language model's reply streamed token by token. Seeing how each speech model would fit into that loop mattered as much as the scores themselves. ## What I found Google's transcription accuracy wasn't good enough for what I needed. In a game where one misheard word changes what happens next, that rules a model out pretty quickly. Deepgram was the fastest, and its accuracy was okay. What made it attractive was the streaming design of its SDK: you open a connection, push audio as it arrives, and get transcript events back while the player is still talking, which fits a game loop almost perfectly. Whisper was on another level when it came to quality. It gave the most accurate transcripts for most of the languages I tried, and the output was clean in a way the others weren't. It dealt with the "um"s and "uh"s, put periods and commas where a person would, and in general produced text you could read without fixing anything. It was the best experience of the whole test, and it wasn't close. ## What I took from it The fastest model and the best model weren't the same one, and that shaped the design more than any single number did. For the live loop, where the player is waiting for the game to respond, speed wins, so Deepgram made sense there. For anything someone reads later, like a transcript, a summary of the session or a log, Whisper was the clear choice. And if a design needs both, nothing stops you from streaming with Deepgram during play and running Whisper on the recording afterwards. This was mid-2025 and speech models move fast, so I'd rerun the comparison before building on it today. The main lesson still holds for me, though: pick the model based on who is waiting for the text, the player or the reader.

Back to all writing