All Products
Search
Document Center

Alibaba Cloud Model Studio:Sintesis suara (Qwen-TTS)

Last Updated:Feb 12, 2026

Topik ini menjelaskan parameter permintaan dan respons untuk model sintesis suara Qwen.

Penggunaan model: Sintesis suara - Qwen

Request body

Non-streaming output

Python

Antarmuka SpeechSynthesizer dalam SDK Python DashScope kini telah disatukan di bawah MultiModalConversation. Penggunaan dan parameternya tetap sepenuhnya konsisten.
# Instal versi terbaru SDK DashScope
import os
import dashscope

# Ini adalah URL untuk wilayah Singapura. Jika menggunakan model di wilayah Beijing, ganti URL dengan: https://dashscope.aliyuncs.com/api/v1
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'

text = "Izinkan saya merekomendasikan sebuah kaos kepada semua orang. Kaos ini benar-benar sangat bagus. Warnanya sangat elegan, dan juga merupakan item yang sempurna untuk dipadukan. Semua orang bisa membelinya tanpa ragu-ragu. Kaos ini benar-benar indah dan sangat menyanjung bentuk tubuh. Tidak peduli tipe tubuh Anda seperti apa, kaos ini akan terlihat bagus. Saya merekomendasikan semua orang untuk segera memesan."
# Penggunaan antarmuka SpeechSynthesizer: dashscope.audio.qwen_tts.SpeechSynthesizer.call(...)
response = dashscope.MultiModalConversation.call(
    # Untuk menggunakan fitur kontrol instruksi, ganti model dengan qwen3-tts-instruct-flash
    model="qwen3-tts-flash",
    # Kunci API untuk wilayah Singapura dan Beijing berbeda. Dapatkan Kunci API Anda: https://www.alibabacloud.com/help/en/model-studio/get-api-key
    # Jika variabel lingkungan belum dikonfigurasi, ganti baris berikut dengan Kunci API Model Studio Anda: api_key="sk-xxx"
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    text=text,
    voice="Cherry"
    # Untuk menggunakan fitur kontrol instruksi, hapus komentar baris berikut dan ganti model dengan qwen3-tts-instruct-flash
    # instructions='Laju bicara cepat, dengan intonasi naik yang jelas, cocok untuk memperkenalkan produk fesyen.',
    # optimize_instructions=True
)
print(response)

Java

// Instal versi terbaru SDK DashScope
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.utils.JsonUtils;
import com.alibaba.dashscope.utils.Constants;

public class Main {
    // Untuk menggunakan fitur kontrol instruksi, ganti MODEL dengan qwen3-tts-instruct-flash
    private static final String MODEL = "qwen3-tts-flash";
    public static void call() throws ApiException, NoApiKeyException, UploadFileException {
        MultiModalConversation conv = new MultiModalConversation();
        MultiModalConversationParam param = MultiModalConversationParam.builder()
                .model(MODEL)
                // Kunci API untuk wilayah Singapura dan Beijing berbeda. Dapatkan Kunci API Anda: https://www.alibabacloud.com/help/en/model-studio/get-api-key
                // Jika variabel lingkungan belum dikonfigurasi, ganti baris berikut dengan Kunci API Model Studio Anda: apiKey("sk-xxx")
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                .text("Hari ini adalah hari yang luar biasa untuk membangun sesuatu yang dicintai orang!")
                .voice(AudioParameters.Voice.CHERRY)
                .languageType("English")
                // Untuk menggunakan fitur kontrol instruksi, hapus komentar baris berikut dan ganti model dengan qwen3-tts-instruct-flash
                // .parameter("instructions","Laju bicara cepat, dengan intonasi naik yang jelas, cocok untuk memperkenalkan produk fesyen.")
                // .parameter("optimize_instructions",true)
                .build();
        MultiModalConversationResult result = conv.call(param);
        System.out.println(JsonUtils.toJson(result));
    }
    public static void main(String[] args) {
        // Ini adalah URL untuk wilayah Singapura. Jika menggunakan model di wilayah 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

# ======= CATATAN PENTING =======
# Ini adalah URL untuk wilayah Singapura. Jika menggunakan model di wilayah Beijing, ganti URL dengan: https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation
# Kunci API untuk wilayah Singapura dan Beijing berbeda. Dapatkan Kunci API Anda: https://www.alibabacloud.com/help/en/model-studio/get-api-key
# Jika variabel lingkungan belum dikonfigurasi, ganti $DASHSCOPE_API_KEY dengan Kunci API Model Studio Anda: sk-xxx.
# === HAPUS KOMENTAR INI SAAT MENJALANKAN ===

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": "Izinkan saya merekomendasikan sebuah kaos kepada semua orang. Kaos ini benar-benar sangat bagus. Warnanya sangat elegan, dan juga merupakan item yang sempurna untuk dipadukan. Semua orang bisa membelinya tanpa ragu-ragu. Kaos ini benar-benar indah dan sangat menyanjung bentuk tubuh. Tidak peduli tipe tubuh Anda seperti apa, kaos ini akan terlihat bagus. Saya merekomendasikan semua orang untuk segera memesan.",
        "voice": "Cherry",
        "language_type": "Chinese"
    }
}'

