Bangun dengan CometAPIButuh satu API untuk banyak model?Uji alur kerja di Playground, lalu buat API key saat model dan biayanya sesuai dengan use case Anda.
Grok Voice 3.0 adalah model ucapan-ke-ucapan waktu nyata milik xAI, dirilis pada 14 Oktober 2026. Nama model API-nya adalah grok-voice-3.0; per 3 November 2026, grok-voice-latest merujuk ke versi ini. Pengumuman peluncuran mencantumkan sesi suara seharga $0.08 per menit ($4.80 per jam). Model ini menggabungkan percakapan, penanganan interupsi, dan penggunaan alat untuk asisten suara dan dukungan pelanggan. Dengan Python dasar, kunci API xAI, dan pustaka websockets, Anda dapat mengirim prompt dan menyimpan jawaban bersuara. Mulailah dengan contoh di bawah, lalu tambahkan audio rekaman, streaming mikrofon langsung, dan alat bisnis seiring pertumbuhan aplikasi Anda.
Ditinjau untuk kejelasan, atribusi sumber, dan terminologi API terkini.
Poin Utama
Grok Voice 3.0 bertukar ucapan dan teks secara waktu nyata. Aplikasi Anda mengirim dan menerima event sesi melalui WebSocket sepanjang percakapan.
Uji pertama Anda bisa satu giliran teks-ke-audio. Balasan yang dapat diputar menegaskan bahwa autentikasi dan generasi audio berfungsi sebelum Anda menambahkan mikrofon.
Input audio memerlukan format yang cocok dan batas giliran yang jelas. Aplikasi Anda dapat mengirim audio PCM rekaman dengan penyelesaian giliran manual atau streaming audio mikrofon dengan deteksi suara sisi server.
Aplikasi Anda mengendalikan aksi bisnis. Ia memvalidasi argumen fungsi dan izin pengguna, mengeksekusi aksi yang disetujui, dan mengembalikan hasilnya agar agen suara dapat melanjutkan.
Klien browser dan seluler menggunakan kredensial berumur pendek. Server Anda menyimpan kunci API permanen dan menerbitkan token sementara untuk koneksi klien.
Apa itu Grok Voice 3.0?
Grok Voice 3.0 adalah model percakapan suara waktu nyata yang dikembangkan oleh xAI, beroperasi di bawah branding SpaceX Super Intelligence. Model ini menerima input ucapan atau teks dan dapat mengembalikan audio dan teks dalam sesi yang sedang berlangsung. Model ini dioptimalkan untuk kasus penggunaan agen suara, bukan sebagai pengganti langsung (drop-in) untuk model Grok umum yang hanya teks.
Asisten suara tradisional sering merangkai pengenalan ucapan, model bahasa, dan sintesis ucapan. Grok Voice justru mengekspos sesi ucapan-ke-ucapan dengan perilaku percakapan terintegrasi dan dukungan alat. Arsitektur tersebut dapat menyederhanakan lapisan orkestrasi pengembang, meski aplikasi tetap membutuhkan perekaman audio, transport, otorisasi, integrasi bisnis, dan pemantauan.
Definisi model Grok Voice 3.0 mengidentifikasi teks dan audio sebagai modalitas input dan output. Untuk tutorial ini, titik cek awal yang berguna adalah balasan yang dapat diputar dari skrip Python sisi server.
Fitur dan Kapabilitas Utama Grok Voice 3.0
Melakukan percakapan langsung: bertukar ucapan dan teks melalui WebSocket sepanjang sesi.
Menangani interupsi: gunakan deteksi suara sisi server dan hentikan pemutaran yang mengantre saat penelepon mulai berbicara.
Menggunakan alat bisnis: hubungkan fungsi Anda sendiri untuk tugas seperti pelacakan pesanan dan penjadwalan.
Ini adalah hasil benchmark yang dipublikasikan, bukan jaminan untuk penerapan Anda. Ujilah aksen Anda sendiri, kondisi kebisingan, alat, dan jalur eskalasi sebelum menggunakan agen dengan pelanggan.
Apa yang Anda Perlukan Sebelum Memanggil API Grok Voice 3.0?
Buat atau masuk ke akun di xAI Console, buat kunci API, dan pastikan akun Anda memiliki akses serta kredit penggunaan yang tersedia. Gunakan terminal lokal atau server tepercaya untuk contoh Python.
Python 3.11 atau lebih baru dan pip tersedia di lingkungan yang sama.
Kunci API xAI yang valid disimpan sebagai XAI_API_KEY.
Koneksi jaringan yang mengizinkan koneksi WebSocket aman keluar.
Pemutar media untuk membuka file WAV yang dihasilkan.
Buat kunci di xAI Console. Simpan di variabel lingkungan, bukan ditulis langsung di aplikasi.
Setel kunci API untuk terminal Bash saat ini.
export XAI_API_KEY="your_xai_api_key"
Di Windows PowerShell:
Setel kunci API untuk sesi PowerShell saat ini.
$env:XAI_API_KEY="your_xai_api_key"
Instal klien WebSocket di lingkungan Python Anda.
python -m pip install "websockets>=14,<18"
Jalankan perintah berikutnya di sesi terminal yang sama. Jika Anda menggunakan virtual environment, aktifkan sebelum memasang paket.
Cara Menggunakan API Grok Voice 3.0 dengan Python
Realtime API native menggunakan koneksi WebSocket. Berbeda dari chat completion teks biasa, API ini bertukar event sesi yang sedang berlangsung dan melakukan streaming potongan audio selama percakapan berlangsung.
Langkah 1: Pilih model tetap dan konfigurasikan sesi
API menerima nama model ber-versi di URL WebSocket. Contoh menggunakan grok-voice-3.0 agar versi yang diminta eksplisit. Event session.update mengatur voice, format audio, dan penanganan giliran manual; tunggu session.updated sebelum mengirim prompt.
Langkah 2: Kirim teks dan kumpulkan respons bersuara
Simpan skrip berikut sebagai grok_voice_demo.py. Skrip ini mengirim satu prompt teks, mengumpulkan potongan audio terenkode base64, dan menulis file WAV mono, 24 kHz, PCM 16-bit. Skrip juga berhenti jika terjadi error API, penyelesaian yang tidak berhasil, atau respons tidak menghasilkan audio.
Buat satu balasan bersuara dari prompt teks dan simpan sebagai file WAV.
Setelah respons berhasil, terminal mencetak Saved grok_response.wav. Buka file tersebut di pemutar media dan pastikan Anda mendengar balasan lengkap dengan kecepatan normal. File yang hilang atau tidak dapat diputar adalah alasan untuk memeriksa event yang dikembalikan dan konfigurasi audio sebelum menambahkan lebih banyak fitur.
Referensi event realtime menjelaskan pengakuan sesi dan siklus hidup respons yang digunakan di sini. Skrip menunggu seluruh giliran sebelum menulis file; aplikasi suara interaktif sebaiknya memutar potongan audio saat mereka tiba.
Bagaimana Cara Mengirim Audio ke Grok Voice 3.0?
Audio rekaman dengan penyelesaian giliran manual
Contoh ini menggunakan file WAV mono, 24 kHz, PCM 16-bit. Grok Voice 3.0 juga mendukung laju sampel PCM lain, μ-law, A-law, dan Opus. Format aktual harus cocok dengan konfigurasi session.update. Ganti hanya blok conversation.item.create pada skrip sebelumnya dengan cuplikan di bawah. Pertahankan pemanggilan response.create berikutnya dan loop penerimaan yang ada.
Ganti blok pesan-teks dengan unggahan audio rekaman di dalam main().
with wave.open("request.wav", "rb") as source:
if (
source.getnchannels() != 1
or source.getsampwidth() != 2
or source.getframerate() != SAMPLE_RATE
or source.getcomptype() != "NONE"
):
raise ValueError("Use mono, 24 kHz, 16-bit PCM WAV audio.")
pcm = source.readframes(source.getnframes())
if len(pcm) < SAMPLE_RATE * 2 // 10:
raise ValueError("Use a spoken recording longer than 100 ms.")
for offset in range(0, len(pcm), 4800):
await ws.send(json.dumps({
"type": "input_audio_buffer.append",
"audio": base64.b64encode(pcm[offset:offset + 4800]).decode("ascii"),
}))
await ws.send(json.dumps({"type": "input_audio_buffer.commit"}))
while (await receive_event(ws)).get("type") != "input_audio_buffer.committed":
pass
Indentasi pengganti ini pada level yang sama dengan blok pesan-teks asli, di dalam konteks WebSocket. Ini mengirim sampel PCM mentah dari file WAV, bukan header kontainer WAV. Skrip pertama secara eksplisit memilih penanganan giliran manual, jadi melakukan commit buffer dan kemudian meminta respons adalah tindakan terpisah.
Penangkapan mikrofon langsung dan pemutaran segera
Untuk percakapan interaktif, tangkap audio secara kontinu, konversikan ke format input yang dikonfigurasi, dan kirim potongan pendek sementara loop penerima terpisah menangani respons. Pilih server_vad untuk deteksi giliran otomatis alih-alih mode manual yang digunakan pada contoh file rekaman. Hindari menambahkan response.create kedua saat server sudah membuat balasan.
Saat terjadi interupsi, segera hentikan pemutaran audio asisten yang mengantre. Pembatalan melalui jaringan saja tidak menghapus suara yang sudah di-buffer oleh aplikasi Anda. Jaga antrean pemutaran tetap kecil dan lacak seberapa banyak audio yang benar-benar didengar pendengar agar aplikasi Anda dapat menjaga konsistensi status percakapan.
Bagaimana Menambahkan Alat ke Agen Grok Voice 3.0?
Aplikasi dapat mengekspos alat seperti pelacakan pesanan, penjadwalan, atau verifikasi akun. Agen dapat menafsirkan permintaan lisan yang kompleks, memanggil fungsi yang diotorisasi, dan menggunakan hasilnya untuk melanjutkan. Ini sangat berguna ketika pelanggan meminta beberapa perubahan terkait dalam satu panggilan.
API mendukung fungsi kustom dan alat yang dikelola server. Untuk fungsi kustom, aplikasi Anda mengimplementasikan aksinya; mendefinisikan alat tidak otomatis menghubungkan model ke basis data Anda.
Deklarasikan nama fungsi, deskripsi, dan skema argumen JSON di session.tools.
Tangani response.function_call_arguments.done, parsing argumen, dan validasi izin pemanggil sebelum mengeksekusi fungsi.
Kembalikan hasil sebagai event conversation.item.create dengan item.type disetel ke function_call_output dan call_id yang sesuai.
Kirim response.create setelah hasil fungsi yang diperlukan telah dikirimkan. Jika beberapa panggilan datang bersamaan, kembalikan semua hasilnya sebelum meminta model untuk melanjutkan.
Mulailah dengan alat hanya-baca, seperti memeriksa status pengiriman pesanan. Untuk aksi yang mengubah pemesanan, mengeluarkan pengembalian dana, atau melakukan pemesanan, terapkan pemeriksaan identitas, konfirmasi, dan perlindungan permintaan duplikat di aplikasi.
Cara Menggunakan Grok Voice 3.0 di Aplikasi Browser dan Seluler
Gunakan kredensial sementara untuk koneksi sisi klien. Server Anda meminta token berumur pendek dengan kunci API permanennya dan meneruskan token tersebut ke klien. Autentikasikan permintaan ke endpoint token milik Anda dan terapkan batas penggunaan agar tidak menjadi gerbang tanpa batas.
Tampilkan persetujuan mikrofon, kontrol perekaman, dan status koneksi secara jelas di antarmuka. Tangani putusnya koneksi secara eksplisit: hentikan pemutaran yang basi, beri tahu pengguna bahwa koneksi sedang dipulihkan, dan hindari memutar ulang aksi yang mungkin sudah selesai.
Cara Mengatasi Error Umum API Grok Voice 3.0
Kegagalan autentikasi: pastikan XAI_API_KEY disetel di terminal yang menjalankan skrip dan bahwa kunci tersebut milik akun yang memiliki akses. Jangan tempel kunci ke log atau pesan dukungan.
Argumen pustaka klien tak terduga: verifikasi bahwa pip memasang versi websockets yang diminta ke lingkungan Python yang digunakan untuk menjalankan skrip.
Tidak ada output audio: periksa event error dan response.done, pastikan session.updated mengakui konfigurasi, dan cek bahwa respons diminta untuk giliran manual.
Pemutaran terdistorsi: bandingkan byte aktual dengan codec, laju sampel, jumlah kanal, dan header WAV yang dikonfigurasi. Mengganti nama file MP3 menjadi WAV tidak melakukan konversi.
Timeout: periksa akses jaringan dan status layanan, lalu periksa event terakhir yang berhasil. Coba ulang koneksi yang gagal secara terpisah dari aksi bisnis apa pun yang mungkin sudah dijalankan.
Berapa Anggaran yang Harus Disiapkan untuk Panggilan API Grok Voice 3.0?
Penggunaan suara dan integrasi kustom dapat menghasilkan biaya terpisah. Untuk tutorial ini, tarif yang relevan adalah sesi realtime dan input teks; layanan transkripsi dan generasi suara mandiri adalah layanan terpisah.
Sesi ucapan-ke-ucapan: $0.08 per menit, setara dengan $4.80 per jam.
Input teks selama sesi suara: $0.004 per input teks.
Tarif diperiksa pada 29 Oktober 2026. Lihat halaman harga resmi untuk biaya terbaru.
Sebagai contoh, 500 menit sesi yang ditagih setara dengan $40 biaya suara dasar. Perkiraan tersebut tidak termasuk input teks, alat opsional, teleponi, dan infrastruktur Anda sendiri. Mulailah dengan sesi uji singkat dan tutup koneksi menganggur saat percakapan berakhir.
Kesimpulan
Mulailah dengan satu giliran API Grok Voice 3.0 yang lengkap: sambungkan, konfigurasikan sesi, kirim prompt, terima audio, dan putar hasilnya. Setelah jalur tersebut berfungsi, tambahkan ucapan rekaman, lalu bangun perekaman mikrofon dan streaming pemutaran di sekelilingnya. Perkenalkan alat bisnis hanya setelah jalur percakapan dan penanganan error stabil.