Výskum AI2026
LangVis
Hlasový jazykový tútor v reálnom čase, ktorý opraví každú vetu a posunie študenta z A2 na B2.
- Kurz
- 24 lekcií · A2→B2
- Sledované zručnosti
- ~40
- Vyučovacie metódy
- 18
- Zvuk
- 16 kHz vstup · 24 kHz výstup
01Prehľad
LangVis je desktopový kurz rozprávania. Študent hovorí; tútor počúva, opraví vetu, požiada o zopakovanie a ponúkne silnejší spôsob, ako to povedať. Pamätá si chyby a opakované premení na krátke cvičenia.
Zámerne nie je asistentom: má jedinú úlohu - pomôcť študentovi hovoriť lepšie - a každá časť architektúry slúži tomuto cyklu.
02Problém
Nácvik rozprávania potrebuje okamžitú konverzáciu bez oneskorenia, ale dobrá oprava vyžaduje dôkladnú analýzu každej vety. Robiť oboje jedným volaním modelu buď spomalí rozhovor, alebo spraví spätnú väzbu povrchnou.
03Architektúra
Dve cesty modelov bežia vedľa seba: živá zvuková relácia udržiava plynulý rozhovor a malý rýchly model na pozadí analyzuje každú vetu a aktualizuje model študenta, ktorý formuje ďalší prompt.
Rozhranie
Osnova
Etapy, lekcie, pravidlá
Koučing
Opravy, tipy, vylepšenia
Slovník
Slová o úroveň vyššie
Tvár tútora
Kreslená podľa hlasitosti zvuku
Živá relácia
Zvukový vstup/výstup
Prúdy mikrofónu a reproduktora
Gemini Live
Obojsmerný hlas v reálnom čase
Opätovné pripojenie
Obnovenie relácie
Doména tútora
Jazykový tútor
pozorovať → merať → učiť
Analýza
Pre každú vetu, mimo hlavnej cesty
Osnovy
Zručnosti, lekcie, metódy
Pokrok
Úroveň, zručnosti, slovná zásoba
Jadro
Načítanie pluginov
Nástroje, pozorovatelia, bloky promptu
Aktivačné slovo
Voliteľné, úplne offline
Vlastný log
Vlastný výstup a chyby
Lokálne úložisko
level.json
Zdroj pravdy
progress.md
Čitateľný, generovaný znova
memory/
Nastavenia a API kľúč
04Komponenty
Živá relácia
Rozhovor bez čakania
- Posiela 16 kHz zvuk z mikrofónu do Gemini Live API a prehráva 24 kHz odpovede.
- Správy GoAway zo servera a zmeny nastavení rieši riadeným opätovným pripojením, ktoré môže kontext rozhovoru ponechať alebo zahodiť.
google-genai · sounddevice · asyncio TaskGroup
Analýza viet
Meria každý výrok
- Ľahký model vráti pre každú vetu štruktúrovaný JSON: chyby, opravený tvar, značky zručností, dôkazy pre CEFR.
- Beží na pozadí, takže živý model naň nikdy nečaká.
- Lokálne kontroly na úrovni slov odpovedajú na lacné otázky (bolo toto slovo použité?) bez volania modelu.
gemini-flash-lite · tolerant JSON parsing
Osnovy a pokrok
Čo učiť ďalej
- 6 etáp × 4 lekcie s cieľovými tvarmi, vzorovými vetami a pomenovanými vyučovacími metódami.
- ~40 gramatických zručností, každá so zvládnutím, skutočnými chybami a dátumom opakovania.
- Tri najslabšie zručnosti sa stanú zameraním, ktoré sa vloží do promptu ďalšej relácie.
Systém pluginov
Rozšíriteľný bez zásahu do jadra
- Každý súbor v plugins/ so slovníkom PLUGIN a funkciou run() sa stane nástrojom, ktorý môže tútor zavolať.
- Voliteľné hooky umožňujú pluginu sledovať každú vetu, pridať trvalé inštrukcie do promptu alebo sa zobraziť v rozhraní.
05Ako to funguje
- 1
Hovoriť
Zvuk prúdi do živého modelu; tútor najprv opraví a potom pokračuje.
- 2
Analyzovať
Prepis ide do analyzátora na pozadí, ktorý označí chyby a zručnosti.
- 3
Aktualizovať
Úroveň, zvládnutie zručností a slovná zásoba sa zapíšu do level.json; progress.md sa vygeneruje znova.
- 4
Prispôsobiť
Tá istá chyba trikrát spustí cvičenie; najslabšie zručnosti formujú ďalší prompt.
- 5
Postupovať
Keď sú cieľové tvary zvládnuté, ďalšia lekcia začne bez reštartu relácie.
06Technické detaily
Dva modely, dve rýchlosti
Živý model je optimalizovaný na nízke oneskorenie, analytický na štruktúru a náklady. Ich oddelenie udrží rozhovor prirodzený a každá veta pritom prejde úplnou gramatickou kontrolou.
Výsledky sa vracajú cez hook pluginu format_for_prompt(), takže tútor v ďalšej odpovedi vie, na čo sa zamerať.
Riadené opätovné pripojenia
Dlhé hlasové relácie končia, zariadenia sa menia a jazyk sa dá prepnúť uprostred relácie. Namiesto pádu sa v TaskGroup relácie vyvolá signál na opätovné pripojenie. Príznak keep_context rozhodne, či sa zachová kľúč na obnovenie relácie - pri zmene zvukového zariadenia áno, pri novom jazyku nie.
class _ReconnectSignal(Exception):
"""Raised inside the session TaskGroup to force a clean reconnect."""
def request_reconnect(self, keep_context: bool = True, reason: str = ""):
self._reconnect_keep = keep_context # False → drop resumption handle
self._reconnect_reason = reason
self._reconnect_event.set()
# e.g. switching language starts a fresh context,
# changing the microphone keeps the conversation
self.request_reconnect(keep_context=False, reason="new language")
self.request_reconnect(keep_context=True, reason="audio device")Kontrakt pluginu
Pluginy sa objavia pri štarte. To isté rozhranie poháňa aj samotného jazykového tútora, vďaka čomu je jadro malé a pridanie jazyka je zmena dát, nie kódu.
PLUGIN = {
"name": "my_plugin", # unique snake_case tool name
"description": "When the tutor should call this tool.",
"parameters": {"type": "OBJECT", "properties": {...}, "required": []},
}
def run(parameters: dict, player=None, session_memory=None) -> str:
# Return a short sentence - it is spoken back to the learner.
# Never raise: catch errors and return them as text.
...
# Optional hooks
def observe(text, player): ... # see every sentence
def format_for_prompt() -> str: ... # add standing instructions
def set_language(name: str): ... # react to the language select07Návrhové rozhodnutia
Úroveň sa meria, nehádže
Úroveň CEFR je priebežné skóre z posledných viet študenta, nie vstupný test.
Súkromie na prvom mieste
API kľúč, nastavenia a všetky súbory pokroku zostávajú v počítači a sú vylúčené z gitu; zvuk ide k modelu len počas relácie.
Žiadne dodané obrázky
Tvár tútora, ikony a ukazovatele pokroku sa kreslia za behu, takže rozhranie je ostré pri akomkoľvek zväčšení.
Jazyky ako dáta
Pridanie jazyka znamená zapísať jeho zručnosti a etapy do osnov a pridať detektor na úrovni slov - rozhranie ho už podporuje.
08Technológie
- Umelá inteligencia
- Gemini Live APIGemini Flash / Flash-LiteopenWakeWord (optional)
- Aplikácia
- PythonPyQt6asynciosounddeviceNumPy
- Úložisko
- JSON (level.json)Markdown (progress.md)
09Ďalšie kroky
- Kurz slovenčiny (osnovy a detektor sú už naplánované).
- Hodnotenie výslovnosti zo zvukového prúdu.
Ďalšia prípadová štúdia
DevCode Academy LMS
Systém na riadenie výučby s rolami pre programátorské školy.