API คัฟเวอร์จากคลิปต้นทาง

อัปเดต 2026-09-18 · ทีม Suno-API

คำอธิบายเอนด์พอยต์

คัฟเวอร์จากคลิปต้นทางใช้คลิปต้นทางที่คุณอัปโหลดไว้แล้ว หรือคลิปที่มีอยู่แล้ว มาใช้ซ้ำ และสร้างเวอร์ชันคัฟเวอร์ใหม่จากคลิปนั้น

เอนด์พอยต์: POST /api/music/generate-from-source

ค่าบริการ: มีค่าใช้จ่าย ปัจจุบันค่าเริ่มต้น 0.6 หยวนต่อครั้ง การอัปโหลดเสียงต้นทางเองไม่คิดค่าใช้จ่าย จะคิดค่าบริการเมื่อสร้างคัฟเวอร์จากคลิปต้นทาง ยอดหักจริงเป็นไปตามการตั้งราคาในระบบหลังบ้านปัจจุบัน

Max Mode / Variety: เอนด์พอยต์นี้รองรับพารามิเตอร์ทางเลือก max_mode และ variety (0-4) เมื่อเปิด max_mode ครั้งนี้จะคิดค่าบริการเป็น 2 เท่า (0.6 → 1.2 หยวนต่อครั้ง) ส่วน variety ไม่มีค่าใช้จ่ายเพิ่ม ความหมายและวิธีส่งดูได้ในหัวข้อ "พารามิเตอร์ขั้นสูง" ของ ภาพรวม API ใหม่

ระยะเวลารอและ timeout (สำคัญ): เอนด์พอยต์นี้เป็นแบบซิงโครนัส — คำสั่งจะถูกรับและส่งเข้าสู่การสร้างเมื่อคำตอบกลับมาเท่านั้น จากการวัด ส่วนใหญ่ตอบกลับภายใน 1-3 วินาที ประมาณ 10% เกิน 30 วินาที และนานที่สุดประมาณ 230 วินาที กรุณาตั้ง timeout ฝั่งไคลเอนต์ไว้ที่ 300 วินาทีขึ้นไป การไม่ได้รับคำตอบไม่ได้หมายความว่าไม่ได้สร้าง และอย่าลองซ้ำทันทีหลัง timeout (จะซ้ำคำสั่งและถูกหักเงินซ้ำ) หากการเชื่อมต่อขาด ให้ตรวจสอบภายหลังด้วย GET /api/music/songs ดูหัวข้อ "ระยะเวลารอและการตั้งค่า timeout" ใน ภาพรวม API ใหม่

วิธีใช้ที่แนะนำ: นี่คือขั้นที่ 2 ของ «คัฟเวอร์สองขั้น» ขั้นที่ 1 อัปโหลดด้วย API อัปโหลดเสียงต้นทาง (ฟรี) แล้วเก็บ clip_id ไว้ ขั้นที่ 2 เรียกเอนด์พอยต์นี้เพื่อเริ่มคัฟเวอร์ วิธีนี้ทำให้เสียงปรากฏเฉพาะในขั้นที่ฟรี: ถ้าอัปโหลดเสียก็ลองใหม่ได้เลย ไม่มีการหักเงิน ส่วนเนื้อคำขอของขั้นที่คิดเงินมีเพียงไม่กี่ร้อยไบต์ จึงแทบเป็นไปไม่ได้ที่จะล้มเหลวเพราะการรับส่งถูกตัดกลางทาง ส่วน API อัปโหลดแล้วคัฟเวอร์ในครั้งเดียว จะใส่เสียงทั้งไฟล์ลงในเนื้อคำขอ ดังนั้นเมื่อเสียงเกินประมาณ 8MB มักถูกตัดกลางทางและคืน unexpected end of JSON input (ดูหัวข้อ "ไฟล์ใหญ่และคำขอที่ถูกตัด" ในหน้านั้น)

นอกจากนี้ clip_id เดียวกันยังใช้ซ้ำกับ Extend, Replace Section, การแยกแทร็ก และงานต่อเนื่องอื่น ๆ ได้ ไม่ต้องอัปโหลดเสียงซ้ำ

พารามิเตอร์คำขอ

Headers

พารามิเตอร์ ชนิด จำเป็น หมายเหตุ
Authorization string ใช่ Bearer YOUR_API_KEY
Content-Type string ใช่ application/json

พารามิเตอร์บอดี

พารามิเตอร์ ชนิด จำเป็น ค่าเริ่มต้น หมายเหตุ
model string ไม่ suno-v6 ชื่อโมเดลสำหรับลูกค้า: suno-v6, suno-v6-wild หรือ suno-v6-mini
sourceClipId string ใช่ - ID คลิปต้นทาง ใช้ clip_id ที่ API อัปโหลดเสียงต้นทางคืนมา, song_id จริงของเพลงที่มีอยู่แล้ว หรือ song_id จริงที่คืนมาหลังอัปโหลดแบบเสริมความเสร็จสิ้น
sourceAudioUrl string ไม่ - URL ของเสียงต้นทาง
sourceTitle string ไม่ - ชื่อเสียงต้นทาง
prompt string ไม่ - เนื้อเพลงใหม่หรือทิศทางสร้างสรรค์
customMode boolean ไม่ true ใช้โหมดกำหนดเองหรือไม่
style string ไม่ - แท็กสไตล์
title string ไม่ - ชื่อเพลง
negativeTags string ไม่ - สไตล์เชิงลบ
instrumental boolean ไม่ false เป็นเพลงบรรเลงหรือไม่
waitAudio boolean ไม่ false รอให้เสียงเสร็จสิ้นหรือไม่
vocalGender string ไม่ - เพศของเสียงร้อง
lyricsMode string ไม่ - โหมดเนื้อเพลง
weirdnessConstraint number ไม่ - ความสุ่ม
styleWeight number ไม่ - น้ำหนักอิทธิพลของสไตล์
audio_weight number ไม่ - ระดับการพึ่งพาเสียงอ้างอิง ช่วง 0.0-1.0 ส่งได้เฉพาะเมื่อระบุคลิปต้นทางหรือเสียงอ้างอิง

