Skip to main content
Audio

Referensi API pembuatan audio

Kirim prompt teks dan audio referensi melalui HTTPS untuk menerima file audio yang dihasilkan. Halaman ini menjelaskan permintaan, respons, dan penanganan error.

Prasyarat

Dapatkan kunci API dan ID workspace. Tetapkan keduanya sebagai variabel lingkungan DASHSCOPE_API_KEY dan SFM_WORKSPACE_ID. Kirim permintaan POST HTTPS ke endpoint berikut. Ganti {WorkspaceId} dengan ID workspace Anda.
https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/audio/tts/SpeechSynthesizer
HeaderWajibDeskripsi
AuthorizationYaBearer <API Key>
Content-TypeYaapplication/json

Contoh permintaan

curl --request POST \
  "https://$SFM_WORKSPACE_ID.cn-beijing.maas.aliyuncs.com/api/v1/services/audio/tts/SpeechSynthesizer" \
  --max-time 300 \
  --header "Authorization: Bearer $DASHSCOPE_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "qwen-audio-3.1-tts-next",
    "input": {
      "text_prompt": "A woman clearly says: Hello, welcome.",
      "format": "wav",
      "sample_rate": 48000,
      "channels": 2
    }
  }'
Contoh respons, dengan ID ilustratif dan URL unduhan placeholder:
{
  "request_id": "example-request-id",
  "output": {
    "finish_reason": "stop",
    "audio": {
      "data": "",
      "url": "https://example.com/generated.wav",
      "id": "audio_example-request-id",
      "expires_at": 1789616932,
      "duration": 1.12
    }
  },
  "usage": {
    "duration": 1
  }
}
Unduh file menggunakan output.audio.url dari respons aktual. URL berlaku selama 24 jam. Jangan gunakan URL placeholder di atas untuk mengunduh audio.

Parameter permintaan

model adalah field tingkat atas. Semua parameter generasi berada dalam objek input.
FieldTipeWajibDefaultDeskripsi
modelstringYa—ID Model. Lihat Model yang didukung.
inputobjectYa—Input pembuatan audio.
input.text_promptstringYa—Deskripsi audio atau teks untuk disintesis. Gunakan @voice1, @voice2, dan @voice3 untuk mereferensikan klip audio secara berurutan. Batas panjang tercantum dalam tabel model.
input.referencesarrayTidak—Klip audio referensi. Abaikan untuk generasi teks saja. Model saat ini menerima hingga 3 klip, masing-masing tidak lebih dari 30 detik dan tidak lebih besar dari 10 MB.
input.references[].audio_urlstringKondisional—URL audio publik yang dapat diakses oleh layanan. Berikan field ini atau audio_data, jangan keduanya.
input.references[].audio_datastringKondisional—URI data audio: data:{mime_type};base64,{base64_encoded_data}. Saling eksklusif dengan audio_url.
input.formatstringTidakwavFormat output: wav, mp3, atau pcm. Output Opus tidak didukung.
input.sample_rateintegerTidak48000Laju sampel output dalam Hz: 8000, 16000, 24000, 44100, atau 48000.
input.channelsintegerTidak2Jumlah saluran: 1 (mono) atau 2 (stereo).
input.volumeintegerTidak50Volume. Rentang: [0, 100].
input.enable_cbrbooleanTidakfalseHanya MP3. true mengaktifkan bitrate konstan (CBR); false menggunakan bitrate variabel (VBR).
input.bit_rateintegerTidak128Hanya CBR MP3, dalam kbps. Output aktual bergantung pada laju sampel dan level bitrate MP3 yang didukung. Lihat di bawah.
input.qualityintegerTidak5Hanya VBR MP3. Rentang: [0, 9], di mana 0 adalah kualitas tertinggi.
input.ratefloatTidak1.0Kecepatan bicara. Rentang: [0.5, 2.0].
input.seedintegerTidak42Seed acak tingkat permintaan.
input.enable_aigc_tagbooleanTidakfalseApakah akan menambahkan watermark identifikasi AIGC ke audio yang dihasilkan.
Audio referensi mendukung WAV, MP3, dan OGG Opus, tetapi bukan PCM mentah. Format referensi dan output memiliki batasan yang berbeda: OGG Opus dapat digunakan sebagai input, tetapi Opus tidak dapat digunakan sebagai output. Kirim audio referensi melalui URL atau data Base64, bukan melalui ID suara sistem atau kloning.

Bitrate CBR MP3

Laju sampel (Hz)Bitrate output minimum (kbps)Bitrate output maksimum (kbps)
8000864
16000, 240008160
44100, 4800032320
Laju sampel dan level bitrate MP3 menentukan bitrate output. Tabel mencantumkan batas output, bukan dukungan untuk setiap bilangan bulat dalam setiap rentang. Nilai di luar rentang dibatasi ke batas yang sesuai.

