All Products
Search
Document Center

Alibaba Cloud Model Studio:Voice cloning

Last Updated:Jun 26, 2026

Voice Cloning menghasilkan suara kustom yang sangat realistis dari sampel audio berdurasi 10 hingga 20 detik tanpa memerlukan pelatihan model.

Ikhtisar

Voice Cloning memungkinkan Anda membuat asisten suara personalisasi, siaran audio bermerek, dan narasi kustom.

Model Studio mendukung Voice Cloning melalui family model berikut:

  • CosyVoice: Buat voice melalui SDK DashScope atau API HTTP. Mendukung sintesis suara dan non-real-time. Tersedia di wilayah China (Beijing) dan Singapura.

  • Qwen-TTS: Buat voice melalui API HTTP. Mendukung sintesis suara real-time dan non-real-time. Tersedia di wilayah China (Beijing) dan Singapura.

Untuk perbandingan mendetail dan panduan memilih family model, lihat Speech synthesis.

Prasyarat

  1. Konfigurasikan Kunci API dan tetapkan sebagai variabel lingkungan.

  2. Jika Anda memanggil API melalui SDK DashScope, instal SDK terbaru.

  3. Siapkan file audio yang memenuhi Persyaratan audio.

Memulai dengan cepat

Voice cloning mencakup tiga langkah:

  1. Siapkan audio: Siapkan file audio yang memenuhi Persyaratan audio.

  2. Buat voice: Panggil API Voice Cloning untuk mengunggah audio dan membuat voice. Pada parameter target_model, tentukan model sintesis suara yang akan di-bind ke voice tersebut.

  3. Sintesis suara: Panggil API sintesis suara dan masukkan ID voice yang dikembalikan saat Anda membuat voice tersebut.

CosyVoice voice cloning

Penting

CosyVoice voice cloning tersedia di wilayah China (Beijing) (seri v3.5, v3, v2, dan v1) dan wilayah Singapura (hanya 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.

URL wilayah China (Beijing). URL berbeda-beda tergantung wilayah.

URL wilayah Singapura. Ganti WorkspaceId dengan ID ruang kerja aktual Anda. URL berbeda-beda tergantung wilayah.

curl -X POST 'https://{WorkspaceId}.ap-southeast-1.maas.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"
    }
}'

Langkah 2: Sintesis suara dengan voice hasil kloning

Ganti voice_id dalam kode berikut dengan nilai yang dikembalikan pada langkah sebelumnya.

# coding=utf-8
import dashscope
from dashscope.audio.tts_v2 import *
import os
# Kunci API untuk wilayah Singapura dan Beijing berbeda. Untuk mendapatkan kunci API, kunjungi: https://www.alibabacloud.com/help/en/model-studio/get-api-key
# Jika variabel lingkungan tidak disetel, ganti baris berikut dengan Kunci API Model Studio Anda: dashscope.api_key = "sk-xxx"
dashscope.api_key = os.environ.get('DASHSCOPE_API_KEY')
# URL wilayah Singapura. Ganti WorkspaceId dengan ID ruang kerja aktual Anda. URL berbeda-beda tergantung wilayah.
dashscope.base_websocket_api_url='wss://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api-ws/v1/inference'
# Gunakan model yang sama untuk voice cloning dan sintesis suara
model = "cosyvoice-v3-plus"
# Ganti parameter voice dengan voice kustom yang dihasilkan dari kloning
voice = "voice_id"
# Buat instans SpeechSynthesizer dengan parameter model dan voice
synthesizer = SpeechSynthesizer(model=model, voice=voice)
# Kirim teks untuk sintesis dan dapatkan audio biner
audio = synthesizer.call("How is the weather today?")
# Panggilan pertama menimbulkan latensi tambahan untuk membangun koneksi WebSocket
print('[Metric] requestId: {}, first packet latency: {} ms'.format(
    synthesizer.get_last_request_id(),
    synthesizer.get_first_package_delay()))
# Simpan audio ke file lokal
with open('output.mp3', 'wb') as f:
    f.write(audio)

Qwen-TTS voice cloning

Contoh ini menggunakan file audio lokal voice.mp3. Sebelum menjalankan kode, ganti voice.mp3 dengan path ke file audio Anda.

Penting

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/en/model-studio/get-api-key
    # Jika variabel lingkungan tidak disetel, ganti baris berikut dengan Kunci API Model Studio 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 wilayah Singapura. Ganti WorkspaceId dengan ID ruang kerja aktual Anda. URL berbeda-beda tergantung wilayah.
    url = "https://{WorkspaceId}.ap-southeast-1.maas.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 wilayah Singapura. Ganti WorkspaceId dengan ID ruang kerja aktual Anda. URL berbeda-beda tergantung wilayah.
    dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'

    text = "How is the weather today?"
    response = dashscope.MultiModalConversation.call(
        model=DEFAULT_TARGET_MODEL,
        api_key=os.getenv("DASHSCOPE_API_KEY"),
        text=text,
        voice=create_voice(VOICE_FILE_PATH), # Ganti parameter voice dengan voice kustom yang dihasilkan dari kloning
        stream=False
    )
    print(response)

cURL

Ganti data dengan path aktual ke file audio Anda.

URL wilayah China (Beijing). URL berbeda-beda tergantung wilayah.

Langkah 1: Buat suara

URL wilayah Singapura. Ganti WorkspaceId dengan ID ruang kerja aktual Anda. URL berbeda-beda tergantung wilayah.

curl -X POST 'https://{WorkspaceId}.ap-southeast-1.maas.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": "https://xxx.wav"
        }
    }
}'

Langkah 2: Sintesis suara dengan voice hasil kloning

Ganti YOUR_VOICE_ID dengan nilai voice dari respons langkah sebelumnya.

