Voice Cloning menghasilkan voice kustom yang sangat realistis dari sampel audio berdurasi 10 hingga 20 detik, tanpa memerlukan pelatihan model.
Ikhtisar
Voice Cloning menghasilkan voice kustom dari sampel audio berdurasi minimal 10 hingga 20 detik—tanpa memerlukan pelatihan model. Fitur ini dapat digunakan untuk membangun asisten suara personalisasi, siaran audio bermerek, dan narasi kustom.
Model Studio mendukung Voice Cloning melalui family model berikut:
-
CosyVoice: Buat voice melalui DashScope SDK atau HTTP API. Mendukung sintesis suara dan non-real-time. Tersedia di wilayah China (Beijing) dan Singapura.
-
Qwen-TTS: Buat voice melalui HTTP API. Mendukung sintesis suara real-time dan non-real-time. Tersedia di wilayah China (Beijing) dan Singapura.
Untuk perbandingan detail dan panduan memilih family model, lihat Speech synthesis.
Prasyarat
-
Konfigurasikan Kunci API dan tetapkan sebagai variabel lingkungan.
-
Jika Anda memanggil API melalui DashScope SDK, instal SDK terbaru.
-
Siapkan file audio yang memenuhi Persyaratan Audio.
Panduan cepat
Voice cloning mencakup tiga langkah:
-
Siapkan audio: Siapkan file audio yang memenuhi Persyaratan Audio.
-
Buat voice: Panggil API Voice Cloning untuk mengunggah audio. Sistem mengekstraksi karakteristik suara dan menghasilkan voice kustom. Tentukan model sintesis suara target dalam parameter
target_modelsaat membuat voice. -
Sintesis suara dengan voice tersebut: Panggil API sintesis suara dan berikan ID voice yang dikembalikan saat pembuatan voice. Model yang digunakan untuk sintesis harus sesuai dengan nilai
target_modelyang ditetapkan saat Anda membuat voice; jika tidak, sintesis akan gagal.
Qwen-TTS voice cloning
Contoh berikut menunjukkan alur kerja lengkap voice cloning: unggah file audio untuk membuat voice, lalu gunakan voice tersebut untuk sintesis suara. Contoh ini menggunakan file audio lokal voice.mp3. Ganti voice.mp3 dengan path aktual ke file audio Anda sebelum menjalankan kode.
target_model yang ditetapkan saat pembuatan voice harus persis sama dengan model yang digunakan untuk sintesis suara. Jika tidak, sintesis akan gagal.
Python
import os
import requests
import base64
import pathlib
import dashscope
# ======= Constants =======
DEFAULT_TARGET_MODEL = "qwen3-tts-vc-2026-01-22" # Gunakan model yang sama untuk voice cloning dan sintesis suara
DEFAULT_PREFERRED_NAME = "guanyu"
DEFAULT_AUDIO_MIME_TYPE = "audio/mpeg"
VOICE_FILE_PATH = "voice.mp3" # Path relatif ke file audio lokal yang digunakan untuk voice cloning
def create_voice(file_path: str,
target_model: str = DEFAULT_TARGET_MODEL,
preferred_name: str = DEFAULT_PREFERRED_NAME,
audio_mime_type: str = DEFAULT_AUDIO_MIME_TYPE) -> str:
"""
Buat voice kustom dan kembalikan parameter voice.
"""
# Kunci API untuk wilayah Singapura dan Beijing berbeda. Untuk mendapatkan Kunci API, kunjungi: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
# Jika variabel lingkungan tidak disetel, ganti baris berikut dengan Kunci API Studio Model Anda: api_key = "sk-xxx"
api_key = os.getenv("DASHSCOPE_API_KEY")
file_path_obj = pathlib.Path(file_path)
if not file_path_obj.exists():
raise FileNotFoundError(f"File audio tidak ditemukan: {file_path}")
base64_str = base64.b64encode(file_path_obj.read_bytes()).decode()
data_uri = f"data:{audio_mime_type};base64,{base64_str}"
# 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,
"audio": {"data": data_uri}
}
}
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"Gagal membuat voice: {resp.status_code}, {resp.text}")
try:
return resp.json()["output"]["voice"]
except (KeyError, ValueError) as e:
raise RuntimeError(f"Gagal mengurai respons voice: {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'
text = "How is the weather today?"
response = dashscope.MultiModalConversation.call(
model=DEFAULT_TARGET_MODEL,
# Kunci API untuk wilayah Singapura dan Beijing berbeda. Untuk mendapatkan Kunci API, kunjungi: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
# Jika variabel lingkungan tidak disetel, ganti baris berikut dengan Kunci API Studio Model Anda: api_key = "sk-xxx"
api_key=os.getenv("DASHSCOPE_API_KEY"),
text=text,
voice=create_voice(VOICE_FILE_PATH), # Ganti parameter voice dengan voice kustom yang dihasilkan oleh cloning
stream=False
)
print(response)
cURL
Voice cloning dengan cURL adalah proses dua langkah: buat voice, lalu gunakan untuk mensintesis suara.
Langkah 1: Buat voice
# Ganti voice.mp3 dengan path aktual ke file audio Anda
# URL di bawah mengarah ke wilayah Singapura. Jika Anda menggunakan model di wilayah China (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
AUDIO_BASE64=$(base64 -i voice.mp3)
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-vc-2026-01-22",
"preferred_name": "guanyu",
"audio": {"data": "data:audio/mpeg;base64,'$AUDIO_BASE64'"}
}
}'
Langkah 2: Sintesis suara dengan voice hasil cloning
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 China (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-vc-2026-01-22",
"input": {
"text": "How is the weather today?",
"voice": "YOUR_VOICE_ID"
}
}'
CosyVoice voice cloning
Voice cloning CosyVoice menggunakan API Voice Cloning khusus. Alur kerjanya sama: buat voice, lalu sintesis suara dengannya.
Voice cloning CosyVoice hanya tersedia di wilayah China (Beijing) (seri v3.5/v2/v1) dan wilayah Singapura (seri v3).
Langkah 1: Buat suara
Panggil API Voice Cloning untuk mengunggah file audio dan membuat voice. Parameter url adalah URL yang dapat diakses dari file audio; prefix menetapkan awalan untuk nama voice.
# Ganti url dengan URL publik yang dapat diakses dari file audio Anda
# URL di bawah mengarah ke wilayah Singapura. Jika Anda menggunakan model di wilayah China (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-plus",
"prefix": "myvoice",
"url": "https://your-audio-url.wav",
"language_hints": ["en"]
}
}'
Langkah 2: Sintesis suara dengan voice hasil cloning
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 China (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-plus",
"input": {
"text": "How is the weather today?",
"voice": "YOUR_VOICE_ID",
"format": "wav",
"sample_rate": 24000
}
}'
Persyaratan Audio
Kualitas audio input secara langsung memengaruhi hasil cloning. Setiap family model memiliki persyaratan audio yang berbeda. Siapkan sampel audio Anda sesuai dengan persyaratan model target.
CosyVoice
|
Item |
Persyaratan |
|
Format yang didukung |
WAV (16-bit), MP3, M4A |
|
Durasi |
Disarankan 10 hingga 20 detik. Maksimal 60 detik. |
|
Ukuran file |
Maksimal 10 MB |
|
Laju sampel |
16 kHz atau lebih tinggi |
|
Saluran |
Mono atau stereo. Untuk audio stereo, hanya saluran pertama yang diproses. Pastikan saluran pertama berisi ucapan yang valid. |
|
Konten |
Audio harus berisi minimal 5 detik ucapan jelas dan berkelanjutan. Jeda singkat pada bagian sisanya tidak boleh melebihi 2 detik. Hindari musik latar, kebisingan ambient, atau suara lain. Gunakan audio ucapan dengan kecepatan normal; jangan unggah lagu atau rekaman bernyanyi. |
|
Bahasa yang didukung |
Bervariasi tergantung model sintesis suara yang ditentukan melalui parameter
|
Qwen-TTS
|
Item |
Persyaratan |
|
Format yang didukung |
WAV (16-bit), MP3, M4A |
|
Durasi |
Disarankan 10 hingga 20 detik. Maksimal 60 detik. |
|
Ukuran file |
Kurang dari 10 MB |
|
Laju sampel |
24 kHz atau lebih tinggi |
|
Saluran |
Mono |
|
Konten |
Audio harus berisi minimal 3 detik ucapan jelas dan berkelanjutan. Jeda singkat pada bagian sisanya tidak boleh melebihi 2 detik. Hindari musik latar, kebisingan ambient, atau suara lain. Gunakan audio ucapan dengan kecepatan normal; jangan unggah lagu atau rekaman bernyanyi. |
|
Bahasa yang didukung |
Mandarin, Inggris, Jerman, Italia, Portugis, Spanyol, Jepang, Korea, Prancis, Rusia |
MiniMax
|
Item |
Persyaratan |
|
Format yang didukung |
MP3, M4A, WAV |
|
Durasi |
Minimal 10 detik. Maksimal 5 menit. |
|
Ukuran file |
Maksimal 20 MB |
|
Konten |
Audio harus berisi ucapan jelas dan berkelanjutan tanpa suara latar. Jeda tidak boleh melebihi 2 detik. Hindari musik latar, kebisingan ambient, atau suara lain selama perekaman. Gunakan audio ucapan dengan kecepatan normal. Jangan unggah rekaman lagu atau bernyanyi. |
|
Bahasa yang didukung |
Tidak ada batasan |
Untuk hasil cloning terbaik, ikuti Tips Perekaman saat menyiapkan sampel audio Anda.
Tips Perekaman
Audio input berkualitas tinggi menghasilkan hasil cloning yang lebih baik. Bagian berikut memberikan panduan tentang peralatan perekaman, lingkungan, konten skrip, dan alur kerja perekaman.
Peralatan perekaman
Gunakan smartphone, perekam suara digital, atau perangkat perekaman profesional. Untuk hasil terbaik, gunakan perangkat dengan laju sampel 24 kHz atau lebih tinggi.
Lingkungan perekaman
Lokasi
-
Rekam di ruang tertutup kecil berukuran maksimal 10 meter persegi.
-
Pilih ruangan dengan material penyerap suara seperti busa akustik, karpet, atau gorden.
-
Hindari aula terbuka, ruang konferensi, ruang kelas, dan ruang lain dengan gema tinggi.
Kontrol kebisingan
-
Kebisingan luar ruangan: Tutup pintu dan jendela untuk menghalangi suara lalu lintas, konstruksi, dan suara eksternal lainnya.
-
Kebisingan dalam ruangan: Matikan AC, kipas angin, ballast lampu neon, dan peralatan lainnya. Untuk mengidentifikasi sumber kebisingan tersembunyi, rekam beberapa detik suara ambient dan putar kembali dengan volume lebih tinggi.
Kontrol gema
-
Gema mengaburkan suara dan mengurangi kejelasan.
-
Kurangi pantulan dari permukaan halus: tutup gorden, buka pintu lemari, dan letakkan pakaian atau selimut di atas meja dan lemari.
-
Gunakan benda berbentuk tidak beraturan seperti rak buku dan furnitur berlapis untuk menyebarkan suara.
Skrip perekaman
-
Tidak ada batasan konten khusus. Sesuaikan skrip dengan kasus penggunaan target jika memungkinkan.
-
Hindari frasa pendek seperti "Halo" atau "Ya." Gunakan kalimat lengkap.
-
Pertahankan koherensi konten dan hindari jeda sering. Usahakan minimal 3 detik ucapan berkelanjutan tanpa gangguan.
-
Pertahankan kecepatan konsisten sepanjang rekaman, termasuk di awal dan akhir. Berbicara terlalu cepat di awal atau akhir dapat menyebabkan suara tersendat pada sintesis suara.
-
Sertakan ekspresi emosional alami — kehangatan, keramahan, atau keseriusan. Hindari penyampaian yang kaku seperti robot.
-
Jangan sertakan konten sensitif seperti materi politik, seksual, atau kekerasan. Hal ini menyebabkan permintaan cloning gagal.
Alur kerja perekaman
Contoh berikut menggunakan kamar tidur khas sebagai ruang perekaman:
-
Tutup semua pintu dan jendela untuk menghalangi kebisingan eksternal.
-
Matikan AC, kipas angin, dan peralatan lainnya.
-
Tutup gorden untuk mengurangi pantulan kaca.
-
Letakkan pakaian atau selimut di atas meja untuk mengurangi pantulan permukaan.
-
Tinjau skrip, tentukan nada dan persona, lalu rekam secara alami.
-
Letakkan perangkat perekaman sekitar 10 cm dari mulut Anda untuk menghindari distorsi plosif atau sinyal lemah.
Manage custom voices
Setelah membuat voice dengan Qwen-TTS atau CosyVoice, Anda dapat mengkueri dan mengelola voice Anda melalui API.
-
List voices: Dapatkan daftar semua voice kustom di bawah akun Anda.
-
Get voice details: Lihat detail voice tertentu, seperti waktu pembuatan dan model sintesis suara yang terikat.
-
Delete voices: Hapus voice kustom yang tidak lagi Anda perlukan untuk mengosongkan kuota.
Untuk titik akhir API dan detail parameter, lihat Referensi API.
Model yang didukung
Model yang tersedia bervariasi berdasarkan 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.
Gunakan Kunci API wilayah Singapura saat memanggil model berikut:
-
CosyVoice: cosyvoice-v3-plus, cosyvoice-v3-flash
-
Qwen-TTS:
-
Qwen3-TTS-VC-Realtime: qwen3-tts-vc-realtime-2026-01-15 (snapshot terbaru), qwen3-tts-vc-realtime-2025-11-27 (snapshot)
-
Qwen3-TTS-VC: qwen3-tts-vc-2026-01-22 (snapshot terbaru)
-
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: China (Beijing).
Gunakan Kunci API wilayah China (Beijing) saat memanggil model berikut:
-
CosyVoice: cosyvoice-v3.5-plus, cosyvoice-v3.5-flash, cosyvoice-v3-plus, cosyvoice-v3-flash, cosyvoice-v2
-
Qwen-TTS:
-
Qwen3-TTS-VC-Realtime: qwen3-tts-vc-realtime-2026-01-15 (snapshot terbaru), qwen3-tts-vc-realtime-2025-11-27 (snapshot)
-
Qwen3-TTS-VC: qwen3-tts-vc-2026-01-22 (snapshot terbaru)
-
Referensi API
FAQ
Q: Dapatkah saya menggunakan voice yang telah dibuat dengan model sintesis suara yang berbeda?
Tidak. Voice terikat pada model sintesis suara tertentu melalui parameter target_model saat pembuatan voice dan tidak dapat digunakan lintas model. Untuk menggunakan rekaman audio yang sama dengan beberapa model, buat voice terpisah untuk setiap model.
Q: Berapa lama voice hasil cloning tetap valid?
Voice yang dibuat dengan Qwen-TTS dan CosyVoice berlaku tanpa batas waktu secara default. Namun, sistem dapat menghapus voice yang tidak digunakan dalam periode panjang. Simpan ID voice Anda dan gunakan API kueri untuk memverifikasi bahwa voice masih tersedia saat diperlukan.
Q: Apakah kualitas audio yang buruk memengaruhi hasil cloning?
Ya. Kualitas audio input secara langsung memengaruhi hasil cloning. Kebisingan latar, gema, dan suara yang tumpang tindih semuanya mengurangi kemiripan dan kealamian voice hasil cloning. Ikuti Persyaratan Audio dan Tips Perekaman saat menyiapkan sampel audio Anda.