For the past few months, I've been working on a project that translates online meetings in real time.
At first, I thought the problem would mostly be about choosing the right speech recognition model and finding a good translation API. It turned out those were the easy parts.
The real challenge was making everything feel instant.
People don't wait for subtitles. If the translation appears two or three seconds after someone finishes speaking, the conversation has already moved on. Technically it works, but from a user's perspective, it feels broken.
That completely changed how I approached the project.
Instead of optimizing only for accuracy, I had to optimize the entire pipeline for latency:
- Capturing audio continuously
- Streaming audio to ASR
- Performing speech recognition incrementally
- Translating partial sentences
- Updating subtitles without flickering
- Handling corrections when the speech recognizer revised previous words
Every stage might only take a few hundred milliseconds, but together they determine whether the experience feels "real-time."
Another lesson surprised me even more.
Translation quality isn't just about picking a better LLM.
Spoken language is messy. People interrupt each other, change direction halfway through a sentence, use filler words, and rarely speak in complete grammatical sentences.
A model that performs well on benchmarks can still struggle in a live conversation if the input arrives one fragment at a time.
That forced me to rethink prompts, buffering strategies, and when to display or revise translated text.
Building this project also gave me a new appreciation for streaming systems in general.
Real-time applications are fundamentally different from batch processing. Instead of asking, "How accurate is the result?", you're constantly balancing three competing goals:
- Latency
- Stability
- Accuracy
Improving one often makes another worse.
I'm still learning every day, and there are plenty of problems left to solve.
Over the next few weeks, I'd like to share some of the technical challenges I've encountered, including browser audio capture, streaming ASR, translation pipelines, and reducing end-to-end latency.
If you're building real-time AI applications, I'd love to hear what trade-offs you've encountered as well.
Top comments (0)