weirdnessConstraint, styleWeight และ audio_weight รับค่าเป็นทศนิยมสัดส่วนตั้งแต่ 0.0 ถึง 1.0 ไม่ใช่จำนวนเต็มเปอร์เซ็นต์ เช่น 50% ให้เขียนเป็น 0.5 ค่า 0 ถือว่าใช้ได้ การเว้นฟิลด์ว่างเท่านั้นที่หมายถึง "ไม่ระบุ" audio_weight จะแมปไปยัง metadata.control_sliders.audio_weight ของ Suno และควบคุมว่าผลลัพธ์พึ่งพาเสียงอ้างอิงมากเพียงใด จะใส่ได้เฉพาะเมื่อในคำขอมี sourceClipId ที่ใช้ได้หรือมีเสียงอ้างอิง ดังนั้นอย่าส่งในการสร้างจากข้อความล้วนทั่วไป เมื่อ customMode=true ให้ใส่เนื้อเพลงใหม่ใน prompt และระบุ style กับ title พร้อมกัน เมื่อ customMode=false ให้ใส่คำอธิบายงานสร้างสรรค์ใน prompt instrumental และ waitAudio ต้องใช้ค่าบูลีน JSON true/false

เอนด์พอยต์นี้คืนค่าแบบอะซิงโครนัสโดยค่าเริ่มต้น เมื่อ status ที่คืนมาเป็น pending การที่ audio_url ว่างเป็นเรื่องปกติ กรุณารอให้เสร็จก่อนใช้ที่อยู่เสียง sourceClipId ต้องเป็น ID เพลง/คลิปต้นทางจริง ใช้ task_id, client_request_id หรือ ID ชั่วคราวแบบ pending: ไม่ได้

sourceClipId คือ ID อะไร

sourceClipId คือตัวระบุคลิป Suno จริงที่ใช้เป็นต้นทางของคัฟเวอร์ครั้งนี้ วัตถุเพลงสำหรับลูกค้าของแพลตฟอร์มมักเรียกตัวระบุนี้ว่า song_id ส่วนพารามิเตอร์คำขอคัฟเวอร์ยังใช้ชื่อ sourceClipId ในที่นี้ทั้งสองหมายถึง ID เพลงจริงเดียวกัน

ถ้าต้นทางมาจากการอัปโหลดแบบเสริมความ ให้สอบถามงานอัปโหลดแบบเสริมความก่อน รอจน status กลายเป็น completed แล้วนำ song_id จริงที่คืนมาใส่ใน sourceClipId ขอแนะนำให้ใส่ audio_url และ title ของผลลัพธ์นั้นลงใน sourceAudioUrl และ sourceTitle ด้วย

อย่าใส่ task_id, client_request_id หรือ ID ชั่วคราว pending:enhanced-upload:* ของการอัปโหลดแบบเสริมความลงใน sourceClipId

ตัวอย่างคำขอ

curl -X POST https://www.suno-api.io/api/music/generate-from-source \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "suno-v6",
    "sourceClipId": "uploaded_or_existing_clip_id",
    "sourceAudioUrl": "https://example.com/source.mp3",
    "sourceTitle": "ชื่อเสียงต้นฉบับ",
    "prompt": "เนื้อเพลงใหม่หรือทิศทางสร้างสรรค์",
    "customMode": true,
    "style": "Mandopop, warm vocal",
    "title": "ชื่อคัฟเวอร์",
    "negativeTags": "noise",
    "audio_weight": 0.5,
    "instrumental": false,
    "waitAudio": false
  }'

คำตอบ

{
  "code": 200,
  "message": "success",
  "data": {
    "clips": [
      {
        "song_id": "new_clip_id",
        "song_title": "ชื่อคัฟเวอร์",
        "status": "pending"
      }
    ],
    "source_update": {}
  }
}

ข้อควรระวัง

เอนด์พอยต์นี้จะจัดการปัญหาเจ้าของบัญชีของคลิปต้นทางให้มากที่สุด หากใช้คลิปต้นทางโดยตรงไม่ได้ เซิร์ฟเวอร์อาจอัปโหลดใหม่จากข้อมูลเสียงต้นทางแล้วจึงสร้างเพลง

ถัดไปAPI Extend (ต่อเพลง)

รับคีย์ API

สร้างคีย์ API ในคอนโซลหลังสมัครสมาชิก การสร้างหนึ่งครั้งราคา 0.6 หยวน ได้ 2 เพลง ดาวน์โหลดไม่จำกัด และไม่ต้องใช้เบอร์โทรศัพท์

รับคีย์ API กลับไปภาพรวม