Skip to content
Tutorials4 min read

Speaker diarization का एनोटेशन

Potato में वक्ता पहचानने का कार्य बनाइए: इंटरैक्टिव ऑडियो waveform, समय के निशान, वक्ताओं के लेबल, और एनोटेटरों के बीच सहमति नापने का तरीक़ा।

Potato Team

Speaker diarization एक ही सवाल का जवाब देता है: कौन कब बोला? यह ट्यूटोरियल ऐसे इंटरफ़ेस बनाना बताता है जिनमें वक्ताओं की बारी एनोटेट की जाए, अपने आप हुए diarization को सुधारा जाए, और कई वक्ताओं वाली बातचीत सँभाली जाए। ऑडियो स्कीमा की पूरी सूची के लिए स्रोत दस्तावेज़ देखें।

Speaker diarization क्या है?

Speaker diarization ऑडियो को ऐसे हिस्सों में बाँटता है जिनमें एक ही वक्ता बोल रहा हो। इसकी ज़रूरत यहाँ पड़ती है:

  • बैठकों का ट्रांसक्रिप्शन
  • कॉल सेंटर का विश्लेषण
  • पॉडकास्ट का निर्माण
  • इंटरव्यू की प्रोसेसिंग
  • अदालती और क़ानूनी रिकॉर्डिंग

बुनियादी diarization सेटअप

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"

वक्ताओं के खंड बनाना

काम का क्रम

  1. ऑडियो चलाइए, या waveform पर क्लिक करके आगे-पीछे जाइए
  2. waveform पर क्लिक करके खींचिए और समय की एक रेंज चुनिए
  3. कोई नंबर दबाइए या वक्ता का लेबल क्लिक कीजिए
  4. वह खंड रंग जाता है और उस पर लेबल लग जाता है
  5. किनारे खींचकर सीमाएँ ठीक कीजिए
  6. यही करते रहिए जब तक पूरा ऑडियो खंडों में न बँट जाए

कीबोर्ड के नियंत्रण

ऑडियो प्लेबैक के लिए Potato में कीबोर्ड शॉर्टकट पहले से मौजूद हैं, जिनमें चलाना/रोकना और आगे-पीछे जाना शामिल है।

पहले से बने diarization को सुधारना

अक्सर आप शून्य से लेबल नहीं लगा रहे होते, किसी अपने आप चलने वाले diarizer के आउटपुट को ठीक कर रहे होते हैं:

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"

बैठक या इंटरव्यू का diarization

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"
  }
}

Diarization के लिए सुझाव

  1. पहले सुनिए: एनोटेशन शुरू करने से पहले वक्ताओं से परिचित हो जाइए
  2. वक्ता की ख़ासियतें नोट कीजिए: सुर, लहजा, बोलने का अंदाज़
  3. एक साथ बोलने को एक तरह से सँभालिए: तरीक़ा पहले ही तय कर लीजिए
  4. गति का नियंत्रण इस्तेमाल कीजिए: मुश्किल हिस्सों पर ऑडियो धीमा कीजिए
  5. अनिश्चितता दर्ज कीजिए: ज़रूरत पड़ने पर Unknown चुनने में कोई हर्ज नहीं

अगले क़दम


पूरे ऑडियो दस्तावेज़ के लिए ऑडियो एनोटेशन देखें।