Streaming output

Python

Antarmuka SpeechSynthesizer dalam SDK Python DashScope kini telah disatukan di bawah MultiModalConversation. Untuk menggunakan antarmuka baru ini, cukup ganti nama antarmukanya. Semua parameter lain tetap sepenuhnya kompatibel.
# Versi SDK DashScope 1.24.5 atau lebih baru
import os
import dashscope

# URL berikut untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Beijing, ganti URL dengan: https://dashscope.aliyuncs.com/api/v1
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
text = "Izinkan saya merekomendasikan sebuah kaos kepada Anda. Kaos ini benar-benar menakjubkan. Warnanya menonjolkan keanggunan Anda dan menjadikannya padanan ideal untuk pakaian apa pun. Anda dapat membelinya tanpa ragu—kaos ini terlihat bagus pada semua orang. Kaos ini menyanjung semua tipe tubuh. Baik Anda tinggi, pendek, langsing, atau berlekuk, kaos ini sangat cocok untuk Anda. Kami sangat merekomendasikan Anda memesannya."
# Gunakan SpeechSynthesizer sebagai berikut: dashscope.audio.qwen_tts.SpeechSynthesizer.call(...)
response = dashscope.MultiModalConversation.call(
    # Untuk menggunakan kontrol instruksi, atur model ke qwen3-tts-instruct-flash
    model="qwen3-tts-flash",
    # Kunci API berbeda antara wilayah Singapura dan Beijing. Dapatkan kunci API Anda: https://www.alibabacloud.com/help/en/model-studio/get-api-key
    # Jika Anda belum mengatur variabel lingkungan, ganti baris berikut dengan: api_key="sk-xxx"
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    text=text,
    voice="Cherry",
    # Untuk menggunakan kontrol instruksi, hapus komentar baris di bawah dan atur model ke qwen3-tts-instruct-flash
    # instructions='Bicara dengan cepat menggunakan intonasi naik yang jelas, cocok untuk mempromosikan barang fesyen.',
    # optimize_instructions=True,
    stream=True
)
for chunk in response:
    print(chunk)

Java

// Versi SDK DashScope 2.19.0 atau lebih baru
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.utils.JsonUtils;
import io.reactivex.Flowable;
import com.alibaba.dashscope.utils.Constants;

public class Main {
    // Untuk menggunakan kontrol instruksi, atur MODEL ke qwen3-tts-instruct-flash
    private static final String MODEL = "qwen3-tts-flash";
    public static void streamCall() throws ApiException, NoApiKeyException, UploadFileException {
        MultiModalConversation conv = new MultiModalConversation();
        MultiModalConversationParam param = MultiModalConversationParam.builder()
                .model(MODEL)
                // Kunci API berbeda antara wilayah Singapura dan Beijing. Dapatkan kunci API Anda: https://www.alibabacloud.com/help/en/model-studio/get-api-key
                // Jika Anda belum mengatur variabel lingkungan, ganti baris berikut dengan: .apiKey("sk-xxx")
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                .text("Hari ini adalah hari yang luar biasa untuk membangun sesuatu yang dicintai orang!")
                .voice(AudioParameters.Voice.CHERRY)
                .languageType("English")
                // Untuk menggunakan kontrol instruksi, hapus komentar baris di bawah dan atur model ke qwen3-tts-instruct-flash
                // .parameter("instructions","Bicara dengan cepat menggunakan intonasi naik yang jelas, cocok untuk mempromosikan barang fesyen.")
                // .parameter("optimize_instructions",true)
                .build();
        Flowable<MultiModalConversationResult> result = conv.streamCall(param);
        result.blockingForEach(r -> {System.out.println(JsonUtils.toJson(r));
        });
    }
    public static void main(String[] args) {
        // URL berikut untuk wilayah Singapura. Jika Anda menggunakan model di wilayah 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

# ======= Pemberitahuan penting =======
# URL berikut untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Beijing, ganti URL dengan: https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation
# Kunci API berbeda antara wilayah Singapura dan Beijing. Dapatkan kunci API Anda: https://www.alibabacloud.com/help/en/model-studio/get-api-key
# Jika Anda belum mengatur variabel lingkungan, ganti $DASHSCOPE_API_KEY dengan Kunci API Model Studio Anda: sk-xxx.
# === Hapus komentar ini sebelum menjalankan ===

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": "Izinkan saya merekomendasikan sebuah kaos kepada Anda. Kaos ini benar-benar menakjubkan. Warnanya menonjolkan keanggunan Anda dan menjadikannya padanan ideal untuk pakaian apa pun. Anda dapat membelinya tanpa ragu—kaos ini terlihat bagus pada semua orang. Kaos ini menyanjung semua tipe tubuh. Baik Anda tinggi, pendek, langsing, atau berlekuk, kaos ini sangat cocok untuk Anda. Kami sangat merekomendasikan Anda memesannya.",
        "voice": "Cherry",
        "language_type": "Chinese"
    }
}'
Untuk memutar audio yang dikodekan Base64 secara real time, lihat Sintesis suara - Qwen.

