Gunakan DashScope Java SDK untuk memanggil Qwen-ASR-Realtime.
Panduan pengguna: Untuk ikhtisar model, fitur, dan kode contoh lengkap, lihat Pengenalan ucapan real-time - Qwen.
Prasyarat
-
SDK DashScope versi 2.22.5 atau lebih baru (Instal SDK)
-
Pahami alur interaksi antara klien dan server
Alibaba Cloud Model Studio telah merilis domain khusus ruang kerja untuk wilayah China (Beijing) dan Singapura. Domain khusus baru ini memberikan performa unggul dan stabilitas lebih tinggi untuk permintaan inferensi. Kami menyarankan Anda bermigrasi ke domain baru berikut:
China (Beijing): dari
dashscope.aliyuncs.comke{WorkspaceId}.cn-beijing.maas.aliyuncs.comSingapura: dari
dashscope-intl.aliyuncs.comke{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com
Ganti {WorkspaceId} dengan Workspace ID aktual Anda. Domain lama tetap berfungsi sepenuhnya.
Mode interaksi
Qwen-ASR-Realtime mendukung dua mode untuk menentukan kapan audio diproses:
|
Mode |
|
Cara kerja |
|
Mode VAD (default) |
|
Server mendeteksi batas-batas ucapan menggunakan voice activity detection (VAD) dan menentukan kapan buffer audio dikirim untuk dikenali. |
|
Mode manual |
|
Client mengontrol kapan audio dikirim dengan memanggil |
Untuk detail masing-masing mode, lihat Mode VAD dan Mode manual.
Parameter permintaan
Parameter koneksi (OmniRealtimeParam)
Atur parameter ini dengan metode berantai dari kelas OmniRealtimeParam.
|
Parameter |
Tipe |
Wajib |
Deskripsi |
|
|
|
Ya |
Model yang digunakan. Contoh: |
|
|
|
Ya |
Titik akhir layanan. China (Beijing): |
|
|
|
Tidak |
Kunci API. |
Konfigurasi sesi (OmniRealtimeConfig)
Atur parameter ini dengan metode berantai dari kelas OmniRealtimeConfig.
|
Parameter |
Tipe |
Wajib |
Deskripsi |
|
|
|
Ya |
Modalitas output. Tetap diatur sebagai |
|
|
|
Tidak |
Mengaktifkan VAD sisi server. Jika dinonaktifkan, panggil |
|
|
|
Tidak |
Jenis VAD. Tetap diatur sebagai |
|
|
|
Tidak |
Ambang batas sensitivitas VAD. Nilai yang direkomendasikan: Default: Nilai lebih rendah meningkatkan sensitivitas (dapat terpicu oleh kebisingan latar belakang). Nilai lebih tinggi mengurangi sensitivitas dan membantu menghindari pemicuan salah di lingkungan berisik. |
|
|
|
Tidak |
Durasi diam dalam milidetik yang menandai akhir sebuah ujaran. Nilai yang direkomendasikan: Default: Durasi lebih pendek (misalnya 300 ms) mempercepat respons tetapi dapat memotong jeda alami. Durasi lebih panjang (misalnya 1200 ms) menangani jeda lebih baik tetapi meningkatkan latensi. |
|
|
|
Tidak |
Pengaturan pengenalan ucapan. Lihat Parameter transkripsi. |
Parameter transkripsi (OmniRealtimeTranscriptionParam)
Atur parameter ini dengan metode setter dari kelas OmniRealtimeTranscriptionParam.
|
Parameter |
Tipe |
Wajib |
Deskripsi |
|
|
|
Tidak |
Bahasa sumber audio. Untuk daftar bahasa yang didukung, lihat Bahasa yang didukung. |
|
|
|
Tidak |
Laju pengambilan sampel audio dalam Hz. Nilai valid: Default: Mengatur |
|
|
|
Tidak |
Format encoding audio. Nilai valid: |
|
|
|
Tidak |
Teks konteks untuk contextual biasing. Berikan teks latar belakang, kosakata entitas, atau materi referensi untuk meningkatkan akurasi pengenalan. Maksimum: 10.000 token. |
Antarmuka utama
OmniRealtimeConversation
Impor: com.alibaba.dashscope.audio.omni.OmniRealtimeConversation
Kelas ini mengelola siklus hidup WebSocket: menghubungkan ke server, mengirim audio, dan mengakhiri sesi.
Buat percakapan
OmniRealtimeConversation conversation =
new OmniRealtimeConversation(param, callback);
Membuat instans percakapan baru dengan parameter koneksi dan penanganan callback yang ditentukan.
Hubungkan ke server
conversation.connect();
Membuka koneksi WebSocket. Server merespons dengan event session.created dan session.updated.
Melemparkan: NoApiKeyException, InterruptedException.
Konfigurasi sesi
conversation.updateSession(config);
Memperbarui konfigurasi sesi setelah koneksi terbentuk. Server merespons dengan event session.updated. Jika tidak dipanggil, server menggunakan pengaturan default.
Kirim audio data
conversation.appendAudio(audioBase64);
Menambahkan segmen audio berformat Base64 ke buffer audio sisi server.
-
Mode VAD (
enableTurnDetection=true): Server mendeteksi batas-batas ucapan dan menentukan kapan buffer diproses. -
Mode manual (
enableTurnDetection=false): Audio terakumulasi dalam buffer hingga Anda memanggilcommit()untuk memicu pengenalan. Setiap event dapat berisi maksimal 15 MiB data audio.
Kirim buffer audio
conversation.commit();
Mengirimkan buffer audio yang telah dikumpulkan untuk dikenali. Server merespons dengan event input_audio_buffer.committed.
Metode ini hanya tersedia dalam mode manual (enableTurnDetection=false). Terjadi error jika buffer audio kosong.
Akhiri sesi
conversation.endSession(); // synchronous
// or
conversation.endSessionAsync(); // asynchronous
Memberi tahu server untuk menyelesaikan pemrosesan audio yang tersisa dan mengakhiri sesi. Server merespons dengan event session.finished.
Kapan harus dipanggil:
-
Mode VAD: Setelah selesai mengirim audio.
-
Mode manual: Setelah memanggil
commit().
Tutup koneksi
conversation.close();
Menghentikan tugas dan menutup koneksi WebSocket segera.
Dapatkan ID sesi dan ID respons
String sessionId = conversation.getSessionId();
String responseId = conversation.getResponseId();
-
getSessionId()mengembalikan ID sesi untuk tugas saat ini. -
getResponseId()mengembalikan ID respons dari respons server terbaru.
OmniRealtimeCallback
Impor: com.alibaba.dashscope.audio.omni.OmniRealtimeCallback
Wariskan kelas ini dan implementasikan metode callback untuk menangani event dari server.
|
Metode |
Parameter |
Dipicu saat |
|
|
Tidak ada |
Koneksi WebSocket berhasil dibuat. |
|
|
|
Event server diterima. Uraikan field |
|
|
|
Koneksi WebSocket ditutup. |