Live data from Hacker News

Launch HN: Speko (YC S26) – OpenRouter for Voice AI

speko.ai

71–73 of 73 posts

Re: Launch HN: Speko (YC S26) – OpenRouter for Voice AI

#71

Answering your question from the small end: I picked my STT by testing self-correction handling. My tool cleans up spoken drafts, and the failure that mattered wasn't word accuracy, it was "meet Tuesday, no wait, Wednesday": a raw transcript of that is worse than useless, and models differ a lot in how gracefully downstream cleanup can recover. Your spontaneous-speech testing sounds close to this already. Do the boar…

We hit the same problem building a voice-memo-to-notes tool: "meet Tuesday, no wait, Wednesday" is exactly the failure mode. We ended up not trying to fix it at the ASR layer at all. We run faster-whisper (large-v3, local) and let the raw transcript keep the self-correction intact, including the discarded "Tuesday." The summarization pass resolves it, because it has document-level context the transcriber doesn't, and it's cheap to re-run on a short transcript. A technically "wrong" transcript still produces the right structured output most of the time. The failure mode shifts rather than disappears though: on longer memos where corrections stack up, the summarizer occasionally keeps the wrong one, and that's much harder to catch than a raw WER miss because the sentence still reads fine. Do you know of anyone scoring disfluency-recovery as its own metric instead of folding it into WER? Feels like exactly the kind of thing that would need a downstream-task-aware eval rather than a transcript-only one.

Re: Launch HN: Speko (YC S26) – OpenRouter for Voice AI

#72
Two things bit me when I was choosing a voice stack, and I don't see either as an axis in your benchmarks.

First: whether a model is "suitable for realtime" turned out to be a property of the transport, not of the model. I had written one TTS off as too slow based on the vendor's own guidance, then measured it again over a streaming path and got about 0.9s where the non-streaming call had taken 5s. Same model, same provider. If a benchmark is run over one transport, a model can look disqualified when it's actually fine for the way you'd ship it.

Second: non-English breakage doesn't show up in aggregate quality numbers. The speed-optimised tiers - the flash/turbo class - were fine in English and fell apart in Japanese. Not "slightly worse": confidently wrong words that changed what the sentence meant. What made that expensive is that the vendor's own docs said their turbo tier was equivalent to their flash tier. That's true in English and wasn't true in the language I was shipping in, so the documentation actively pointed me the wrong way.

Both of those mean the thing I'd actually pay a routing layer for is per-language and per-transport measurements, rather than one quality/latency/cost point per model. "Best TTS under 300ms" has a different answer in English than in Japanese, and I couldn't get that out of any vendor's published numbers.

So: are your benchmarks per-language, and do you measure over the transport people actually ship on? If yes, that's a bigger deal than the routing itself for anyone shipping outside English.

Re: Launch HN: Speko (YC S26) – OpenRouter for Voice AI

#73
Routing makes even more sense for voice than text, but the constraint space is trickier: latency budget (round-trip vs streaming), WER on accented speech, and TTS naturalness all trade off non-linearly. In our voice pipeline, DeepSeek-V4-Pro plus a small dedicated STT beat an end-to-end frontier voice model on cost-per-minute by ~10x while staying inside a 300ms added-latency budget - purely because we could mix and match components. The hard part is honest benchmarking: WER numbers are only comparable within the same eval set, so a "find the optimal combo" service lives or dies by its methodology. Do you expose per-component benchmarks (STT WER, TTS MOS) separately, or only the combined scores?
Post reply on HN