Beranda / Catatan / AI / Agents
AI / Agents
advanced

Realtime Voice AI Essentials

Overview sistem realtime voice AI — cara kerja streaming speech-to-speech pipeline dan di mana dipakainya

13 Juli 2026
Diperbarui secara berkala

Realtime Voice AI Essentials

> Realtime voice AI memungkinkan user melakukan percakapan lisan yang natural dan low-latency dengan sistem AI — misalnya voice assistant, AI phone agent, atau in-car assistant. Notebook ini membahas bagaimana pipeline semacam ini dibangun, batasan latency yang membentuk hampir semua keputusan desainnya, dan di mana sebenarnya sistem ini dipakai.

Apa itu Realtime Voice AI?

Realtime voice AI adalah kelas sistem yang menjalankan percakapan lisan bolak-balik secara live dengan user — bukan pengalaman "rekam pesan, dapat balasan teks, dibacakan," melainkan audio masuk berkelanjutan, audio keluar berkelanjutan, dengan responsiveness setara telepon.

Responsiveness itulah tantangan engineering utamanya. Percakapan manusia mentolerir sekitar 200–500ms latency respons sebelum mulai terasa tidak natural; sistem yang dibangun dengan merangkai step speech-to-text batch, LLM call, dan text-to-speech batch secara berurutan biasanya jauh melebihi batas itu, karena setiap stage menunggu stage sebelumnya benar-benar selesai.

Dua Arsitektur

1. Arsitektur cascaded (pipeline) Tiga model terpisah yang saling streaming satu sama lain:
Microphone → Speech-to-Text (streaming) → LLM (streaming) → Text-to-Speech (streaming) → Speaker
Setiap stage mulai memproses sebelum stage sebelumnya benar-benar selesai — LLM bisa mulai men-generate respons dari transcript parsial, dan TTS bisa mulai bicara kalimat pertama saat LLM masih men-generate sisanya. Ini arsitektur yang lebih umum dan lebih mudah dikontrol: kita bisa mengganti komponen mana pun, menambahkan moderation di antara stage, dan memakai ulang logic LLM berbasis teks yang sudah ada. 2. Arsitektur speech-to-speech (native) Satu model multimodal menerima audio masuk dan langsung menghasilkan audio keluar, tanpa transcript teks sebagai batas antara di tengahnya.
Microphone → Model Multimodal (audio-in, audio-out) → Speaker
Pendekatan ini bisa mencapai latency lebih rendah dan mempertahankan informasi paralinguistik (nada, emosi, tempo bicara) yang biasanya hilang saat semuanya dipaksa lewat transcript teks. Arsitektur ini masih kurang matang dan lebih sulit di-instrument (tidak ada layer teks yang bersih untuk di-log, dimoderasi, atau di-fine-tune semudah pendekatan cascaded).

Konsep Inti

  • Streaming semuanya — audio masuk, token transcript, token LLM, dan audio keluar semuanya diproses sebagai stream berkelanjutan, bukan request/response yang diskrit
  • Voice Activity Detection (VAD) — mendeteksi kapan user mulai dan berhenti bicara, supaya sistem tahu kapan harus mulai mendengarkan dan kapan mulai merespons
  • Interruption handling (barge-in) — user harus bisa menyela AI di tengah kalimat, artinya sistem harus bisa menghentikan generation dan playback secara langsung, bukan sekadar meng-queue interupsinya
  • Turn-taking — memutuskan apakah sebuah jeda berarti "user sudah selesai bicara" atau "user sedang mikir," yang secara genuine sulit dilakukan dengan benar
  • Transport — audio realtime biasanya berjalan lewat WebRTC (low-latency, dibuat khusus untuk media) alih-alih HTTP biasa, yang memang tidak didesain untuk stream bidirectional berkelanjutan
  • Use Case Umum

  • AI phone agent — customer support, penjadwalan appointment, outbound calling
  • Voice assistant — assistant in-app atau in-device untuk interaksi hands-free
  • Language practice / tutoring — partner percakapan yang butuh bolak-balik yang natural
  • In-car dan accessibility assistant — konteks di mana tangan dan mata tidak bebas untuk menatap layar
  • Meeting/call copilot — transkripsi dan asistensi real-time selama call berlangsung
  • Contoh Praktis: Sesi Cascaded Minimal (Sketsa)

    Ini menggambarkan bentuk sebuah sesi cascaded pipeline, bukan implementasi production:

    async def handle_voice_session(audio_stream):
        async for transcript_chunk in speech_to_text_stream(audio_stream):
            if is_end_of_turn(transcript_chunk):
                full_utterance = transcript_buffer.finalize()
    
                async for text_chunk in llm.stream(full_utterance):
                    # mulai bicara sebelum LLM selesai men-generate
                    async for audio_chunk in text_to_speech_stream(text_chunk):
                        await send_to_speaker(audio_chunk)
    
            elif user_started_speaking_again():
                # barge-in: hentikan playback yang sedang berjalan seketika
                await stop_playback()
                transcript_buffer.reset()
    

    Beberapa provider (misalnya OpenAI Realtime API, ElevenLabs Conversational AI) sekarang mengekspos seluruh loop ini — VAD, streaming STT/LLM/TTS atau native speech-to-speech, dan interruption handling — sebagai satu managed API tunggal, yang biasanya jadi titik awal paling pragmatis dibanding merakit pipeline dari komponen mentah.

    Pertimbangan Desain

  • Latency budget — setiap stage tambahan (moderation, RAG lookup, tool call) memakan budget ~500ms tadi; masing-masing harus cukup cepat untuk muat, atau didesain berjalan concurrent dengan speech generation
  • Cost — model/API audio realtime biasanya di-price jauh di atas penggunaan text-only yang setara
  • Tool use di tengah percakapan — memanggil tool (misalnya "cek status order saya") menambah latency yang akan disadari user; sistem sering memakai filler phrase ("sebentar ya, saya cek dulu...") untuk menjembatani jeda tersebut
  • Fallback behavior — network jitter atau tool call yang lambat butuh graceful degradation, bukan keheningan mati
  • Testing — sistem voice realtime terkenal sulit ditest secara otomatis; latency, interruption handling, dan turn-taking sering butuh listening test manusiawi, bukan sekadar unit test
  • Key Takeaways

  • Latency, bukan raw quality, adalah constraint utama realtime voice AI — semuanya didesain untuk tetap di bawah ~500ms
  • Cascaded (streaming STT → LLM → TTS) adalah arsitektur yang lebih umum dan lebih mudah dikontrol; speech-to-speech native menukar kontrol demi latency lebih rendah dan sinyal paralinguistik yang lebih kaya
  • Interruption handling dan turn-taking sama pentingnya dengan kualitas respons mentah untuk membuat percakapan terasa natural
  • Managed realtime API (OpenAI Realtime, ElevenLabs Conversational AI, dll) biasanya jadi titik awal paling pragmatis dibanding membangun pipeline dari nol
  • Resources

  • Dokumentasi OpenAI Realtime API: https://platform.openai.com/docs/guides/realtime
  • Overview WebRTC: https://webrtc.org
  • Topik

    Realtime Voice AISpeech-to-SpeechWebRTCVoice AgentsStreaming

    Apakah Ini Membantu?

    Jika Anda memiliki pertanyaan atau saran untuk meningkatkan catatan ini, saya ingin mendengar dari Anda.