Tutorials4 min read
توصيف تقسيم المتحدثين
ابنِ مهمة تحديد المتحدثين مع أشكال الموجة الصوتية وعلامات الطوابع الزمنية وتعيين تسميات المتحدثين.
Potato Team·
توصيف تقسيم المتحدثين
يجيب تقسيم المتحدثين عن سؤال "من تحدث ومتى؟" يغطي هذا الدرس بناء واجهات لتوصيف أدوار المتحدثين وتصحيح التقسيم التلقائي والتعامل مع المحادثات متعددة المتحدثين.
ما هو تقسيم المتحدثين؟
يقسّم تقسيم المتحدثين الصوت إلى مناطق متجانسة حسب المتحدث. تشمل التطبيقات:
- نسخ الاجتماعات
- تحليلات مراكز الاتصال
- إنتاج البودكاست
- معالجة المقابلات
- التسجيلات القانونية/المحاكم
إعداد التقسيم الأساسي
yaml
annotation_task_name: "Speaker Diarization"
data_files:
- "data/conversations.json"
annotation_schemes:
- annotation_type: audio_annotation
name: speakers
description: "Mark when each speaker talks"
labels:
- name: Speaker 1
color: "#FF6B6B"
keyboard_shortcut: "1"
- name: Speaker 2
color: "#4ECDC4"
keyboard_shortcut: "2"
- name: Speaker 3
color: "#45B7D1"
keyboard_shortcut: "3"
- name: Overlap
color: "#FFEAA7"
keyboard_shortcut: "o"
- name: Silence
color: "#9CA3AF"
keyboard_shortcut: "s"إنشاء مقاطع المتحدثين
سير العمل
- شغّل الصوت أو انقر على شكل الموجة للتنقل
- انقر واسحب على شكل الموجة لتحديد نطاق زمني
- اضغط مفتاح رقم أو انقر على تسمية متحدث
- يتم تلوين المقطع ووسمه
- اضبط الحدود بسحب الأطراف
- استمر حتى يُقسّم الصوت بالكامل
عناصر تحكم لوحة المفاتيح
يوفر Potato اختصارات لوحة مفاتيح مدمجة للتحكم في تشغيل الصوت بما في ذلك التشغيل/الإيقاف والتنقل.
تصحيح التقسيم المُوصّف مسبقاً
غالباً ستصحح تقسيماً تلقائياً:
yaml
data_files:
- "data/auto_diarized.json"تنسيق البيانات:
json
{
"id": "meeting_001",
"audio_path": "/audio/meeting_001.wav",
"auto_segments": [
{"start": 0.0, "end": 3.5, "speaker": "Speaker 1"},
{"start": 3.5, "end": 8.2, "speaker": "Speaker 2"},
{"start": 8.2, "end": 12.0, "speaker": "Speaker 1"}
]
}معلومات المتحدث المفصلة
التقط بيانات وصفية إضافية للمتحدث:
yaml
annotation_schemes:
- annotation_type: audio_annotation
name: speakers
labels:
- name: Speaker A
color: "#FF6B6B"
- name: Speaker B
color: "#4ECDC4"
- name: Speaker C
color: "#45B7D1"
- name: Unknown
color: "#9CA3AF"
# Speaker characteristics
- annotation_type: radio
name: speaker_a_gender
description: "Speaker A Gender"
labels:
- Male
- Female
- Unknown
- annotation_type: text
name: speaker_a_role
description: "Speaker A Role (if identifiable)"
- annotation_type: radio
name: speaker_b_gender
description: "Speaker B Gender"
labels:
- Male
- Female
- Unknownالتعامل مع الكلام المتداخل
yaml
annotation_schemes:
- annotation_type: audio_annotation
name: speakers
labels:
- name: Speaker 1
color: "#FF6B6B"
- name: Speaker 2
color: "#4ECDC4"
- name: Overlap
color: "#FFEAA7"تقسيم الاجتماعات/المقابلات
yaml
annotation_task_name: "Meeting Diarization"
data_files:
- "data/meetings.json"
annotation_schemes:
# Speaker turns
- annotation_type: audio_annotation
name: turns
description: "Mark each speaker turn"
labels:
- name: Moderator
color: "#EF4444"
keyboard_shortcut: "m"
- name: Participant 1
color: "#3B82F6"
keyboard_shortcut: "1"
- name: Participant 2
color: "#10B981"
keyboard_shortcut: "2"
- name: Participant 3
color: "#F59E0B"
keyboard_shortcut: "3"
- name: Participant 4
color: "#8B5CF6"
keyboard_shortcut: "4"
- name: Unknown
color: "#6B7280"
keyboard_shortcut: "u"
- name: Overlap
color: "#FCD34D"
keyboard_shortcut: "o"
- name: Silence/Noise
color: "#D1D5DB"
keyboard_shortcut: "s"
# Speech type annotation
- annotation_type: radio
name: speech_type
description: "Type of speech"
labels:
- Statement
- Question
- Response
- Interruption
- Backchannel
# Overall quality
- annotation_type: radio
name: recording_quality
description: "Overall recording quality"
labels:
- Excellent - All speakers clear
- Good - Most speech understandable
- Fair - Some difficulty
- Poor - Significant issuesتنسيق المخرجات
json
{
"id": "meeting_001",
"audio_path": "/audio/meeting_001.wav",
"annotations": {
"turns": [
{
"start": 0.0,
"end": 5.2,
"label": "Moderator",
"attributes": {
"speech_type": "Statement"
}
},
{
"start": 5.2,
"end": 12.8,
"label": "Participant 1",
"attributes": {
"speech_type": "Response"
}
},
{
"start": 11.5,
"end": 12.8,
"label": "Overlap"
}
],
"recording_quality": "Good - Most speech understandable"
}
}نصائح للتقسيم
- استمع أولاً: تعرّف على المتحدثين قبل التوصيف
- لاحظ خصائص المتحدث: طبقة الصوت، اللهجة، أسلوب التحدث
- تعامل مع التداخلات بشكل متسق: قرر استراتيجية مسبقاً
- استخدم التحكم بالسرعة: أبطئ للأقسام الصعبة
- حدد عدم اليقين: لا بأس باستخدام "غير معروف" عند الحاجة
الخطوات التالية
- ادمج مع النسخ الكتابي لملاحظات اجتماع كاملة
- أضف كشف المشاعر لكل متحدث
- أعدّ مراقبة الجودة لاتفاق المُوصِّفين المتعددين
انظر /docs/features/audio-annotation للتوثيق الكامل للصوت.