Lattice
A workspace for your research.
Script and real time translator with AI voice modelling
ProductivityJavaScript · HTMLGitHub @danielken03OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Speak in English (like a housekeeping preshift). The app translates the meaning into the language you pick (Spanish, French, Portuguese, Chinese, Arabic, Hindi, Filipino, Korean, Russian, Ukrainian or Turkish) and plays it through your Bluetooth speaker in your own cloned voice.
Live at: https://translate.kenndoesdev.com
Until your ElevenLabs voice is added, the app plays the Spanish with your phone's built-in Spanish voice (free), so you can start using it right away.
Works in Chrome on Android and Safari on iPhone. You can add it to your home screen like an app.
You can add your voice right in the app: tap ⚙ → Your ElevenLabs voice, paste the Voice ID and API key, tap Save, then Test my voice. They're saved only on that phone. (Or put them in Vercel as below so every phone uses them.)
| Name | Value |
|---|---|
APP_PASSCODE | A passcode you choose (you'll type it once per phone) |
ANTHROPIC_API_KEY | From step 1 |
ELEVENLABS_API_KEY | From step 2 |
ELEVENLABS_VOICE_ID | From step 2 |
Optional: ANTHROPIC_MODEL (default claude-sonnet-5-5), ELEVENLABS_MODEL (default eleven_multilingual_v2; eleven_flash_v2_5 uses about half the credits).
shoe.kenndoesdev.com → Settings → Domains → remove it.translate.kenndoesdev.com.vercel-dns address). In Squarespace → Domains → kenndoesdev.com → DNS:
shoe CNAME record.translate and the value Vercel shows.Edit public/languages.js. Copy an entry and change the name, voice tag and the short guidance line (which dialect, formal or informal "you", etc.). Stick to languages ElevenLabs' multilingual model supports so your cloned voice can speak them.
Your team listens on their own phones with earbuds and hears you in their language a few seconds after each pause.
Notes:
claude-haiku-5-5 and ElevenLabs eleven_flash_v2_5 (about half the credits). Change with ANTHROPIC_LIVE_MODEL / ELEVENLABS_LIVE_MODEL.Live rooms need a small database to pass sentences to listeners.
KV_REST_API_URL / KV_REST_API_TOKEN or UPSTASH_REDIS_REST_URL / UPSTASH_REDIS_REST_TOKEN; either works).lib/glossary.js. Each term has a meaning (used for every language) and optional exact wording per language.buildSystemPrompt() in lib/translate.js.All keys are read in one place, lib/config.js. To let other managers use their own ElevenLabs account, add sign-in and look up that user's saved key and voice ID there. Nothing else needs to change.
npm test