من قال ماذا في التسجيل الجماعي
يجيب التفريغ عن ماذا قيل؛ أما هذا المسار فيقوم بخطوة أولى تقطّع التسجيل إلى أدوار. يصغي إلى فترات الصمت بين مقاطع الكلام ويقطع الصوت إلى شرائح، ويسمّيها أدوارًا متناوبة (المتحدث الأول، المتحدث الثاني) بوقت بداية ونهاية. لنقلها بصراحة: يقطّع الأدوار حسب الصمت، ولا يتعرّف على الأصوات ولا يستنتج العدد الحقيقي للمتحدثين المختلفين.
شغّلها أونلاين
شغّل هذه المهمة على خوادمنا باستخدام حسابك. الأدوات المجانية تعمل داخل متصفحك، أما هذه فتُخصم من رصيدك في KIT حسب السعر الموضّح أعلاه.
ما تفعله هذه المهمة فعلًا
تُجري تقطيعًا خفيفًا للأدوار، لا تعرّفًا صوتيًا على المتحدثين. يُفرَّغ التسجيل أولًا، وحيثما وُجد صمت طويل بما يكفي بين شريحتين تنتقل التسمية إلى الدور التالي، متناوبةً بين علامتين اثنتين فقط. يمنحك هذا بنية مقطّعة ومزوّدة بالتوقيتات — أخذًا وردًّا مقروءًا بدل كتلة واحدة بلا تمييز — وهي مفيدة فعلًا كخطوة أولى في محادثة بين شخصين. أما ما ليست عليه فهو نموذج يصغي إلى خصائص الصوت ليقرّر من هو مَن؛ فالتسميات تنبع من إيقاع فترات الصمت، لا من تمييز صوت عن آخر.
ما تُرجعه المهمة
أرسِل ملفًا صوتيًا عبر POST إلى /audio/diarize فتُرجع المهمة قائمة بالأدوار: يحمل كل دور تسمية متحدث (المتحدث الأول أو المتحدث الثاني)، ونص ذلك المقطع، ووقت بدايته ونهايته. كما تُبلّغ بعدد التسميات المختلفة التي استخدمتها، وهو في هذا النهج القائم على الصمت اثنتان على الأكثر — وهذا العدد خاصية من خصائص التقطيع، لا قياسًا لعدد الحاضرين فعلًا في الغرفة. وبدمجها مع تفريغ تحصل على بنية أشبه بالنص المسرحي، مزوّدة بالتوقيتات، يسهل تصفّحها.
أين يناسب النهج القائم على الصمت وأين لا يناسب
يناسب تبادلًا نظيفًا بين شخصين — مقابلة، أو مكالمة فردية — يتناوب فيه المتحدثان غالبًا وتتوافق فترات الصمت مع تغيّر الصوت. ولا يناسب جلسة بعدة مشاركين، ولا تداخلًا كثيفًا في الكلام، ولا حالة تحتاج فيها إلى تتبّع كل شخص حقيقي باتساق عبر التسجيل كله: فتناوب تسميتين حسب الصمت سيخطئ التسمية في تلك الحالات. وإن كان سير عملك يحتاج إلى تحديد العدد الحقيقي للمتحدثين أو ربط الأصوات بهويات، فتلك مهمة مختلفة وأثقل مما يؤديه هذا المسار، ولن تدّعي هذه الصفحة خلاف ذلك.
لماذا يظل تقطيع الأدوار مفيدًا
حتى دون تعرّف حقيقي على المتحدثين، فإن تقسيم تسجيل بين شخصين إلى أدوار مزوّدة بالتوقيتات يوفّر عملًا حقيقيًا: يحوّل جدارًا من التفريغ إلى تبادل مقروء يمكنك تصفّحه، أو الاقتباس منه بحسب التوقيت، أو تمريره إلى خطوة تدوين ملاحظات. فريق دعم يراجع مكالمة واحدة بين موظف وعميل، وصحفي ينقّح مقابلة فردية، ومنتج يقطّع فقرة بمقدّمَين إلى أدوار مقروءة — جميعهم يستفيدون من بنية أولية يصحّحونها يدويًا حيث يهم، بدل الانطلاق من كتلة واحدة بلا تمييز.
السعر وطريقة الاحتساب
التكلفة رسم أساسي صغير لكل طلب، زائد تعرفة بالدقيقة مرتبطة بمدة التسجيل، منشورة على هذه الصفحة: $0.002 لكل طلب زائد $0.0055 لكل دقيقة. تُعالَج المهمة بشكل غير متزامن — أرسِل الصوت، واحصل على task_id فورًا، واستلم النتيجة المقطّعة إلى أدوار عبر webhook موقّع أو من رابط موقّع صالح 24 ساعة؛ وتُعاد المهمة الفاشلة تلقائيًا حتى ثلاث مرات، ولا يُحتسب عليها أي مقابل إن لم تكتمل رغم ذلك.
حالات الاستخدام
أدوار مقابلة بين شخصين
يمرّر صحفي مقابلة فردية مسجّلة عبر المسار ليقطّعها إلى أدوار مزوّدة بالتوقيتات، محوّلًا تفريغًا خامًا إلى أخذ وردّ مقروء يصحّحه يدويًا.
مراجعة مكالمة بين موظف وعميل
يقسّم فريق دعم مكالمة مسجّلة واحدة إلى أدوار متناوبة لتسريع المراجعة، دون أن يتوقّع من الأداة أن تحدّد من هو مَن عبر الصوت.
تنظيف فقرة بمقدّمَين
يقطّع منتج تسجيلًا بمقدّمَين إلى أدوار مزوّدة بالتوقيتات كخطوة أولى قبل تحرير ملاحظات الحلقة، مصحّحًا التسميات الخاطئة يدويًا.
بنية أولية قبل الملاحظات
يقطّع سير عمل محادثةً إلى أدوار وتوقيتات قبل خطوة تلخيص، فيمنح المرحلة التالية مدخلًا منظّمًا بدل كتلة مسطّحة.
الأسئلة الشائعة
ماذا يفعل هذا المسار فعلًا؟
يقطّع التسجيل إلى أدوار عبر كشف فترات الصمت بين مقاطع الكلام، ويسمّيها أدوارًا متناوبة (المتحدث الأول، المتحدث الثاني) بوقت بداية ونهاية. إنه تقطيع للأدوار قائم على الصمت، لا تعرّف صوتي على المتحدثين.
هل يحدّد كم متحدثًا في التسجيل؟
لا. يتناوب بين تسميتين بحسب فترات الصمت، لذا لا يستنتج العدد الحقيقي للمتحدثين المختلفين. وعدد التسميات الذي يبلّغ عنه خاصية من خصائص التقطيع، لا قياسًا لعدد الحاضرين.
هل يتعرّف على الشخص المعيّن الذي يتكلّم؟
لا. تنبع التسميات من إيقاع فترات الصمت، لا من تمييز صوت عن آخر، لذا لا يتعرّف على المتحدثين ولا يربط الأصوات بهويات. في تبادل نظيف بين شخصين تتوافق التسميات المتناوبة عادةً مع المتحدثَين؛ ومع أصوات أكثر أو تداخل كثيف، لا تتوافق.
بمَ يختلف هذا عن التفريغ؟
يُنتج التفريغ الكلمات التي قيلت؛ أما هذه المهمة فتضيف فوقها بنية أدوار وتوقيتات، مقسّمةً النص إلى شرائح متناوبة موقّتة كي يُقرأ تسجيل بين شخصين تبادلًا لا كتلةً واحدة.
هل هذا المسار مجاني؟
لا توجد فئة مجانية — الفئات المجانية يُساء استغلالها وتُبطئ الجميع. يعمل الوصول برصيد مسبق الدفع من ForHosting KIT: اشحن اعتبارًا من $10.00 (لا ينتهي أبدًا)، ويُحتسب على كل طلب سعره المنشور، فيُرجع الطلب دون رصيد HTTP 402. لا اشتراك، ولا رموز، ولا أرصدة مختلَقة، ولا يُحتسب أي مقابل على مهمة فاشلة.
كيف أستلم النتيجة؟
تُرجع المهمة task_id فورًا وتُعالَج بشكل غير متزامن؛ وتصل النتائج عبر webhook موقّع أو من رابط موقّع صالح 24 ساعة.
متى تكون الأدوار خاطئة؟
في التسجيلات التي تضم أكثر من متحدثَين، أو تداخلًا كثيفًا، أو فترات صمت طويلة داخل كلام الشخص نفسه، سيُخطئ تناوبُ تسميتين حسب الصمت في تسمية الأدوار. عامِل المخرجات كخطوة أولى للتصحيح، لا كإسناد نهائي.
ماذا يحدث إن فشلت المهمة؟
تُعاد المهمة تلقائيًا حتى ثلاث مرات قبل أن تُرجع خطأً واضحًا، ولا يُحتسب أي مقابل على طلب فاشل.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/audio/diarize \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"audio":"https://ejemplo.com/audio.mp3"}'const res = await fetch("https://api.kit.forhosting.com/audio/diarize", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"audio": "https://ejemplo.com/audio.mp3"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/audio/diarize",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"audio": "https://ejemplo.com/audio.mp3"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/audio/diarize", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"audio":"https://ejemplo.com/audio.mp3"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"audio":"https://ejemplo.com/audio.mp3"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/audio/diarize", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"audio": "https://ejemplo.com/audio.mp3"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "audio.diarize",
"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 | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
422 | task_failed | لم تنجح معالجة المهمة، ولن تُحتسب عليك؛ أعد المحاولة أو راسلنا مباشرة. |