model string (Wajib)

Nama model. Untuk detailnya, lihat Model yang didukung.

text string (Wajib)

Teks yang akan disintesis. Input campuran bahasa didukung. Qwen-TTS mendukung input maksimum 512 token. Model lain mendukung input maksimum 600 karakter.

voice string (Wajib)

Suara yang digunakan. Lihat Suara sistem yang didukung.

language_type string (Opsional)

Tentukan bahasa audio yang disintesis. Nilai default-nya adalah Auto.

  • Auto: Gunakan ini ketika bahasa teks tidak pasti atau berisi beberapa bahasa. Model secara otomatis mencocokkan pelafalan untuk segmen bahasa berbeda dalam teks, tetapi tidak dapat menjamin pelafalan yang sepenuhnya akurat.

  • Tentukan bahasa: Gunakan ini ketika teks hanya dalam satu bahasa. Menentukan bahasa secara eksplisit secara signifikan meningkatkan kualitas sintesis, biasanya lebih baik daripada Auto. Nilai yang didukung meliputi:

    • Chinese

    • English

    • German

    • Italian

    • Portuguese

    • Spanish

    • Japanese

    • Korean

    • French

    • Russian

instructions string (Opsional)

Berikan instruksi untuk membimbing sintesis suara. Lihat Sintesis suara real-time - Qwen.

Default: Tidak ada. Parameter ini tidak berpengaruh jika tidak diatur.

Batas panjang: Tidak boleh melebihi 1600 token.

Bahasa yang didukung: Hanya Chinese dan English.

Cakupan: Fitur ini hanya berlaku untuk seri model Qwen3-TTS-Instruct-Flash-Realtime.

optimize_instructions boolean (Opsional)

Optimalkan instructions untuk meningkatkan kealamian dan ekspresivitas sintesis suara.

Default: false.

Perilaku: Ketika diatur ke true, sistem secara semantik meningkatkan dan menulis ulang konten instructions untuk menghasilkan instruksi internal yang lebih sesuai untuk sintesis suara.

Skema penggunaan: Aktifkan ini untuk ekspresi suara berkualitas tinggi dan detail halus.

Ketergantungan: Parameter ini bergantung pada parameter instructions yang telah diatur. Jika instructions kosong, parameter ini tidak berpengaruh.

Cakupan: Fitur ini hanya berlaku untuk seri model Qwen3-TTS-Instruct-Flash.

stream boolean (Opsional) Default: false

Streaming respons. Nilai yang valid:

  • Mengembalikan URL audio setelah model selesai menghasilkan.

  • Mengeluarkan data audio yang dikodekan Base64 saat dihasilkan. Baca segmen-segmen ini satu per satu secara real time untuk mendapatkan hasil lengkapnya. Lihat Sintesis suara - Qwen.

Parameter ini hanya didukung oleh SDK Python. Untuk mencapai keluaran streaming dengan SDK Java, panggil antarmuka streamCall. Untuk mencapai keluaran streaming melalui HTTP, tentukan X-DashScope-SSE sebagai enable di header.

Return object (Sama untuk keluaran streaming dan non-streaming)

Qwen3-TTS-Flash