Kirim audio referensi

Contoh Python ini menggunakan dua klip audio referensi untuk menghasilkan percakapan dua pembicara. Instal requests, siapkan reference1.wav dan reference2.wav, masing-masing berisi pembicara yang berbeda dan memenuhi batas model, serta tetapkan variabel lingkungan yang dijelaskan di atas. Slot mengikuti urutan daftar references: item pertama, reference1.wav, sesuai dengan @voice1; item kedua, reference2.wav, sesuai dengan @voice2. Contoh ini melakukan encoding Base64 pada setiap klip dan mereferensikan kedua pembicara dalam prompt.
import base64
import os
from pathlib import Path

import requests

reference1 = base64.b64encode(Path("reference1.wav").read_bytes()).decode("ascii")
reference2 = base64.b64encode(Path("reference2.wav").read_bytes()).decode("ascii")
workspace_id = os.environ["SFM_WORKSPACE_ID"]
endpoint = (
    f"https://{workspace_id}.cn-beijing.maas.aliyuncs.com"
    "/api/v1/services/audio/tts/SpeechSynthesizer"
)
response = requests.post(
    endpoint,
    headers={
        "Authorization": f"Bearer {os.environ['DASHSCOPE_API_KEY']}",
        "Content-Type": "application/json",
    },
    json={
        "model": "qwen-audio-3.1-tts-next",
        "input": {
            "text_prompt": "@voice1 says: It is sunny today. Shall we take a walk? @voice2 replies: Sure, let us go to the park.",
            "references": [
                {"audio_data": f"data:audio/wav;base64,{reference1}"},
                {"audio_data": f"data:audio/wav;base64,{reference2}"}
            ],
            "format": "wav",
        },
    },
    timeout=300,
)
response.raise_for_status()
result = response.json()
audio_response = requests.get(result["output"]["audio"]["url"], timeout=60)
audio_response.raise_for_status()
Path("output.wav").write_bytes(audio_response.content)
Untuk menggunakan URL, ganti item daftar dengan {"audio_url": "publicly accessible audio URL"} dan abaikan audio_data. Nomor referensi mengikuti urutan daftar dan harus merujuk ke item yang ada.

Parameter respons

FieldTipeDeskripsi
request_idstringID Permintaan untuk pemecahan masalah.
output.finish_reasonstring"stop" saat penyelesaian normal.
output.audio.datastringString kosong untuk mode permintaan ini. Unduh audio lengkap dari output.audio.url.
output.audio.urlstringURL unduhan audio lengkap, berlaku selama 24 jam.
output.audio.idstringID audio yang dihasilkan.
output.audio.expires_atintegerStempel waktu kedaluwarsa URL unduhan.
output.audio.durationfloatDurasi audio yang dihasilkan dalam detik.
usage.durationintegerDurasi audio yang dihasilkan dibulatkan ke detik terdekat. Field ini tidak digunakan untuk menghitung biaya token.
Permintaan podcast dapat menghasilkan audio hingga 240 detik (4 menit); skenario lain dibatasi hingga 120 detik per permintaan. Untuk harga, lihat Harga model.

Model yang didukung

ID ModelBatas promptDurasi hasil generasi maksimum per permintaan
qwen-audio-3.1-tts-next3,000 karakterPodcast: 240 detik (4 menit); skenario lain: 120 detik
Untuk kasus penggunaan, contoh audio, dan panduan prompt, lihat Pembuatan audio. Contoh dalam dokumen ini menggunakan model ini.

Penanganan error

Contoh respons error:
{
  "request_id": "example-request-id",
  "code": "CLIENT_ERROR",
  "message": "text_prompt exceeds the maximum length of 3000 characters."
}
Status HTTPkodeTindakan
400CLIENT_ERRORPeriksa panjang prompt, jumlah dan durasi referensi, eksklusivitas URL/Base64, indeks referensi, dan penggunaan field voice yang tidak didukung.
404InvalidParameterUntuk "Model tidak ada.", periksa ID model, wilayah, dan ketersediaan model untuk akun Anda.
401InvalidApiKeyPeriksa validitas kunci API.
403AccessDeniedPeriksa izin akses model.
429Throttling.RateQuotaKurangi laju permintaan.
400DataInspectionFailedPeriksa apakah prompt atau audio referensi memenuhi persyaratan keamanan konten.
500InternalErrorSimpan request_id dan coba lagi nanti atau hubungi dukungan teknis.
Pembuatan Gambar
  • FAQ
Video Generation
Model Dunia
Audio
  • Pembuatan audio
Realtime API
Penyematan Teks
TokenPlan
Model production