Bütün layihələr

AI tədqiqatı2026

LangVis

Hər cümləni düzəldən və öyrənəni A2-dən B2-yə aparan real vaxt səsli dil tutoru.

Kurs
24 bölmə · A2→B2
İzlənən bacarıqlar
~40
Tədris metodları
18
Səs
16 kHz giriş · 24 kHz çıxış

01Ümumi baxış

LangVis masaüstü danışıq kursudur. Öyrənən danışır; tutor dinləyir, cümləni düzəldir, təkrar etməyi xahiş edir və fikri daha güclü ifadə etməyin yolunu təklif edir. Səhvləri yadda saxlayır və təkrarlananları qısa məşqlərə çevirir.

O, bilərəkdən köməkçi deyil: bir işi var - öyrənənin daha yaxşı danışmasını təmin etmək - və arxitekturanın hər hissəsi bu dövrə xidmət edir.

02Problem

Danışıq praktikası ani, gecikməsiz söhbət tələb edir, yaxşı düzəliş isə hər cümlənin diqqətli analizini. Hər ikisini bir model çağırışında etmək ya söhbəti yavaşladır, ya da rəyi səthi edir.

03Arxitektura

İki model yolu yan-yana işləyir: canlı audio sessiyası söhbəti axıcı saxlayır, kiçik və sürətli model isə arxa planda hər cümləni analiz edir və növbəti promptu formalaşdıran öyrənən modelini yeniləyir.

İnterfeys

Proqram

Mərhələlər, bölmələr, qaydalar

Kouçinq

Düzəlişlər, məsləhətlər, təkmilləşdirmələr

Lüğət

Səviyyədən bir addım yuxarı sözlər

Tutorun üzü

Səs səviyyəsinə görə real vaxtda çəkilir

Canlı sessiya

Audio giriş/çıxış

Mikrofon və dinamik axınları

Gemini Live

İkitərəfli real vaxt səs

Yenidən qoşulma

Sessiyanın bərpası

Tutor domeni

Dil tutoru

müşahidə → ölçmə → öyrətmə

Analiz

Hər cümlə üçün, əsas axından kənarda

Kurikulum

Bacarıqlar, bölmələr, metodlar

İrəliləyiş

Səviyyə, bacarıqlar, lüğət

Nüvə

Plagin yükləyicisi

Alətlər, müşahidəçilər, prompt blokları

Oyandırma sözü

İstəyə bağlı, tam oflayn

Öz jurnalı

Öz çıxışı və xətaları

Lokal saxlama

level.json

Həqiqət mənbəyi

progress.md

Oxunaqlı, yenidən yaradılır

memory/

Parametrlər və API açarı

04Komponentlər

Canlı sessiya

Gözləmədən söhbət

  • 16 kHz mikrofon səsini Gemini Live API-yə göndərir və 24 kHz cavabları səsləndirir.
  • Serverin GoAway mesajlarını və parametr dəyişikliklərini söhbət kontekstini saxlaya və ya ata bilən idarə olunan yenidən qoşulma ilə emal edir.

google-genai · sounddevice · asyncio TaskGroup

Cümlə analizi

Hər ifadəni ölçür

  • Yüngül model hər cümlə üçün strukturlaşdırılmış JSON qaytarır: səhvlər, düzgün forma, bacarıq etiketləri, CEFR sübutları.
  • Arxa planda işləyir, ona görə canlı model onu heç vaxt gözləmir.
  • Lokal söz səviyyəli yoxlamalar ucuz suallara (bu söz işlənibmi?) model çağırışı olmadan cavab verir.

gemini-flash-lite · tolerant JSON parsing

Kurikulum və irəliləyiş

Növbəti nəyi öyrətmək

  • Hədəf formaları, nümunə cümlələri və adlandırılmış tədris metodları olan 6 mərhələ × 4 bölmə.
  • Hər birinin mənimsəmə dərəcəsi, real səhvləri və təkrar tarixi olan ~40 qrammatik bacarıq.
  • Ən zəif üç bacarıq fokus olur və növbəti sessiyanın promptuna əlavə edilir.

