Voice Design memungkinkan Anda membuat voice kustom hanya dari deskripsi suara—tanpa memerlukan sampel audio. Sebagai contoh, Anda dapat mendeskripsikan "suara perempuan muda yang lembut dengan laju berbicara sedang, cocok untuk narasi buku audio," dan sistem akan menghasilkan suara yang sesuai dengan deskripsi tersebut.
Overview
Voice Design membuat voice kustom berdasarkan deskripsi suara—tanpa memerlukan sampel audio. Fitur ini cocok untuk prototipe cepat, produksi konten kreatif, suara karakter game, dan keperluan serupa.
Model Studio menyediakan Voice Design melalui keluarga model berikut:
CosyVoice: Buat voice melalui HTTP API. Mendukung sintesis suara . Tersedia di wilayah Beijing dan Singapura.
Qwen-TTS: Buat voice melalui HTTP API. Mendukung sintesis suara real-time dan non-real-time. Tersedia di wilayah Beijing dan Singapura.
Jika Anda memiliki sampel audio dan ingin mereplikasi suara seseorang secara spesifik, lihat Voice cloning. Untuk perbandingan mendetail dan panduan pemilihan lintas keluarga model, lihat Speech synthesis.
Prerequisites
Konfigurasikan Kunci API dan tetapkan sebagai variabel lingkungan.
Jika Anda memanggil API melalui SDK DashScope, instal SDK terbaru.
Quick start
Alur kerja Voice Design mencakup tiga langkah: deskripsikan, buat, dan gunakan.
Tulis deskripsi suara: Jelaskan karakteristik suara yang Anda inginkan dalam bahasa alami. Untuk panduan lengkap, lihat Tulis deskripsi suara.
Buat voice: Panggil API Voice Design. Sistem akan menghasilkan voice berdasarkan deskripsi Anda dan mengembalikan audio pratinjau. Tinjau pratinjau sebelum menggunakan voice tersebut.
Sintesis suara dengan voice tersebut: Panggil API speech synthesis, masukkan ID voice untuk menghasilkan ucapan.
Qwen-TTS Voice Design
Contoh berikut mencakup seluruh alur kerja Voice Design: buat voice, dengarkan audio pratinjau, dan gunakan voice tersebut untuk sintesis suara.
Layanan Voice Design mengembalikan audio pratinjau. Dengarkan terlebih dahulu dan pastikan hasilnya sesuai harapan sebelum menggunakan voice tersebut untuk sintesis suara. Hal ini membantu menekan biaya API.
Python
import os
import requests
import dashscope
# ======= Constants =======
DEFAULT_TARGET_MODEL = "qwen3-tts-vd-2026-01-26" # Gunakan model yang sama untuk voice design dan speech synthesis
DEFAULT_PREFERRED_NAME = "custom_voice"
# Deskripsi suara: jelaskan karakteristik suara yang diinginkan dalam bahasa alami
VOICE_PROMPT = "A young, lively female voice with a fast speaking pace and a noticeable rising intonation, suitable for introducing fashion products."
def create_voice_by_design(voice_prompt: str,
target_model: str = DEFAULT_TARGET_MODEL,
preferred_name: str = DEFAULT_PREFERRED_NAME) -> str:
"""
Buat timbre suara melalui deskripsi suara dan kembalikan parameter voice
"""
# Kunci API untuk wilayah Singapura dan Beijing berbeda. Dapatkan Kunci API: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
# Jika tidak ada variabel lingkungan yang dikonfigurasi, ganti baris berikut dengan Kunci API Model Studio Anda: api_key = "sk-xxx"
api_key = os.getenv("DASHSCOPE_API_KEY")
# URL berikut untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Beijing, ganti URL dengan: https://dashscope.aliyuncs.com/api/v1/services/audio/tts/customization
url = "https://dashscope-intl.aliyuncs.com/api/v1/services/audio/tts/customization"
payload = {
"model": "qwen-voice-enrollment", # Jangan ubah nilai ini
"input": {
"action": "create",
"target_model": target_model,
"preferred_name": preferred_name,
"voice_prompt": voice_prompt
}
}
headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json"
}
resp = requests.post(url, json=payload, headers=headers)
if resp.status_code != 200:
raise RuntimeError(f"Failed to create voice: {resp.status_code}, {resp.text}")
result = resp.json()
preview_audio = result.get("output", {}).get("preview_audio")
if preview_audio:
print(f"Preview audio URL: {preview_audio}")
try:
return result["output"]["voice"]
except (KeyError, ValueError) as e:
raise RuntimeError(f"Failed to parse voice response: {e}")
if __name__ == '__main__':
# 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'
voice_id = create_voice_by_design(VOICE_PROMPT)
print(f"Created voice ID: {voice_id}")
text = "Hello everyone, welcome to our live stream! The product we are recommending today is truly amazing."
response = dashscope.MultiModalConversation.call(
model=DEFAULT_TARGET_MODEL,
# Kunci API untuk wilayah Singapura dan Beijing berbeda. Dapatkan Kunci API: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
# Jika tidak ada variabel lingkungan yang dikonfigurasi, ganti baris berikut dengan Kunci API Model Studio Anda: api_key = "sk-xxx"
api_key=os.getenv("DASHSCOPE_API_KEY"),
text=text,
voice=voice_id,
stream=False
)
print(response)cURL
Langkah 1: Buat voice
# URL di bawah mengarah ke wilayah Singapura. Jika Anda menggunakan model di wilayah Tiongkok (Beijing), ganti dengan: https://dashscope.aliyuncs.com/api/v1/services/audio/tts/customization
# Catatan: Kunci API berbeda antara wilayah Singapura dan Beijing. Untuk mendapatkan Kunci API, kunjungi: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
curl -X POST 'https://dashscope-intl.aliyuncs.com/api/v1/services/audio/tts/customization' \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "qwen-voice-enrollment",
"input": {
"action": "create",
"target_model": "qwen3-tts-vd-2026-01-26",
"preferred_name": "custom_voice",
"voice_prompt": "A composed middle-aged male announcer with a deep, rich and magnetic voice, a steady speaking speed and clear articulation, is suitable for news broadcasting or documentary commentary."
}
}'Langkah 2: Sintesis suara
Ganti voice pada permintaan berikut dengan nilai yang dikembalikan pada langkah sebelumnya.
# Ganti YOUR_VOICE_ID dengan nilai voice yang dikembalikan pada langkah sebelumnya
# URL di bawah mengarah ke wilayah Singapura. Jika Anda menggunakan model di wilayah Tiongkok (Beijing), ganti dengan: https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation
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-vd-2026-01-26",
"input": {
"text": "Dear listeners, hello everyone. Welcome to the evening news.",
"voice": "YOUR_VOICE_ID"
}
}'CosyVoice Voice Design
CosyVoice juga membuat voice dari deskripsi suara. Alur kerjanya sama seperti Qwen-TTS Voice Design.
CosyVoice Voice Design hanya tersedia di wilayah Beijing (seri v3.5) dan wilayah Singapura (seri v3).
Langkah 1: Buat voice
Panggil API Voice Cloning/Design. Masukkan deskripsi suara dalam parameter voice_prompt dan tentukan teks untuk audio pratinjau dalam parameter preview_text.
# URL di bawah mengarah ke wilayah Singapura. Jika Anda menggunakan model di wilayah Tiongkok (Beijing), ganti dengan: https://dashscope.aliyuncs.com/api/v1/services/audio/tts/customization
# Untuk mendapatkan Kunci API, kunjungi: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
curl -X POST https://dashscope-intl.aliyuncs.com/api/v1/services/audio/tts/customization \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "voice-enrollment",
"input": {
"action": "create_voice",
"target_model": "cosyvoice-v3.5-plus",
"voice_prompt": "A composed middle-aged male announcer with a deep, rich and magnetic voice, a steady speaking speed and clear articulation, is suitable for news broadcasting or documentary commentary.",
"preview_text": "Dear listeners, hello everyone. Welcome to the evening news.",
"prefix": "announcer",
"language_hints": ["zh"]
},
"parameters": {
"sample_rate": 24000,
"response_format": "wav"
}
}'Langkah 2: Sintesis suara
Ganti voice pada permintaan berikut dengan nilai yang dikembalikan pada langkah sebelumnya.
# Ganti YOUR_VOICE_ID dengan nilai voice yang dikembalikan pada langkah sebelumnya
# URL di bawah mengarah ke wilayah Singapura. Jika Anda menggunakan model di wilayah Tiongkok (Beijing), ganti dengan: https://dashscope.aliyuncs.com/api/v1/services/audio/tts/SpeechSynthesizer
curl -X POST https://dashscope-intl.aliyuncs.com/api/v1/services/audio/tts/SpeechSynthesizer \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "cosyvoice-v3.5-plus",
"input": {
"text": "Dear listeners, hello everyone. Welcome to the evening news.",
"voice": "YOUR_VOICE_ID",
"format": "wav",
"sample_rate": 24000
}
}'Tulis deskripsi suara
Deskripsi suara (voice_prompt) menentukan kualitas voice yang dihasilkan. Deskripsi yang jelas dan spesifik membantu model menghasilkan voice yang lebih sesuai dengan maksud Anda.
Persyaratan dan batasan
Batas panjang: Panjang maksimum
voice_promptbervariasi tergantung model: hingga 500 karakter untuk CosyVoice dan hingga 2.048 karakter untuk Qwen-TTS.Bahasa yang didukung: Deskripsi suara hanya mendukung bahasa Mandarin dan Inggris.
Prinsip utama
Bersifat spesifik, bukan samar: Gunakan istilah deskriptif untuk karakteristik suara, seperti "dalam," "jernih," atau "cepat." Hindari istilah subjektif atau samar seperti "menyenangkan" atau "biasa."
Bersifat multidimensi: Deskripsi yang baik mencakup beberapa dimensi (seperti jenis kelamin, usia, dan emosi). Deskripsi seperti "suara perempuan" saja terlalu umum untuk menghasilkan voice yang khas.
Bersifat objektif, bukan subjektif: Fokus pada karakteristik yang objektif dan terukur. Misalnya, gunakan "nada tinggi dengan intonasi energik" daripada "suara favorit saya."
Bersifat orisinal, bukan imitatif: Jelaskan karakteristik suara, bukan meminta peniruan terhadap orang tertentu (seperti selebriti atau aktor). Model tidak mendukung peniruan, dan permintaan semacam itu dapat menimbulkan masalah hak cipta.
Bersifat ringkas, bukan redundan: Pastikan setiap kata bernilai. Hindari pengulangan sinonim atau penambahan modifier yang tidak perlu.
Dimensi deskripsi
Gabungkan dimensi berikut untuk mendeskripsikan suara. Semakin banyak dimensi yang Anda sertakan, semakin akurat hasilnya.
Dimensi | Contoh |
Gender | Male, female, neutral |
Usia | Child (5-12), teenager (13-18), young adult (19-35), middle-aged (36-55), elderly (55+) |
Pitch | High, mid, low, slightly high, slightly low |
Laju berbicara | Fast, moderate, slow, slightly fast, slightly slow |
Emosi | Cheerful, calm, gentle, serious, lively, composed, soothing |
Karakteristik | Magnetic, crisp, husky, smooth, sweet, rich, powerful |
Kasus penggunaan | News broadcasting, advertisement voice-over, audiobook, animated character, voice assistant, documentary narration |
Contoh
Gaya penyiaran standar: pelafalan jelas dan tepat, artikulasi baik
Suara perempuan muda yang hidup dengan laju berbicara cepat, intonasi naik yang jelas, cocok untuk perkenalan produk fesyen
Pria paruh baya yang tenang dengan laju berbicara lambat, suara dalam dan magnetis, cocok untuk penyiaran berita atau narasi dokumenter
Perempuan lembut dan intelektual, sekitar 30 tahun, nada merata, cocok untuk narasi buku audio
Suara anak lucu, kira-kira perempuan berusia 8 tahun, nada sedikit kekanak-kanakan, cocok untuk pengisi suara karakter animasi
Manage custom voices
Voice yang dibuat melalui Voice Design dan Voice Cloning menggunakan API manajemen yang sama. Anda dapat menampilkan daftar voice, melihat detail voice, atau menghapus voice yang tidak lagi diperlukan.
Untuk detail endpoint API dan parameter, lihat API reference.
Supported scope
Ketersediaan model bervariasi tergantung wilayah penerapan.
Internasional
Jika Anda memilih cakupan penerapan Internasional, sumber daya komputasi inferensi model dijadwalkan secara dinamis di seluruh dunia, kecuali Tiongkok daratan. Data statis disimpan di wilayah yang Anda pilih. Wilayah yang didukung: Singapura.
Untuk memanggil model berikut, pilih Kunci API dari wilayah Singapura:
CosyVoice: cosyvoice-v3-plus, cosyvoice-v3-flash
Qwen-TTS:
Qwen3-TTS-VD-Realtime: qwen3-tts-vd-realtime-2026-01-15 (latest snapshot), qwen3-tts-vd-realtime-2025-12-16 (snapshot)
Qwen3-TTS-VD: qwen3-tts-vd-2026-01-26 (latest snapshot)
Tiongkok daratan
Jika Anda memilih cakupan penerapan Tiongkok daratan, sumber daya komputasi inferensi model dibatasi hanya di Tiongkok daratan. Data statis disimpan di wilayah yang Anda pilih. Wilayah yang didukung: Tiongkok (Beijing).
Untuk memanggil model berikut, pilih Kunci API dari wilayah Beijing:
CosyVoice: cosyvoice-v3.5-plus, cosyvoice-v3.5-flash, cosyvoice-v3-plus, cosyvoice-v3-flash
Qwen-TTS:
Qwen3-TTS-VD-Realtime: qwen3-tts-vd-realtime-2026-01-15 (latest snapshot), qwen3-tts-vd-realtime-2025-12-16 (snapshot)
Qwen3-TTS-VD: qwen3-tts-vd-2026-01-26 (latest snapshot)
Voice Design CosyVoice didukung oleh model FunAudioGen-VD.
Deskripsi suara yang sama dapat menghasilkan voice yang sedikit berbeda setiap kali. Hasilkan beberapa voice dan dengarkan masing-masing untuk menemukan yang paling sesuai.
API reference
FAQ
Q: Apakah deskripsi suara yang sama selalu menghasilkan voice yang sama?
Tidak selalu. Voice Design merupakan proses generatif, sehingga deskripsi yang sama dapat menghasilkan voice yang sedikit berbeda setiap kali. Hasilkan beberapa voice, dengarkan masing-masing, dan pilih yang paling sesuai.
Q: Bahasa apa saja yang dapat saya gunakan untuk deskripsi suara?
Saat ini, deskripsi suara (voice_prompt) hanya mendukung bahasa Mandarin dan Inggris. Namun, voice yang dihasilkan dapat mensintesis ucapan dalam berbagai bahasa.
Q: Apa perbedaan antara Voice Design dan Voice Cloning?
Voice Design membuat voice dari nol menggunakan deskripsi suara, tanpa memerlukan sampel audio. Fitur ini ideal untuk merancang identitas suara yang benar-benar baru. Voice Cloning mereplikasi suara dari sampel audio nyata dan paling cocok untuk mereproduksi suara seseorang secara spesifik. Untuk detail selengkapnya, lihat Voice cloning.