🌐 LocalPolyglot

The World's First Fully Offline Multi-Language → Cantonese Real-Time Interpretation Engine

Engineered by Blue Morpho Limited


🦋 About Blue Morpho Limited

Blue Morpho Limited is a frontier-edge AI engineering company specializing in deploying production-grade neural inference systems on consumer mobile hardware. We believe the future of AI is local, private, and instant — no cloud, no latency, no compromise.

Our engineering philosophy:

Principle Implementation
🔒 Absolute Privacy Zero network permissions. Your voice never leaves the device.
Real-Time Performance Sub-2-second end-to-end latency on mobile hardware.
🧠 Production-Grade AI Fine-tuned + quantized models, not toy demos.
📱 Consumer-First Design Runs on a single smartphone — no server, no GPU cloud.
🌐 Universal Accessibility 90+ source languages → native Cantonese colloquial output.

📱 The Product: LocalPolyglot APK

LocalPolyglot is a single-installation Android application that transforms any smartphone into a real-time multilingual interpreter — specifically optimized for translating foreign languages into authentic, colloquial Cantonese speech.

How It Works — Fully Automatic

The app automatically detects the language being spoken in the surrounding environment. No manual language selection is needed. The user simply turns on the app, and it:

  🎤 Microphone continuously captures ambient speech (ALL languages)
       ↓  (Whisper auto-detects which language is being spoken)
  🔇 VAD filters silence, detects end of speech
       ↓
  📝 ASR (Whisper-v3-Turbo) auto-detects language + transcribes speech to text
       ↓  (No user action needed — language is detected automatically)
  🔄 NLLB-200 LoRA translates detected language into Cantonese colloquial text
       ↓  (Translation is always to Cantonese yue_Hant)
  🔊 CosyVoice TTS synthesizes natural Cantonese speech (speed auto-matched to speaker)
       ↓  (Adaptive Speed: fast speaker → fast Cantonese, slow speaker → normal)
  🎧 Audio routed exclusively to wired/bluetooth headphones
       ↓  (Speaker is permanently locked — audio only goes to headphones)
  🔄 Microphone NEVER stops — continues listening while Cantonese plays

Key Differentiators

Feature Cloud-Based Apps LocalPolyglot
Network Required Always Never (after first launch)
Privacy Voice sent to servers 100% on-device
Latency 3-10 seconds < 2 seconds
Language Detection Manual selection Fully automatic (90+ languages)
Cantonese Quality Written Chinese output Authentic colloquial
TTS Speed Control Fixed speed 0.5x – 2.0x adjustable + adaptive
Speaker Output Default speaker Headphone-only (speaker locked)
Simultaneous Listen+Speak Sequential Full-duplex (mic never stops)
Adaptive Speed Matching Fixed speed Auto-matches speaker pace
Cost Monthly subscription One-time install, zero recurring cost

📱 Minimum Phone Requirements

Before downloading, please check if your phone meets the minimum specifications below. LocalPolyglot runs on-device AI inference — it requires a powerful phone, not a cloud server.

Minimum Requirements (Will Run)

Component Minimum Why
OS Android 13 (API 33) or newer Requires foreground microphone service + modern audio APIs
CPU Architecture ARM64 (arm64-v8a) ONNX Runtime native libs are 64-bit only. 32-bit phones will NOT work.
RAM 8 GB Models need ~4 GB at runtime. With < 8 GB RAM, the OS may kill the app (OOM).
Free Storage 10 GB 6 GB for model download + 4 GB overhead for app + cache.
SoC Snapdragon 7 Gen 1 or equivalent Real-time inference requires a mid-to-high-tier mobile SoC.
Headphones Wired, Bluetooth, or USB required The app does NOT output audio through the phone speaker. Headphones are mandatory.
Internet Required on first launch only For downloading ~6 GB of AI models from HuggingFace. After that, offline forever.

Recommended Requirements (Best Experience)

