Koncept

Digitální společnice pro seniory, která mluví česky a běží celá u nich doma, bez cloudu.

Proč

Seniorů přibývá, pečovatelů ne, a stát chce péči přesouvat do domácností (Národní strategie rozvoje sociálních služeb 2026–2030). Tam ale lidé bývají často sami.

Chci postavit asistenta, který pomůže těm, kdo to mají s technikou nejtěžší. Proto se první verze zaměřuje na seniory.

Cíle

  1. Porozumění záměru, ne příkazům. Lexie nemá pevnou sadu povelů, musí pochopit, co člověk myslí.
  2. Data zůstávají doma. Vše o uživateli se zpracovává a ukládá lokálně, nic neodchází do cloudu.
  3. Internet jen tehdy, když je potřeba. Přístup ven se otevírá jen na nezbytně dlouhou dobu a jen podle pevných pravidel.
  4. Trénink kognitivních schopností. Hry a aktivity pro udržení paměti a pozornosti.
  5. Pomoc, když se něco stane. Upozornění rodině nebo dispečinku.
  6. Bezpečné spojení s fyzickým světem. Lexie není jen chat. Má komunikovat s hardwarem a ovládat domácnost tak, aby byla pro seniora bezpečná.
Princip napříč celým systémem: jazykový model navrhuje, deterministický C++ handler rozhoduje. Model nikdy přímo nespouští akce, neotevírá porty ani nemění stav systému. Vše prochází C++ vrstvou, která záměr ověří a teprve pak provede.

Hlavní problém: porozumění volné řeči

Největší výzvou celého projektu je porozumění volné řeči a nedokonalostem řeči této skupiny lidí. Všechno ostatní (3D svět, hlas, hardware) je řemeslo. Tohle je otevřený problém, na kterém teď pracuji nejvíc.

Senioři nemluví v příkazech. Neřeknou „zapni rádio", řeknou „dneska je mi nějak smutno, pustila bys mi něco?". Mluví pomaleji, hovorově, někdy nezřetelně nebo nářečím. Lexie proto musí:

Přepis řeči

Dva druhy nejistoty

Rozlišuji je, protože člověk na ně má reagovat jinak:

Záměr vs. povídání