{
    "status_code": 200,
    "request_id": "5c63c65c-cad8-4bf4-959d-xxxxxxxxxxxx",
    "code": "",
    "message": "",
    "output": {
        "text": null,
        "finish_reason": "stop",
        "choices": null,
        "audio": {
            "data": "",
            "url": "http://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/1d/ab/20251218/d2033070/39b6d8f2-c0db-4daa-9073-5d27bfb66b78.wav?Expires=1766113409&OSSAccessKeyId=LTAI5xxxxxxxxxxxx&Signature=NOrqxxxxxxxxxxxx%3D",
            "id": "audio_5c63c65c-cad8-4bf4-959d-xxxxxxxxxxxx",
            "expires_at": 1766113409
        }
    },
    "usage": {
        "input_tokens": 0,
        "output_tokens": 0,
        "characters": 195
    }
}

Qwen-TTS

{
    "status_code": 200,
    "request_id": "f4e8139b-3203-4887-92cb-xxxxxxxxxxxx",
    "code": "",
    "message": "",
    "output": {
        "text": null,
        "finish_reason": "stop",
        "choices": null,
        "audio": {
            "data": "",
            "url": "http://dashscope-result-wlcb.oss-cn-wulanchabu.aliyuncs.com/1d/50/20251218/e6c1b9cc/9acec74e-e317-4dbd-9e76-745c47bcbf2d.wav?Expires=1766116806&OSSAccessKeyId=LTAxxxxxxxxx&Signature=afYZxxxxxxxxxxxx%2FAX9bk%3D",
            "id": "audio_f4e8139b-3203-4887-92cb-xxxxxxxxxxxx",
            "expires_at": 1766116806
        }
    },
    "usage": {
        "input_tokens": 76,
        "output_tokens": 1045,
        "characters": 0,
        "input_tokens_details": {
            "text_tokens": 76
        },
        "output_tokens_details": {
            "audio_tokens": 1045,
            "text_tokens": 0
        },
        "total_tokens": 1121
    }
}

status_code integer

Kode status HTTP. Mengikuti definisi standar RFC 9110. Contoh:
• 200: Permintaan berhasil. Hasil normal dikembalikan.
• 400: Kesalahan parameter permintaan klien.
• 401: Akses tidak sah.
• 404: Sumber daya tidak ditemukan.
• 500: Kesalahan server internal.

request_id string

ID unik permintaan. Gunakan ID ini untuk melacak dan memecahkan masalah.

code string

Menampilkan kode kesalahan ketika permintaan gagal (lihat Pesan kesalahan).

message string

Menampilkan pesan kesalahan ketika permintaan gagal (lihat Pesan kesalahan).

output object

Keluaran model.

Properti

text string

Selalu null. Abaikan bidang ini.

choices string

Selalu null. Abaikan bidang ini.

finish_reason string

Ada dua skenario:

  • "null": Saat proses generasi sedang berlangsung.

  • "stop": Ketika keluaran model berakhir secara alami atau ketika kondisi berhenti yang ditentukan dalam parameter input dipicu.

audio object

Informasi audio dari keluaran model.

Properti

url string

URL file audio lengkap yang dihasilkan model, berlaku selama 24 jam.

data string

Data audio yang dikodekan Base64 untuk keluaran streaming.

id string

ID yang sesuai dengan informasi audio yang dihasilkan model.

expires_at integer

Stempel waktu UNIX saat URL kedaluwarsa.

usage object

Informasi konsumsi token atau karakter untuk permintaan ini. Qwen-TTS mengembalikan informasi konsumsi token. Qwen3-TTS-Flash mengembalikan informasi konsumsi karakter.

Properti

input_tokens_details object

Informasi konsumsi token untuk teks input. Hanya Qwen-TTS yang mengembalikan bidang ini.

Properti

text_tokens integer

Jumlah token yang dikonsumsi oleh teks input.

total_tokens integer

Jumlah total token yang dikonsumsi oleh permintaan ini. Hanya Qwen-TTS yang mengembalikan bidang ini.

output_tokens integer

Jumlah token yang dikonsumsi oleh audio output. Untuk Qwen3-TTS-Flash, bidang ini selalu 0.

input_tokens integer

Jumlah token yang dikonsumsi oleh teks input. Untuk Qwen3-TTS-Flash, bidang ini selalu 0.

output_tokens_details object

Informasi konsumsi token untuk output. Hanya Qwen-TTS yang mengembalikan bidang ini.

Properti

audio_tokens integer

Jumlah token yang dikonsumsi oleh audio output.

text_tokens integer

Jumlah token yang dikonsumsi oleh teks output, saat ini tetap 0.

characters integer

Jumlah karakter dalam teks input. Hanya Qwen3-TTS-Flash yang mengembalikan bidang ini.

request_id string

ID permintaan ini.