🌐 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
- Open the downloaded APK file on your phone
- Tap Install when prompted
- 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
- Connect wired, Bluetooth, or USB headphones to your phone
- The app automatically detects headphone connection
- Cantonese audio will ONLY play through headphones
- The phone speaker is PERMANENTLY LOCKED
- 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