Inspiration

As a Christian, I often have opportunities to connect with Christians from around the world and to speak with people from different countries and cultures about faith, life, and hope.

Even when a skilled interpreter is present, something can be lost between the speaker and the listener. The meaning may arrive, but the speaker's breath, urgency, tenderness, joy, and conviction do not always reach the listener directly in the same moment. The words are understood, yet the living warmth of the person behind those words can feel one step removed.

I speak Japanese. When I speak with someone who does not understand Japanese, I sometimes feel an invisible distance—not only between our languages, but between our hearts. We may both sincerely want to understand one another, yet the language we use becomes a barrier between us.

This problem is not limited to churches. It exists in conferences, international meetings, education, travel, work, and everyday conversation. There are voices we want to hear and thoughts we want to share, yet we have often been forced to give up those encounters simply because we do not speak the same language.

Human conversation is not merely an exchange of information. Through our words, we communicate intention, emotion, hesitation, hope, passion, conviction, and the heart behind what is being said. That is why translation alone is not enough. What we truly need is a way to carry the speaker's meaning and emotional immediacy across languages without losing the moment in which those words were spoken.

I began imagining a world where anyone could hear another person in their own language while still receiving the passion and heart of the original speaker in real time.

AI should not replace human connection. It should help people move closer to one another.

Live Interpreter was born from that vision: a world where people can share their hearts, receive the hearts of others, and understand every important message accurately—even when no interpreter is present.

One day, language should no longer decide whose voice we can hear or whose heart we can understand.

One conversation beyond every language. Every voice for every person. A future where hearts can meet without borders.

What it does

ShalomWorks Live Interpreter is one interpretation product with two working experiences.

The production web service is the public, no-install surface. Users can choose Audio + captions, Audio only, or Captions only. Two caption languages can run at once, including source-language transcription. A caption in the same language as interpreted audio reuses that translation session. The complete site supports 13 interface languages.

The native macOS app is the advanced control room. It can capture a microphone, a selected application or browser, a screen or window, or a local audio or video file. Per-application audio capture works without a virtual audio cable. Users can route original and interpreted sound independently, balance both outputs, display one or two caption languages in a shareable always-on-top window, and export caption history.

Apple Silicon judge build: Download the ready-to-run Mac app from GitHub Releases. No source build is required. On first launch, Control-click the app and choose Open, enter your own OpenAI API key in Live Interpreter > Settings, and grant Microphone and Screen Recording permissions.

The web service also includes accounts, email verification, credits, subscriptions, Stripe Checkout, refunds, server-side usage settlement, and automatic session safeguards.

How we built it

The Mac client uses Electron with secure preload boundaries and a native Objective-C/Core Audio helper. It keeps a user-provided OpenAI API key encrypted locally and outside renderer pages.

The browser client uses React and the Web Audio API. Authentication, credits, subscriptions, payments, refunds, and settlement run through a PHP API and MySQL on ConoHa WING. A Node.js gateway on a ConoHa VPS creates the required OpenAI Realtime connections and relays PCM audio over short-lived authenticated WebSockets.

The gateway plans the exact session combination. Source captions use one transcription connection. Each distinct translated language uses one translation connection. Interpreted audio and a caption in the same language share a connection. The server returns and enforces the verified LI credit rate, from 1 to 37 credits per second.

How we used GPT-5.6

GPT-5.6 was used through Codex as the engineering intelligence for the Build Week redesign. It helped compare the Mac and web capabilities, remove experiments that did not strengthen the core experience, design multiple simultaneous Realtime sessions, implement dual captions and connection-aware billing, expand the web interface to 13 languages, create automated tests, review security boundaries, and carry the release through production deployment.

GPT-5.6 is not presented as the live interpretation model. OpenAI Realtime provides the low-latency audio and caption streams.

How we used Codex

Codex acted as the primary engineering partner from requirements and architecture through Electron, Objective-C, Core Audio, React, PHP, Node.js, SQL, WebSockets, Stripe, multilingual UI, testing, security review, macOS packaging, GitHub Actions, and production deployment.

My key product decisions were to keep the experience voice-first, make the Mac app useful for real meetings without a virtual audio cable, remove preparation and terminology experiments that distracted from interpretation, and bring the successful Mac audio/caption flexibility to the browser.

Build Week timeline

Live Interpreter was initiated during the Build Week Registration Period. Because the first web experiment was committed before the formal Submission Period, it is treated as the pre-existing baseline. During the formal Submission Period, the project was meaningfully extended and the native Mac app was created.

Key dated commits:

  • July 11 — 71e5167: registration-period web baseline
  • July 15 — 8de52a1: one-minute trial and first-purchase offer
  • July 16 — 6a8feed: native Mac application with app audio capture, routing, and captions
  • July 16 — de397af: Mac-parity web redesign with three modes, dual captions, 13 interface languages, and connection-aware billing

Earlier preparation-brief and terminology commits remain visible in history as experiments. Both were deliberately removed from the final product.

Challenges

The hardest native challenge was capturing a selected Mac application's sound without a virtual audio cable while keeping original and interpreted output independently routable. On the web, the challenge was coordinating up to three simultaneous Realtime connections, reusing translation sessions correctly, and charging only for the connections actually running. Browser security also means the web cannot isolate another application's audio or create a native always-on-top window, so it uses microphone input and two captions inside the page.

Accomplishments

  • One coherent product with an advanced native Mac experience and a public production web experience
  • Per-application Mac audio capture without a virtual audio cable
  • Independent original/interpreted routing and volume balance
  • Audio + captions, Audio only, and Captions only on both surfaces
  • Two simultaneous caption languages and source transcription
  • 13 web interface languages
  • Server-enforced connection-aware billing
  • Accounts, subscriptions, credits, refunds, and automatic safeguards
  • No routine storage of source audio, translated audio, or transcripts
  • 14 web tests, 10 gateway tests, 31 Mac tests, and a three-session live OpenAI integration check

What we learned

Realtime product quality depends on much more than a model call. Audio capture, routing, captions, output volume, authentication, payments, refunds, session limits, billing, packaging, and truthful communication all matter. Removing weak ideas was as important as adding new features.

What's next

I plan to prepare notarized Mac distribution, improve privacy-preserving quality analytics, expand judge-friendly testing, and continue evaluating interpretation quality across language pairs.

Built With

Share this project:

Updates