Skip to main content
ستقدم هذه الوثيقة تعليمات دمج واجهة برمجة تطبيقات توليد الصوتيات للمنتج، والتي يمكن استخدامها لتوليد الموسيقى الرسمية للمنتج من خلال إدخال معلمات مخصصة.

عملية التقديم

لاستخدام واجهة برمجة تطبيقات توليد الصوتيات للمنتج، يجب أولاً الذهاب إلى وحدة التحكم في بيانات Ace للحصول على رمز API الخاص بك، للاحتفاظ به كنسخة احتياطية. إذا لم تقم بتسجيل الدخول أو التسجيل بعد، سيتم تحويلك تلقائيًا إلى صفحة تسجيل الدخول لدعوتك للتسجيل وتسجيل الدخول، وبعد الانتهاء، سيتم إرجاعك تلقائيًا إلى الصفحة الحالية. يمكن استخدام رمز API واحد لاستدعاء جميع خدمات المنصة، دون الحاجة لتقديم طلب منفصل لكل خدمة. سيتم منحك رصيد مجاني عند الطلب الأول، لتجربته مجانًا؛ وعند نفاد الرصيد، يمكنك إعادة شحن الرصيد العام في وحدة التحكم.
📘 الوثائق الكاملة: واجهة برمجة تطبيقات توليد الصوتيات للمنتج →

الاستخدام الأساسي

إذا كنت ترغب في الحصول على بعض الأغاني، يمكنك إدخال نص عشوائي، على سبيل المثال، إذا كنت أريد توليد أغنية عن عيد الميلاد، يمكنني إدخال a song for Christmas، كما هو موضح في الصورة:

يمكنك أن ترى أننا قمنا بتعيين رؤوس الطلب، بما في ذلك:
  • accept: نوع الاستجابة التي ترغب في تلقيها، هنا يتم ملؤها بـ application/json، أي بتنسيق JSON.
  • authorization: مفتاح استدعاء API، يمكن اختياره مباشرة بعد التقديم.
بالإضافة إلى ذلك، تشمل معلمات جسم الطلب:
  • action: سلوك مهمة توليد الموسيقى هذه، توليد الأغاني هو generate.
  • model: النموذج المستخدم لإنشاء الأغاني، حالياً هناك: FUZZ-2.0 Pro، FUZZ-2.0، FUZZ-2.0 Raw، FUZZ-1.1 Pro، FUZZ-1.0 Pro، FUZZ-1.0، FUZZ-1.1، FUZZ-0.8.
  • lyric: محتوى كلمات الأغنية.
  • custom: ما إذا كان سيتم استخدام طريقة مخصصة لتوليد الأغنية.
  • prompt: كلمات الإلهام في وضع الإلهام.
  • title: معلومات عنوان الأغنية.
  • audio_id: معرف الأغنية المرجعية، لاستخدامه في الاستمرار/النسخ وما إلى ذلك.
  • continue_at: بدء كتابة الأغنية من عدد ثوانٍ محدد.
  • replace_section_start/replace_section_end: توقيت بداية ونهاية الجزء المراد استبداله، بوحدة الثواني.
  • lyrics_strength: قوة الكلمات، تشير إلى مدى تأثير الكلمات في توليد الصوت، يمكن اختيارها بين 0-1، الافتراضي 0.7.
  • sound_strength: قوة كلمات الصوت، يمكن اختيارها بين 0.2-1، الافتراضي 0.7.
  • cover_strength: قوة التغطية بين 0.2-1، الافتراضي 1.
  • weirdness: درجة غرابة النمط، يمكن اختيارها بين 0-1، الافتراضي 0.5.
  • callback_url: URL الذي يحتاج إلى استدعاء النتائج.
  • async: اختياري، عند تعيينه إلى true، ستعيد الواجهة على الفور task_id، دون الحاجة لتقديم callback_url، ثم يمكنك الاستعلام عن النتائج من خلال واجهة استعلام المهمة المقابلة.
  • instrumental: ما إذا كانت في وضع بدون كلمات.
بعد الاختيار، يمكنك أن ترى أن الجانب الأيمن قد تم توليد الكود المقابل، كما هو موضح في الصورة:

يمكنك الضغط على زر “Try” لإجراء الاختبار، كما هو موضح في الصورة أعلاه، وهنا حصلنا على النتيجة التالية:
تتضمن النتيجة العائدة عدة حقول، كما هو موضح أدناه:
  • success: حالة مهمة توليد الموسيقى في ذلك الوقت.
    • data: نتيجة مهمة الموسيقى هذه
      • id: معرف مهمة توليد الموسيقى في ذلك الوقت.
      • sound: كلمات الإلهام لمهمة توليد الموسيقى في ذلك الوقت.
      • seed: قيمة البذور لمهمة توليد الموسيقى في ذلك الوقت.
      • audio_url: رابط الصوت لمهمة توليد الموسيقى في ذلك الوقت.
      • image_url: رابط الغلاف لمهمة توليد الموسيقى في ذلك الوقت.
      • image_id: معرف الغلاف لمهمة توليد الموسيقى في ذلك الوقت.
      • state: حالة مهمة توليد الموسيقى في ذلك الوقت.
      • duration: معلومات مدة الموسيقى في ذلك الوقت.
      • progress: قيمة تقدم مهمة الموسيقى في ذلك الوقت.
      • model: معلومات النموذج المستخدم في مهمة توليد الموسيقى في ذلك الوقت.
      • lyric: معلومات كلمات الأغنية لمهمة توليد الموسيقى في ذلك الوقت.
يمكنك أن ترى أننا حصلنا على معلومات الموسيقى التي نرغب في توليدها، كل ما علينا هو الحصول على رابط الموسيقى من data للحصول على موسيقى المنتج المولدة. بالإضافة إلى ذلك، إذا كنت ترغب في توليد الكود المقابل، يمكنك نسخه مباشرة، على سبيل المثال، كود CURL كما يلي:

التوليد المخصص

إذا كنت ترغب في توليد كلمات مخصصة، يمكنك إدخال الكلمات: في هذه الحالة، يمكن تمرير محتوى مشابه في حقل lyric:
بعد ذلك، نحتاج إلى تخصيص الأغنية بناءً على الكلمات والعنوان والأسلوب، يمكننا تحديد المحتوى كما يلي:
  • lyric:نص الأغنية
  • custom:املأ بـ true، مما يعني التوليد المخصص، هذه المعلمة افتراضيًا تكون false، مما يعني استخدام prompt للتوليد.
  • title:عنوان الأغنية.
املأ المثال كما يلي:

بعد الانتهاء من الملء، تم توليد الكود كما يلي:

الكود المقابل:
اختبار مسموح، التأثير الناتج مشابه.

إعادة غناء الأغاني

إذا كنت ترغب في إعادة غناء الأغاني التي تم توليدها بالفعل، يمكنك إدخال الأغنية التي تم توليدها أعلاه لإعادة الغناء، بعد ذلك سنقوم بتخصيص توليد الأغنية بناءً على الكلمات، العنوان. إذا كنت ترغب في الاستمرار في إعادة غناء الأغاني التي قمت بتحميلها، يمكنك تعيين المعلمة action إلى upload_cover، وإدخال ID الأغنية التي تحتاج إلى الاستمرار في إعادة غنائها، يمكن الحصول على ID الأغنية باستخدام Producer Upload API كما هو موضح في الصورة أدناه:

يمكنك تحديد المحتوى كما يلي:
  • action: سلوك مهمة الأغنية هذه، حاليًا تدعم: generate، cover، extend، upload_cover، upload_extend، replace_section، swap_vocals، swap_instrumentals، variation، هذه المرة نستخدم معلمة cover.
  • lyric: نص الأغنية
  • title: عنوان الأغنية.
  • custom: هل يتم استخدام وضع مخصص للتوليد، الافتراضي هو false.
  • audio_id: ID الأغنية التي تحتاج إلى إعادة غنائها.
املأ المثال كما يلي:

بعد الانتهاء من الملء، تم توليد الكود كما يلي:

الكود المقابل:
اختبار مسموح، التأثير الناتج مشابه.

متابعة كتابة الأغاني

إذا كنت ترغب في متابعة كتابة الأغاني، نحتاج إلى تمرير قيمة action كالتالي: extend، بعد ذلك يجب علينا تخصيص إنشاء الأغنية بناءً على الكلمات، العنوان، والأسلوب. إذا كنت ترغب في متابعة كتابة الأغاني التي قمت بتحميلها، يمكنك تعيين المعامل action إلى upload_extend، وإدخال ID الأغنية التي تحتاج إلى متابعة كتابتها، يمكن الحصول على ID الأغنية باستخدام Producer Upload API كما هو موضح في الصورة أدناه:

نموذج الإدخال كما يلي:

بعد الانتهاء من الإدخال، تم إنشاء الكود تلقائيًا كما يلي:

الكود المقابل:
اختبار مسموح، التأثير الناتج مشابه.

تحويل الموسيقى

إذا كنت ترغب في إنشاء موسيقى جديدة مشابهة بناءً على قيمة seed للأغنية السابقة، نحتاج إلى تمرير قيمة action كالتالي: variation، بعد ذلك يمكنك تخصيص إنشاء موسيقى جديدة مشابهة. نموذج الإدخال كما يلي:

بعد الانتهاء من الإدخال، تم إنشاء الكود تلقائيًا كما يلي:

الكود المقابل:
测试允许,生成的效果是类似的。

استبدال مقطع

إذا كنت ترغب في استبدال مقطع من الأغنية، نحتاج إلى تمرير قيمة action كالتالي: replace_section، بعد ذلك يجب علينا تخصيص الأغنية بناءً على الكلمات، العنوان. إذا كنت ترغب في الاستمرار في استبدال مقطع من الأغاني التي قمت بتحميلها، يمكنك تعيين المعامل action إلى upload_replace_section، وإدخال ID الأغنية التي تحتاج إلى الاستمرار في كتابتها، يمكن الحصول على ID الأغنية باستخدام Producer Upload API كما هو موضح في الصورة أدناه:

نموذج الإدخال كما يلي:

بعد الانتهاء من الإدخال، تم توليد الكود تلقائيًا كما يلي:

الكود المقابل:
اختبار مسموح، التأثير الناتج مشابه.

نسخة مرافقة

إذا كنت ترغب في استخدام النسخة الرسمية من المرافقة، يمكنك تعيين قيمة معلمة action إلى: swap_instrumentals، بعد ذلك سنقوم بتخصيص إنشاء الأغنية بناءً على الكلمات، العنوان. نموذج التعبئة كما يلي:

بعد الانتهاء من التعبئة، تم إنشاء الكود تلقائيًا كما يلي:

الكود المقابل:
اختبار مسموح، التأثير الناتج مشابه.

نسخة الصوت البشري

إذا كنت ترغب في استخدام النسخة الرسمية من الصوت البشري، يمكنك تعيين قيمة معلمة action إلى: swap_vocals، بعد ذلك سنقوم بتخصيص إنشاء الأغنية بناءً على الكلمات، العنوان، الأسلوب. نموذج التعبئة كما يلي:

بعد الانتهاء من التعبئة، تم إنشاء الكود تلقائيًا كما يلي:

الكود المقابل:
اختبار مسموح، التأثير الناتج مشابه.

فصل الكلمات والألحان

إذا كنت ترغب في استخدام عملية فصل الكلمات والألحان الرسمية، يمكنك تعيين قيمة معلمة action إلى: stems، بعد ذلك سنقوم بفصل الكلمات والألحان بناءً على معرف الأغنية. نموذج التعبئة كما يلي:

بعد الانتهاء من التعبئة، تم إنشاء الكود تلقائيًا كما يلي:

