Avatar NavTalk (WebRTC sungguhan)
Siapmemuat daftar avatar…
- ICE state
- —
- Frame
- —
- Latensi balas
- —
- Ongkos sesi
- $0.000
- Byte video masuk
- 0 — tidak ada media
- Frame ter-decode
- 0
- Paket video
- —
- Codec terpakai
- —
- Dekoder
- —
Inilah /video tanpa pura-pura. Wajahnya dirender di GPU NavTalk lalu dikirim ke sini sebagai track WebRTC — video.srcObject tetap persis sama seperti di halaman loopback. Otaknya gpt-realtime-mini dari OpenAI; NavTalk juga menawarkan ElevenLabs, Google Gemini, dan Cartesia. Karena pipelinenya audio-ke-audio, tidak ada langkah STT terpisah yang bisa diganti ASR sendiri — suara pengguna mengalir utuh ke NavTalk lalu ke OpenAI. Kalau transkripsi harus tetap di dalam jaringan, jalurnya bukan halaman ini melainkan /suara. Dua angka di atas terukur, bukan dikutip: latensi balasan dan ongkos yang sedang berjalan. Video paket gratis membawa watermark NavTalk.
Transkrip
masukan suara · tanpa kotak teksbelum ada panggilan
Apa yang terjadi antara Anda bicara dan avatar menjawab
Nama pesan dan angka waktu di bawah diambil dari log sesi sungguhan di halaman ini, bukan dari diagram brosur. Perhatikan lencana kanalnya — di situlah letak salah paham yang paling sering terjadi.
- 01
Menukar kunci dengan tiket
Sebelum apa pun terjadi, license harus ditukar jadi token yang aman dipegang browser.
- →
RESTPOST /api/navtalk/connection
Browser meminta izin ke server kita sendiri. Yang dikirim cuma avatarId.
- →
RESTPOST /v1/realtime-chat/connection
Server kita memanggil NavTalk dengan header license. Inilah satu-satunya tempat kunci itu dipakai — ia tidak pernah menyeberang ke browser.
- ←
RESTwsUrl + token
Token berumur ~300 detik dan terikat pada satu avatar serta satu batas durasi.
- →
- 02
Membuka sesi
Satu WebSocket dibuka, dan ia akan mengurus segalanya kecuali suara dan gambar.
- →
WebSocketrealtime.input_config
Prompt dan warna suara dikirim di detik pertama, sebelum apa pun yang lain.
- ←
WebSocketconversation.connected.success±0,8 dtk
Membawa sessionId dan — yang penting — daftar iceServers. Alamat TURN untuk jalur medianya datang dari sini, bukan dari konfigurasi kita.
- ←
WebSocketrealtime.session.created
Kesempatan menyuntikkan riwayat percakapan lama, kalau ada.
- ←
WebSocketrealtime.session.updated±1,5–2,3 dtk
Lampu hijau. Baru setelah ini audio boleh dikirim.
- →
- 03
Membangun jalur gambar
Berjalan paralel dengan fase sebelumnya, lewat WebSocket yang sama — tidak ada koneksi kedua.
- ←
WebSocketwebrtc.signaling.offer
NavTalk yang menawarkan lebih dulu. Kebalikan dari kebiasaan WebRTC, di mana klien yang biasanya mengawali.
- →
WebSocketwebrtc.signaling.answer
Browser membuat RTCPeerConnection dengan iceServers tadi, lalu menjawab.
- ↔
WebSocketwebrtc.signaling.iceCandidate
Kedua sisi bertukar kandidat jalur sampai ketemu yang tembus.
- ←
WebRTContrack × 29–16 dtk sejak diklik
Track video dan audio tiba, lalu dipasang ke elemen <video>. Bingkai pertama muncul di sini.
- ←
- 04
Satu giliran bicara
Bagian ini berulang setiap kali Anda bicara. Inilah yang terasa cepat.
- ·
di browserAudioWorklet
Mikrofon dicuplik 24 kHz mono, diubah ke PCM16, dikodekan base64, dipotong 4.096 karakter.
- →
WebSocketrealtime.input_audio_buffer.append
Potongan audio mengalir terus-menerus selama sesi hidup — bukan sekali kirim per kalimat.
- ←
WebSocket…speech_started
VAD di sisi mereka mendeteksi Anda mulai bicara. Ini juga sinyal untuk menghentikan suara avatar — dari sinilah interupsi terasa alami.
- ←
WebSocket…speech_stoppedtitik nol
Anda berhenti. Jam mulai berdetak dari titik ini.
- ←
WebSocket…input_audio_transcription.completed
Transkrip kalimat Anda. Hanya untuk ditampilkan — modelnya sendiri tidak membutuhkannya.
- ←
WebSocketrealtime.response.audio_transcript.delta155–250 ms
Teks jawaban mulai menetes.
- ←
WebRTCwajah + suara
Bersamaan dengan teks itu, wajah yang bergerak dan suaranya tiba lewat WebRTC — bukan lewat WebSocket.
- ←
WebSocket…audio_transcript.done / audio.done
Jawaban selesai. Kembali menunggu Anda bicara lagi.
- ·
Dua hal yang paling sering keliru
- WebSocket tidak membawa suara balasan. Ia membawa kendali dan teks; wajah dan suaranya datang lewat WebRTC. Karena itu memutus video tidak memutus percakapan, dan sebaliknya.
- Transkrip bukan tahap, melainkan hasil sampingan. Pipeline-nya audio-ke-audio: suara masuk, suara keluar, tanpa singgah jadi teks di tengah. Teks yang Anda lihat dipancarkan khusus untuk layar. Itulah sebabnya jeda balasannya 155–250 ms — dan sebabnya ASR sendiri tidak bisa disisipkan di sini.
Siapa mengerjakan apa
- Browser Anda — menangkap mikrofon, mengodekan PCM16, memutar video. tidak pernah memegang license.
- Server kita — menukar license dengan token berumur pendek. hanya itu — tidak menyentuh audio sama sekali.
- transfer.navtalk.ai — sesi, VAD, orkestrasi, dan render wajah di GPU. seluruh suara Anda melewati sini.
- OpenAI — gpt-realtime-mini — mendengar dan menjawab. suara masuk, suara keluar; tanpa teks di tengah.
- Cloudflare TURN — jalur media saat koneksi langsung tidak tembus. alamatnya diberikan NavTalk, bukan kita.
Perhatikan ketimpangan waktunya: menyambung butuh belasan detik, menjawab butuh seperempat detik. Yang mahal di arsitektur ini adalah memulai, bukan bercakap — dan itu berlaku untuk seluruh kategori penyedia avatar, bukan cuma NavTalk.
Kalau ini dipakai sungguhan — berapa biayanya?
Halaman ini menagih per menit percakapan, jadi biayanya tumbuh mengikuti berapa lama orang berbicara, bukan berapa banyak fitur yang dibangun. Ubah tiga angka di bawah sesuai perkiraan pemakaian Anda.
Menit per bulan
4.500
Sesi bersamaan rata-rata
0.3
Perkiraan puncak
± 1 sesi
| Paket | Tarif | Sesi bersamaan | Perkiraan / bulan |
|---|---|---|---|
| Freekredit $5 sekali di awal | $0.20 / mnt | 1 · cukup | $900 |
| Starterlangganan $49.00, sudah termasuk kredit $49.00 | $0.18 / mnt | 3 · cukup | $810 |
| Growthlangganan $99.00, sudah termasuk kredit $99.00 | $0.16 / mnt | 5 · cukup | $720 |
Pada pemakaian itu, paket termurah yang sanggup menampung puncaknya adalah Growth, sekitar $720 per bulan.
Batas sesi bersamaan itu keras: pengunjung berikutnya ditolak dengan connection_limit_exceeded, seberapa pun besar saldo yang tersisa.
Pilihan self-host
- CommunityGratis— 1 GPU · belum rilis · non-komersial
- Standard$4.995— 4 GPU · ±12 sesi bersamaan
- Professional$9.995— 12 GPU · ±36 sesi bersamaan
Pada volume ini biaya cloud setahun sudah melewati harga lisensi Standard — self-host layak dihitung serius.
Lisensi itu untuk mesin render wajahnya — bukan untuk AI dan suaranya. Otak percakapannya `gpt-realtime-mini` milik OpenAI, dan pilihan lain yang mereka tawarkan (ElevenLabs, Gemini, Cartesia) juga layanan hosted. Tidak satu pun bisa ikut dijalankan di GPU Anda. Jadi setelah membayar lisensi, tagihan per menit ke penyedia AI tetap berjalan, dan suara pengguna tetap keluar dari jaringan Anda — dua hal yang paling sering diasumsikan hilang begitu mendengar kata “self-host”.
Kelas GPU-nya tidak ditulis di halaman harga, tapi lini kios mereka sendiri membocorkannya: FrontDesk Standard memakai RTX 3090 (24 GB) dan FrontDesk Plus RTX 5090 (32 GB) — kartu konsumen kelas atas, bukan datacenter. Dua model kios termurah tidak punya GPU sama sekali, jadi keduanya jelas menyandar ke cloud. Server kita memakai RTX 3060 12 GB, di bawah spesifikasi masuk mereka.
Ada juga model avatar open-source berlisensi MIT (LongCat-Video-Avatar) yang bobotnya gratis — tapi ia menghasilkan video pra-render, bukan percakapan hidup, jadi bukan pengganti halaman ini. Perbandingannya ada di /docs.
Lisensi Standard baru impas setelah sekitar 31.219 menit percakapan (± 520 jam) — dan itu baru menghitung tarif menitnya. Harga GPU, listrik, dan orang yang merawatnya belum masuk.
Yang belum masuk hitungan
- Video paket gratis membawa watermark NavTalk. Apakah paket berbayar menghapusnya belum tertulis di mana pun — tanyakan ke vendor sebelum berkomitmen.
- Biaya server aplikasi ini praktis nol: container-nya ±40 MiB, tanpa database dan tanpa penyimpanan. Yang mahal ada di sisi NavTalk, bukan di sisi kita.
- Pelatihan avatar kustom belum terlihat ditagih terpisah, tetapi juga tidak dijamin gratis di halaman harga mereka.
- Angka puncak di atas memakai ancar-ancar 3× rata-rata. Kalau trafik Anda menumpuk di jam tertentu, angkanya bisa jauh lebih tinggi — ukur, jangan tebak.
- Harga lisensi self-host tertulis tanpa keterangan apakah sekali bayar atau per tahun, dan ketiganya hanya bisa dibeli lewat sales. Perbandingan di kiri menganggapnya harga sekali bayar.
Tarif paket disalin dari halaman harga NavTalk pada 2026-09-07, diperiksa ulang pada 2026-10-07 dan masih sama. Tetap bisa berubah sewaktu-waktu — periksa lagi sebelum dijadikan dasar keputusan. Sebagai pembanding yang benar-benar terukur: seluruh riset, pembangunan, dan pengujian halaman ini menghabiskan sekitar $1 dari saldo percobaan.