API แยกแทร็ก (เสียงร้องและดนตรีประกอบ)

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

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

การแยกแทร็กใช้แบ่งเพลงที่มีอยู่แล้วออกเป็นเสียงร้อง ดนตรีประกอบ หรือผลลัพธ์หลายแทร็ก ขั้นตอนการเชื่อมต่อที่แนะนำ:

  1. หากเสียงต้นทางไม่ใช่เพลงที่สร้างบนแพลตฟอร์มนี้ ให้เรียก API อัปโหลดเสียงต้นทาง ก่อน
  2. เรียก POST /api/music/separate เพื่อส่งงานแยกแทร็ก
  3. ใช้ API สอบถามเพลงและประวัติ ไล่ถามผลลัพธ์
  4. ใช้เอนด์พอยต์ดาวน์โหลดเพื่อดาวน์โหลดไฟล์เสียงของแต่ละผลลัพธ์

เอนด์พอยต์: POST /api/music/separate

ค่าบริการ: มีค่าใช้จ่าย stem_mode=two ปัจจุบันค่าเริ่มต้น 0.6 หยวนต่อครั้ง ส่วน stem_mode=twelve เป็นการแยกหลายแทร็ก ปัจจุบันค่าเริ่มต้น 3.0 หยวนต่อครั้ง ยอดหักจริงเป็นไปตามการตั้งราคาในระบบหลังบ้าน

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

การยืนยันตัวตน

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

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

พารามิเตอร์ ชนิด จำเป็น ค่าเริ่มต้น หมายเหตุ
song_id string ใช่ - ID เพลงต้นทางที่จะแยก
stem_mode string ใช่ - โหมดแยก: two หรือ twelve
source_audio_url string ไม่ - URL ของเสียงต้นทาง
source_file_name string ไม่ - ชื่อไฟล์เสียงต้นทาง
source_title string ไม่ - ชื่อเพลงต้นทาง

คำอธิบาย stem_mode

ค่า จำนวนที่คืน หมายเหตุ
two 4 รายการ แยกสองแทร็ก: เสียงร้อง + ดนตรีประกอบ หนึ่งครั้งจะได้ 2 เวอร์ชัน × 2 แทร็ก
twelve 24 รายการ แยกหลายแทร็ก: 2 เวอร์ชัน × 12 แทร็ก ชื่อแทร็กดูตารางด้านล่าง

คำอธิบายการแยกแทร็ก

การแยกแทร็กเป็นความสามารถคงที่และเป็นอิสระ ไม่ต้องกรอกหรือเลือกโมเดลสร้างเพลง ลูกค้าเพียงส่งเพลงต้นทางและ stem_mode เซิร์ฟเวอร์จะจัดการตามโหมด

จำนวนมาจากไหน: หนึ่งครั้งจะสร้าง 2 เวอร์ชัน (สองผลลัพธ์จากวัสดุชุดเดียวกัน) ดังนั้นจำนวน = 2 × จำนวนแทร็กของโหมดนั้น two คือ 4 รายการ twelve คือ 24 รายการ กรุณายึดความยาวจริงของอาร์เรย์ clips ในคำตอบ อย่าเขียนลูปตามจำนวนตายตัว (บางแทร็กอาจล้มเหลว ส่วนแทร็กที่สำเร็จยังคืนตามปกติ)

แต่ละโหมดคืนแทร็กใด

12 แทร็กของโหมด twelve (ชื่อถูกกำหนดตายตัวโดยแพลตฟอร์ม ลำดับอาจเปลี่ยนแปลง):

# ชื่อแทร็ก หมายเหตุ
1 (Vocals) เสียงร้องหลัก
2 (Backing Vocals) ประสาน / เสียงร้องประกอบ
3 (Drums) กลอง
4 (Bass) เบส
5 (Guitar) กีตาร์
6 (Keyboard) คีย์บอร์ด / เปียโน
7 (Percussion) เครื่องเคาะ
8 (Strings) เครื่องสาย
9 (Synth) ซินธ์
10 (FX) เอฟเฟกต์ / บรรยากาศ
11 (Brass) เครื่องทองเหลือง
12 (Woodwinds) เครื่องลมไม้

โหมด two คืนสองแทร็กคือ (Vocals) และ (Instrumental) แทร็กละ 2 เวอร์ชัน ชื่อแทร็กของ two และ twelve ล้วนเป็นชื่อตายตัว (ไม่มีชื่อเพลงต้นทาง) อย่าหวังว่าจะดูจากชื่อแล้วรู้ว่าเป็นเพลงไหน

ใช้ชื่อแทร็กเป็นคีย์เฉพาะไม่ได้ ในสองเวอร์ชันจะมีแทร็กชื่อซ้ำกัน (เช่น (Vocals) สองรายการ (Strings) สองรายการ) และการแยกหนึ่งครั้งคืนหลายแทร็ก กรุณาใช้ song_id เป็นตัวระบุเสมอ song_title ใช้เพียงแสดงผล และอย่าใช้ดัชนีอาร์เรย์ (ลำดับอาจเปลี่ยน)

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

แยกเสียงร้อง / ดนตรีประกอบ (stem_mode: "two")