Component Recommended Why
OS Android 14 (API 34) Latest foreground service + audio routing improvements.
RAM 12 – 16 GB Prevents OOM kills during long background sessions; allows larger model cache.
Free Storage 15 GB Extra space for model updates + app cache.
SoC Snapdragon 8+ Gen 1 or newer Sub-2-second latency. Snapdragon 8 series recommended for real-time ASR + Translation + TTS.
Storage Type UFS 3.1 or newer Faster model loading (models are 6 GB; UFS 2.x will load slowly).
Headphones Wired or high-quality Bluetooth (aptX/LDAC) Lowest audio latency for Cantonese playback.
Battery 4000 mAh or larger Continuous mic capture + AI inference drains battery. Larger battery recommended for all-day use.

Target Device (Development Reference)

LocalPolyglot was developed and tested on the following device:

Spec Value
Device iQOO Neo7 Racing Edition
SoC Qualcomm Snapdragon 8+ Gen1
CPU Kryo (1×3.2GHz + 3×2.75GHz + 4×2.0GHz)
GPU Adreno 730
RAM 16 GB LPDDR5
Storage 256 GB UFS 3.1
Architecture ARM64 (arm64-v8a)
OS Android 13+ (OriginOS)
Compiler Flags -O3 -ffast-math -funroll-loops -march=armv8.2a+dotprod

Phones That Will NOT Work

Phone Type Reason
32-bit phones (armeabi-v7a only) ONNX Runtime native libraries are 64-bit only.
Android 12 or below Missing FOREGROUND_SERVICE_MICROPHONE type + modern audio routing APIs.
Phones with < 8 GB RAM Insufficient memory for 3 concurrent AI models (~4 GB runtime).
iPhones / iPads LocalPolyglot is Android-only. iOS does not support ONNX Runtime native inference.
Phones without headphone jack or Bluetooth No way to output Cantonese audio (speaker is permanently locked).

Compatible Phone Examples

Phone RAM SoC Compatible?
iQOO Neo7 Racing Edition 16 GB Snapdragon 8+ Gen1 Optimal
Samsung Galaxy S23 8/12 GB Snapdragon 8 Gen 2 Excellent
Samsung Galaxy S22 8 GB Snapdragon 8 Gen 1 Good
OnePlus 11 16 GB Snapdragon 8 Gen 2 Excellent
Google Pixel 7 Pro 12 GB Tensor G2 Good
Xiaomi 13 Pro 12 GB Snapdragon 8 Gen 2 Excellent
Samsung Galaxy A54 8 GB Exynos 1380 Minimum (may be slow)
Older phones (< 8 GB RAM) < 8 GB Various Not compatible

📥 Download & Installation Guide

Before downloading, please verify your phone meets the Minimum Phone Requirements above.

Step 1: Download the APK

File: LocalPolyglot-v1.0.0.apk
Size: ~19MB
URL: https://huggingface.co/bluemorpholimited/localpolyglot-edge-models/blob/main/LocalPolyglot-v1.0.0.apk

Note: The APK is small (19MB) because it does NOT include the AI models. Models are downloaded automatically on first launch (6GB).

Step 2: Enable Unknown Sources

Settings → Apps & Notifications → Special Access → Install Unknown Apps
→ Select your browser → Allow from this source
``

### Step 3: Install the APK

Method A: Direct install on phone

  1. Open the downloaded APK file on your phone
  2. Tap Install when prompted
  3. Tap Open after installation completes

Method B: Install via ADB (from PC)

adb install LocalPolyglot-v1.0.0.apk ``

Step 4: Grant Permissions

Permission Why It's Needed
Record Audio Microphone for capturing speech
Notifications Foreground service notification
Bluetooth Connect Connect to Bluetooth headphones

Step 5: First Launch — Model Download

1. Open LocalPolyglot app
2. Tap the Start Interpretation button
3. App shows Downloading models... status
4. Models download automatically (~6GB, requires WiFi)
   - Whisper ASR: ~3.5GB
   - NLLB Translation: ~2.7GB
   - CosyVoice TTS: ~150MB
5. Download progress shown on screen (file by file)
6. After download: app works 100% OFFLINE forever
``

> Important: First launch requires internet connection for model download. After that, NO internet is ever needed again.

