Inspiration
The most awkward object in a translated conversation is often the translation app.
Two people who want to speak end up operating a phone instead: tap, talk, wait, rotate, pass, repeat. The words survive, but the rhythm disappears. Eye contact gives way to menus. A conversation becomes a transaction with software.
Douglas Adams imagined a better interface in The Hitchhiker’s Guide to the Galaxy: the Babel fish, a tiny yellow creature placed in your ear that simply lets you understand.
It was funny because it was impossible. It was brilliant because it understood the real design problem. There was no screen to study and no translation workflow to manage. The technology got out of the way.
Babelfish began with a question: how close could we get using something millions of people already carry?
One iPhone. One pair of AirPods. Two people who would rather look at each other than at a language picker.
What it does
Imagine arriving at a station in Japan and needing to ask whether this is the train to Hiroshima.
With Babelfish, the traveler speaks through their AirPods. The person beside them replies toward the iPhone. Japanese plays aloud from the phone; English returns privately through the AirPods.
Each person speaks toward the microphone already nearest to them. Each translation travels to the person who needs to hear it.
No phone is passed back and forth. No saved chat accumulates afterward. The screen quietly shows what was heard and translated, but voice remains the experience.
When AirPods are unavailable—or iOS cannot verify the required private route—Babelfish says so plainly and offers a shared-iPhone, push-to-talk mode. It never describes public audio as private simply because that would make the interface easier.
The app offers the 13 target languages documented for OpenAI Realtime Translation, with English and Japanese at the center of our launch experience.
How we built it
We began by thinking Babelfish was a translation problem.
Then we built the first real conversation flow and discovered that translation was only the middle of the story. The harder questions lived at either end:
Who is speaking? Which microphone heard them? Where should the translated voice go? What happens when someone interrupts? What happens when an AirPod disconnects halfway through a sentence?
Babelfish is a native Swift 6 and SwiftUI application. AVFAudio handles capture, route discovery, interruptions, and playback. Underneath the calm interface are two independent translation paths—one for each speaker—with separate turn state, cancellation, reconnection, and audio destinations.
Speech travels through an authenticated Python and FastAPI relay to OpenAI Realtime Translation. Firebase anonymous authentication and App Check protect the connection, while the permanent provider credential stays on the server.
We built the conversation around disposable turns. Every transcript, translation, and piece of audio belongs to a specific turn and generation. If the route changes or a conversation ends, late events are discarded rather than allowed to reappear from the past.
That same principle shaped the rest of the product. Babelfish does not save audio or provide transcript history. Its telemetry records timings and states—not what people said.
Codex with GPT-5.6 Sol became part of the workshop: helping us move from product decisions to Swift implementation, tests, review, and the final film without losing the thread between them.
The difficult part
Two arrows on an architecture diagram make dual-direction audio look tidy.
In a pocket, it is anything but tidy.
Bluetooth routes change. People overlap. Networks hesitate. Translated audio can arrive after the moment has passed. A simulator can prove that a state machine behaves correctly, but it cannot prove that a whisper entered the AirPods microphone or that a private answer came out of the correct speaker.
That boundary changed how we built Babelfish. We stopped treating failure states as edge cases and started treating them as part of the conversation.
If a route disappears, the app stops. If privacy cannot be guaranteed, it says so. If an old response arrives late, it is ignored. If the full experience is unavailable, the fallback has its own honest rules.
The goal was not to make the technology look infallible. It was to make the product trustworthy when the technology inevitably is not.
What we learned
A good translator preserves meaning. A good conversation product must also preserve timing, confidence, privacy, and dignity.
We learned that the smallest details often carry the most weight: a platform number, a price, a place name, or the difference between speech intended for a room and speech intended for one person.
We also learned that privacy can be felt. It is the confidence to ask a clumsy question, misunderstand something, laugh, try again, and know that the exchange will not become a permanent record.
The best moment in Babelfish is not when the model produces a translation. It is the moment after—when both people stop thinking about the app and continue talking.
What we're proud of
Babelfish is no longer a design exercise or a narrated prototype. It is a native iOS product distributed through TestFlight, backed by an authenticated relay and built around the constraints of real conversations.
We created the app, the audio architecture, the translation service, the accessible interface, the privacy model, the fallback experience, and the tests needed to trust them together.
But the part we care about most can be said without mentioning the stack:
Two voices. Two destinations. One conversation.
What's next
The next chapter is not another prototype. It is a public launch.
We want to put Babelfish on the App Store, take it into real journeys, and learn which moments people value enough to pay for: finding the right train, checking into a hotel, explaining an allergy, meeting someone’s family, or simply having the courage to begin a conversation.
Our business model should match the way people travel. That could mean a short trip pass for the occasional traveler, a subscription for people who cross language barriers often, and eventually partnerships with hotels, tour operators, and other businesses that welcome international guests.
We do not want to monetize conversations through advertising or by turning them into data. Babelfish should make money because it is useful at the precise moment someone needs to be understood.
From there, we will certify more language pairs, support more audio hardware, and keep refining the part that matters most: making the technology feel smaller while the human exchange becomes larger.
Douglas Adams put the Babel fish inside the listener’s ear.
We are starting with AirPods.
Built With
- gpt-translate-realtime
- ios26
- swift

Log in or sign up for Devpost to join the conversation.