URL wilayah China (Beijing). URL berbeda-beda tergantung wilayah.

URL wilayah Singapura. Ganti WorkspaceId dengan ID ruang kerja aktual Anda. URL berbeda-beda tergantung wilayah.

curl -X POST 'https://{WorkspaceId}.ap-southeast-1.maas.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"
    }
}'

Persyaratan audio

Kualitas audio input secara langsung memengaruhi hasil kloning. Setiap family model memiliki persyaratan audio yang berbeda. Siapkan sampel audio Anda sesuai 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 yang kontinu. 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 target_model:

  • cosyvoice-v2: Bahasa Mandarin, Inggris

  • cosyvoice-v3-flash: Bahasa Mandarin (Mandarin, Kanton, Timur Laut, Gansu, Guizhou, Henan, Hubei, Jiangxi, Minnan, Ningxia, Shanxi, Shaanxi, Shandong, Shanghainese, Sichuanese, Tianjin, Yunnan), Inggris, Prancis, Jerman, Jepang, Korea, Rusia, Portugis, Thailand, Indonesia, Vietnam

  • cosyvoice-v3-plus: Bahasa Tionghoa (Mandarin, Kanton, Timur Laut, Gansu, Guizhou, Henan, Hubei, Jiangxi, Minnan, Ningxia, Shanxi, Shaanxi, Shandong, Shanghai, Sichuan, Tianjin, Yunnan), Inggris, Prancis, Jerman, Jepang, Korea, Rusia

  • cosyvoice-v3.5-plus, cosyvoice-v3.5-flash: Bahasa Tionghoa (Mandarin, Kanton, Henan, Hubei, Minnan, Ningxia, Shaanxi, Shandong, Shanghai, Sichuan), Inggris, Prancis, Jerman, Jepang, Korea, Rusia, Portugis, Thailand, Indonesia, Vietnam

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 yang kontinu 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

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 yang kontinu. 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

Bahasa Mandarin, Inggris, Jerman, Italia, Portugis, Spanyol, Jepang, Korea, Prancis, Rusia

Catatan

Untuk hasil kloning terbaik, ikuti Tips perekaman saat menyiapkan sampel audio Anda.

Tips perekaman

Audio input berkualitas tinggi menghasilkan hasil kloning yang lebih baik.

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.

  • Lebih baik 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.

Naskah perekaman

  • Tidak ada batasan konten spesifik. Sesuaikan naskah 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 kontinu tanpa gangguan.

  • Pertahankan kecepatan konsisten selama perekaman. Berbicara terlalu cepat di awal atau akhir dapat menyebabkan suara tersendat pada hasil sintesis.

  • Sertakan ekspresi emosional alami — kehangatan, keramahan, atau keseriusan. Hindari penyampaian robotik.

  • Jangan sertakan konten sensitif seperti materi politik, seksual, atau kekerasan. Hal ini menyebabkan permintaan kloning gagal.

Alur kerja perekaman

Contoh berikut menggunakan kamar tidur biasa sebagai ruang perekaman. Selesaikan langkah-langkah pengurangan kebisingan dan kontrol gema yang dijelaskan di atas, lalu:

  1. Tinjau naskah, tentukan nada dan persona, lalu rekam secara alami.

  2. Pegang 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 melakukan kueri 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 di-bind.

  • Delete voices: Hapus voice kustom yang tidak lagi Anda perlukan untuk mengosongkan kuota.

Untuk titik akhir API dan detail parameter, lihat Referensi API.

Kuota dan penagihan

Kuota voice dan pembersihan otomatis

Batas total voice: Setiap akun Alibaba Cloud Model Studio memiliki batas terpisah sebanyak 1.000 voice kustom untuk CosyVoice dan 1.000 untuk Qwen-TTS. Kedua kuota dihitung secara independen.

Pembersihan otomatis: Jika voice tidak digunakan dalam permintaan sintesis suara apa pun selama satu tahun, sistem akan menghapusnya secara otomatis.

Aturan penagihan

  • CosyVoice: Pembuatan voice gratis.

  • Qwen-TTS: Setiap pembuatan voice dikenai biaya USD 0,01. Pembuatan yang gagal tidak dikenai biaya.

    Kuota gratis (wilayah Singapura saja):

    • Anda mendapatkan 1.000 pembuatan voice gratis selama 90 hari pertama setelah mengaktifkan Alibaba Cloud Model Studio.

    • Pembuatan yang gagal tidak mengurangi kuota gratis.

    • Menghapus voice tidak mengembalikan kuota gratis.

    • Setelah kuota gratis habis atau periode 90 hari berakhir, pembuatan voice ditagih sebesar USD 0,01 per voice.

Model dan 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)

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

Voice Cloning

FAQ

T: Dapatkah saya menggunakan voice yang telah dibuat dengan model sintesis suara berbeda?

Tidak. Voice di-bind ke 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.

T: Berapa lama voice hasil kloning tetap valid?

Voice yang dibuat dengan Qwen-TTS dan CosyVoice berlaku tanpa batas waktu secara default. Jika voice tidak digunakan selama satu tahun, sistem akan menghapusnya secara otomatis. Untuk detailnya, lihat Kuota voice dan pembersihan otomatis. Simpan ID voice Anda dan gunakan API kueri untuk memeriksa apakah voice masih tersedia.

T: Apakah kualitas audio yang buruk memengaruhi hasil kloning?

Ya. Kualitas audio input secara langsung memengaruhi hasil kloning. Kebisingan latar, gema, dan suara yang tumpang tindih semuanya mengurangi kemiripan dan kealamian voice hasil kloning. Ikuti Persyaratan audio dan Tips perekaman saat menyiapkan sampel audio Anda.