### Step 6: Connect Headphones
  1. Connect wired, Bluetooth, or USB headphones to your phone
  2. The app automatically detects headphone connection
  3. Cantonese audio will ONLY play through headphones
  4. The phone speaker is PERMANENTLY LOCKED
  5. If no headphones connected, no audio will play (privacy protection) ``

📖 User Manual

Basic Operation

Step Action What Happens
1 Open LocalPolyglot app App starts in standby mode
2 Tap Start button App begins listening to surrounding speech
3 Speak any language near the phone App auto-detects language and transcribes
4 Wait ~1-2 seconds Cantonese translation appears on screen
5 Cantonese speech plays through headphones Audio output at adaptive speed
6 Tap Stop button App stops listening and exits

Understanding the Screen

UI Element Meaning
Red button (Stop) Stop interpretation
Green button (Start) Start interpretation
Speed slider Adjust TTS speed (0.5x – 2.0x), also used as baseline for adaptive speed
Source text Shows what the speaker said (in original language)
Cantonese text Shows the Cantonese translation
Latency display Shows milliseconds from speech to Cantonese output
Status indicator Shows current state: listening → translating → synthesizing → ready

Status Indicators

Status Meaning
Standby App is idle, not listening
Listening Microphone is active, detecting speech
Translating ASR + Translation in progress
Synthesizing TTS generating Cantonese speech
Running Pipeline active, ready for next utterance
Downloading First launch: downloading models

TTS Speed Control

Speaker Speed Adaptive Behavior TTS Output
Fast speaker (5+ words/sec) Speed multiplier ~2.0x Fast Cantonese
Normal speaker (2.5 words/sec) Speed multiplier ~1.0x Normal Cantonese
Slow speaker (1.25 words/sec) Speed multiplier ~0.5x Slow Cantonese

Battery Optimization Setup

1. Tap Battery Optimization / Auto-Start Settings button in the app
2. Disable battery optimization for LocalPolyglot
3. Enable auto-start permission (iQOO/Vivo specific)
4. Lock the app in recent apps (swipe down on app card → lock icon)
``


---

## 🏗️ Technical Architecture

### Full-Duplex Multi-Threaded Pipeline with Adaptive Speed Matching

LocalPolyglot uses a **two-thread architecture** that enables true simultaneous listening and speaking. The microphone **never stops recording** while Cantonese TTS audio plays through headphones.

<div align="center">

