المطورون / تنقية الصوت
تنقية الصوت بشكل متزامن (يعيد رابط الملف المنقّى في طلب واحد، حتى 10 دقائق و150 ميجابايت)
https://api.echonova.ai/v1/sound-cleaningتنقّي ملفًا مرفوعًا بصيغة MP3 أو WAV أو FLAC أو OGG/Opus، حتى 10 دقائق و150 ميجابايت، في طلب واحد، وتعيد المهمة مع رابط الملف المنقّى. حقول الضبط كلها اختيارية، والحقل المحذوف يأخذ قيمته الافتراضية.
Headers
كلمة Bearer ثم مسافة ثم مفتاح API الذي يبدأ بـ ek_. أنشئ المفاتيح في البوابة من المطورون، ثم مفاتيح واجهة برمجة التطبيقات.
متن الطلب
multipart/form-data
الملف الصوتي (mp3، wav، flac، ogg/opus). حتى 10 دقائق و150 ميجابايت.
تردد قطع المرشح High-pass بوحدة Hz
نعومة المرشح High-pass
مستوى الصوت المستهدف بوحدة LUFS
سقف الذروة بوحدة dBFS
عتبة الضاغط بوحدة dBFS
نسبة الضاغط
زمن هجوم الضاغط بوحدة ms
زمن إفلات الضاغط بوحدة ms
الاستجابة
200 application/json كل استجابة تستخدم هذا الغلاف.
النتيجة.
معرّف المهمة.
`pending` أو `processing` أو `completed` أو `failed`.
اسم الملف المرفوع.
رابط بصلاحية محدودة لملف WAV المنقّى.
مدة المقطع الصوتي بالثواني.
الرصيد المخصوم، رقم صحيح.
قيم الضبط التي شغّلت بها المهمة.
تردد قطع المرشح High-pass بوحدة Hz.
نعومة المرشح High-pass.
مستوى الصوت المستهدف بوحدة LUFS.
سقف الذروة بوحدة dBFS.
عتبة الضاغط بوحدة dBFS.
نسبة الضاغط.
زمن هجوم الضاغط بوحدة ms.
زمن إفلات الضاغط بوحدة ms.
قياسات الملف المنقّى.
معدل العيّنات للملف المنقّى بوحدة Hz.
مستوى الصوت المقاس للملف المنقّى بوحدة LUFS.
الذروة المقاسة للملف المنقّى بوحدة dBFS.
سبب فشل المهمة. لا يظهر إلا إذا كانت `status` تساوي `failed`.
وقت إنشاء المهمة بصيغة ISO 8601 بالتوقيت UTC.
قيمته true عند نجاح الطلب.
يكرر رمز حالة HTTP.
قيمته null عند النجاح.
الأخطاء
الغلاف نفسه، مع success بقيمة false و data بقيمة null. كل الأخطاء
متى يحدث. header `Content-Type` يذكر `multipart/form-data` دون `boundary`، وغالبًا لأن العميل ضبط header يدويًا.
الحل. احذف header الذي كُتب يدويًا، ودع العميل يضبطه مع `boundary`.
متى يحدث. النموذج يحتوي على جزء اسم حقله غير `file`، أو على أكثر من جزء اسمه `file` (يُقبل ملف واحد فقط).
الحل. أرسل جزء ملف واحدًا فقط، واجعل اسمه `file`.
متى يحدث. النموذج لا يحتوي على جزء ملف، أو أن الطلب ليس `multipart` من الأساس.
الحل. أرسل نموذج `multipart` يحتوي على جزء واحد اسمه `file`.
متى يحدث. قيمة `Content-Type` للجزء لا تبدأ بـ `audio/`، و`<type>` هي القيمة التي أرسلها العميل.
الحل. اضبط نوع الجزء، مثل `audio/wav` أو `audio/mpeg`.
متى يحدث. مدة الملف أكبر من 10 دقائق.
الحل. قسّم التسجيل إلى أجزاء مدة كل منها 10 دقائق أو أقل.
متى يحدث. الملف فارغ، أو تعذّر فك ترميزه كملف صوتي.
الحل. تأكد من أن الملف يعمل عند تشغيله، أو صدّره مرة أخرى بصيغة شائعة.
متى يحدث. امتداد الملف أو `Content-Type` ليس من الصيغ الأربع، أو أن الاثنين لا يتطابقان.
الحل. أرسل ملفًا بصيغة MP3 أو WAV أو FLAC أو OGG/Opus، بامتداد ونوع متطابقين.
متى يحدث. قيمة حقل الضبط خارج نطاقه، والرسالة تذكر اسم الحقل والحد.
الحل. التزم بالحد الأدنى والحد الأقصى المذكورين للحقل.
متى يحدث. متن الطلب أو الاستعلام يحمل حقلًا لا تعرّفه نقطة النهاية.
الحل. احذف الحقل.
متى يحدث. header `Authorization` مفقود، أو قيمته لا تبدأ بـ `Bearer ek_...`، أو أن الرمز لا يطابق أي مفتاح، أو أن المفتاح محذوف أو معطّل، أو أن حسابه مغلق.
الحل. أرسل `Authorization: Bearer ek_...` بمفتاح API مفعّل.
متى يحدث. رصيد مساحة العمل لا يكفي تكلفة هذا الطلب؛ لم يُنفَّذ شيء، ولم يُخصم أي رصيد.
الحل. أضف رصيدًا إلى مساحة العمل.
متى يحدث. مساحة العمل التي يتبعها المفتاح ليس لديها اشتراك.
الحل. تحقّق من خطة مساحة العمل في البوابة.
متى يحدث. حالة الاشتراك ليست نشطة ولا تجريبية.
الحل. جدّد الاشتراك.
متى يحدث. المفتاح مقيّد، وتنقية الصوت ليست من الخدمات المسموح بها له.
الحل. عدّل المفتاح وفعّل تنقية الصوت، أو استخدم مفتاحًا آخر.
متى يحدث. حجم الملف المرفوع أكبر من 150 ميجابايت، ويُقطع الطلب قبل قراءة الملف.
الحل. أعد ترميز الملف بمعدل بت أقل، أو بقناة واحدة (mono).
متى يحدث. المفتاح أرسل أكثر من 100 طلب إلى نقطة نهاية واحدة خلال 60 ثانية، أو أن عنوان IP واحدًا أرسل أكثر من 100 طلب إلى نقطة نهاية واحدة خلال 60 ثانية (يُحسب حد عنوان IP قبل فحص المفتاح، لذلك قد يرد الخادم دون أي مفتاح)؛ و header `Retry-After` يحمل عدد الثواني المطلوب انتظارها.
الحل. انتظر عدد الثواني المذكور في `Retry-After`، ثم أعد المحاولة.
متى يحدث. الطلب سيتجاوز حد الرصيد الخاص بالمفتاح لدورة الفوترة هذه؛ لم يُنفَّذ شيء، ولا يوجد header `Retry-After`.
الحل. ارفع حد الرصيد على المفتاح أو أزِله، أو انتظر دورة الفوترة التالية.
متى يحدث. خطأ لم تصنّفه API.
الحل. تحقّق من الطلب، ثم أعد المحاولة بعد لحظة قصيرة؛ وتواصل مع الدعم إذا تكرر الخطأ.
متى يحدث. قيست ملفات مرفوعة كثيرة في وقت واحد، أو انتهت مهلة القياس؛ ولم يُخصم أي رصيد.
الحل. أعد المحاولة بعد لحظة قصيرة.
متى يحدث. تعذّر الوصول إلى خدمة التنقية؛ وسيُعاد الرصيد المخصوم.
الحل. أعد المحاولة مرة واحدة.
متى يحدث. انقطاع مؤقت داخل API.
الحل. أعد المحاولة بعد لحظة قصيرة.
متى يحدث. انتهاء مهلة مؤقت داخل API.
الحل. أعد المحاولة بعد لحظة قصيرة.
curl -X POST "https://api.echonova.ai/v1/sound-cleaning" \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@audio.mp3;type=audio/mpeg"{
"data": {
"id": "66e3f2a1c9d4b8a1f0e12345",
"status": "completed",
"fileName": "noisy.wav",
"outputUrl": "https://storage.example.com/cleaned/66e3f2a1c9d4b8a1f0e12345.wav?signature=abc",
"durationSeconds": 12,
"creditsConsumed": 207,
"options": {
"cutoffFreq": 90,
"qFactor": 0.707,
"targetLufs": -16,
"truePeakDbfs": -1,
"compThreshDb": -3.8,
"compRatio": 4,
"compAttackMs": 5,
"compReleaseMs": 50
},
"metrics": {
"sampleRate": 48000,
"integratedLufs": -16.1,
"truePeakDbfs": -1
},
"error": "The audio could not be cleaned.",
"createdAt": "2026-10-11T10:21:04.512Z"
},
"success": true,
"statusCode": 200,
"errorMessage": null
}