Plagin sistemi

Nüvəyə toxunmadan genişlənir

  • plugins/ qovluğunda PLUGIN lüğəti və run() funksiyası olan istənilən fayl tutorun çağıra biləcəyi alətə çevrilir.
  • İstəyə bağlı hook-lar plaginə hər cümləni müşahidə etməyə, daimi prompt təlimatları əlavə etməyə və ya interfeysdə görünməyə imkan verir.

05Necə işləyir

  1. 1

    Danış

    Səs canlı modelə axır; tutor əvvəlcə düzəliş edir, sonra davam edir.

  2. 2

    Analiz et

    Transkript səhvləri və bacarıqları etiketləyən arxa plan analizatoruna gedir.

  3. 3

    Yenilə

    Səviyyə, bacarıq mənimsəməsi və lüğət level.json-a yazılır; progress.md yenidən yaradılır.

  4. 4

    Uyğunlaş

    Eyni səhv üç dəfə təkrarlananda məşq başlayır; ən zəif bacarıqlar növbəti promptu formalaşdırır.

  5. 5

    İrəlilə

    Hədəf formalar möhkəmləndikdə növbəti bölmə sessiyanı yenidən başlatmadan açılır.

06Texniki təhlil

İki model, iki sürət

Canlı model gecikmə üçün, analiz modeli isə struktur və xərc üçün optimallaşdırılıb. Onları ayırmaq söhbəti təbii saxlayır, hər cümlə isə yenə də tam qrammatik yoxlamadan keçir.

Nəticələr format_for_prompt() plagin hook-u vasitəsilə geri qayıdır, beləliklə tutor növbəti cavabında nəyə fokuslanacağını bilir.

İdarə olunan yenidən qoşulmalar

Uzun səs sessiyaları bitir, cihazlar dəyişir və dil sessiyanın ortasında dəyişdirilə bilər. Proqram çökmək əvəzinə sessiyanın TaskGroup-u daxilində yenidən qoşulma siqnalı qaldırır. keep_context bayrağı sessiya bərpa açarının qalıb-qalmayacağına qərar verir - audio cihaz dəyişəndə qalır, yeni dil seçiləndə atılır.

main.py (simplified)python
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")

Plagin müqaviləsi

Plaginlər başlanğıcda aşkar edilir. Eyni interfeys dil tutorunun özünü də işlədir - bu, nüvəni kiçik saxlayır və yeni dil əlavə etməyi kod deyil, data dəyişikliyinə çevirir.

plugins/_template.py (condensed)python
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 select

07Dizayn qərarları

Səviyyə təxmin edilmir, ölçülür

CEFR səviyyəsi yerləşdirmə testi deyil, öyrənənin son cümlələri üzərində hesablanan sürüşkən baldır.

Lokal-first məxfilik

API açarı, parametrlər və bütün irəliləyiş faylları kompüterdə qalır və git-dən kənarda saxlanılır; səs yalnız sessiya zamanı modelə göndərilir.

Hazır şəkil yoxdur

Tutorun üzü, ikonlar və irəliləyiş zolaqları real vaxtda çəkilir, ona görə interfeys istənilən ekran miqyasında kəskin qalır.

Dillər data kimi

Yeni dil əlavə etmək onun bacarıqlarını və mərhələlərini kurikuluma yazmaq və söz səviyyəli detektor əlavə etmək deməkdir - interfeys artıq hazırdır.

08Texnologiyalar

AI
Gemini Live APIGemini Flash / Flash-LiteopenWakeWord (optional)
Tətbiq
PythonPyQt6asynciosounddeviceNumPy
Saxlama
JSON (level.json)Markdown (progress.md)

09Növbəti addımlar

  • Slovak dili kursu (kurikulum və detektor artıq planlaşdırılıb).
  • Audio axınından tələffüzün qiymətləndirilməsi.

Növbəti case study

DevCode Academy LMS

Proqramlaşdırma məktəbləri üçün rollara əsaslanan təhsil idarəetmə sistemi.