Strukturovaný výstup intent modelu jde přes GBNF gramatiku (llama.cpp) — model vrací jen platný JSON, a to pole záměrů s typem COMMAND, CHAT nebo UNCERTAIN. Prompt určuje význam, gramatika tvar. Víc záměrů v jedné větě („rozsviť světla a zavři okna") je pak jen změna jednoho řádku gramatiky — C++ každý záměr validuje zvlášť, provádí zleva doprava a rizikové akce (okna, dveře, topení) potvrzuje.

Když věta spojuje emoci a požadavek („je mi smutno, pusť něco"), Lexie nejdřív reaguje na emoci, pak na akci. Klíčová slova v C++ slouží jen jako rychlá zkratka pro jednoznačné případy, ne jako náhrada porozumění.

Čeština, paměť a latence

Porovnávám, jak si s hovorovou češtinou a skloňováním poradí různé malé modely v kvantizaci (Llama 3.2, Qwen 2.5, Granite), s ohledem na licenci pro komerční použití. Protože načtení modelu z NVMe trvá vteřiny — a to je mezi „hey Lexie" a odpovědí moc — modely drží trvale v paměti. Na 8GB verzi to znamená jeden jazykový model pro záměr i konverzaci: váhy se načtou jednou a nad nimi běží dva kontexty, krátký pro intent s gramatikou a delší pro konverzaci.

Jak to funguje

Celý řetězec běží lokálně, je napsaný v C++ a Qt:

openWakeWord (vlastní model „hey Lexie")
↓
Whisper large-v3-turbo (přepis řeči)
↓
kontrola spolehlivosti přepisu
↓
Llama 3.2 3B Q4_K_M (záměr i konverzace)
↓
C++ handler (ověří a provede)
↓
Piper TTS + RVC (hlas Lexie, ONNX Runtime)
↓
reproduktor

Víc než chat: fyzický svět

Většina digitálních společníků pro seniory umí povídat, připomínat a volat. Lexie má navíc komunikovat s fyzickým světem: ovládat světla, topení, okna, dveře a spotřebiče a hlídat, aby domácnost zůstala bezpečná. Pro seniora je byt místem, kde se nejčastěji něco stane: zapomenutý sporák, otevřené dveře v noci, vychladlý byt.

Tady je princip „model navrhuje, C++ rozhoduje" nejdůležitější:

Paměť Lexie

Lexie si potřebuje pamatovat dvě různé věci: rozhovor (aby věděla, že „a ztlum to" se týká rádia, které pustila před minutou) a člověka (aby ho postupně poznávala — kdo jsou jeho blízcí, co má rád, jaké má zvyky).

„Učit se" tu neznamená dotrénovávat model — fine-tuning na zařízení je nepraktický a hlavně nevratný. Učení je extrakce faktů do databáze a jejich vyvolání ve správnou chvíli: model v noci navrhne z rozhovorů kandidáty na fakta, C++ je zvaliduje a zapíše. Paměť má tři vrstvy: surové přepisy (jen krátce), shrnutí jednotlivých dnů a profil s fakty. Ukládá se jen to, co člověk sám řekl, nikoli domněnky modelu.

Rozhraní

Rozhraní je v QML s C++ backendem, na velké obrazovce (42" a víc) s IR dotykovým rámem. Nemá klasické menu s tlačítky.

Ústřední postavou je Lexie, černá fríská klisna jednorožec, která uživatele provází celým systémem. Žije ve vlastním 3D světě a ten svět je napojený na skutečný: mění se podle počasí, denní doby a ročního období.

Svět zároveň slouží jako stavový automat. Podle místa, kde Lexie ve scéně zrovna je, člověk pozná, jestli odpočívá, přemýšlí, nebo poslouchá, a nemusí přitom nic číst — senioři čtou prostorový kontext instinktivně. Součástí světa jsou i vzpomínky (fotografie, rodina), které se neotevírají z menu, ale objevují se v prostředí samy — navazuje to na principy reminiscenční terapie.

Soukromí a přístup ven

Hardware

Lexie Nexus Standard

  • NVIDIA Jetson Orin Nano 8 GB
  • Obrazovka 42″ a větší s IR dotykovým rámem
  • Mikrofon, reproduktory, upravený router

Lexie Nexus Premium

  • Výkonnější modul s 16 GB paměti
  • Navíc přehrávání filmů
  • Modely i chování stejné jako u Standard

Demo zatím poběží na MacBooku M3 s monitorem a IR dotykovým rámem — nejdřív chci ověřit zájem, než investuju do finálního HW. Do budoucna počítám pro domovy s více pokoji s centrálním serverem (dva Jetson AGX Orin v režimu aktivní/záložní) a tenkými panely na wake word, obraz a zvuk.

Multimédia

Stav a plán

Systém je ve vývoji. Jednotlivé části (wake word, přepis řeči, LLM, hlas) fungují samostatně a teď je skládám dohromady.

Leden 2027

Funkční demo

V Domovech Na Třešňovce.

Březen 2027

Vizuálně dotažený svět Lexie

3D svět a jeho propojení s reálným prostředím.

Potom

První piloty v domácnostech seniorů

Plné ovládání domácnosti a rozšíření pro lidi s postižením přijde později, ne teď — je to součást architektury od začátku, ale do lednového dema se zatím nedostane.

Proč to dělám

Programuji přes 20 let, od assembleru přes C++ po C#. Pracoval jsem se systémy Správy železnic, kde technika řídí celou stanici a nesmí selhat. Tenhle přístup chci dát do něčeho, co má smysl.

Chci, aby senior doma nebyl sám, a aby přitom nikdo cizí neslyšel, co si povídá.