Buat suara kustom dari deskripsi bahasa alami, dengarkan pratinjaunya, lalu gunakan untuk sintesis suara.
Ikhtisar
Desain suara cocok untuk pembuatan prototipe cepat, produksi konten kreatif, dan pengisian suara karakter game.
CatatanSampel audio tidak diperlukan untuk membuat suara. Untuk mereproduksi suara dari sampel audio yang sudah ada, gunakan Kloning suara.
Persiapan
-
Dapatkan API key dan atur sebagai variabel lingkungan
DASHSCOPE_API_KEY. -
Dapatkan ID ruang kerja dan ganti
YOUR_WORKSPACE_IDdalam contoh dengan nilai tersebut. Untuk petunjuknya, lihat Wilayah, cakupan deployment layanan, dan endpoint. -
Instal DashScope SDK dan
requests:pip install -U dashscope requests
Mulai menggunakan
Qwen-Audio-TTS dan CosyVoice menggunakan alur pembuatan suara, pratinjau, dan sintesis dasar yang sama. Contoh berikut menggunakan qwen-audio-3.1-tts-flash.
- Buat suara: Atur deskripsi suara
voice_prompt, teks pratinjaupreview_text, dan model tujuantarget_modeluntuk mendapatkan ID suara. - Simpan audio pratinjau: Dekode
preview_audio.datayang dikembalikan, lalu simpan sebagai file WAV untuk didengarkan. - Sintesis suara: Gunakan
voice_idyang dikembalikan sebagaivoice, lalu lakukan sintesis dengan model yang terikat.
import base64
import os
import dashscope
import requests
from dashscope.audio.tts_v2 import AudioFormat, SpeechSynthesizer
api_key = os.environ["DASHSCOPE_API_KEY"]
workspace_id = "YOUR_WORKSPACE_ID"
target_model = "qwen-audio-3.1-tts-flash"
# Create a voice and save the returned preview audio.
response = requests.post(
f"https://{workspace_id}.cn-beijing.maas.aliyuncs.com/api/v1/services/audio/tts/customization",
headers={"Authorization": f"Bearer {api_key}"},
json={
"model": "voice-enrollment",
"input": {
"action": "create_voice",
"target_model": target_model,
"voice_prompt": "A calm middle-aged male announcer with a deep, resonant voice, steady speaking pace, and clear articulation, suited for news broadcasts or documentaries.",
"preview_text": "Good evening, everyone. Welcome to the evening news.",
"prefix": "announcer",
"language_hints": ["en"],
},
"parameters": {"sample_rate": 24000, "response_format": "wav"},
},
timeout=120,
)
response.raise_for_status()
output = response.json()["output"]
voice_id = output["voice_id"]
print(f"voice_id: {voice_id}")
with open("preview.wav", "wb") as f:
f.write(base64.b64decode(output["preview_audio"]["data"]))
# Synthesize speech with the same target model and the returned voice ID.
dashscope.api_key = api_key
dashscope.base_websocket_api_url = (
f"wss://{workspace_id}.cn-beijing.maas.aliyuncs.com/api-ws/v1/inference"
)
synthesizer = SpeechSynthesizer(
model=target_model,
voice=voice_id,
format=AudioFormat.WAV_24000HZ_MONO_16BIT,
)
audio = synthesizer.call("The weather is clear today, perfect for a walk outside. Have a wonderful day.")
with open("output.wav", "wb") as f:
f.write(audio)
Contoh menyimpan audio pratinjau ke preview.wav dan audio hasil sintesis ke output.wav. Simpan ID suara yang dicetak untuk panggilan sintesis suara berikutnya.
Untuk contoh permintaan HTTP, parameter opsional, dan field respons, lihat Referensi API desain suara. Untuk parameter sintesis, lihat Peristiwa klien Qwen-Audio-TTS.
Panduan penulisan deskripsi suara
Deskripsi suara (voice_prompt) menentukan karakteristik suara yang diinginkan. Deskripsi yang jelas dan spesifik membantu menghasilkan suara yang sesuai kebutuhan.
Panduan deskripsi
- Spesifik: Gunakan karakteristik suara seperti "berat", "jernih", atau "berbicara cepat". Hindari penilaian samar seperti "bagus" atau "biasa".
- Gabungkan beberapa dimensi: Jelaskan jenis kelamin, usia, nada, kecepatan, dan emosi. "Suara perempuan" saja tidak memberikan cukup detail untuk suara yang khas.
- Objektif: Jelaskan karakteristik yang dapat dirasakan, seperti "nada tinggi dan penuh energi", bukan preferensi subjektif seperti "suara favorit saya".
- Orisinal: Jelaskan karakteristik suara tanpa meminta peniruan orang tertentu, seperti selebritas atau aktor. Model tidak mendukung peniruan orang tertentu, dan permintaan tersebut dapat menimbulkan masalah hak cipta.
- Ringkas: Kurangi pengulangan sinonim dan kata penjelas yang tidak diperlukan.
Gabungkan dimensi berikut dalam deskripsi suara:
| Dimensi | Contoh |
|---|---|
Gender | Male, female, neutral |
Usia | Child (5-12), teenager (13-18), young adult (19-35), middle-aged (36-55), senior (55+) |
Pitch | High, medium, low, slightly high, slightly low |
Kecepatan | Fast, medium, slow, slightly fast, slightly slow |
Emosi | Cheerful, calm, gentle, serious, lively, composed, soothing |
Karakteristik | Resonant, crisp, husky, mellow, sweet, deep, powerful |
Kasus penggunaan | News broadcast, advertising, audiobook, animation character, voice assistant, documentary narration |
Contoh deskripsi
- Gaya siaran standar: artikulasi jelas dan tepat dengan pelafalan sempurna
- Voice perempuan muda dan hidup, berkecepatan cepat dengan intonasi naik yang jelas, cocok untuk presentasi produk fesyen
- Voice pria paruh baya tenang dan berkecepatan lambat, dalam dan resonan, cocok untuk membaca berita atau narasi dokumenter
- Perempuan lembut dan bijaksana, sekitar 30 tahun, nada merata, cocok untuk membaca buku audio
- Voice anak lucu, sekitar anak perempuan berusia 8 tahun, ucapan sedikit kekanak-kanakan, cocok untuk pengisi suara karakter animasi
CatatanDeskripsi yang sama dapat menghasilkan suara yang berbeda. Dengarkan audio pratinjau setelah pembuatan. Untuk membandingkan hasil, buat beberapa suara dan pilih yang paling sesuai.
Pengelolaan suara
- Daftar suara: Lihat suara kustom yang sudah ada.
- Kueri detail suara: Lihat model yang terikat, status suara, dan informasi lainnya.
- Hapus suara: Hapus suara yang tidak lagi diperlukan untuk mengosongkan kuota.
Untuk antarmuka dan parameter, lihat Referensi API desain suara.
Model yang didukung
Tiongkok (Beijing)
Gunakan API key dari wilayah ini untuk memanggil model berikut:
-
Qwen-Audio-TTS: qwen-audio-3.1-tts-plus, qwen-audio-3.1-tts-flash, qwen-audio-3.0-tts-plus, qwen-audio-3.0-tts-flash
-
CosyVoice: cosyvoice-v3.5-plus, cosyvoice-v3.5-flash, cosyvoice-v3-plus, cosyvoice-v3-flash
CatatanDesain suara CosyVoice didukung oleh model FunAudioGen-VD.
Kuota dan batasan
-
Jumlah suara: Setiap akun Alibaba Cloud Model Studio dapat memiliki hingga 1.000 suara kustom. Kloning suara dan desain suara berbagi kuota tingkat akun ini untuk semua model.
CatatanSaat batas tercapai, permintaan pembuatan baru melalui kloning suara atau desain suara akan gagal. Hapus suara yang tidak lagi diperlukan untuk mengosongkan kuota sebelum membuat suara baru.
-
Deskripsi suara:
voice_prompthanya mendukung bahasa Tionghoa dan Inggris, dengan panjang maksimum 500 karakter. -
Teks pratinjau:
preview_texthanya mendukung bahasa Tionghoa dan Inggris, dengan panjang 15–200 karakter. -
Pengikatan model: Saat dibuat, suara diikat ke model sintesis suara melalui
target_model. Gunakan model yang sama untuk sintesis berikutnya.
Suara yang dibuat dapat menyintesis ucapan dalam beberapa bahasa. Bahasa yang didukung bergantung pada model sintesis suara tujuan.
Penagihan
Pembuatan suara gratis.
Sintesis ucapan dengan suara yang didesain ditagih sesuai model sintesis suara tujuan. Untuk harga, lihat Harga model.