Speaker diarization का एनोटेशन
Potato में वक्ता पहचानने का कार्य बनाइए: इंटरैक्टिव ऑडियो waveform, समय के निशान, वक्ताओं के लेबल, और एनोटेटरों के बीच सहमति नापने का तरीक़ा।
Speaker diarization एक ही सवाल का जवाब देता है: कौन कब बोला? यह ट्यूटोरियल ऐसे इंटरफ़ेस बनाना बताता है जिनमें वक्ताओं की बारी एनोटेट की जाए, अपने आप हुए diarization को सुधारा जाए, और कई वक्ताओं वाली बातचीत सँभाली जाए। ऑडियो स्कीमा की पूरी सूची के लिए स्रोत दस्तावेज़ देखें।
Speaker diarization क्या है?
Speaker diarization ऑडियो को ऐसे हिस्सों में बाँटता है जिनमें एक ही वक्ता बोल रहा हो। इसकी ज़रूरत यहाँ पड़ती है:
- बैठकों का ट्रांसक्रिप्शन
- कॉल सेंटर का विश्लेषण
- पॉडकास्ट का निर्माण
- इंटरव्यू की प्रोसेसिंग
- अदालती और क़ानूनी रिकॉर्डिंग
बुनियादी diarization सेटअप
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"वक्ताओं के खंड बनाना
काम का क्रम
- ऑडियो चलाइए, या waveform पर क्लिक करके आगे-पीछे जाइए
- waveform पर क्लिक करके खींचिए और समय की एक रेंज चुनिए
- कोई नंबर दबाइए या वक्ता का लेबल क्लिक कीजिए
- वह खंड रंग जाता है और उस पर लेबल लग जाता है
- किनारे खींचकर सीमाएँ ठीक कीजिए
- यही करते रहिए जब तक पूरा ऑडियो खंडों में न बँट जाए
कीबोर्ड के नियंत्रण
ऑडियो प्लेबैक के लिए Potato में कीबोर्ड शॉर्टकट पहले से मौजूद हैं, जिनमें चलाना/रोकना और आगे-पीछे जाना शामिल है।
पहले से बने diarization को सुधारना
अक्सर आप शून्य से लेबल नहीं लगा रहे होते, किसी अपने आप चलने वाले diarizer के आउटपुट को ठीक कर रहे होते हैं:
data_files:
- "data/auto_diarized.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"}
]
}वक्ता के बारे में विस्तृत जानकारी
हर वक्ता के बारे में अतिरिक्त मेटाडेटा दर्ज कीजिए:
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एक साथ बोलने को सँभालना
annotation_schemes:
- annotation_type: audio_annotation
name: speakers
labels:
- name: Speaker 1
color: "#FF6B6B"
- name: Speaker 2
color: "#4ECDC4"
- name: Overlap
color: "#FFEAA7"बैठक या इंटरव्यू का diarization
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आउटपुट प्रारूप
{
"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 के लिए सुझाव
- पहले सुनिए: एनोटेशन शुरू करने से पहले वक्ताओं से परिचित हो जाइए
- वक्ता की ख़ासियतें नोट कीजिए: सुर, लहजा, बोलने का अंदाज़
- एक साथ बोलने को एक तरह से सँभालिए: तरीक़ा पहले ही तय कर लीजिए
- गति का नियंत्रण इस्तेमाल कीजिए: मुश्किल हिस्सों पर ऑडियो धीमा कीजिए
- अनिश्चितता दर्ज कीजिए: ज़रूरत पड़ने पर Unknown चुनने में कोई हर्ज नहीं
अगले क़दम
- पूरी बैठक के नोट के लिए इसे ट्रांसक्रिप्शन के साथ मिलाइए
- हर वक्ता के लिए भाव पहचान जोड़िए
- कई एनोटेटरों के बीच सहमति के लिए गुणवत्ता नियंत्रण सेट कीजिए
पूरे ऑडियो दस्तावेज़ के लिए ऑडियो एनोटेशन देखें।