Skip to content

phuc-nt/my-translator-mobile

Repository files navigation

My Translator icon

My Translator — Mobile

Live translation for talks and lectures. Point your phone at the speaker, read the talk in your language, in real time.

A lightweight stand-in for a human cabin (booth) interpreter when there isn't one.


Install

iPhone / iPad — TestFlight

  1. Install TestFlight from the App Store.

  2. Open this link on your device → tap AcceptInstall:

    https://testflight.apple.com/join/Fw9VJXfE

Android — APK

  1. Open the latest release on your phone and download the .apk.
  2. Allow your browser to "install unknown apps" when prompted.
  3. Open the file → Install (tap Install anyway if Play Protect warns).

First-run setup

  1. Open the app — it sends you straight to Settings (no API key saved yet).

  2. Paste one API key:

    Hướng dẫn chi tiết bằng tiếng Việt: docs/api-key-guide-vi.md So sánh chi tiết các engine: docs/engine-comparison-vi.md

  3. Pick your source and target language from the dropdowns (60+ languages on Qwen, auto-detect on Soniox/OpenAI).

  4. Back on the main screen, tap Start, allow the microphone, and listen.

After Stop you can Copy / Share the transcript, or Summarize the session with OpenAI (needs an OpenAI key — works even after a Soniox session). Finished sessions are saved on-device; review them under 🕘 in the header. Each saved session can be searched, Exported as a Markdown file (also kept under Saved files), and is auto-named by OpenAI when a key is set. The screen stays awake while translating, and Settings → Check for updates pulls the latest over-the-air JS bundle.

Your key stays in the device's secure keychain. Audio goes straight to the provider you chose — no backend, no tracking. Session history is stored only on your device and never leaves it. See PRIVACY.md.


Screenshots

Live translation Settings — bring your own key Ready to start

Live translation · Settings (bring your own key) · Ready to start


Engines

Engine Cost First final (≈) Strength Source transcript
Soniox ~$0.12/hr ~3s Cheapest, stable Yes (dual panel)
OpenAI Realtime ~$4/hr ~7s Most natural translation Yes (dual panel)
Qwen Live Flash Free preview ~4s Fastest streaming, 60+ langs No (translation-only)

Soniox + OpenAI auto-detect the spoken language. Qwen Live needs an explicit source language (auto isn't reliable on real mic input). Spoken voice output is disabled (the speaker echoes back into the mic and causes a translation loop) — translations are read on screen only. Full comparison: docs/engine-comparison-vi.md.


For developers

Stack

Expo SDK 54 · React Native 0.81 · TypeScript · Expo Router v4 · NativeWind v4 · react-native-audio-api (mic + PCM playback) · expo-secure-store (keys) · expo-file-system + expo-sharing (Markdown export) · expo-keep-awake · expo-haptics · expo-updates (in-app OTA check). Distribution: EAS Build → TestFlight (iOS) + APK on GitHub Release (Android).

Develop

npm install
npx expo prebuild --clean
npx expo run:ios       # or: npx expo run:android
# iterate after first native build:
npx expo start --dev-client

See docs/react-native-dev-vs-production.md for how the dev client / Metro / production builds differ, and docs/eas-update-guide.md for shipping OTA (over-the-air) JS updates without a rebuild.

Build & ship

npm i -g eas-cli && eas login

# iOS → TestFlight
eas build --profile production --platform ios
eas submit --platform ios --latest

# Android → APK (download artifact, attach to a GitHub Release)
eas build --profile production --platform android

eas.json profiles: development (dev client), preview (internal APK / ad-hoc iOS), production (TestFlight + signed APK).

Layout

app/        Expo Router screens (index = translate, settings, history, exports)
src/
  engines/    soniox-client.ts, openai-realtime-client.ts,
              qwen-realtime-client.ts (qwen3-livetranslate-flash-realtime)
  lib/        audio-capture, audio-output-queue, secure-keys, languages,
              history-store, session-export, haptics, ota-update
  components/ transcript-stream.tsx, session-detail-view, icon-button
  state/      Settings + Session contexts

License

Same as desktop my-translator.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages