Qwen-Omni-Realtime adalah model obrolan audio dan video real-time dalam seri Qwen yang memproses input streaming berupa audio dan gambar—seperti frame gambar berkelanjutan yang diekstraksi secara real-time dari aliran video—serta menghasilkan output teks dan audio berkualitas tinggi secara real-time.
Wilayah yang didukung: Singapura, Beijing. Anda harus menggunakan API key untuk setiap wilayah.
Cara menggunakan
1. Membuat koneksi
Hubungkan ke model Qwen-Omni-Realtime menggunakan protokol WebSocket. Anda dapat menggunakan contoh kode Python di bawah ini atau SDK DashScope.
Satu sesi WebSocket berlangsung hingga 120 menit sebelum ditutup secara otomatis.
Koneksi WebSocket native
Anda memerlukan item konfigurasi berikut:
Item konfigurasi | Deskripsi |
Endpoint | China (Beijing): wss://dashscope.aliyuncs.com/api-ws/v1/realtime Internasional (Singapura): wss://dashscope-intl.aliyuncs.com/api-ws/v1/realtime |
Parameter kueri | Parameter kueri adalah model. Atur ke nama model yang ingin Anda akses. Contoh: |
Header permintaan | Otentikasi dengan Bearer Token: Authorization: Bearer DASHSCOPE_API_KEY DASHSCOPE_API_KEY adalah API key yang Anda minta di Model Studio. |
# pip install websocket-client
import json
import websocket
import os
API_KEY=os.getenv("DASHSCOPE_API_KEY")
API_URL = "wss://dashscope-intl.aliyuncs.com/api-ws/v1/realtime?model=qwen3.5-omni-plus-realtime"
headers = [
"Authorization: Bearer " + API_KEY
]
def on_open(ws):
print(f"Connected to server: {API_URL}")
def on_message(ws, message):
data = json.loads(message)
print("Received event:", json.dumps(data, indent=2))
def on_error(ws, error):
print("Error:", error)
ws = websocket.WebSocketApp(
API_URL,
header=headers,
on_open=on_open,
on_message=on_message,
on_error=on_error
)
ws.run_forever()DashScope SDK
# SDK versi 1.23.9 atau lebih baru
import os
import json
from dashscope.audio.qwen_omni import OmniRealtimeConversation,OmniRealtimeCallback
import dashscope
# API key untuk Singapura dan Beijing berbeda. Untuk mendapatkan API key, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
# Jika Anda belum mengonfigurasi API key, ganti baris berikut dengan dashscope.api_key = "sk-xxx"
dashscope.api_key = os.getenv("DASHSCOPE_API_KEY")
class PrintCallback(OmniRealtimeCallback):
def on_open(self) -> None:
print("Connected Successfully")
def on_event(self, response: dict) -> None:
print("Received event:")
print(json.dumps(response, indent=2, ensure_ascii=False))
def on_close(self, close_status_code: int, close_msg: str) -> None:
print(f"Connection closed (code={close_status_code}, msg={close_msg}).")
callback = PrintCallback()
conversation = OmniRealtimeConversation(
model="qwen3.5-omni-plus-realtime",
callback=callback,
# Berikut adalah URL untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Beijing, ganti URL dengan wss://dashscope.aliyuncs.com/api-ws/v1/realtime
url="wss://dashscope-intl.aliyuncs.com/api-ws/v1/realtime"
)
try:
conversation.connect()
print("Conversation started. Press Ctrl+C to exit.")
conversation.thread.join()
except KeyboardInterrupt:
conversation.close()// SDK versi 2.20.9 atau lebih baru
import com.alibaba.dashscope.audio.omni.*;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.google.gson.JsonObject;
import java.util.concurrent.CountDownLatch;
public class Main {
public static void main(String[] args) throws InterruptedException, NoApiKeyException {
CountDownLatch latch = new CountDownLatch(1);
OmniRealtimeParam param = OmniRealtimeParam.builder()
.model("qwen3.5-omni-plus-realtime")
.apikey(System.getenv("DASHSCOPE_API_KEY"))
// Berikut adalah URL untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Beijing, ganti URL dengan wss://dashscope.aliyuncs.com/api-ws/v1/realtime
.url("wss://dashscope-intl.aliyuncs.com/api-ws/v1/realtime")
.build();
OmniRealtimeConversation conversation = new OmniRealtimeConversation(param, new OmniRealtimeCallback() {
@Override
public void onOpen() {
System.out.println("Connected Successfully");
}
@Override
public void onEvent(JsonObject message) {
System.out.println(message);
}
@Override
public void onClose(int code, String reason) {
System.out.println("connection closed code: " + code + ", reason: " + reason);
latch.countDown();
}
});
conversation.connect();
latch.await();
conversation.close(1000, "bye");
System.exit(0);
}
}2. Mengonfigurasi sesi
Kirim event client session.update:
{
// ID event ini, di-generate oleh client.
"event_id": "event_ToPZqeobitzUJnt3QqtWg",
// Jenis event. Nilainya tetap session.update.
"type": "session.update",
// Konfigurasi sesi.
"session": {
// Modalitas output. Nilai yang didukung adalah ["text"] (hanya teks) atau ["text","audio"] (teks dan audio).
"modalities": [
"text",
"audio"
],
// Suara untuk output audio.
"voice": "Cherry",
// Format audio input. Hanya pcm yang didukung.
"input_audio_format": "pcm",
// Format audio output. Hanya pcm yang didukung.
"output_audio_format": "pcm",
// Pesan sistem. Menetapkan tujuan atau peran model.
"instructions": "You are an AI customer service agent for a five-star hotel. Answer customer inquiries about room types, facilities, prices, and booking policies accurately and friendly. Always respond with a professional and helpful attitude. Do not provide unconfirmed information or information beyond the scope of the hotel's services.",
// Mengaktifkan deteksi aktivitas suara. Untuk mengaktifkannya, berikan objek konfigurasi. Server akan secara otomatis mendeteksi awal/akhir ucapan berdasarkan objek ini.
// Atur ke null agar client yang menentukan kapan memulai respons model.
"turn_detection": {
// Jenis VAD. Harus diatur ke server_vad.
"type": "server_vad",
// Ambang batas deteksi VAD. Naikkan di lingkungan berisik dan turunkan di lingkungan tenang.
"threshold": 0.5,
// Durasi diam untuk mendeteksi akhir ucapan. Respons model dipicu jika nilai ini terlampaui.
"silence_duration_ms": 800
}
}
}3. Input audio dan gambar
Kirim data audio (wajib) dan gambar (opsional) yang telah di-encode Base64 ke buffer server menggunakan event input_audio_buffer.append dan input_image_buffer.append.
Gambar dapat berasal dari file lokal atau diambil secara real-time dari aliran video.
Jika VAD sisi server diaktifkan, server secara otomatis mengirimkan data dan memicu respons saat ucapan berakhir. Jika VAD dinonaktifkan (mode manual), client harus memanggil event input_audio_buffer.commit untuk mengirimkan data.
4. Menerima respons model
Format respons model bergantung pada modalitas output yang dikonfigurasi.
Hanya teks
Terima teks streaming melalui event response.text.delta. Ambil teks lengkap dengan event response.text.done.
Teks dan audio
Teks: Terima teks streaming melalui event response.audio_transcript.delta. Ambil teks lengkap dengan event response.audio_transcript.done.
Audio: Ambil data output audio streaming yang di-encode Base64 melalui event response.audio.delta. Event response.audio.done menandakan penyelesaian generasi audio.
Pemilihan model
Qwen3.5-Omni-Realtime adalah model multimodal real-time terbaru dalam seri Qwen. Dibandingkan dengan model generasi sebelumnya Qwen3-Omni-Flash-Realtime, model ini menawarkan:
Tingkat kecerdasan
Kecerdasan yang meningkat signifikan, setara dengan Qwen3.5-Plus.
Pencarian web
Mendukung pencarian web secara native. Model secara otonom memutuskan apakah perlu mencari jawaban untuk pertanyaan real-time. Untuk detailnya, lihat Pencarian web.
Interrupsi semantik
Secara otomatis mengidentifikasi maksud percakapan untuk menghindari interupsi dari suara pengisi dan kebisingan latar belakang yang tidak berarti.
Kontrol suara
Kontrol volume, laju berbicara, dan emosi menggunakan perintah suara seperti “berbicara lebih cepat,” “berbicara lebih keras,” atau “berbicara dengan ceria.”
Bahasa yang didukung
Mendukung pengenalan ucapan dalam 113 bahasa dan dialek, serta sintesis suara dalam 36 bahasa dan dialek.
Pilihan suara
Menawarkan 55 suara (47 multilingual + 8 spesifik dialek). Lihat Daftar suara.
Lihat Daftar model untuk nama model, konteks, harga, dan versi snapshot. Untuk pembatasan konkurensi, lihat Pembatasan kecepatan.
Memulai
Dapatkan API key dan konfigurasikan API key sebagai variabel lingkungan.
Pilih bahasa pemrograman pilihan Anda dan ikuti langkah-langkah berikut untuk segera memulai percakapan real-time dengan model Realtime.
DashScope Python SDK
Persiapkan lingkungan runtime
Versi Python Anda harus 3.10 atau lebih baru.
Pertama, instal pyaudio berdasarkan sistem operasi Anda.
macOS
brew install portaudio && pip install pyaudioDebian/Ubuntu
Jika Anda tidak menggunakan virtual environment, instal langsung menggunakan package manager sistem:
sudo apt-get install python3-pyaudioJika Anda menggunakan virtual environment, pertama instal dependensi kompilasi:
sudo apt update sudo apt install -y python3-dev portaudio19-devKemudian, Anda dapat menginstal paket menggunakan pip di virtual environment yang diaktifkan.
pip install pyaudio
CentOS
sudo yum install -y portaudio portaudio-devel && pip install pyaudioWindows
pip install pyaudioSetelah instalasi, instal dependensi menggunakan pip:
pip install websocket-client dashscopePilih mode interaksi
Mode VAD (Deteksi aktivitas suara, deteksi otomatis awal/akhir ucapan)
Server secara otomatis mendeteksi kapan pengguna mulai dan berhenti berbicara serta memberikan respons.
Mode manual (press-to-talk, release-to-send)
Client mengontrol waktu bicara. Setelah pengguna selesai berbicara, client mengirim pesan ke server.
Mode VAD
Buat file Python baru bernama vad_dash.py dan salin kode berikut ke dalamnya:
Jalankan
vad_dash.pyuntuk melakukan percakapan real-time dengan Qwen-Omni-Realtime melalui mikrofon Anda. Sistem mendeteksi awal/akhir ucapan dan secara otomatis mengirim data ke server tanpa intervensi manual.Mode manual
Buat file Python baru bernama
manual_dash.pydan salin kode berikut ke dalamnya:Jalankan
manual_dash.py. Tekan Enter untuk berbicara, lalu tekan Enter lagi untuk menerima respons audio model.
DashScope Java SDK
Pilih mode interaksi
Mode VAD (Deteksi aktivitas suara, deteksi otomatis awal/akhir ucapan)
API Realtime secara otomatis mendeteksi waktu bicara dan memberikan respons.
Mode manual (press-to-talk, release-to-send)
Client mengontrol waktu bicara. Setelah pengguna selesai berbicara, client mengirim pesan ke server.
Mode VAD
Jalankan metode OmniServerVad.main() untuk melakukan percakapan real-time dengan model Realtime melalui mikrofon Anda. Sistem mendeteksi awal/akhir ucapan dan secara otomatis mengirim data ke server tanpa intervensi manual.
Mode manual
Jalankan metode OmniWithoutServerVad.main(). Tekan Enter untuk mulai merekam. Selama perekaman, tekan Enter lagi untuk berhenti dan mengirim. Kemudian terima dan putar respons model.
WebSocket (Python)
Persiapkan lingkungan runtime
Versi Python Anda harus 3.10 atau lebih baru.
Pertama, instal pyaudio berdasarkan sistem operasi Anda.
macOS
brew install portaudio && pip install pyaudioDebian/Ubuntu
sudo apt-get install python3-pyaudio or pip install pyaudioKami merekomendasikan menggunakan
pip install pyaudio. Jika instalasi gagal, pertama instal dependensiportaudiountuk OS Anda.CentOS
sudo yum install -y portaudio portaudio-devel && pip install pyaudioWindows
pip install pyaudioSetelah instalasi, instal dependensi terkait WebSocket menggunakan pip:
pip install websockets==15.0.1Buat client
Buat file Python baru bernama
omni_realtime_client.pydi direktori lokal Anda dan salin kode berikut ke dalamnya:Pilih mode interaksi
Mode VAD (Deteksi aktivitas suara, deteksi otomatis awal/akhir ucapan)
API Realtime secara otomatis mendeteksi waktu bicara dan memberikan respons.
Mode manual (press-to-talk, release-to-send)
Client mengontrol waktu bicara. Setelah pengguna selesai berbicara, client mengirim pesan ke server.
Mode VAD
Di direktori yang sama dengan
omni_realtime_client.py, buat file Python lain bernamavad_mode.pydan salin kode berikut ke dalamnya:Jalankan
vad_mode.pyuntuk melakukan percakapan real-time dengan model Realtime melalui mikrofon Anda. Sistem mendeteksi awal/akhir ucapan dan secara otomatis mengirim data ke server tanpa intervensi manual.Mode manual
Di direktori yang sama dengan
omni_realtime_client.py, buat file Python lain bernamamanual_mode.pydan salin kode berikut ke dalamnya:Jalankan
manual_mode.py. Tekan Enter untuk berbicara, lalu tekan Enter lagi untuk menerima respons audio model.
Alur interaksi
Mode VAD
Atur session.turn_detection ke "server_vad" dalam event session.update untuk mengaktifkan mode VAD. Dalam mode ini, server secara otomatis mendeteksi awal/akhir ucapan dan memberikan respons. Cocok untuk panggilan suara.
Alur interaksinya sebagai berikut:
Server mendeteksi awal ucapan dan mengirim event input_audio_buffer.speech_started.
Client dapat mengirim event input_audio_buffer.append dan input_image_buffer.append kapan saja untuk menambahkan audio dan gambar ke buffer.
Sebelum mengirim event input_image_buffer.append, Anda harus mengirim setidaknya satu event input_audio_buffer.append.
Server mendeteksi akhir ucapan dan mengirim event input_audio_buffer.speech_stopped.
Server mengirim event input_audio_buffer.committed untuk commit buffer audio.
Server mengirim event conversation.item.created yang berisi item pesan pengguna yang dibuat dari buffer.
Siklus hidup | Event client | Event server |
Inisialisasi sesi | Konfigurasi sesi | Sesi dibuat Konfigurasi sesi diperbarui |
Input audio pengguna | Tambahkan audio ke buffer Tambahkan gambar ke buffer | input_audio_buffer.speech_started Awal ucapan terdeteksi input_audio_buffer.speech_stopped Akhir ucapan terdeteksi Server menerima audio yang dikirim |
Output audio server | Tidak ada | Server mulai menghasilkan respons Konten output baru selama respons Item percakapan dibuat Konten output baru ditambahkan ke pesan asisten response.audio_transcript.delta Teks transkripsi yang dihasilkan secara inkremental Audio yang dihasilkan secara inkremental dari model response.audio_transcript.done Transkripsi teks selesai Generasi audio selesai Streaming konten teks atau audio untuk pesan asisten selesai Streaming seluruh item output untuk pesan asisten selesai Respons selesai |
Mode manual
Atur session.turn_detection ke null dalam event session.update untuk mengaktifkan Mode Manual. Dalam mode ini, client secara eksplisit mengirim event input_audio_buffer.commit dan response.create untuk meminta respons server. Mode ini cocok untuk skenario press-to-talk, seperti mengirim pesan suara di aplikasi chat.
Alur interaksinya sebagai berikut:
Client dapat mengirim event input_audio_buffer.append dan input_image_buffer.append kapan saja untuk menambahkan audio dan gambar ke buffer.
Sebelum mengirim event input_image_buffer.append, Anda harus mengirim setidaknya satu event input_audio_buffer.append.
Client mengirim event input_audio_buffer.commit untuk mengirim buffer audio dan gambar, memberi sinyal ke server bahwa semua input pengguna (audio dan gambar) untuk giliran saat ini telah dikirim.
Server merespons dengan event input_audio_buffer.committed.
Client mengirim event response.create, menunggu server mengembalikan output model.
Server merespons dengan event conversation.item.created.
Siklus hidup | Event klien | Event server |
Inisialisasi sesi | Konfigurasi sesi | Sesi dibuat Konfigurasi sesi diperbarui |
Input audio pengguna | Tambahkan audio ke buffer Tambahkan gambar ke buffer Kirim audio dan gambar ke server Buat respons model | Server menerima audio yang dikirim |
Output audio server | Kosongkan audio dari buffer | Server mulai menghasilkan respons Konten output baru selama respons Item percakapan dibuat Konten output baru ditambahkan ke item pesan asisten response.audio_transcript.delta Teks transkripsi yang dihasilkan secara inkremental Audio yang dihasilkan secara inkremental dari model response.audio_transcript.done Transkripsi teks selesai Generasi audio selesai Streaming konten teks atau audio untuk pesan asisten selesai Streaming seluruh item output untuk pesan asisten selesai Respons selesai |
Pencarian web
Fitur pencarian web memungkinkan model membalas menggunakan data yang diambil secara real-time. Gunakan untuk skenario yang membutuhkan informasi terkini, seperti harga saham atau prakiraan cuaca. Model secara otonom memutuskan apakah perlu menjalankan pencarian web untuk menjawab pertanyaan Anda.
Hanya modelQwen3.5-Omni-Realtimeyang mendukung pencarian web. Secara default dinonaktifkan. Aktifkan menggunakan eventsession.update.
Untuk detail penagihan, lihat kebijakan agent dalam dokumentasi penagihanCara mengaktifkan
Dalam event session.update, tambahkan parameter berikut:
enable_search: Atur ketrueuntuk mengaktifkan pencarian web.search_options.enable_source: Atur ketrueuntuk mengembalikan daftar sumber hasil pencarian.
Untuk detail parameter lengkap, lihat session.update.
Format respons
Setelah Anda mengaktifkan pencarian web, event response.done menyertakan field baru plugins dalam objek usage. Field ini mencatat metrik penggunaan pencarian:
{
"usage": {
"total_tokens": 2937,
"input_tokens": 2554,
"output_tokens": 383,
"input_tokens_details": {
"text_tokens": 2512,
"audio_tokens": 42
},
"output_tokens_details": {
"text_tokens": 90,
"audio_tokens": 293
},
"plugins": {
"search": {
"count": 1,
"strategy": "agent"
}
}
}
}Contoh kode
Contoh berikut menunjukkan cara mengaktifkan pencarian web dalam percakapan real-time.
DashScope Python SDK
Dalam pemanggilan update_session, berikan parameter enable_search dan search_options:
import os
import base64
import time
import json
import pyaudio
from dashscope.audio.qwen_omni import MultiModality, AudioFormat, OmniRealtimeCallback, OmniRealtimeConversation
import dashscope
dashscope.api_key = os.getenv('DASHSCOPE_API_KEY')
url = 'wss://dashscope-intl.aliyuncs.com/api-ws/v1/realtime'
model = 'qwen3.5-omni-plus-realtime'
voice = 'Tina'
class SearchCallback(OmniRealtimeCallback):
def __init__(self, pya):
self.pya = pya
self.out = None
def on_open(self):
self.out = self.pya.open(format=pyaudio.paInt16, channels=1, rate=24000, output=True)
def on_event(self, response):
if response['type'] == 'response.audio.delta':
self.out.write(base64.b64decode(response['delta']))
elif response['type'] == 'conversation.item.input_audio_transcription.completed':
print(f"[User] {response['transcript']}")
elif response['type'] == 'response.audio_transcript.done':
print(f"[LLM] {response['transcript']}")
elif response['type'] == 'response.done':
usage = response.get('response', {}).get('usage', {})
plugins = usage.get('plugins', {})
if plugins.get('search'):
print(f"[Search] count={plugins['search']['count']}, strategy={plugins['search']['strategy']}")
pya = pyaudio.PyAudio()
callback = SearchCallback(pya)
conv = OmniRealtimeConversation(model=model, callback=callback, url=url)
conv.connect()
conv.update_session(
output_modalities=[MultiModality.AUDIO, MultiModality.TEXT],
voice=voice,
instructions="You are Xiao Yun, a personal assistant",
enable_search=True,
search_options={'enable_source': True}
)
mic = pya.open(format=pyaudio.paInt16, channels=1, rate=16000, input=True)
print("Web search is enabled. Speak into the microphone (press Ctrl+C to exit)...")
try:
while True:
audio_data = mic.read(3200, exception_on_overflow=False)
conv.append_audio(base64.b64encode(audio_data).decode())
time.sleep(0.01)
except KeyboardInterrupt:
conv.close()
mic.close()
callback.out.close()
pya.terminate()
print("\nConversation ended")DashScope Java SDK
Dalam updateSession, berikan pengaturan pencarian web melalui map parameters:
import com.alibaba.dashscope.audio.omni.*;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.google.gson.JsonObject;
import javax.sound.sampled.*;
import java.nio.ByteBuffer;
import java.util.*;
import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.concurrent.atomic.AtomicBoolean;
public class OmniSearch {
static class SequentialAudioPlayer {
private final SourceDataLine line;
private final Queue<byte[]> audioQueue = new ConcurrentLinkedQueue<>();
private final Thread playerThread;
private final AtomicBoolean shouldStop = new AtomicBoolean(false);
public SequentialAudioPlayer() throws LineUnavailableException {
AudioFormat format = new AudioFormat(24000, 16, 1, true, false);
line = AudioSystem.getSourceDataLine(format);
line.open(format);
line.start();
playerThread = new Thread(() -> {
while (!shouldStop.get()) {
byte[] audio = audioQueue.poll();
if (audio != null) {
line.write(audio, 0, audio.length);
} else {
try { Thread.sleep(10); } catch (InterruptedException ignored) {}
}
}
}, "AudioPlayer");
playerThread.start();
}
public void play(String base64Audio) {
audioQueue.add(Base64.getDecoder().decode(base64Audio));
}
public void close() {
shouldStop.set(true);
try { playerThread.join(1000); } catch (InterruptedException ignored) {}
line.drain();
line.close();
}
}
public static void main(String[] args) {
try {
SequentialAudioPlayer player = new SequentialAudioPlayer();
AtomicBoolean shouldStop = new AtomicBoolean(false);
OmniRealtimeParam param = OmniRealtimeParam.builder()
.model("qwen3.5-omni-plus-realtime")
.apikey(System.getenv("DASHSCOPE_API_KEY"))
.url("wss://dashscope-intl.aliyuncs.com/api-ws/v1/realtime")
.build();
OmniRealtimeConversation conversation = new OmniRealtimeConversation(param, new OmniRealtimeCallback() {
@Override public void onOpen() {
System.out.println("Connection established");
}
@Override public void onClose(int code, String reason) {
System.out.println("Connection closed");
shouldStop.set(true);
}
@Override public void onEvent(JsonObject event) {
String type = event.get("type").getAsString();
if ("response.audio.delta".equals(type)) {
player.play(event.get("delta").getAsString());
} else if ("response.audio_transcript.done".equals(type)) {
System.out.println("[LLM] " + event.get("transcript").getAsString());
} else if ("response.done".equals(type)) {
JsonObject response = event.getAsJsonObject("response");
if (response != null && response.has("usage")) {
JsonObject usage = response.getAsJsonObject("usage");
if (usage.has("plugins")) {
JsonObject plugins = usage.getAsJsonObject("plugins");
if (plugins.has("search")) {
JsonObject search = plugins.getAsJsonObject("search");
System.out.println("[Search] count=" + search.get("count").getAsInt()
+ ", strategy=" + search.get("strategy").getAsString());
}
}
}
}
}
});
conversation.connect();
conversation.updateSession(OmniRealtimeConfig.builder()
.modalities(Arrays.asList(OmniRealtimeModality.AUDIO, OmniRealtimeModality.TEXT))
.voice("Tina")
.enableTurnDetection(true)
.enableInputAudioTranscription(true)
.parameters(Map.of(
"instructions", "You are Xiao Yun, a personal assistant",
"enable_search", true,
"search_options", Map.of("enable_source", true)
))
.build()
);
System.out.println("Web search is enabled. Start speaking (press Ctrl+C to exit)...");
AudioFormat format = new AudioFormat(16000, 16, 1, true, false);
TargetDataLine mic = AudioSystem.getTargetDataLine(format);
mic.open(format);
mic.start();
ByteBuffer buffer = ByteBuffer.allocate(3200);
while (!shouldStop.get()) {
int bytesRead = mic.read(buffer.array(), 0, buffer.capacity());
if (bytesRead > 0) {
conversation.appendAudio(Base64.getEncoder().encodeToString(buffer.array()));
}
Thread.sleep(20);
}
conversation.close(1000, "Normal end");
player.close();
mic.close();
} catch (NoApiKeyException e) {
System.err.println("API key not found: Set the DASHSCOPE_API_KEY environment variable");
} catch (Exception e) {
e.printStackTrace();
}
}
}WebSocket (Python)
Dalam payload JSON untuk session.update, tambahkan field enable_search dan search_options:
import json
import os
import websocket
import base64
import pyaudio
import threading
API_KEY = os.getenv("DASHSCOPE_API_KEY")
API_URL = "wss://dashscope-intl.aliyuncs.com/api-ws/v1/realtime?model=qwen3.5-omni-plus-realtime"
pya = pyaudio.PyAudio()
out_stream = pya.open(format=pyaudio.paInt16, channels=1, rate=24000, output=True)
def on_open(ws):
ws.send(json.dumps({
"type": "session.update",
"session": {
"modalities": ["text", "audio"],
"voice": "Tina",
"instructions": "You are Xiao Yun, a personal assistant",
"input_audio_format": "pcm",
"output_audio_format": "pcm",
"enable_search": True,
"search_options": {
"enable_source": True
}
}
}))
print("Web search is enabled. Speak into the microphone...")
def send_audio():
mic = pya.open(format=pyaudio.paInt16, channels=1, rate=16000, input=True)
try:
while True:
audio = mic.read(3200, exception_on_overflow=False)
ws.send(json.dumps({
"type": "input_audio_buffer.append",
"audio": base64.b64encode(audio).decode()
}))
except Exception:
mic.close()
threading.Thread(target=send_audio, daemon=True).start()
def on_message(ws, message):
event = json.loads(message)
if event["type"] == "response.audio.delta":
out_stream.write(base64.b64decode(event["delta"]))
elif event["type"] == "response.audio_transcript.done":
print(f"[LLM] {event['transcript']}")
elif event["type"] == "response.done":
usage = event.get("response", {}).get("usage", {})
plugins = usage.get("plugins", {})
if plugins.get("search"):
print(f"[Search] count={plugins['search']['count']}, strategy={plugins['search']['strategy']}")
def on_error(ws, error):
print(f"Error: {error}")
headers = ["Authorization: Bearer " + API_KEY]
ws = websocket.WebSocketApp(API_URL, header=headers, on_open=on_open, on_message=on_message, on_error=on_error)
ws.run_forever()Referensi API
Penagihan dan pembatasan laju
Aturan penagihan
Model Qwen-Omni-Realtime menagih berdasarkan penggunaan token untuk setiap modalitas—audio dan gambar. Untuk detailnya, lihat Daftar Model.
Pembatasan laju
Untuk informasi lebih lanjut tentang aturan pembatasan laju model, lihat Pembatasan laju.
Kode error
Jika pemanggilan model gagal dan mengembalikan pesan error, lihat Pesan error untuk resolusi.
Daftar suara
Atur parameter permintaan voice ke nilai pada kolom parameter suara.
qwen3.5-omni-realtime
| Detail | Bahasa yang didukung |
| Nama suara: Tina Deskripsi: Suaraku seperti teh susu hangat—manis dan nyaman, namun tajam saat memecahkan masalah. | Chinese (Mandarin), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama suara: Cindy Deskripsi: Wanita muda manis dari Taiwan | Chinese (Taiwanese accent), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama suara: Qinghuan Liora Mira Deskripsi: Suara lembut yang menganyam kehangatan ke dalam kehidupan sehari-hari | Chinese (Mandarin), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama suara: Sunnybobi Deskripsi: Gadis tetangga ceria yang canggung secara sosial | Chinese (Mandarin), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama Suara: Lin Chuanye (Raymond) Deskripsi: Seseorang dengan suara jernih, pecinta makanan kemasan, dan senang menghabiskan waktu di rumah. | Chinese (Mandarin), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama Suara: Chenxu Ethan Deskripsi: Mandarin standar dengan sedikit aksen utara. Cerah, hangat, energetik, dan muda | Chinese (Mandarin), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama suara: Theo Calm Deskripsi: Menyampaikan pengertian dalam diam dan penyembuhan melalui kata-kata | Chinese (Mandarin), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama suara: Serena Deskripsi: Wanita muda lembut | Chinese (Mandarin), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama suara: Harvey Deskripsi: Suaraku membawa beban waktu—dalam, lembut, dan beraroma kopi dan buku tua | Chinese (Mandarin), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama suara: Maia Deskripsi: Perpaduan kecerdasan dan kelembutan | Chinese (Mandarin), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama suara: Evan Deskripsi: Mahasiswa—muda dan menawan | Chinese (Mandarin), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama suara: Qiao Deskripsi: Tidak hanya imut—dia manis di permukaan dan penuh kepribadian di dalam | Chinese (Taiwanese accent), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama suara: Momo Deskripsi: Main-main dan nakal—di sini untuk menghibur Anda | Chinese (Mandarin), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama suara: Wil Deskripsi: Pria muda dari Shenzhen yang berbicara dengan aksen Hong Kong–Taiwan | Chinese (Mandarin), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama Suara: Tai Pu – An Qi Angel Deskripsi: Sedikit beraksen Taiwan—dan sangat manis | Chinese (Mandarin), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama Timbre: Dongchang—Grand Eunuch Li Cassian Deskripsi: Berbicara dengan pengekangan—tiga bagian diam, tujuh bagian membaca suasana | Chinese (Mandarin), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama Suara: Gentle Lifestyle Blogger - Shuran Mia Deskripsi: Seniman gaya hidup yang berbagi estetika hidup lambat dan kenyamanan sehari-hari melalui suara yang menenangkan | Chinese (Mandarin), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama Suara: Comedy Specialist—Adou Joyner Deskripsi: Lucu, berlebihan, dan apa adanya | Chinese (Mandarin), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama suara: Gold Deskripsi: Rapper kulit hitam Pantai Barat | Chinese (Mandarin), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama suara: Katerina Deskripsi: Suara matang dan berwibawa dengan ritme dan resonansi kaya | Chinese (Mandarin), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama Suara: Sweet Tea Ryan Deskripsi: Penyampaian energik dengan kehadiran dramatis kuat—realisme bertemu intensitas | Chinese (Mandarin), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama suara: Jennifer Deskripsi: Suara wanita Amerika premium berkualitas sinematik | Chinese (Mandarin), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama suara: Aiden Deskripsi: Pria muda Amerika yang ahli memasak | Chinese (Mandarin), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama suara: Mione Deskripsi: Gadis tetangga Inggris yang matang dan cerdas | Chinese (Mandarin), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama Suara: Sichuan - Qing'er Sunny Deskripsi: Gadis Sichuan manis yang menghangatkan hati Anda | Chinese (Sichuan dialect), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama Suara: Beijing–Xiaodong (Dylan) Deskripsi: Pemuda yang dibesarkan di hutong Beijing | Chinese (Beijing dialect), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama Suara: Sichuan - Cheng Chuan Eric Deskripsi: Pria Chengdu Sichuan yang hidup | Chinese (Sichuan dialect), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama Suara: Tianjin–Li Bide (Peter) Deskripsi: Pemain xiangsheng Tianjin—pendukung profesional | Chinese (Tianjin dialect), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama suara: Joseph Chen Deskripsi: Saya Paman Pu. Nama asli saya Chen Zhipu—orang Tionghoa perantauan lama dari Asia Tenggara | Chinese (Hokkien), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama Timbre: Shaanxi–Qinchuan Marcus Deskripsi: Wajah lebar, sedikit bicara, hati tulus, suara dalam—rasa autentik Shaanxi | Chinese (Shaanxi dialect), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama Suara: Nanjing–Lao Li Deskripsi: Paman pemarah | Chinese (Nanjing dialect), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama suara: Cantonese – Ah Qiang Rocky Deskripsi: Ah Qiang menyediakan teman ngobrol online dengan humor dan kecerdasan. | Chinese (Cantonese), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama suara: Sohee Deskripsi: Unnie Korea yang hangat, ceria, dan ekspresif secara emosional | Chinese (Mandarin), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama suara: Lenn Deskripsi: Rasional di inti, memberontak dalam detail—pemuda Jerman yang mengenakan setelan dan mendengarkan post-punk | Chinese (Mandarin), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama suara: Ono Anna Deskripsi: Teman masa kecil yang cerdas dan suka bermain | Chinese (Mandarin), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama suara: Sonrisa Deskripsi: Wanita Latin Amerika yang hangat dan terbuka | Chinese (Mandarin), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama Timbre: Bodega Deskripsi: Pria Spanyol yang hangat dan antusias | Chinese (Mandarin), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama suara: Emilien Deskripsi: Kakak laki-laki Prancis yang romantis | Chinese (Mandarin), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama suara: Andre Deskripsi: Suara pria magnetis, alami, dan stabil | Chinese (Mandarin), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama suara: Radio Gol Deskripsi: Saya Penyair Sepak Bola dari Rádio Gol! Hari ini, saya akan berkomentar pertandingan hanya menggunakan nama pemain. | Chinese (Mandarin), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama suara: Alek Deskripsi: Dingin seperti semangat Rusia—namun hangat seperti wol di bawah mantel | Chinese (Mandarin), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama suara: Rizky Deskripsi: Pria muda Indonesia dengan suara khas | Chinese (Mandarin), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama suara: Roya Deskripsi: Gadis sporty dengan hati bebas | Chinese (Mandarin), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama suara: Arda Deskripsi: Tidak terlalu tinggi atau rendah—bersih, jernih, dan hangat lembut | Chinese (Mandarin), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama suara: Hana Deskripsi: Wanita Vietnam dewasa yang menyukai anjing | Chinese (Mandarin), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama Timbre: Dolce Deskripsi: Pria Italia yang santai | Chinese (Mandarin), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama suara: Jakub Deskripsi: Pemuda artistik dan karismatik dari kota Polandia | Chinese (Mandarin), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama suara: Griet Deskripsi: Wanita Belanda dewasa yang artistik | Chinese (Mandarin), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama suara: Eliška Deskripsi: Setiap kata membawa keahlian dan kehangatan Eropa Tengah | Chinese (Mandarin), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama suara: Marina Deskripsi: Gadis yang dibesarkan di kota multikultural | Chinese (Mandarin), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama suara: Siiri Deskripsi: Pendiam dan lembut—dengan kecepatan bicara tenang seperti danau | Chinese (Mandarin), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama suara: Ingrid Deskripsi: Wanita dari pedesaan Norwegia | Chinese (Mandarin), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama suara: Sigga Deskripsi: Wanita muda intelektual dari kota Islandia | Chinese (Mandarin), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama suara: Bea Deskripsi: Wanita Filipina manis yang menyukai kopi | Chinese (Mandarin), Chinese, English French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
| Nama suara: Chloe Deskripsi: Pekerja kantor Malaysia | Chinese (Mandarin), Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian |
qwen3-omni-flash-realtime-2025-12-01
Nama suara |
| Efek Timbre | Deskripsi | Bahasa yang didukung |
Qianyue | Cherry | Wanita muda ceria, positif, ramah, dan alami | Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Suyao | Serena | Wanita muda lembut | Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Chenxu | Ethan | Mandarin standar dengan sedikit aksen utara. Cerah, hangat, energetik, dan bersemangat | Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Qianxue | Chelsie | Pacar virtual dua dimensi | Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Motu | Momo | Main-main dan nakal, dirancang untuk menghibur Anda | Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
13 | Vivian | Wanita muda galak, imut, dan sedikit mudah kesal | Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Yuebai | Moon | Yue Bai spontan dan tampan | Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
April | Maia | Perpaduan kecerdasan dan kelembutan | Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Kai | Kai | Pengalaman menenangkan untuk telinga Anda | Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Do not consume fish. | Nofish | Desainer yang tidak bisa mengucapkan bunyi retrofleks | Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Mengbao | Bella | Gadis kecil yang minum tapi tidak pernah memukul saat mabuk | Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Jennifer | Jennifer | Suara wanita Inggris Amerika premium berkualitas sinematik | Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Tiancha | Ryan | Penuh ritme, penuh ekspresi dramatis, menyeimbangkan keaslian dan intensitas | Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Kajielina | Katerina | Suara wanita dewasa dengan ritme kaya yang mudah diingat | Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Aideng | Aiden | Pria muda Inggris Amerika yang ahli memasak | Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Cangmingzi | Eldric Sage | Pria tua yang tenang dan bijaksana yang suaranya membangkitkan ketahanan pohon pinus dan kejernihan pikiran | Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Good little sister | Mia | Lembut seperti air musim semi, patuh seperti salju segar | Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Sha Xiaomi | Mochi | Pemuda cerdas dan cerah, kekanak-kanakan namun bijaksana melebihi usianya | Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Yan Zhengying | Bellona | Suara kuat dan jelas yang menghidupkan karakter dan membangkitkan kegembiraan. Memunculkan kisah heroik dan ekspresi vokal yang hidup | Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Tianshu | Vincent | Suara unik serak dan berasap yang menceritakan kisah pasukan dan kesatria | Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Meng Xiao Ji | Bunny | Gadis kecil yang penuh pesona "imut" | Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
A Wen | Neil | Jangkar berita profesional dengan nada dasar stabil dan artikulasi tepat | Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Mo Lecturer | Elias | Mempertahankan ketelitian akademis sambil mengubah pengetahuan kompleks menjadi modul kognitif yang mudah dicerna melalui bercerita | Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Xu Da Ye | Arthur | Suara sederhana, terkikis waktu dan asap tembakau, perlahan membuka legenda desa dan hal aneh | Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Linjia Meimei | Nini | Suara lembut dan lengket seperti kue beras manis. "Kakak" yang ditarik panjangnya begitu manis hingga melelehkan tulang Anda | Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Gui Po Po | Ebona | Bisikannya seperti kunci berkarat, perlahan memutar sudut tergelap dalam diri Anda—tempat bayangan masa kecil dan ketakutan yang tidak diketahui bersembunyi | Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Xiao Wan | Seren | Suara lembut dan menenangkan untuk membantu Anda tertidur lebih cepat. Selamat malam dan mimpi indah | Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
mischievous child | Pip | Anak laki-laki yang main-main, nakal, namun polos—apakah dia mengingatkan Anda pada Shin-chan? | Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Shao Nü A Yue | Stella | Biasanya suara gadis remaja yang manis dan linglung—tetapi ketika dia berteriak “Aku mewakili bulan untuk mengalahkanmu!”, suaranya dipenuhi cinta dan keadilan yang tak terbantahkan | Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Bodega | Bodega | Pria Spanyol yang bersemangat | Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Sonisha | Sonrisa | Wanita Latin Amerika yang ceria dan terbuka | Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Aleke | Alek | Suara yang dingin seperti semangat Rusia—dan hangat seperti lapisan mantel wol | Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Duorche | Dolce | Pria Italia yang santai | Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Suxi | Sohee | Unnie Korea yang baik hati, ceria, dan ekspresif secara emosional | Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Xiao Ye Xing | Ono Anna | Teman masa kecil yang cerdas dan bersemangat | Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Lai En | Lenn | Rasional di hati, memberontak dalam detail—pemuda Jerman yang mengenakan setelan dan mendengarkan post-punk | Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Aimi’er’an | Emilien | Kakak laki-laki Prancis yang romantis | Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Andele | Andre | Suara pria magnetis, alami, dan stabil | Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Ladio Ge Er | Radio Gol | Penyair sepak bola Rádio Gol! Hari ini saya akan berkomentar sepak bola menggunakan nama saya. | Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Shanghai – A Zhen | Jada | Bibi Shanghai yang lincah dan energetik | Shanghainese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Beijing – Xiao Dong | Dylan | Pemuda yang dibesarkan di hutong Beijing | Beijing dialect, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Nanjing – Lao Li | Li | Instruktur yoga yang sabar | Nanjing dialect, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Shaanxi – Qin Chuan | Marcus | Wajah lebar, sedikit bicara, hati tulus, suara dalam—rasa autentik Shaanxi | Shaanxi dialect, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Minnan – A Jie | Roy | Pria Taiwan yang humoris, lugas, hidup, dan apa adanya | Minnan dialect, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Tianjin – Li Peter | Peter | Pemain xiangsheng Tianjin, ahli sebagai pendukung | Tianjin dialect, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Sichuan – Qing Er | Sunny | Gadis Sichuan manis yang menghangatkan hati Anda | Sichuan dialect, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Sichuan – Cheng Chuan | Eric | Pria Sichuan dari Chengdu yang menonjol dari keramaian | Sichuan dialect, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Cantonese – A Qiang | Rocky | A Qiang yang humoris dan cerdas, tersedia untuk obrolan online | Cantonese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Cantonese – A Qing | Kiki | Gadis Hong Kong manis dan sahabat terbaik | Cantonese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean |
qwen3-omni-flash-realtime, qwen3-omni-flash-realtime-2025-09-15
Nama suara |
| Efek Timbre | Deskripsi | Bahasa yang didukung |
Qianyue | Cherry | Wanita muda ceria, positif, ramah, dan alami | Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Chenxu | Ethan | Mandarin standar dengan sedikit aksen utara. Cerah, hangat, energetik, dan bersemangat | Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Does not consume fish. | Nofish | Desainer yang tidak bisa mengucapkan bunyi retrofleks | Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Jennifer | Jennifer | Suara wanita Inggris Amerika premium berkualitas sinematik | Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Tiancha | Ryan | Penuh ritme, penuh ekspresi dramatis, menyeimbangkan keaslian dan intensitas | Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Kajielina | Katerina | Suara wanita dewasa dengan ritme kaya yang mudah diingat | Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Mo Lecturer | Elias | Mempertahankan ketelitian akademis sambil mengubah pengetahuan kompleks menjadi modul kognitif yang mudah dicerna melalui bercerita | Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Shanghai – A Zhen | Jada | Bibi Shanghai yang lincah dan energetik | Shanghainese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Beijing – Xiao Dong | Dylan | Pemuda yang dibesarkan di hutong Beijing | Beijing dialect, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Sichuan – Qing Er | Sunny | Gadis Sichuan manis yang menghangatkan hati Anda | Sichuan dialect, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Nanjing – Lao Li | Li | Instruktur yoga yang sabar | Nanjing dialect, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Shaanxi – Qin Chuan | Marcus | Wajah lebar, sedikit bicara, hati tulus, suara dalam—rasa autentik Shaanxi | Shaanxi dialect, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Minnan – A Jie | Roy | Pria Taiwan yang humoris, lugas, hidup, dan apa adanya | Minnan dialect, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Tianjin – Li Peter | Peter | Pemain xiangsheng Tianjin, ahli sebagai pendukung | Tianjin dialect, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Cantonese – A Qiang | Rocky | A Qiang yang humoris dan cerdas, tersedia untuk obrolan online | Cantonese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Cantonese – A Qing | Kiki | Gadis Hong Kong Manis Sahabat Terbaik | Cantonese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean | |
Sichuan – Cheng Chuan | Eric | Pria Sichuan dari Chengdu yang menonjol dari keramaian | Sichuan dialect, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, Korean |
Qwen-Omni-Turbo-Realtime
Nama suara |
| Efek Timbre | Deskripsi | Bahasa yang didukung |
Qianyue | Cherry | Wanita muda ceria, positif, ramah, dan alami | Chinese, English | |
Suyao | Serena | Wanita muda lembut | Chinese, English | |
Chenxu | Ethan | Mandarin standar dengan sedikit aksen utara. Cerah, hangat, energetik, dan bersemangat | Chinese, English | |
Qianxue | Chelsie | Pacar virtual dua dimensi | Chinese, English |