دمج المقاطع الصوتية: حساب المدة ومواضع البدء
يصبح التخطيط لدمج الصوت أيسر عندما تكون جميع الحدود الزمنية معروفة قبل التصيير. تستقبل هذه الحاسبة مدد المقاطع وفق ترتيبها المقصود، ثم تجمعها وتعرض اللحظة التي يبدأ عندها كل مقطع ضمن المسار الموحّد.
شغّل الأداة مجانًا
يبدأ المقطع الأول دائماً من الصفر، ويساوي كل موضع لاحق مجموع مدد المقاطع السابقة. يمكنكم الاستفادة من النتيجة لإعداد الفصول والترجمات وقرارات التحرير وجداول الإشارات وعناصر التحكم في التشغيل واختبارات التحقق، من دون رفع الملفات الصوتية أو معالجتها.
أدخلوا المدد حسب ترتيب التشغيل
أدخلوا مدة واحدة بالثواني لكل مقطع صوتي، وبالترتيب نفسه الذي ستظهر به المقاطع. تُقبل القيم العشرية، ولذلك لا يلزم تقريب مقطع مدته 12.375 ثانية إلى عدد صحيح. كما تُقبل قيمة الصفر للعناصر النائبة أو العناصر التي لا تشغل زمناً. يجب أن تكون كل قيمة عدداً محدوداً وغير سالب، ويمكن أن يضم الطلب 10,000 مقطع كحد أقصى. لا يجوز أن تكون القائمة فارغة، لأن التسلسل الخالي لا يتضمن حدوداً زمنية مفيدة. تعتمد هذه الأداة على المدد وحدها؛ فهي لا تفحص الملفات، ولا تفك ترميز الوسائط، ولا تغيّر معدل أخذ العينات، ولا تضيف تلاشيات، ولا تعدّل الصوت. لذلك يمكنكم استخدامها في بداية سير العمل حين تتوفر البيانات الوصفية، بينما تظل الملفات المصدر بعيدة أو كبيرة أو بانتظار الموافقة. حافظوا على وحدة الثواني لجميع القيم، واستعينوا بمصدر متسق للبيانات حتى يطابق الخط الزمني البرنامج الذي سينفذ الدمج فعلياً.
اقرؤوا الخط الزمني الموحّد
تتضمن الاستجابة حقلين. يمثّل total_duration مجموع كل المدد، أي طول الدمج المتصل بالثواني. أما clip_starts فهو مصفوفة تتطابق فهارسها مع فهارس قائمة الإدخال. تكون قيمتها الأولى صفراً لأن المقطع الأول يبدأ عند أول الخط، بينما تجمع كل قيمة لاحقة مدد جميع المقاطع التي سبقتها. فإذا كانت مدة المقطعين الأولين 12.5 و8.25 ثانية، يبدأ المقطع الثالث عند 20.75 ثانية. تبقى المخرجات أرقاماً بالثواني ولا تتحول إلى توقيت مكتوب، مما يسهّل تمريرها إلى الشفرة أو أدوات الترجمة أو بيانات الوسائط أو برامج التحرير ذات صيغ العرض الخاصة بها. تُضبط المجاميع التراكمية حتى 12 منزلة عشرية لتفادي شوائب الفاصلة العائمة الثنائية الشائعة، مثل ظهور ذيل طويل عند جمع 0.1 و0.2، مع الاحتفاظ بدقة أعلى بكثير مما توفره بيانات الصوت الوصفية عادةً.
استخدموا المواضع من دون افتراض نتيجة التصيير
تعاملوا مع المواضع المحسوبة بوصفها خطة حتمية لتسلسل متصل، لا قياسات مأخوذة من ملف خرج مشفّر. قد تغيّر منظومة الوسائط الفعلية التوقيت عندما تقتطع العينات أو تضيف تلاشيات متقاطعة أو صمتاً أو تعيد أخذ العينات أو تضيف حشواً خاصاً ببرنامج الترميز أو تقرّب الحدود إلى الإطارات. إذا كان الدمج يتضمن أياً من هذه العمليات، فعدّلوا مدد الإدخال لتعكس الإسهام الفعلي لكل مقطع، أو تحقّقوا من الملف النهائي بعد إنتاجه. أما في الدمج المباشر، فيمكن للقيم تشغيل علامات الفصول وإزاحات النصوص وتسميات الأشكال الموجية والتنقل واختبارات الجودة. كما تتيح مقارنة قائمة تشغيل مقترحة بحد أقصى للمدة قبل تخصيص موارد التصيير. ولأن الحساب حتمي ولا يستخدم الشبكة، فإن الإدخال نفسه يعطي النتيجة ذاتها في المتصفح وعبر API. تبلغ تكلفة الطلبات المؤتمتة $0.002، بينما تتيح الصفحة حساباً محلياً سريعاً للتخطيط.
حالات الاستخدام
إنشاء علامات الفصول
حوّلوا مدد المقاطع المرتبة إلى مواضع بدء دقيقة لفصول بودكاست أو محاضرة أو كتاب صوتي.
إزاحة توقيتات النص
أضيفوا موضع بدء كل مقطع إلى توقيتاته المحلية قبل جمع النصوص في تسلسل واحد.
فحص مدة قائمة التشغيل
احسبوا زمن التشغيل الكامل وكل نقطة انتقال قبل إرسال الوسائط إلى منظومة التصيير.
الأسئلة الشائعة
ما تكلفة طلب API؟
تبلغ تكلفة كل طلب API مقدار $0.002. ويمكنكم أيضاً تنفيذ الحساب محلياً في المتصفح.
ما الوحدة التي ينبغي استخدامها؟
أدخلوا جميع المدد بالثواني. تُقبل الكسور العشرية، وتُعاد المدد والمواضع بالثواني أيضاً.
هل تدمج هذه الإمكانية ملفات الصوت؟
لا. إنها تحسب الخط الزمني لقائمة مرتبة، ولا ترفع ملفات الوسائط أو تفك ترميزها أو ترمّزها أو تدمجها.
هل يمكن أن تكون قائمة المدد فارغة؟
لا. يلزم إدخال مدة مقطع واحد على الأقل، وتؤدي القائمة الفارغة إلى خطأ في الإدخال.
هل تُحتسب الفجوات أو التلاشيّات المتقاطعة؟
لا تُحتسب إلا إذا ضمّنتموها في المدد المدخلة. لا يضيف الحساب فجوات أو تداخلات تلقائياً.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/audio/merge-clips \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"durations":[12.5,8.25,3]}'const res = await fetch("https://api.kit.forhosting.com/audio/merge-clips", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"durations": [
12.5,
8.25,
3
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/audio/merge-clips",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"durations": [
12.5,
8.25,
3
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/audio/merge-clips", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"durations":[12.5,8.25,3]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"durations":[12.5,8.25,3]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/audio/merge-clips", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"durations": [
12.5,
8.25,
3
]
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "audio.merge_clips",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_mb | 200 |
max_minutes | 180 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |