TIXO — ambient scenes e music player
App per relax e ambience con scene (sfondi video), player musicale integrato e timer di sessione.
Google PlayRiproduzione mediaTimer sessioneUI/UX
Work Time — tracciamento turni e calcoli
App per la gestione dei turni: calendario, storico, calcolo ore e calcolatori legati alla retribuzione.
KotlinJetpack ComposeMVVMCoroutinesFlow
- Inserimento turni (inizio/fine/pausa) con calcolo automatico delle ore
- Calendario mensile e modifica delle voci
- Calcolatori (netto/lordo), impostazioni, profilo e guida in-app
Nobel Tower — sistema di gestione manutenzione edificio
Ecosistema per richieste e manutenzione pianificata in un edificio per uffici, con workflow trasparente per inquilini, tecnici e admin.
Navigazione QRWorkflow richiesteEvidenze foto/videoProtocolli PDFNotifiche
- Identificazione QR di stanze/attrezzature con storico
- Richieste con stati, evidenze foto/video e firma dell’inquilino
- Protocolli/report PDF e pannello admin
- Manutenzione pianificata: calendario, promemoria, push/e-mail
local-meet-translator
Self-hosted prototype for near real-time translation of web calls (Google Meet / Zoom Web / Teams Web).
Chrome/Edge Extension (MV3)Java 21 Local BridgeOpenAI STT & TTSlocalhost token
The OpenAI key is not stored in the extension: all requests go through a localhost bridge service protected by a token.
Dettagli
Key idea
- The OpenAI API key is stored only locally (.env on the PC).
- The browser extension uses only a local token (X-Auth-Token), not the OpenAI key.
Tech stack
- Extension: JavaScript/HTML/CSS, Chrome Extensions MV3 (tabCapture, getUserMedia, offscreen, content_script).
- Local Bridge: Java 21, HttpServer/HttpClient (JDK), Jackson, Maven (shade-plugin), PowerShell/Batch startup.
Incoming translation (subtitles)
- tabCapture → MediaRecorder chunks (OGG/Opus preferred).
- POST /transcribe-and-translate → OpenAI STT (whisper-1) → translation via /v1/responses (gpt-4o-mini, temperature=0).
- Overlay subtitles on top of the call page (content_script).
Outgoing voice translation (TTS)
- Microphone via getUserMedia → chunks → transcribe/translate.
- POST /tts → OpenAI TTS (/v1/audio/speech, gpt-4o-mini-tts, mp3).
- Play back into a virtual audio cable (e.g., VB-Audio Virtual Cable) so Meet can use it as a microphone.
Safeguards
- VAD / silence threshold (RMS): silent chunks are not sent for ASR.
- Mute mic during TTS: mic chunks are ignored while TTS is playing.
- Text deduplication: similar ASR outputs within a short window are skipped.
Local API (127.0.0.1)
- Requires X-Auth-Token == LOCAL_MEET_TRANSLATOR_TOKEN.
- GET /health, POST /translate-text, POST /transcribe-and-translate, POST /tts (ENABLE_TTS=true).
Configuration (env)
- OPENAI_API_KEY, LOCAL_MEET_TRANSLATOR_PORT (8799), LOCAL_MEET_TRANSLATOR_TOKEN.
- OPENAI_TRANSCRIBE_MODEL (whisper-1), OPENAI_TEXT_MODEL (gpt-4o-mini).
- ENABLE_TTS, OPENAI_TTS_MODEL (gpt-4o-mini-tts).