ThunderPhone is a self-serve platform for building AI phone agents. From 2¢/min with models included. Our Storm tier, with its extra-intelligence option, scores 99.4% on Big Bench Audio — eval set public on Hugging Face. Build agents, test them with AI-caller simulations, monitor and steer live calls, and get auto-detected issues with proposed fixes. 47 languages.
Hi Product Hunt! Alex here, founder of ThunderPhone.
We spent the last year automating phone calls for enterprise customers and kept seeing the same failure: AI agents that mishear callers — names, addresses, spellings — until the caller gives up. So we built a different stack: a web of models where multiple transcription models and LLMs work each conversation turn together, instead of the usual three-step pipeline.
Last week we opened it to everyone: from 2¢/min with models included, an agent on a real phone number in minutes, AI-caller simulations to test it before it talks to a human, live call monitoring, and automatic issue detection on production calls. Our Storm tier (with the extra-intelligence option) scores 99.4% on Big Bench Audio — the eval set and transcripts are public on Hugging Face so you can check our work.
Try the live demo on our homepage without signing up. I'll be here all day — questions, feedback, and "it broke when I…" reports all welcome.
Report
@kolchinski How is the latency holding up with multiple models running consensus on every turn?
@vikramp7470 Pretty well - we aim for sub 2s for Bolt and Storm with acknowledgements, sub 3s for Spark and Storm without acknowledgements. Those numbers are waveform-to-waveform measured from actual telephone audio. We see other providers report latency like 500ms and then we measure their latency from call audio and typically see 2-3s typically as well!
The multi-model approach also has the advantage that we have built-in "latency failover", so if one model is taking too long for transcription, an LLM turn, etc, another model will "step in" and its response will be used instead, so ThunderPhone is typically able to maintain excellent latency even when individual providers degrade.
We actually find that on most phone calls, anything under 3s end-to-end doesn't hurt hangup rates, and we also find that there's limited, if any, experience benefit of having end-to-end latency of under 2s. So generally we prioritize quality/accuracy and cost, and then strive to keep latency in this range.
Report
@kolchinski The mishearing problem is so real with voice agents. Really like the idea of multiple transcription models working together instead of trusting a single pipeline. Curious - when the models disagree on something like a name or address, how do you decide which transcription to trust?
@saksham_shukla3 The LLM(s) make the call, generally it'll use a combination of context, "majority vote" and direct audio context to disambiguate.
Report
@kolchinski Ah, got it. Using the original audio as another signal when the transcripts disagree makes a lot of sense. Thanks for explaining, Alex and congrats on the launch!
Report
Congratulations on the launch @kolchinski ! Is observability built into the system?
@seomaxtech Yes - observability with metrics, alerts, live call monitoring, automatic issue ID, and the system even proposes fixes to voice agents to solve issues that it identifies. It works surprisingly well. Think of it as the voice agent version of recursive self-improvement (although for now the human has to approve the automatic tweaks to the agents)
Congrats on the launch! Neat that I was able to sign up and try it out without having to put a credit card in. Do you share which models you use, or it a custom model?
Thanks @abi_raja! We're using a constantly-updating list of off the shelf models, both commercial and open source. Commercial models from the usual suspects (OpenAI, Google, Anthropic). A conversation turn might be handled by different models depending on the complexity of the interaction, the tier being used (Spark/Bolt/Storm), and any availability/latency issues with providers. We run extensive internal evals before updating the model stack to make sure we're always improving performance and not degrading agents that were already working! The one place we won't swap out models is TTS, since that's user-facing, but we are periodically adding TTS voices. We curate TTS providers/models/voices to minimize hallucinations and provide great quality/cost ratio.
@alex_gruebele Yes, 47 right now, and voice agents can switch between multiple languages mid-call (with native accent the whole time) if you configure it to do so.
Mezli
@kolchinski How is the latency holding up with multiple models running consensus on every turn?
Mezli
@vikramp7470 Pretty well - we aim for sub 2s for Bolt and Storm with acknowledgements, sub 3s for Spark and Storm without acknowledgements. Those numbers are waveform-to-waveform measured from actual telephone audio. We see other providers report latency like 500ms and then we measure their latency from call audio and typically see 2-3s typically as well!
The multi-model approach also has the advantage that we have built-in "latency failover", so if one model is taking too long for transcription, an LLM turn, etc, another model will "step in" and its response will be used instead, so ThunderPhone is typically able to maintain excellent latency even when individual providers degrade.
We actually find that on most phone calls, anything under 3s end-to-end doesn't hurt hangup rates, and we also find that there's limited, if any, experience benefit of having end-to-end latency of under 2s. So generally we prioritize quality/accuracy and cost, and then strive to keep latency in this range.
@kolchinski The mishearing problem is so real with voice agents. Really like the idea of multiple transcription models working together instead of trusting a single pipeline. Curious - when the models disagree on something like a name or address, how do you decide which transcription to trust?
Mezli
@saksham_shukla3 The LLM(s) make the call, generally it'll use a combination of context, "majority vote" and direct audio context to disambiguate.
@kolchinski Ah, got it. Using the original audio as another signal when the transcripts disagree makes a lot of sense. Thanks for explaining, Alex and congrats on the launch!
Congratulations on the launch @kolchinski ! Is observability built into the system?
Mezli
@seomaxtech Yes - observability with metrics, alerts, live call monitoring, automatic issue ID, and the system even proposes fixes to voice agents to solve issues that it identifies. It works surprisingly well. Think of it as the voice agent version of recursive self-improvement (although for now the human has to approve the automatic tweaks to the agents)
You can see an overview of features here - https://thunderphone.com/platform and in the docs.
And if you have a ThunderPhone account, observability lives here - https://app.thunderphone.com/dashboard/observability
Alex
Pico
Congrats on the launch! Neat that I was able to sign up and try it out without having to put a credit card in. Do you share which models you use, or it a custom model?
Mezli
Thanks @abi_raja! We're using a constantly-updating list of off the shelf models, both commercial and open source. Commercial models from the usual suspects (OpenAI, Google, Anthropic). A conversation turn might be handled by different models depending on the complexity of the interaction, the tier being used (Spark/Bolt/Storm), and any availability/latency issues with providers. We run extensive internal evals before updating the model stack to make sure we're always improving performance and not degrading agents that were already working! The one place we won't swap out models is TTS, since that's user-facing, but we are periodically adding TTS voices. We curate TTS providers/models/voices to minimize hallucinations and provide great quality/cost ratio.
Mezli
Can you handle multiple languages?
Mezli
@alex_gruebele Yes, 47 right now, and voice agents can switch between multiple languages mid-call (with native accent the whole time) if you configure it to do so.