الكود المقابل:
اختبار مسموح، التأثير الناتج مشابه.

ردود غير متزامنة

نظرًا لأن وقت توليد واجهة برمجة تطبيقات إنتاج الصوت قد يكون طويلًا في بعض الأحيان، إذا لم تستجب واجهة برمجة التطبيقات لفترة طويلة، ستظل طلبات HTTP متصلة، مما يؤدي إلى استهلاك موارد النظام الإضافية، لذا توفر هذه الواجهة أيضًا دعمًا للردود غير المتزامنة. تتكون العملية العامة من: عندما يقوم العميل بإرسال الطلب، يحدد حقل callback_url إضافي، بعد أن يقوم العميل بإرسال طلب واجهة برمجة التطبيقات، ستعيد الواجهة على الفور نتيجة تحتوي على معلومات حقل task_id، تمثل معرف المهمة الحالية. عندما تكتمل المهمة، سيتم إرسال نتيجة المهمة المولدة إلى callback_url المحدد من قبل العميل بشكل POST JSON، والذي يتضمن أيضًا حقل task_id، بحيث يمكن ربط نتيجة المهمة من خلال المعرف. دعونا نفهم كيفية القيام بذلك من خلال مثال. أولاً، ردود Webhook هي خدمة يمكنها استقبال طلبات HTTP، يجب على المطورين استبدالها بعنوان URL الخاص بخادم HTTP الذي قاموا بإنشائه. هنا، لتسهيل العرض، نستخدم موقع Webhook عينة عام https://webhook.site/، افتح هذا الموقع للحصول على عنوان URL لـ Webhook، كما هو موضح في الصورة: انسخ هذا العنوان URL، يمكنك استخدامه كـ Webhook، والعينة هنا هي https://webhook.site/#!/view/0d73431d-f833-4be4-9276-b6e1690d55c1. بعد ذلك، يمكننا تعيين حقل callback_url إلى عنوان URL الخاص بـ Webhook المذكور أعلاه، مع ملء المعلمات المناسبة، كما هو موضح في الصورة:

انقر على تشغيل، يمكنك أن تلاحظ أنك ستحصل على نتيجة على الفور، كما يلي:
انتظر لحظة، يمكنك في https://webhook.site/#!/view/0d73431d-f833-4be4-9276-b6e1690d55c1 ملاحظة نتيجة المهمة المولدة، كما هو موضح في الصورة: المحتوى كما يلي:
يمكن رؤية أن هناك حقل task_id في النتيجة، بينما الحقول الأخرى مشابهة لما سبق، من خلال هذا الحقل يمكن تحقيق ارتباط المهام.

معالجة الأخطاء

عند استدعاء واجهة برمجة التطبيقات، إذا واجهت خطأ، ستقوم واجهة برمجة التطبيقات بإرجاع رمز الخطأ والمعلومات ذات الصلة. على سبيل المثال:
  • 400 token_mismatched : طلب غير صحيح، ربما بسبب معلمات مفقودة أو غير صالحة.
  • 400 api_not_implemented : طلب غير صحيح، ربما بسبب معلمات مفقودة أو غير صالحة.
  • 401 invalid_token : غير مصرح، رمز تفويض غير صالح أو مفقود.
  • 429 too_many_requests : عدد كبير جداً من الطلبات، لقد تجاوزت الحد الأقصى لمعدل الطلبات.
  • 500 api_error : خطأ في الخادم الداخلي، حدث خطأ ما في الخادم.

مثال على استجابة الخطأ

الاستنتاج

من خلال هذه الوثيقة، لقد فهمت كيفية استخدام واجهة برمجة تطبيقات إنتاج الصوتيات، يمكنك من خلال إدخال كلمات مفتاحية توليد الموسيقى. نأمل أن تساعدك هذه الوثيقة في التواصل واستخدام هذه الواجهة بشكل أفضل. إذا كان لديك أي استفسارات، لا تتردد في الاتصال بفريق الدعم الفني لدينا.