Bicara atau ketik ke Bapak Wahyu (68 th, sesak napas). Nyalakan kamera di panel kanan — ekspresi wajah, kontak mata, postur, dan gestur tangan Anda dibaca sungguhan di browser dan ikut memengaruhi balasan pasien. Tekan Akhiri & lihat bukti untuk melihat 12 parameter non-verbal sesi Anda terhadap rujukan ilmiahnya.
Tahap komunikasi
Mesin balasan pasien
Default: key Gemini milik proyek lewat fungsi server (/api/chat) — tidak pernah
dikirim ke browser. Tanpa GEMINI_API_KEY di Vercel, mode ini jatuh ke skrip aturan.
Percakapan
0 giliranKamera Anda
di perangkat, tidak dikirimTerbaca dari kamera
Aktifkan kamera untuk melihat pembacaan Anda di sini.
Bacaan bersifat perkiraan dan dihitung di perangkat Anda sendiri — video tidak pernah dikirim. Deskriptif, bukan instruksi: sistem tidak menyuruh Anda "lihat kamera".
Terukur dari suara
saat mic aktifStandar ISO 9921 / ASHA (60–70 dB) memakai dB SPL; browser hanya bisa mengukur level relatif. Selisihnya bergantung mikrofon & jarak — tidak bisa dihitung, hanya bisa diukur. Cukup sekali per perangkat.
Dasar objektif penilaian non-verbal (#9 & #10), lengkap dengan rujukan ilmiahnya.
Di aplikasi lengkap, semua ini masuk ke prompt pasien AI per giliran secara real-time, direkap menjadi 12 parameter terukur (AI Evidence Panel), dan menjadi bukti penilaian 8 dimensi / 32 aspek di akhir sesi.
face-api.js membaca seluruh distribusi (netral, senang, sedih, marah, takut, jijik, terkejut) dengan intensitas tipis/jelas/kuat. Dua kelas yang berdekatan dilaporkan sebagai campuran bernama — mis. sedih+takut → "cemas/khawatir".
Nyata di demo iniProksi arah-hadap kepala dari landmark wajah: apakah Anda menatap atau sering mengalihkan pandangan. Panel bukti menyatakan terus terang: ini head-yaw, bukan eye tracker.
Nyata di demo iniMoveNet mendeteksi condong depan/belakang, tangan menyilang, bahu menegang — plus indeks gerak pergelangan tangan ternormalisasi lebar bahu (acuan 0,15–0,60).
Nyata di demo iniDari mikrofon saat Anda bicara: dBFS (atau dB SPL setelah kalibrasi), simpangan F0 dalam semitone via autokorelasi, kata/menit, jeda ≥300 ms, dan berapa lama Anda menunggu setelah pasien selesai bicara.
Nyata di demo iniApa yang sedang dibaca kamera ditampilkan saat itu juga — deskriptif ("kontak mata terjaga"), bukan instruksi ("lihat kamera"), supaya Anda tidak berlatih untuk sensor.
Nyata di demo ini12 parameter (6 visual untuk indikator #9, 6 vokal untuk #10), tiap baris: angka terukur, rentang rujukan, sitasi, vonis sesuai / perlu perhatian / belum terekam. Rumus & ambang identik dengan evidence.py.
Begitu ekspresi Anda terbaca stabil (2+ bacaan), avatar bereaksi — Anda terlihat marah → pasien tegang/menghindar, bukan ikut marah. Berkedip dengan fase kelopak tertutup, mulut membentuk viseme saat bicara.
Nyata di demo iniBacaan sesaat cuma mewarnai nada balasan. Kalau sinyal negatif yang sama berulang 2+ giliran, pasien wajib menyinggungnya.
Nyata di demo iniPra-interaksi → orientasi → kerja → terminasi sebagai jalur vertikal di bawah pasien, dilacak dari tag [FASE:x]. Melompat tahapan direspons dengan bingung, bukan dijawab seolah akrab.
Balasan memicu gestur tubuh nyata pada avatar 3D — anggukan, menghela napas, meringis, tangan di dada — dari tabel animasi yang sama dengan gestures.ts.
Seluruh 32 aspek instrumen (8 dimensi) dinilai AI; #2 dan #9 disandarkan pada angka Evidence Panel. Hasil langsung tampil ke mahasiswa; Edukator mengaudit setelahnya, bukan menahan.
Butuh backend — tidak ada di demoLaporan per sesi (skor, umpan balik, 32 aspek, Evidence Panel, transkrip) dan Laporan Akhir Program 9 sesi: radar 8 dimensi, tren, progres 32 indikator awal vs akhir.
Butuh backend — tidak ada di demoDemo ini statis (Vercel tidak menjalankan backend Python), jadi sebagian komponen diganti tiruan browser-native. Berikut peta jujurnya.
| Bagian | Status di demo ini |
|---|---|
| Tata letak ruang simulasi | Nyata — pasien kiri, percakapan tengah, kamera & bacaan diri di kanan; di HP kamera jadi PiP pojok kanan atas dengan tab Percakapan / Kamera & Bacaan — sama dengan app/sesi/[sessionId]/page.tsx |
| Avatar 3D | Nyata — model asli pak-slamet-riyadi.glb, three.js; kedipan 180 ms dengan fase tertutup dan viseme mulut (VISEME_STRENGTH 0,88) di-porting dari Avatar3DScene.tsx. Urutan viseme-nya disederhanakan: Web Speech API tidak memberi lini masa fonem seperti Piper, jadi bentuk mulut diganti berirama saat bicara |
| Gestur/bahasa tubuh pasien | Nyata — tabel 17 gestur & distribusi ke tulang Head/Neck/Chest/Hips di-porting langsung dari components/gestures.ts & Avatar3DScene.tsx |
| Ekspresi wajah (7 kelas, intensitas, campuran) & kontak mata | Nyata — face-api.js; ambang SECONDARY_MIN/GAP, label campuran, dan GAZE_YAW_THRESHOLD sama dengan lib/facialExpression.ts |
| Postur & gestur tangan | Nyata — MoveNet; heuristik postur dan indeks pergelangan tangan (HAND_ACTIVITY_FULL_SCALE 1,5) sama dengan lib/posture.ts |
| Metrik suara (dBFS, F0 semitone, jeda, laju, latensi) | Nyata — dihitung dari analyser mikrofon dengan rumus yang sama dengan lib/useVoiceSession.ts; kata/menit memakai transkrip Web Speech, bukan Whisper |
| AI Evidence Panel (12 parameter, rujukan, vonis) | Nyata — port langsung backend/app/services/evaluation/evidence.py: ambang, sitasi, dan aturan "volume tanpa kalibrasi tidak divonis" |
| Kalibrasi mikrofon dBFS → dB SPL | Nyata — rekam 6 detik + bacaan SPL meter, offset = SPL − dBFS, tersimpan di browser (aplikasi asli menyimpannya di profil pengguna) |
| Pola non-verbal berulang → pasien bertanya | Nyata — logika escalation yang sama dengan backend/app/api/v1/ws_stream.py |
| Fase percakapan & reaksi saat dilompati | Nyata — parser [FASE:x] & aturan satu-arahnya di-porting dari phase.py/prompt_builder.py |
| Isyarat tubuh dalam kurung → gestur avatar | Nyata — lexicon & extractor teks yang SAMA PERSIS dengan backend/app/services/avatar/gesture.py |
| Avatar mencerminkan ekspresi wajah Anda | Nyata — EXPRESSION_REACTIONS/nextExpressionReaction dari lib/facialExpression.ts |
| Balasan pasien | Nyata (default) — Gemini gemini-flash-latest (default backend yang sama) lewat fungsi server api/chat.js; bisa dialihkan ke key Anda sendiri, atau ke skrip aturan (disederhanakan) |
| Ucapan → teks & teks → ucapan | Disederhanakan — Web Speech API, bukan Whisper + Piper dengan prosodi yang dihaluskan (length/noise scale, jeda antar kalimat, warp pitch) seperti aplikasi asli |
| Nada suara (emosi vokal) | Disederhanakan — didekati dari volume, bukan model speech-emotion self-hosted (yang di aplikasi asli pun opsional) |
| Guardrail etik & audit semantik | Tidak ada — server-side only di aplikasi asli |
| Skoring 8 dimensi / 32 aspek, audit Edukator, laporan .docx | Tidak ada — butuh backend + database; Evidence Panel di atas adalah bagian yang bisa dihitung murni di browser, dan itulah yang ditampilkan |
Baris di bawah menggambarkan aplikasi penuh — bukan demo statis ini.
utterance_meta