Model sintesis suara Qwen menyediakan berbagai pilihan suara yang menyerupai manusia. Suara-suara tersebut mendukung berbagai bahasa dan dialek, serta dapat menghasilkan konten multibahasa dalam satu suara. Model ini secara otomatis menyesuaikan intonasi dan memproses teks kompleks dengan lancar.
Model yang didukung
Kami merekomendasikan Qwen3-TTS-Flash.
Qwen3-TTS-Flash menyediakan 49 suara dan mendukung berbagai bahasa serta dialek.
Qwen-TTS menyediakan hingga 7 suara dan hanya mendukung bahasa Tiongkok dan Inggris.
Internasional
Dalam mode penyebaran internasional, titik akhir dan penyimpanan data berlokasi di wilayah Singapura. Sumber daya komputasi inferensi dijadwalkan secara dinamis di seluruh dunia, tidak termasuk Daratan Tiongkok.
Model name | Version | Price | Maximum input characters | Supported languages | Free quota (Catatan) |
qwen3-tts-flash Kemampuan yang sama dengan qwen3-tts-flash-2025-09-18. | Stable | $0,10 per 10.000 karakter | 600 | Tiongkok (Mandarin, Beijing, Shanghai, Sichuan, Nanjing, Shaanxi, Minnan, Tianjin, Kanton), Inggris, Spanyol, Rusia, Italia, Prancis, Korea, Jepang, Jerman, Portugis | 2.000 karakter jika Anda mengaktifkan Alibaba Cloud Model Studio sebelum pukul 00.00 pada 13 November 2025. 10.000 karakter jika Anda mengaktifkan Alibaba Cloud Model Studio pada atau setelah pukul 00.00 pada 13 November 2025. Kuota berlaku selama 90 hari setelah Anda mengaktifkan Alibaba Cloud Model Studio. |
qwen3-tts-flash-2025-11-27 | Snapshot | 10.000 karakter Kuota berlaku selama 90 hari setelah Anda mengaktifkan Alibaba Cloud Model Studio. | |||
qwen3-tts-flash-2025-09-18 | Snapshot | 2.000 karakter jika Anda mengaktifkan Alibaba Cloud Model Studio sebelum pukul 00.00 pada 13 November 2025. 10.000 karakter jika Anda mengaktifkan Alibaba Cloud Model Studio pada atau setelah pukul 00.00 pada 13 November 2025. Kuota berlaku selama 90 hari setelah Anda mengaktifkan Alibaba Cloud Model Studio. |
Penagihan didasarkan pada jumlah karakter input. Aturan perhitungannya sebagai berikut:
Setiap karakter Tiongkok, termasuk Hanzi Tiongkok sederhana dan tradisional, Kanji Jepang, serta Hanja Korea, dihitung sebagai 2 karakter.
Karakter lainnya, seperti huruf Latin, tanda baca, atau spasi, dihitung sebagai 1 karakter.
Daratan Tiongkok
Dalam mode penyebaran Daratan Tiongkok, titik akhir dan penyimpanan data berlokasi di wilayah Tiongkok (Beijing), dan sumber daya komputasi inferensi dibatasi hanya di Daratan Tiongkok.
Qwen3-TTS-Flash
Model name | Version | Price | Max input characters | Supported languages | Free quota (Catatan) |
qwen3-tts-flash Kemampuan yang sama dengan qwen3-tts-flash-2025-09-18. | Stable | $0,114682/10.000 karakter | 600 | Tiongkok (Mandarin, Beijing, Shanghai, Sichuan, Nanjing, Shaanxi, Minnan, Tianjin, Kanton), Inggris, Spanyol, Rusia, Italia, Prancis, Korea, Jepang, Jerman, Portugis | Tidak ada kuota gratis |
qwen3-tts-flash-2025-11-27 | Snapshot | ||||
qwen3-tts-flash-2025-09-18 | Snapshot |
Penagihan didasarkan pada jumlah karakter input. Aturan perhitungannya sebagai berikut:
Setiap karakter Tiongkok, termasuk Hanzi Tiongkok sederhana dan tradisional, Kanji Jepang, serta Hanja Korea, dihitung sebagai 2 karakter.
Karakter lainnya, seperti huruf Latin, tanda baca, atau spasi, dihitung sebagai 1 karakter.
Qwen-TTS
Model Name | Version | Context window | Max input | Max output | Input cost | Output cost | Free quota (Catatan) |
(Tokens) | (per 1.000 tokens) | ||||||
qwen-tts Model ini memiliki kemampuan yang sama dengan qwen-tts-2025-04-10. | Stable | 8.192 | 512 | 7.680 | Rp0,230 | $1,434 | Tidak ada kuota gratis |
qwen-tts-latest Model ini selalu memiliki kemampuan yang sama dengan versi snapshot terbaru. | Latest | ||||||
qwen-tts-2025-05-22 | Snapshot | ||||||
qwen-tts-2025-04-10 | |||||||
Audio dikonversi ke token dengan laju 50 token per detik. Klip audio yang durasinya kurang dari 1 detik ditagih sebagai 50 token.
Fitur
Fitur | Qwen3-TTS-Flash | Qwen-TTS |
Connection type | Java/Python SDK, RESTful API | |
Streaming output | Didukung | |
Streaming input | Tidak didukung | |
Synthesized audio format |
| |
Synthesized audio sample rate | 24 kHz | |
Timestamp | Tidak didukung | |
Language | Tiongkok (Mandarin, Beijing, Shanghai, Sichuan, Nanjing, Shaanxi, Minnan, Tianjin, Kanton), Inggris, Spanyol, Rusia, Italia, Prancis, Korea, Jepang, Jerman, Portugis. Bervariasi tergantung suara. Untuk informasi lebih lanjut, lihat Suara yang didukung | Tiongkok (Mandarin, Beijing, Shanghai, Sichuan), Inggris. Bervariasi tergantung model dan suara. Untuk informasi lebih lanjut, lihat Suara yang didukung |
Voice cloning | Tidak didukung | |
SSML | Tidak didukung | |
Memulai
Persiapan
Anda telah membuat kunci API dan mengekspor kunci API sebagai variabel lingkungan.
Untuk menggunakan SDK DashScope, instal versi terbaru SDK. SDK DashScope Java harus versi 2.21.9 atau lebih baru. SDK DashScope Python harus versi 1.24.6 atau lebih baru.
CatatanDalam SDK DashScope Python, antarmuka
SpeechSynthesizerdigantikan olehMultiModalConversation. Untuk menggunakan antarmuka baru ini, ganti nama antarmukanya. Semua parameter lainnya tetap kompatibel.
Parameter utama
text: Menentukan teks yang akan disintesis.voice: Menentukan suara yang akan digunakan.language_type: Bahasa untuk audio hasil sintesis. Nilai yang valid adalahChinese,English,German,Italian,Portuguese,Spanish,Japanese,Korean,French,Russian, danAuto(default).
Gunakan url yang dikembalikan untuk mengambil audio hasil sintesis. URL tersebut berlaku selama 24 jam.
Python
# DashScope SDK versi 1.24.6 atau lebih baru
import os
import dashscope
# Ini adalah URL untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Tiongkok (Beijing), ganti URL dengan: https://dashscope.aliyuncs.com/api/v1
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
text = "Today is a wonderful day to build something people love!"
# Untuk menggunakan antarmuka SpeechSynthesizer: dashscope.audio.qwen_tts.SpeechSynthesizer.call(...)
response = dashscope.MultiModalConversation.call(
model="qwen3-tts-flash",
# Kunci API untuk wilayah Singapura dan Tiongkok (Beijing) berbeda. Untuk mendapatkan kunci API: https://www.alibabacloud.com/help/en/model-studio/get-api-key
# Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan kunci API Studio Model Anda: api_key = "sk-xxx"
api_key=os.getenv("DASHSCOPE_API_KEY"),
text=text,
voice="Cherry",
language_type="English", # Kami menyarankan agar nilai ini sesuai dengan bahasa teks untuk memastikan pelafalan yang benar dan intonasi yang alami.
stream=False
)
print(response)Java
Anda harus mengimpor dependensi Gson. Jika Anda menggunakan Maven atau Gradle, Anda dapat menambahkan dependensi sebagai berikut:
Maven
Tambahkan konten berikut ke pom.xml:
<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.13.1</version>
</dependency>Gradle
Tambahkan konten berikut ke build.gradle:
// https://mvnrepository.com/artifact/com.google.code.gson/gson
implementation("com.google.code.gson:gson:2.13.1")// DashScope SDK versi 2.21.9 atau lebih baru
// Versi 2.20.7 dan lebih baru mendukung suara Dylan, Jada, dan Sunny.
import com.alibaba.dashscope.aigc.multimodalconversation.AudioParameters;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversation;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationResult;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.protocol.Protocol;
import com.alibaba.dashscope.utils.Constants;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.URL;
public class Main {
private static final String MODEL = "qwen3-tts-flash";
public static void call() throws ApiException, NoApiKeyException, UploadFileException {
MultiModalConversation conv = new MultiModalConversation();
MultiModalConversationParam param = MultiModalConversationParam.builder()
// Kunci API untuk wilayah Singapura dan Tiongkok (Beijing) berbeda. Untuk mendapatkan kunci API: https://www.alibabacloud.com/help/en/model-studio/get-api-key
// Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan kunci API Studio Model Anda: .apiKey("sk-xxx")
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model(MODEL)
.text("Today is a wonderful day to build something people love!")
.voice(AudioParameters.Voice.CHERRY)
.languageType("English") // Kami menyarankan agar nilai ini sesuai dengan bahasa teks untuk memastikan pelafalan yang benar dan intonasi yang alami.
.build();
MultiModalConversationResult result = conv.call(param);
String audioUrl = result.getOutput().getAudio().getUrl();
System.out.print(audioUrl);
// Unduh file audio secara lokal
try (InputStream in = new URL(audioUrl).openStream();
FileOutputStream out = new FileOutputStream("downloaded_audio.wav")) {
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = in.read(buffer)) != -1) {
out.write(buffer, 0, bytesRead);
}
System.out.println("\nFile audio telah diunduh ke path lokal: downloaded_audio.wav");
} catch (Exception e) {
System.out.println("\nTerjadi error saat mengunduh file audio: " + e.getMessage());
}
}
public static void main(String[] args) {
// Ini adalah URL untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Tiongkok (Beijing), ganti URL dengan: https://dashscope.aliyuncs.com/api/v1
Constants.baseHttpApiUrl = "https://dashscope-intl.aliyuncs.com/api/v1";
try {
call();
} catch (ApiException | NoApiKeyException | UploadFileException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}cURL
# ======= Penting =======
# Ini adalah URL untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Tiongkok (Beijing), ganti URL dengan: https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation
# Kunci API untuk wilayah Singapura dan Tiongkok (Beijing) berbeda. Untuk mendapatkan kunci API: https://www.alibabacloud.com/help/en/model-studio/get-api-key
# === Hapus komentar ini sebelum eksekusi ===
curl -X POST 'https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation' \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "qwen3-tts-flash",
"input": {
"text": "Today is a wonderful day to build something people love!",
"voice": "Cherry",
"language_type": "English"
}
}'Pemutaran real-time
Data audio dialirkan dalam format Base64. Paket terakhir berisi URL untuk file audio lengkap.
Python
# DashScope SDK versi 1.24.6 atau lebih baru
# coding=utf-8
#
# Petunjuk instalasi pyaudio:
# APPLE Mac OS X
# brew install portaudio
# pip install pyaudio
# Debian/Ubuntu
# sudo apt-get install python-pyaudio python3-pyaudio
# atau
# pip install pyaudio
# CentOS
# sudo yum install -y portaudio portaudio-devel && pip install pyaudio
# Microsoft Windows
# python -m pip install pyaudio
import os
import dashscope
import pyaudio
import time
import base64
import numpy as np
# Ini adalah URL untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Tiongkok (Beijing), ganti URL dengan: https://dashscope.aliyuncs.com/api/v1
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
p = pyaudio.PyAudio()
# Buat aliran audio
stream = p.open(format=pyaudio.paInt16,
channels=1,
rate=24000,
output=True)
text = "Today is a wonderful day to build something people love!"
response = dashscope.MultiModalConversation.call(
# Kunci API untuk wilayah Singapura dan Tiongkok (Beijing) berbeda. Untuk mendapatkan kunci API: https://www.alibabacloud.com/help/en/model-studio/get-api-key
# Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan kunci API Studio Model Anda: api_key = "sk-xxx"
api_key=os.getenv("DASHSCOPE_API_KEY"),
model="qwen3-tts-flash",
text=text,
voice="Cherry",
language_type="English", # Kami menyarankan agar nilai ini sesuai dengan bahasa teks untuk memastikan pelafalan yang benar dan intonasi yang alami.
stream=True
)
for chunk in response:
if chunk.output is not None:
audio = chunk.output.audio
if audio.data is not None:
wav_bytes = base64.b64decode(audio.data)
audio_np = np.frombuffer(wav_bytes, dtype=np.int16)
# Putar data audio secara langsung
stream.write(audio_np.tobytes())
if chunk.output.finish_reason == "stop":
print("selesai pada: {} ", chunk.output.audio.expires_at)
time.sleep(0.8)
# Bersihkan sumber daya
stream.stop_stream()
stream.close()
p.terminate()
Java
Anda harus mengimpor dependensi Gson. Jika Anda menggunakan Maven atau Gradle, Anda dapat menambahkan dependensi sebagai berikut:
Maven
Tambahkan konten berikut ke pom.xml:
<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.13.1</version>
</dependency>Gradle
Tambahkan konten berikut ke build.gradle:
// https://mvnrepository.com/artifact/com.google.code.gson/gson
implementation("com.google.code.gson:gson:2.13.1")// Instal versi terbaru SDK DashScope
// Versi 2.20.7 dan lebih baru mendukung suara Dylan, Jada, dan Sunny.
import com.alibaba.dashscope.aigc.multimodalconversation.AudioParameters;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversation;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationResult;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.protocol.Protocol;
import com.alibaba.dashscope.utils.Constants;
import io.reactivex.Flowable;
import javax.sound.sampled.*;
import java.util.Base64;
public class Main {
private static final String MODEL = "qwen3-tts-flash";
public static void streamCall() throws ApiException, NoApiKeyException, UploadFileException {
MultiModalConversation conv = new MultiModalConversation();
MultiModalConversationParam param = MultiModalConversationParam.builder()
// Kunci API untuk wilayah Singapura dan Tiongkok (Beijing) berbeda. Untuk mendapatkan kunci API: https://www.alibabacloud.com/help/en/model-studio/get-api-key
// Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan kunci API Studio Model Anda: .apiKey("sk-xxx")
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model(MODEL)
.text("Today is a wonderful day to build something people love!")
.voice(AudioParameters.Voice.CHERRY)
.languageType("English") // Kami menyarankan agar nilai ini sesuai dengan bahasa teks untuk memastikan pelafalan yang benar dan intonasi yang alami.
.build();
Flowable<MultiModalConversationResult> result = conv.streamCall(param);
result.blockingForEach(r -> {
try {
// 1. Ambil data audio yang dienkripsi Base64
String base64Data = r.getOutput().getAudio().getData();
byte[] audioBytes = Base64.getDecoder().decode(base64Data);
// 2. Konfigurasikan format audio (sesuaikan berdasarkan format yang dikembalikan oleh API)
AudioFormat format = new AudioFormat(
AudioFormat.Encoding.PCM_SIGNED,
24000, // Laju sampel (harus sesuai dengan format yang dikembalikan oleh API)
16, // Kedalaman bit audio
1, // Jumlah saluran suara
2, // Ukuran frame (kedalaman bit / 8)
24000, // Laju transfer data (harus sesuai dengan laju sampel)
false // Apakah terkompresi
);
// 3. Putar data audio secara real-time
DataLine.Info info = new DataLine.Info(SourceDataLine.class, format);
try (SourceDataLine line = (SourceDataLine) AudioSystem.getLine(info)) {
if (line != null) {
line.open(format);
line.start();
line.write(audioBytes, 0, audioBytes.length);
line.drain();
}
}
} catch (LineUnavailableException e) {
e.printStackTrace();
}
});
}
public static void main(String[] args) {
// Ini adalah URL untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Tiongkok (Beijing), ganti URL dengan: https://dashscope.aliyuncs.com/api/v1
Constants.baseHttpApiUrl = "https://dashscope-intl.aliyuncs.com/api/v1";
try {
streamCall();
} catch (ApiException | NoApiKeyException | UploadFileException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}
cURL
# ======= Catatan Penting =======
# URL berikut ini untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Beijing, Anda harus mengganti URL dengan: https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation
# Kunci API untuk wilayah Singapura dan Beijing berbeda. Untuk mendapatkan kunci API, kunjungi: https://www.alibabacloud.com/help/en/model-studio/get-api-key
# === Hapus komentar ini sebelum eksekusi ===
curl -X POST 'https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation' \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-H 'X-DashScope-SSE: enable' \
-d '{
"model": "qwen3-tts-flash",
"input": {
"text": "Today is a wonderful day to build something people love!",
"voice": "Cherry",
"language_type": "Chinese"
}
}'Referensi API
Untuk informasi lebih lanjut, lihat Sintesis suara (Qwen-TTS).
Suara yang didukung
Suara yang didukung bervariasi tergantung model. Tetapkan parameter permintaan voice ke nilai pada kolom `voice` parameter tabel.
FAQ
Q: Berapa lama masa berlaku URL file audio?
A: URL file audio kedaluwarsa setelah 24 jam.