curl -X POST https://www.suno-api.io/api/music/separate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "song_id": "source_clip_id",
    "stem_mode": "two",
    "source_audio_url": "https://example.com/source.mp3",
    "source_file_name": "source.mp3",
    "source_title": "Source Song"
  }'

แยกหลายแทร็ก (stem_mode: "twelve")

curl -X POST https://www.suno-api.io/api/music/separate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "song_id": "source_clip_id",
    "stem_mode": "twelve",
    "source_audio_url": "https://example.com/source.mp3"
  }'

คำตอบ

เมื่อสำเร็จมักคืนอาร์เรย์ของผลลัพธ์การแยก แต่ละผลลัพธ์เป็นคลิปเพลงอิสระ ต้องไล่ถามต่อจน status กลายเป็นสถานะเสร็จสิ้น

{
  "code": 200,
  "message": "success",
  "data": {
    "clips": [
      {
        "song_id": "stem_clip_id_1",
        "song_title": "(Vocals)",
        "status": "pending",
        "generation_type": "separate",
        "created_at": "2026-06-06T10:00:00Z"
      },
      {
        "song_id": "stem_clip_id_2",
        "song_title": "(Instrumental)",
        "status": "pending",
        "generation_type": "separate",
        "created_at": "2026-06-06T10:00:00Z"
      }
    ]
  }
}

ด้านบนแสดงเพียง 2 จาก 4 รายการ ของโหมด two จริง ๆ จะคืน 4 รายการ (2 เวอร์ชัน × {(Vocals), (Instrumental)}) โหมด twelve จะคืน 24 รายการ จำนวนจริงยึดความยาวของอาร์เรย์ clips

โดยทั่วไปลูกค้าเพียงเก็บ clips[].song_id การสอบถามและดาวน์โหลดต่อไปจะวนรอบ ID เหล่านี้

ข้อควรระวัง

สอบถามผลลัพธ์การแยก

เมื่อส่งสำเร็จ ให้ใช้ clips[].song_id เรียก POST /api/music/query เพื่อสอบถามผลลัพธ์

curl -X POST https://www.suno-api.io/api/music/query \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "song_ids": "stem_clip_id_1,stem_clip_id_2"
  }'

ตัวอย่างการสอบถามที่เสร็จสิ้น:

[
  {
    "song_id": "stem_clip_id_1",
    "song_title": "(Vocals)",
    "status": "complete",
    "audio_url": "https://...",
    "cover_url": "https://...",
    "duration": 180.5,
    "generation_type": "separate",
    "stem_from_id": "source_clip_id"
  }
]

ดาวน์โหลดไฟล์แทร็ก

เมื่อผลลัพธ์การแยกเสร็จสิ้น สามารถดาวน์โหลดไฟล์แทร็กเดียวได้ด้วยเอนด์พอยต์ดาวน์โหลด

เอนด์พอยต์: POST /api/music/download-file

curl -X POST https://www.suno-api.io/api/music/download-file \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "song_id": "stem_clip_id_1",
    "kind": "audio"
  }' \
  --output stem.mp3

kind ที่รองรับ:

kind หมายเหตุ
audio / song / music ดาวน์โหลดเสียง MP3
cover / image ดาวน์โหลดภาพปก
wav ดาวน์โหลดเสียง WAV
video / mp4 ดาวน์โหลดวิดีโอ

หากต้องการดาวน์โหลดทรัพยากรที่เกี่ยวข้องของผลลัพธ์หนึ่งรายการแบบแพ็ก ให้เรียก:

curl -X POST https://www.suno-api.io/api/music/download-all \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "song_id": "stem_clip_id_1"
  }' \
  --output stem-resources.zip

คำอธิบายสถานะ

สถานะ หมายเหตุ
pending ส่งแล้ว รอการประมวลผล
queued อยู่ในคิว
generating / processing กำลังประมวลผล
complete / completed เสร็จสิ้น
error / failed ล้มเหลว กรุณาดู error_message

ข้อผิดพลาดที่พบบ่อย

สถานะ HTTP หมายเหตุ คำแนะนำในการจัดการ
400 พารามิเตอร์ผิด เช่น ขาด song_id หรือ stem_mode ตรวจสอบพารามิเตอร์คำขอ
401 API Key ไม่ถูกต้องหรือไม่ได้ส่ง ตรวจสอบ Authorization
402 ยอดคงเหลือไม่พอ เติมเงินแล้วลองใหม่
409 เพลงต้นทางประมวลผลไม่ได้ชั่วคราว ตรวจสอบ song_id หรือลองใหม่ภายหลัง
500/503 บริการหรือแพลตฟอร์มขัดข้องชั่วคราว ลองใหม่ภายหลังหรือติดต่อฝ่ายสนับสนุนเทคนิค

หมายเหตุเรื่องความเข้ากันได้

เอกสารเวอร์ชันเก่าเคยใช้ตัวอย่างแบบออบเจ็กต์เดียว เช่น success/task_id/vocals_url/instrumental_url การแยกแทร็กเวอร์ชันปัจจุบันยึดอาร์เรย์เพลง clips[] โดยแต่ละผลลัพธ์มี song_id ของตัวเอง และการสอบถามกับดาวน์โหลดต่อไปจะวนรอบ song_id เหล่านี้

เอนด์พอยต์ที่เกี่ยวข้อง

ถัดไปAPI ลบเสียงร้อง

รับคีย์ API

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

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