```mermaid
graph LR
    subgraph Thread 1: Continuous Capture
    A[🎤 Microphone<br/>16kHz PCM] --> B[🔇 Silero VAD<br/>32ms frames]
    B -->|Speech end + duration| Q[📦 Utterance Queue<br/>Max 5 pending]
    end

    subgraph Thread 2: Inference Worker
    Q --> C[📝 Whisper-v3-Turbo<br/>Auto-detect language + transcribe]
    C --> S[🧮 Adaptive Speed<br/>words/sec → multiplier]
    S --> D[🔄 NLLB-200 LoRA<br/>→ Cantonese colloquial]
    D --> E[🔊 CosyVoice TTS<br/>ONNX VITS + Speed]
    E --> F[🎧 AudioTrack<br/>Headphone forced]
    end

    style A fill:#0ea5e9,color:#fff
    style B fill:#64748b,color:#fff
    style Q fill:#f59e0b,color:#fff
    style C fill:#9333ea,color:#fff
    style S fill:#ec4899,color:#fff
    style D fill:#3b82f6,color:#fff
    style E fill:#eab308,color:#fff
    style F fill:#22c55e,color:#fff

Automatic Language Detection

The app uses Whisper-v3-Turbo which has built-in automatic language detection. No manual language selection is needed:

Step What Happens
1. Audio captured Microphone records speech in any language
2. Whisper encoder Computes mel-spectrogram from audio
3. Language detection Whisper decoder auto-detects the spoken language (90+ languages)
4. Transcription Speech is transcribed to text in the detected language
5. Language code The detected language code is passed to NLLB
6. Translation NLLB translates from detected language → Cantonese (yue_Hant)
7. TTS output CosyVoice synthesizes Cantonese speech from translated text

🧠 Model Modules

1. ASR — asr_whisper_q4km/

Technical Details (click to expand)
Spec Value
Base Model openai/whisper-large-v3-turbo
Parameters 809M
Quantization INT8 Dynamic
Language Detection Automatic, 90+ languages
Quantized Size 3486.5MB
Estimated Latency 300-800ms

2. Translation — nllb200_lora_cantonese_colloquial/

Technical Details (click to expand)
Spec Value
Base Model facebook/nllb-200-distilled-600M
Fine-tuning LoRA r=16, alpha=32
Target Language yue_Hant (Cantonese)
Quantization INT8 Dynamic
Quantized Size 2713.9MB

3. TTS — tts_cosyvoice_cantonese_onnx/

Technical Details (click to expand)
Spec Value
Base Model Sherpa-ONNX CosyVoice Cantonese
Adaptive Speed Auto-matches speaker pace
Quantized Size 0.0MB

Performance Benchmarks

Pipeline Stage Estimated Time Technology
Audio Capture < 100ms OpenSL ES
VAD Detection 32-64ms Silero VAD ONNX
ASR Recognition 300-800ms Whisper-v3-Turbo ONNX INT8
Translation 200-450ms NLLB-200 LoRA ONNX INT8
TTS Synthesis 100-300ms CosyVoice ONNX INT8
Audio Output < 50ms AudioTrack
Total 700-1750ms Target: < 2000ms

APK Specification

Property Value
Package Name com.localpolyglot
APK Size ~19MB
Model Download ~6GB on first launch, then offline forever
Architecture arm64-v8a only
Min SDK 33 (Android 13)
Architecture Full-Duplex + Adaptive Speed
Recurring Cost Zero

Feature Matrix

# Feature Description
1 Continuous Ambient Listening Microphone never stops
2 90+ Language Auto-Detection Whisper auto-detects language
3 Cantonese Colloquial Translation Authentic spoken Cantonese
4 Full-Duplex Pipeline Mic keeps recording while TTS plays
5 Adaptive Speed Matching TTS auto-matches speaker pace
6 Headphone-Only Output Speaker permanently locked
7 Absolute Privacy Zero network after model download
8 Boot Auto-Start Auto-starts on device power-on
9 First-Launch Model Download APK is small; models download from HuggingFace

Why LocalPolyglot Over Cloud Translation Apps?

Concern Google Translate ChatGPT Voice LocalPolyglot
Requires Internet Yes Yes No (after first launch)
Voice Privacy Sent to Google Sent to OpenAI On-device only
Language Detection Manual selection Manual selection Automatic (90+ languages)
Latency 3-10s 5-15s < 2s
Recurring Cost Free/Paid $20/mo Zero
Full-Duplex No No Yes (mic never stops)
Adaptive Speed No No Yes (auto-matches pace)

Ideal Use Cases

Scenario How LocalPolyglot Helps
Tourist in Hong Kong Speak any language, hear Cantonese through earphones
Medical Professional Communicate with Cantonese-speaking patients offline
Shopping & Negotiation Real-time price discussions without internet
Taxi & Transport Tell the driver where to go in Cantonese
Restaurant Ordering Ask about ingredients in authentic Cantonese
Business Meetings Discreet real-time interpretation through earphones
Remote Areas Full offline operation in tunnels, mountains, airplanes

Disclaimer & Limitation of Liability

IMPORTANT — PLEASE READ CAREFULLY

By downloading, installing, or using the LocalPolyglot application (the Software), you acknowledge and agree to the following terms. If you do not agree with these terms, do not install or use the Software.

1. Nature of the Software

LocalPolyglot is an AI-assisted real-time interpretation tool that utilizes machine learning models for automatic speech recognition, translation, and text-to-speech synthesis. The Software processes audio input and generates translated output automatically without human review or verification.

2. No Guarantee of Accuracy

  • The translation output generated by the Software is produced by automated neural network models and may contain errors, inaccuracies, omissions, or mistranslations.
  • The Software does not guarantee that any translation will be accurate, complete, reliable, or suitable for any particular purpose.
  • Speech recognition, language detection, translation, and synthesis are inherently probabilistic processes and may produce incorrect results, especially with:
    • Heavy accents, dialects, or non-standard pronunciation
    • Background noise, overlapping speech, or poor audio quality
    • Rare or low-resource languages
    • Idiomatic expressions, slang, or culturally specific references
    • Technical, legal, medical, or other specialized terminology
    • Very short or very long utterances

3. Not a Substitute for Professional Interpretation

  • The Software is not a certified or professional interpretation service.
  • The Software must not be relied upon as the sole or primary means of communication in situations where accuracy is critical, including but not limited to:
    • Medical or healthcare settings (diagnosis, treatment, medication instructions, informed consent)
    • Legal proceedings (court hearings, contracts, legal advice, police interactions)
    • Financial transactions (investment decisions, banking, contract negotiations)
    • Emergency situations (calling emergency services, reporting crimes)
    • Safety-critical environments (aviation, maritime, construction, manufacturing)
  • Users should always verify important translations with a qualified human interpreter or native speaker.

4. Limitation of Liability

To the maximum extent permitted by applicable law:

  • Blue Morpho Limited (the Company), its directors, officers, employees, contractors, affiliates, and licensors shall not be liable for any:

    • Direct, indirect, incidental, special, consequential, or punitive damages
    • Loss of profits, revenue, business opportunities, or anticipated savings
    • Financial loss of any kind, including but not limited to losses arising from:
      • Misunderstandings caused by translation errors
      • Miscommunication during business, medical, legal, or financial interactions
      • Incorrect information relied upon by the user or any third party
      • Failure of the Software to function correctly, including crashes, freezes, or delayed output
      • Loss of data, model files, or device storage related to the Software
    • Personal injury or property damage arising from the use or inability to use the Software
    • Any claim by a third party arising from the user reliance on the Software output
  • The total aggregate liability of the Company for any and all claims arising from the Software shall not exceed the amount paid by the user for the Software, which is zero (USD $0.00) given that the Software is provided free of charge.

5. No Warranty

  • The Software is provided AS IS and AS AVAILABLE without warranties of any kind, whether express, implied, or statutory.
  • The Company disclaims all warranties, including but not limited to:
    • Merchantability or fitness for a particular purpose
    • Accuracy, reliability, or completeness of translations
    • Non-infringement of third-party rights
    • Uninterrupted or error-free operation
    • Compatibility with any specific device or Android version beyond stated requirements

6. User Responsibility

  • The user assumes full and exclusive responsibility for any decision, action, or inaction taken based on the Software output.
  • The user is solely responsible for verifying the accuracy of any translation before relying on it.
  • The user must not use the Software in situations where translation errors could result in harm, loss, or legal liability.

7. Third-Party Components

  • The Software incorporates third-party open-source models and libraries (Whisper, NLLB-200, CosyVoice, ONNX Runtime, Silero VAD).
  • The Company is not responsible for the accuracy, behavior, or limitations of these third-party components.
  • Third-party model licenses apply separately to the model weights and are included in this repository.

8. Indemnification

  • The user agrees to indemnify and hold harmless Blue Morpho Limited from any claims, damages, losses, or expenses (including legal fees) arising from:
    • The user use or misuse of the Software
    • The user reliance on translation output
    • The user violation of these terms

9. Acceptance of Terms

  • By installing and using the Software, the user acknowledges that they have read, understood, and agree to be bound by this disclaimer.
  • If the user does not agree, they must uninstall the Software immediately and cease all use.

This disclaimer is provided for informational purposes and does not constitute legal advice. The Company reserves the right to update this disclaimer at any time without prior notice.


License & Attribution

Component License Source
LocalPolyglot App Code Apache 2.0 Blue Morpho Limited
Whisper-v3-Turbo MIT OpenAI
NLLB-200 MIT Meta AI / Facebook
CosyVoice TTS Apache 2.0 k2-fsa / Sherpa-ONNX
Silero VAD MIT Silero
ONNX Runtime MIT Microsoft

Blue Morpho Limited

Frontier-Edge AI — Local · Private · Instant

LocalPolyglot is a sophisticatedly engineered product by Blue Morpho Limited.

The microphone never stops. The translation never sleeps. The speed always matches. The privacy never compromises.

Last updated: 2026-09-16 22:58 UTC

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support