वॉइस क्लोनिंग और निर्दिष्ट आवाज़ से जनरेशन API (सुझाया नहीं गया)
⛔ पुराना रास्ता, नई इंटीग्रेशन के लिए सुझाया नहीं जाता। यह पेज शुरुआती
personaरास्ते (voice_task_id/generate-with-voice) का वर्णन करता है। यह अब भी काम करता है, लेकिन ग्राहकों को अब सुझाया नहीं जाता; बाईं ओर के मेन्यू में इसे "सुझाया नहीं गया" लिखा है।नई इंटीग्रेशन के लिए 【सुझाया गया】 वॉइस प्रोफ़ाइल API इस्तेमाल करें: एक वोकल सैंपल से वॉइस प्रोफ़ाइल बनाएँ (
POST /api/music/voice-profile/create), फिर उससे कोई तय गाना कवर करें या नया गाना गवाएँ। वॉइस प्रोफ़ाइल एक प्रथम-श्रेणी का संसाधन है: उसे सूचीबद्ध, पढ़ा और हटाया जा सकता है, और उसका स्रोत ऑडियो स्थायी रूप से सुरक्षित रहता है।अगर आपके उत्पाद को "आवाज़ बनाएँ → लंबे समय तक दोबारा इस्तेमाल करें → कवर करें" का पूरा चक्र चाहिए, तो नए रास्ते को प्राथमिकता दें।
ज़रूरी बात: क्लोन की गई आवाज़ की अवधि खत्म हो सकती है।
वॉइस क्लोनिंग से बने
voice_id/voice_task_idहमेशा के लिए चलने वाला संसाधन नहीं हैं: वैधता अवधि, अकाउंट की स्थिति या आवाज़ की स्थिति बदलने पर वे काम करना बंद कर सकते हैं। इंटीग्रेशन करने वाले को एक बार क्लोन करके स्थानीय कैश में रखी आवाज़ ID हमेशा दोबारा इस्तेमाल नहीं करनी चाहिए।सुझाया तरीका:
voice_task_id,voice_id,is_available,updated_atऔर आख़िरी सफल जनरेशन का समय सहेजें।- क्लोन की गई आवाज़ से हर जनरेशन से पहले
GET /api/voice/clone/tasks/{voice_task_id}याPOST /api/voice/clone/tasks/{voice_task_id}/checkकॉल करकेis_available=trueकी पुष्टि करें।- अगर एंडपॉइंट बताए कि आवाज़ उपलब्ध नहीं है, टास्क मौजूद नहीं है या
selected voice is not readyलौटाए, तो यूज़र से दोबारा क्लोन करने या दूसरी उपलब्ध आवाज़ चुनने को कहें।- अंतिम यूज़र से यह वादा न करें कि क्लोन की गई आवाज़ "स्थायी संपत्ति" है; प्रोडक्ट UI में बताएँ कि "आवाज़ की अवधि खत्म हो सकती है और दोबारा सत्यापन या दोबारा क्लोनिंग ज़रूरी हो सकती है"।
एंडपॉइंट विवरण
यह एंडपॉइंट समूह दोबारा इस्तेमाल हो सकने वाली आवाज़ बनाता है और उससे गाने बनाता है। कॉल करने वाले को सिर्फ़ प्लेटफ़ॉर्म का जारी किया API Key चाहिए; टास्क भेजना, स्टेटस सिंक, बिलिंग और डाउनलोड सर्वर खुद सँभालता है।
प्रमाणीकरण: Authorization: Bearer YOUR_API_KEY
बिलिंग:
- वॉइस वैलिडेशन, वॉइस क्लोनिंग, स्टेटस क्वेरी, डिलीट और डाउनलोड: मुफ़्त।
- वर्कस्पेस में एक-क़दम क्लोन का प्रवेश: प्रति कॉल 5 युआन तय; यह स्रोत आवाज़ का सत्यापन और दूसरा सत्यापन ऑडियो खुद पूरा करता है, और विफल होने पर रकम वापस कर देता है।
- सामान्य क्लोन के बाद सत्यापन ऑडियो अपने आप बनाना: प्रति कॉल 5 युआन तय; विफल होने पर मौजूदा प्रक्रिया के अनुसार वापसी होती है।
- क्लोन की गई आवाज़ से गाना बनाना: सशुल्क, प्रति कॉल 1.2 युआन तय; हर कॉल आम तौर पर 2 प्लेसहोल्डर टास्क लौटाती है।
- Max Mode चालू रहने पर (
POST /api/music/generate-with-voiceमेंmax_mode: true), यह 1.2 युआन प्रति कॉल 2× की दर से यानी 2.4 युआन प्रति कॉल लगेगा; आवाज़ से जनरेशनvarietyभी सपोर्ट करता है (0-4, कोई अतिरिक्त शुल्क नहीं); मानों के नियम नई API का अवलोकन के "उन्नत पैरामीटर" हिस्से में हैं।
कॉल का क्रम
POST /api/voice/clone/validateकॉल करके स्रोत आवाज़ अपलोड करें औरvoice_task_idपाएँ।GET /api/voice/clone/tasks/{voice_task_id}का इंतज़ार या पोलिंग करें औरvalidate_infoपाएँ।- यूज़र उस टेक्स्ट को पढ़कर सत्यापन ऑडियो रिकॉर्ड करता है।
POST /api/voice/clone/tasks/{voice_task_id}/generateकॉल करके सत्यापन ऑडियो भेजें।POST /api/voice/clone/tasks/{voice_task_id}/checkकॉल करें या टास्क पूछते रहें जब तकis_available=trueन हो जाए।POST /api/music/generate-with-voiceकॉल करके उस आवाज़ से गाना बनाएँ।- जनरेशन एंडपॉइंट पहले प्लेसहोल्डर टास्क लौटाता है; जब जनरेशन पूरा हो और असली
song_idमिल जाए, तो डाउनलोड एंडपॉइंट से एक फ़ाइल या एक पैकेज ले सकते हैं। - (वैकल्पिक) जब आवाज़ की ज़रूरत न रहे, तो
DELETE /api/voice/clone/voices/{voice_task_id}कॉल करके हटा दें; अर्थ भाग 6 में है।
एक-क़दम क्लोनिंग भी है: वर्कस्पेस के पहले रिकॉर्डिंग/स्रोत-आवाज़ अपलोड पेज पर एक ही बार में पूरा करने का विकल्प चुन सकते हैं; सिस्टम सत्यापन और आवाज़ बनाना एक साथ कर देता है, इसलिए दूसरा सत्यापन ऑडियो रिकॉर्ड करने की ज़रूरत नहीं; शुल्क प्रति कॉल 5 युआन है और विफल होने पर वापस मिलता है।
आवाज़ टास्क के फ़ील्ड
| फ़ील्ड | प्रकार | विवरण |
|---|---|---|
voice_task_id |
number | प्लेटफ़ॉर्म के भीतर आवाज़ टास्क की ID; आगे के सभी एंडपॉइंट इसी ID का उपयोग करते हैं |
voice_id |
string | गाने बनाने के लिए इस्तेमाल हो सकने वाली आवाज़ ID; टास्क उपयोग-योग्य होने पर लौटती है |
voice_name |
string | आवाज़ का नाम |
description |
string | आवाज़ का विवरण |
style |
string | आवाज़ की शैली |
singer_skill_level |
string | गायन स्तर; आम मान: beginner, intermediate, professional |
language |
string | स्रोत आवाज़ की भाषा, जैसे zh, en |
validate_info |
string | पढ़ने के लिए सत्यापन टेक्स्ट |
validate_status |
string | वैलिडेशन टास्क की स्थिति |
voice_status |
string | आवाज़ बनने की स्थिति |
is_available |
boolean | क्या यह गाने बनाने के लिए उपयोग-योग्य है |
status |
string | प्लेटफ़ॉर्म पर टास्क की स्थिति |
stage |
string | मौजूदा चरण |
error_code |
string | विफलता का एरर कोड |
error_message |
string | विफलता का कारण |
source_duration_seconds |
number | स्रोत ऑडियो की अवधि, सेकंड में |
created_at |
number | बनने का टाइमस्टैम्प |
updated_at |
number | अपडेट का टाइमस्टैम्प |
completed_at |
number | पूरा होने का टाइमस्टैम्प |
1. स्रोत आवाज़ सत्यापन के लिए भेजें
एंडपॉइंट: POST /api/voice/clone/validate
बॉडी पैरामीटर
| पैरामीटर | प्रकार | ज़रूरी | डिफ़ॉल्ट | विवरण |
|---|---|---|---|---|
voice_url |
string | नहीं | - | स्रोत आवाज़ के ऑडियो का URL। यह या file_base64 |
file_base64 |
string | नहीं | - | base64 में ऑडियो। यह या voice_url |
file_name |
string | नहीं | - | फ़ाइल नाम; file_base64 के साथ भेजना सुझाया जाता है |
voice_name |
string | नहीं | अपने आप बनता है | आवाज़ का नाम |
description |
string | नहीं | - | आवाज़ का विवरण |
style |
string | नहीं | - | आवाज़ की शैली |
singer_skill_level |
string | नहीं | beginner |
गायन स्तर |
language |
string | नहीं | zh |
स्रोत आवाज़ की भाषा |
vocal_start_s |
number | हाँ | - | उपयोगी वोकल का शुरुआती सेकंड |
vocal_end_s |
number | हाँ | - | उपयोगी वोकल का आख़िरी सेकंड |
source_duration_seconds |
number | नहीं | - | स्रोत ऑडियो की कुल अवधि, सेकंड में |
vocal_end_s - vocal_start_sको वोकल सेगमेंट की न्यूनतम शर्त पूरी करनी चाहिए। साफ़, बिना स्पष्ट संगत या शोर वाली वोकल रिकॉर्डिंग अपलोड करें।
अनुरोध उदाहरण
curl -X POST https://www.suno-api.io/api/voice/clone/validate \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"voice_url": "https://example.com/source-voice.wav",
"voice_name": "मेरी चीनी महिला आवाज़",
"description": "साफ़ और स्वाभाविक चीनी महिला आवाज़",
"style": "Mandopop",
"singer_skill_level": "intermediate",
"language": "zh",
"vocal_start_s": 1.2,
"vocal_end_s": 18.5,
"source_duration_seconds": 20
}'
प्रतिक्रिया उदाहरण
{
"success": true,
"message": "",
"data": {
"voice": {
"voice_task_id": 123,
"voice_name": "मेरी चीनी महिला आवाज़",
"language": "zh",
"validate_status": "submitted",
"is_available": false,
"status": "validate_submitted",
"stage": "validate_submitted",
"created_at": 1780480000,
"updated_at": 1780480000
}
}
}
2. आवाज़ टास्क की क्वेरी
एंडपॉइंट: GET /api/voice/clone/tasks/{voice_task_id}
अनुरोध उदाहरण
curl https://www.suno-api.io/api/voice/clone/tasks/123 \
-H "Authorization: Bearer YOUR_API_KEY"
प्रतिक्रिया उदाहरण
{
"success": true,
"message": "",
"data": {
"voice": {
"voice_task_id": 123,
"voice_name": "मेरी चीनी महिला आवाज़",
"validate_info": "यहाँ लौटाया गया सत्यापन टेक्स्ट पढ़कर सुनाएँ",
"validate_status": "success",
"is_available": false,
"status": "validate_ready",
"stage": "validate_callback"
}
}
}
3. सत्यापन टेक्स्ट दोबारा बनाएँ
एंडपॉइंट: POST /api/voice/clone/tasks/{voice_task_id}/regenerate
जब सत्यापन टेक्स्ट पढ़ने के लिए उपयुक्त न हो या सत्यापन दोबारा करना हो, तब कॉल करें।
curl -X POST https://www.suno-api.io/api/voice/clone/tasks/123/regenerate \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
4. सत्यापन ऑडियो भेजें और आवाज़ बनाएँ
एंडपॉइंट: POST /api/voice/clone/tasks/{voice_task_id}/generate
बॉडी पैरामीटर
| पैरामीटर | प्रकार | ज़रूरी | डिफ़ॉल्ट | विवरण |
|---|---|---|---|---|
verify_url |
string | नहीं | - | सत्यापन टेक्स्ट से पढ़े गए ऑडियो का URL। यह या file_base64 |
file_base64 |
string | नहीं | - | base64 में सत्यापन ऑडियो। यह या verify_url |
file_name |
string | नहीं | - | फ़ाइल नाम; file_base64 के साथ भेजना सुझाया जाता है |
voice_name |
string | नहीं | टास्क का नाम | आवाज़ का नाम |
description |
string | नहीं | टास्क का विवरण | आवाज़ का विवरण |
style |
string | नहीं | टास्क की शैली | आवाज़ की शैली |
singer_skill_level |
string | नहीं | टास्क की सेटिंग | गायन स्तर |
अनुरोध उदाहरण
curl -X POST https://www.suno-api.io/api/voice/clone/tasks/123/generate \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"verify_url": "https://example.com/verify-voice.wav",
"voice_name": "मेरी चीनी महिला आवाज़"
}'
5. जाँचें कि आवाज़ उपयोग-योग्य है या नहीं
एंडपॉइंट: POST /api/voice/clone/tasks/{voice_task_id}/check
curl -X POST https://www.suno-api.io/api/voice/clone/tasks/123/check \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
टास्क उपयोग-योग्य होने पर प्रतिक्रिया में is_available true होता है और voice_id लौटाया जाता है।
6. आवाज़ हटाएँ
एंडपॉइंट: DELETE /api/voice/clone/voices/{voice_task_id}
बिलिंग: मुफ़्त।
curl -X DELETE https://www.suno-api.io/api/voice/clone/voices/123 \
-H "Authorization: Bearer YOUR_API_KEY"
प्रतिक्रिया उदाहरण
{
"success": true,
"message": "",
"data": {
"voice_task_id": 123,
"deleted": true
}
}
| फ़ील्ड | प्रकार | विवरण |
|---|---|---|
| voice_task_id | number | हटाए गए आवाज़ टास्क की ID |
| deleted | boolean | हमेशा true; यानी हटाने का अनुरोध स्वीकार हो गया |
हटाने के बाद क्या होता है
- नए गाने बनाने के लिए इस्तेमाल नहीं हो सकती: इस
voice_task_id(या इसकीvoice_id) के साथPOST /api/music/generate-with-voiceकॉल करने पर अनुरोध अस्वीकार हो जाता है, संदेशselected voice is not readyहोता है और कोई शुल्क नहीं लगता। - इससे बने गानों पर कोई असर नहीं पड़ता: प्लेबैक, डाउनलोड, इस्तेमाल जारी रखना, बदलना और स्टेम अलग करना पहले जैसे चलते हैं।
- यह आवाज़ टास्क क्वेरी से गायब हो जाता है:
GET /api/voice/clone/tasks/{voice_task_id}परrecord not foundमिलता है। - स्रोत ऑडियो प्लेटफ़ॉर्म की स्थायी-संरक्षण नीति के तहत रखा जाता है (2026-09-23 से हटाने पर अपलोड किया गया वोकल सैंपल साफ़ नहीं होता), लेकिन इसका मतलब यह नहीं कि वह बहाल हो सकता है: वह पुराना टास्क खत्म हो चुका है, और वही आवाज़ जारी रखने के लिए क्लोन की पूरी प्रक्रिया दोबारा करनी होगी, जिससे नई
voice_task_idमिलेगी। - दोबारा हटाना: उसी टास्क को फिर हटाने पर
record not foundआता है (वह पहले से हटाई गई स्थिति में है और मिल नहीं सकती)।
7. क्लोन की गई आवाज़ से गाना बनाएँ
एंडपॉइंट: POST /api/music/generate-with-voice
बिलिंग: प्रति कॉल 1.2 युआन।
बॉडी पैरामीटर
| पैरामीटर | प्रकार | ज़रूरी | डिफ़ॉल्ट | विवरण |
|---|---|---|---|---|
voice_task_id |
number | हाँ | - | पहले से उपयोग-योग्य आवाज़ टास्क की ID |
voice_id |
string | नहीं | - | वैकल्पिक सत्यापन फ़ील्ड; भेजने पर वह टास्क की voice_id से मेल खानी चाहिए |
customMode |
boolean | नहीं | false |
false = इंस्पिरेशन मोड, true = एडवांस्ड मोड |
prompt |
string | हाँ | - | इंस्पिरेशन मोड में गाने का विवरण, एडवांस्ड मोड में गीत के बोल। दोनों में खाली नहीं छोड़ सकते |
style |
string | एडवांस्ड मोड में हाँ | - | स्टाइल टैग; customMode=true पर खाली नहीं हो सकते |
title |
string | एडवांस्ड मोड में हाँ | - | गाने का शीर्षक; customMode=true पर खाली नहीं हो सकता |
negativeTags |
string | नहीं | - | बाहर रखने वाली शैली |
instrumental |
boolean | नहीं | false |
संगतता फ़ील्ड; क्लोन आवाज़ से जनरेशन हमेशा गायन वाले गाने के रूप में लिया जाता है |
waitAudio |
boolean | नहीं | false |
संगतता फ़ील्ड; यह एंडपॉइंट हमेशा प्लेसहोल्डर टास्क असिंक्रोनस रूप से लौटाता है और ऑडियो का इंतज़ार नहीं करता |
model |
string | नहीं | suno-v6 |
सामान्य गाना जनरेशन मॉडल; suno-v6, suno-v6-wild या suno-v6-mini चुन सकते हैं |
vocalGender |
string | नहीं | - | गायन की लिंग-प्राथमिकता |
lyricsMode |
string | नहीं | - | संगतता फ़ील्ड; मौजूदा क्लोन-आवाज़ सबमिट श्रृंखला बोल मोड खुद नहीं बदलती |
weirdnessConstraint |
number | नहीं | - | रचनात्मकता की तीव्रता |
styleWeight |
number | नहीं | - | शैली का वज़न |
audioWeight |
number | नहीं | प्लेटफ़ॉर्म डिफ़ॉल्ट | Audio Influence (रेफ़रेंस ऑडियो का असर), रेंज 0.0-1.0. न भेजने पर प्लेटफ़ॉर्म डिफ़ॉल्ट लगता है (आधिकारिक UI में 25% के बराबर); 0 मान्य मान है और इसका मतलब है स्रोत की ओर ज़रा भी झुकना नहीं। यह अगली पंक्ति के sourceClipId से गहराई से जुड़ा है: स्रोत भेजने पर यह रेफ़रेंस ऑडियो की ओर इशारा करता है और स्रोत न भेजने पर क्लोन की गई आवाज़ की ओर; प्लेटफ़ॉर्म के पास दोनों के लिए यही एक स्लाइडर है, इसलिए इसे उपयोग के हिसाब से दो पैरामीटर में न बाँटें |
sourceClipId |
string | नहीं | - | स्रोत गाने की असली वर्कस्पेस clip ID। भेजने पर क्लोन आवाज़ से कवर शुरू होता है; न भेजने पर सामान्य क्लोन-आवाज़ जनरेशन होता है |
sourceAudioUrl |
string | नहीं | - | स्रोत का प्रदर्शन फ़ील्ड; स्वामित्व या अकाउंट के फ़ैसले में शामिल नहीं होता, सर्वर अपने डेटाबेस रिकॉर्ड पर चलता है |
sourceTitle |
string | नहीं | - | स्रोत का प्रदर्शन फ़ील्ड; स्वामित्व या अकाउंट के फ़ैसले में शामिल नहीं होता |
clientSubmissionId |
string | नहीं | - | Create UI संगतता फ़ील्ड; ग्राहक API में भरोसेमंद डिडुप्लिकेशन के लिए Idempotency-Key हेडर ही इस्तेमाल करें |
suno-v6, suno-v6-wild और suno-v6-mini समर्थित हैं; खाली मॉडल को suno-v6 माना जाता है। पुराने V5/V5.5 मॉडल बंद कर दिए गए हैं, पर पुराने टास्क में अब भी पुराने नाम दिख सकते हैं।
साझा अनुरोध संरचना Create UI के संगतता फ़ील्ड जैसे task, soundType, soundLoop, soundBpm, soundKey, voiceTaskId, voiceId भी पढ़ती है, पर ये इस एंडपॉइंट के मान्य ग्राहक पैरामीटर नहीं हैं: आवाज़ टास्क voice_task_id से भेजना ज़रूरी है, वैकल्पिक वॉइस सत्यापन voice_id से, और आवाज़ से संगीत जनरेशन sound फ़ील्ड कभी नहीं पढ़ता।
जनरेशन पैरामीटर भरने का तरीका
customMode=falseपरpromptमें गाने का विवरण जाता है;customMode=trueपरpromptमें पूरे बोल, औरstyleतथाtitleभी भरने होंगे। बोल को इंस्पिरेशन मोड के विवरण फ़ील्ड में न भेजें और गाने के विवरण को एडवांस्ड मोड के बोल न मानें।weirdnessConstraintऔरstyleWeight0.0से1.0तक दशमलव अनुपात हैं;50या50%नहीं भेज सकते। संतुलित मान0.5है; न भेजने का मतलब "तय नहीं" और0एक मान्य स्पष्ट मान है।vocalGenderसिर्फ़m,male,fयाfemaleलेता है।instrumentalयहाँ केवल संगतता फ़ील्ड है: क्लोन आवाज़ से जनरेशन हमेशा गायन वाले गाने के रूप में लिया जाता है।waitAudioयहाँ व्यवहार नहीं बदलता; एंडपॉइंट हमेशा प्लेसहोल्डर टास्क असिंक्रोनस रूप से लौटाता है। शुरुआती नतीजे में खालीaudio_urlसामान्य है:client_request_idसे क्वेरी करें और ऑडियो का पता नतीजा पूरा होने के बाद ही पढ़ें।
हेडर पैरामीटर
| हेडर | ज़रूरी | विवरण |
|---|---|---|
Authorization: Bearer ... |
हाँ | ग्राहक API टोकन |
Content-Type: application/json |
हाँ | JSON अनुरोध बॉडी |
Idempotency-Key |
नहीं, कड़ाई से सुझाया गया | अधिकतम 128 अक्षर। एक ही यूज़र, टोकन, एंडपॉइंट, key और बॉडी पर बिलिंग और टास्क बनना एक ही बार होता है |
Idempotency-Key का व्यवहार:
- पहला अनुरोध बिलिंग से पहले एक स्थायी इडेम्पोटेंसी रिकॉर्ड लिखता है;
- अगर वही key और वही अनुरोध पहले ही पूरा हो चुका है, तो पहली स्वीकृति प्रतिक्रिया दोबारा दी जाती है, दूसरी बार शुल्क या दूसरा टास्क नहीं बनता;
- वही key अलग बॉडी के साथ अस्वीकार हो जाती है;
- वही key अब भी प्रोसेस में हो तो स्थिर "प्रोसेसिंग" त्रुटि आती है, और सुरक्षित
client_request_idसिर्फ़ बन जाने पर लौटता है; - किसी key से पहला अनुरोध विफल हो तो विफल स्थिति बनी रहती है; दोबारा कोशिश के लिए नई key चाहिए।
sourceClipId से कवर की शर्तें
ग्राहक API में स्रोत से कवर पूरा सर्वर साइड सँभालता है: स्रोत गाने तक पहुँच सर्वर तय करता है और ग्राहक कोई अकाउंट जानकारी नहीं भेजता। संभव है या नहीं, यह एंडपॉइंट की असल प्रतिक्रिया तय करती है।
स्रोत मौजूदा API यूज़र का होना चाहिए, वर्कस्पेस का पूरा हुआ गाना हो और pending: न हो, तथा उसका ऑडियो उपयोग-योग्य हो। सामान्य जनरेशन, सामान्य अपलोड के स्रोत और एन्हांस्ड अपलोड का अंतिम गाना समर्थित हैं; एन्हांस्ड अपलोड के बीच के रिकॉर्ड बिलिंग से पहले अस्वीकार हो जाते हैं। सर्वर सिर्फ़ ग्राहक द्वारा भेजी गई स्रोत-गाना ID लेता है, अकाउंट ID कभी नहीं; स्रोत उपलब्ध न हो या अधूरा हो तो बिलिंग से पहले त्रुटि मिलती है।
अनुरोध उदाहरण
curl -X POST https://www.suno-api.io/api/music/generate-with-voice \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"voice_task_id": 123,
"customMode": true,
"prompt": "गर्मियों की रात में समुद्र किनारे पर एक चीनी पॉप गीत लिखें",
"style": "Mandopop, warm piano, emotional",
"title": "गर्मियों की रात की समुद्री हवा",
"negativeTags": "noise, low quality",
"instrumental": false,
"model": "suno-v6"
}'
प्रतिक्रिया उदाहरण
{
"success": true,
"message": "",
"data": {
"client_request_id": "cu_1780480000_abcd1234",
"items": [
{
"placeholder_id": "pending:cu_1780480000_abcd1234:0",
"client_request_id": "cu_1780480000_abcd1234",
"client_request_index": 0,
"status": "submitted",
"type": "voice_generate",
"title": "गर्मियों की रात की समुद्री हवा",
"prompt": "गर्मियों की रात में समुद्र किनारे पर एक चीनी पॉप गीत लिखें"
},
{
"placeholder_id": "pending:cu_1780480000_abcd1234:1",
"client_request_id": "cu_1780480000_abcd1234",
"client_request_index": 1,
"status": "submitted",
"type": "voice_generate",
"title": "गर्मियों की रात की समुद्री हवा",
"prompt": "गर्मियों की रात में समुद्र किनारे पर एक चीनी पॉप गीत लिखें"
}
],
"pre_consumed_quota": 600000,
"billing_source": "wallet"
}
}
प्लेसहोल्डर टास्क और अंतिम song_id
generate-with-voice असिंक्रोनस जनरेशन एंडपॉइंट है। सफल प्रतिक्रिया का मतलब सिर्फ़ यह है कि जनरेशन टास्क भेज दिया गया है, यह नहीं कि गाना बन गया है।
प्रतिक्रिया के मुख्य फ़ील्ड का अर्थ:
| फ़ील्ड | विवरण |
|---|---|
client_request_id |
इस जनरेशन अनुरोध की ट्रैकिंग ID। एक अनुरोध आम तौर पर 2 गाने बनाता है और दोनों नतीजे यही client_request_id इस्तेमाल करते हैं। |
items[].placeholder_id |
प्लेटफ़ॉर्म का स्थानीय प्लेसहोल्डर ID, आम तौर पर pending:{client_request_id}:{index} रूप में। यह अंतिम गाना ID नहीं है। |
items[].client_request_index |
उसी अनुरोध में नतीजे का क्रमांक, आम तौर पर 0 और 1। |
items[].status |
भेजने के बाद की शुरुआती स्थिति, जैसे submitted। आगे की सफलता या विफलता अंतिम टास्क रिकॉर्ड से तय होती है। |
ध्यान दें: pending: से शुरू होने वाला placeholder_id अंतिम song_id के रूप में इस्तेमाल नहीं हो सकता, और न ही सीधे /api/music/query या डाउनलोड एंडपॉइंट को दिया जा सकता है। सिर्फ़ pending:* मानों से /api/music/query कॉल करने पर खाली ऐरे [] लौट सकता है, क्योंकि असली गाना अभी बना नहीं है या प्लेसहोल्डर टास्क अभी अंतिम गाना ID से बदला नहीं गया।
ग़लत उदाहरण:
{
"song_ids": "pending:cu_1780480000_abcd1234:0"
}
सही क्रम:
POST /api/music/generate-with-voiceकॉल करके आवाज़ वाला संगीत जनरेशन टास्क भेजें।- प्रतिक्रिया से
client_request_id,items[].placeholder_idऔरitems[].client_request_indexसहेजें। GET /api/music/generate-with-voice/results?client_request_id=cu_xxxपोल करें।- जब
items[].song_idमें मान आ जाए और वहpending:से शुरू न हो, तब/api/music/query,/api/music/download-fileया/api/music/download-allकॉल करें।
मौजूदा वर्शन में एक सार्वजनिक क्वेरी एंडपॉइंट भी जोड़ा गया है:
GET /api/music/generate-with-voice/results?client_request_id=cu_xxx
यह मौजूदा यूज़र के तहत उसी client_request_id के टास्क नतीजे लौटाता है, ताकि ग्राहक खुद अंतिम song_id ढूँढ सके। लौटी सूची में:
song_idअसली गाना ID है;placeholder_idतभी दिखता है जब टास्क अब भी प्लेसहोल्डर स्थिति में हो;pending:से शुरू होने वाला मान/api/music/queryया डाउनलोड एंडपॉइंट के साथ इस्तेमाल नहीं हो सकता।
अगर आपने सिर्फ़ client_request_id या pending:* प्लेसहोल्डर ID सहेजी है, तो पहले यह नतीजा एंडपॉइंट कॉल करें; असली song_id फिर भी न मिले तो client_request_id टेक्निकल सपोर्ट को भेजकर पता लगवाएँ।
आवाज़ से जनरेशन के नतीजों की क्वेरी
एंडपॉइंट: GET /api/music/generate-with-voice/results
बिलिंग: मुफ़्त।
क्वेरी पैरामीटर
| पैरामीटर | प्रकार | ज़रूरी | विवरण |
|---|---|---|---|
client_request_id |
string | हाँ | generate-with-voice द्वारा लौटाई अनुरोध ट्रैकिंग ID |
अनुरोध उदाहरण
curl -X GET "https://www.suno-api.io/api/music/generate-with-voice/results?client_request_id=cu_1780480000_abcd1234" \
-H "Authorization: Bearer YOUR_API_KEY"
बनते समय प्रतिक्रिया उदाहरण
{
"success": true,
"message": "",
"data": {
"client_request_id": "cu_1780480000_abcd1234",
"status": "processing",
"items": [
{
"song_id": "",
"placeholder_id": "pending:cu_1780480000_abcd1234:0",
"client_request_id": "cu_1780480000_abcd1234",
"client_request_index": 0,
"status": "processing",
"type": "voice_generate",
"title": "गर्मियों की रात की समुद्री हवा"
}
]
}
}
बन जाने पर प्रतिक्रिया उदाहरण
{
"success": true,
"message": "",
"data": {
"client_request_id": "cu_1780480000_abcd1234",
"status": "completed",
"items": [
{
"song_id": "song_abc123",
"client_request_id": "cu_1780480000_abcd1234",
"client_request_index": 0,
"status": "completed",
"type": "voice_generate",
"title": "गर्मियों की रात की समुद्री हवा",
"audio_url": "https://...",
"image_url": "https://...",
"duration": 180.5
}
]
}
}
ऊपरी स्तर के status का अर्थ
| स्थिति | विवरण |
|---|---|
not_found |
मौजूदा यूज़र के तहत उस client_request_id का कोई टास्क रिकॉर्ड अभी नहीं है |
processing |
कम से कम एक नतीजा अधूरा है; पोलिंग जारी रखें |
completed |
सारे नतीजे पूरे हो गए; song_id से क्वेरी या डाउनलोड कर सकते हैं |
partial |
कुछ पूरे, कुछ विफल; पहले पूरे हुए song_id सँभालें |
failed |
सारे नतीजे विफल; items[].error_message देखें |
8. एक फ़ाइल डाउनलोड करें
एंडपॉइंट: POST /api/music/download-file
बॉडी पैरामीटर
| पैरामीटर | प्रकार | ज़रूरी | विवरण |
|---|---|---|---|
song_id |
string | हाँ | गाने की ID |
kind |
string | हाँ | डाउनलोड प्रकार: audio, cover, wav, video |
अनुरोध उदाहरण
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": "song_abc123",
"kind": "audio"
}' \
--output song.mp3
प्रतिक्रिया एक फ़ाइल स्ट्रीम है; Content-Type और फ़ाइल नाम बैकएंड जो लौटाए उसी पर चलते हैं।
9. गाने के संसाधन पैकेज में डाउनलोड करें
एंडपॉइंट: POST /api/music/download-all
बॉडी पैरामीटर
| पैरामीटर | प्रकार | ज़रूरी | विवरण |
|---|---|---|---|
song_id |
string | हाँ | गाने की ID |
अनुरोध उदाहरण
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": "song_abc123"
}' \
--output song.zip
पैकेज में आम तौर पर ऑडियो, कवर और metadata.json होता है; अगर किसी प्रकार का संसाधन अभी नहीं बना, तो वह संग्रह में नहीं आता।
आम त्रुटियाँ
| message | विवरण |
|---|---|
voice audio is required |
स्रोत आवाज़ भेजते समय न voice_url दिया गया न file_base64 |
invalid voice task id |
पाथ में आवाज़ टास्क ID अमान्य है |
voice validation is not ready |
सत्यापन टेक्स्ट अभी नहीं मिला, इसलिए सत्यापन ऑडियो नहीं भेज सकते |
selected voice is not ready |
चुनी गई आवाज़ अभी गाने नहीं बना सकती (तैयार नहीं, हटा दी गई, या मौजूदा अकाउंट की नहीं) |
selected voice does not match voice task |
अनुरोध की voice_id टास्क से मेल नहीं खाती |
voice task is required |
आवाज़ वाला गाना बनाते समय voice_task_id नहीं है |
record not found |
टास्क / गाना मौजूद नहीं, मौजूदा API Key के अकाउंट का नहीं, या पहले ही हटा दिया गया (आवाज़ हटाने के बाद यह टास्क पूछने पर भी यही मिलता है) |
इस समूह की त्रुटियाँ हमेशा HTTP 200 लौटाती हैं: सफलता बॉडी के
successफ़ील्ड से तय करें (falseयानी विफल, कारणmessageमें) और सिर्फ़ HTTP स्टेटस कोड न देखें। आवाज़ हटाने का पूरा अर्थ (हटाने के बाद चलती है या नहीं, बहाल हो सकती है या नहीं) भाग 6 में है।
API कुंजी प्राप्त करें
रजिस्टर करने के बाद कंसोल में API कुंजी बनाएँ। प्रत्येक जनरेशन का खर्च 0.6 युआन है और 2 ट्रैक मिलते हैं, डाउनलोड असीमित हैं और फ़ोन नंबर की ज़रूरत नहीं है।
API कुंजी लें अवलोकन पर लौटें