Skip to content

ऑडियो एनोटेशन

Potato में ऑडियो एनोटेशन की पूरी मार्गदर्शिका, वर्गीकरण, टैगिंग, waveform पर sound event detection, ट्रांसक्रिप्शन, गुणवत्ता (MOS) रेटिंग, भाव, और speaker diarization।

ऑडियो एनोटेशन में पूरे क्लिप पर एक लेबल लगाने (“यह बोली है या संगीत?”) से लेकर waveform पर वह ठीक-ठीक पल चिह्नित करने तक, सब आता है जहाँ कोई आवाज़ आती है। Potato प्लेबैक और समय के निशान के साथ एक इंटरैक्टिव waveform दिखाता है, इसलिए वर्गीकरण, टैगिंग, समय से जुड़ी event detection, ट्रांसक्रिप्शन, गुणवत्ता रेटिंग, और स्पीकर से जुड़ा काम, सब एक ही टूल से हो जाता है। फ़ीचर संदर्भ के लिए ऑडियो एनोटेशन देखें।

यह मार्गदर्शिका हर आम ऑडियो कार्य को एक Potato सेटअप और एक चलाने लायक showcase डिज़ाइन से जोड़ती है।

क्लिप-स्तर का वर्गीकरण

पूरे क्लिप पर एक श्रेणी का लेबल लगाएँ। इसके दायरे में acoustic scene classification, environmental sound classification, keyword spotting, और respiratory sound classification आते हैं।

yaml
annotation_schemes:
  - annotation_type: radio
    name: scene
    description: "What environment was this recorded in?"
    labels: [Street, Park, Office, Home, Vehicle]

बहु-लेबल टैगिंग

जब एक साथ कई आवाज़ें या टैग लागू होते हों, जैसे music tagging और AudioSet-शैली की event classification में, तब multiselect इस्तेमाल करें।

yaml
annotation_schemes:
  - annotation_type: multiselect
    name: tags
    description: "Select every instrument you can hear."
    labels: [Guitar, Drums, Piano, Vocals, Bass, Synth]

Sound event detection, waveform पर span

कोई आवाज़ कब शुरू होती है और कब खत्म, यह चिह्नित करने के लिए ऑडियो टाइमलाइन पर span लगाएँ। यही sound event detection है, span एनोटेशन का ऑडियो वाला रूप।

yaml
annotation_schemes:
  - annotation_type: span
    name: events
    description: "Mark the start and end of each sound event and label it."
    labels: [Speech, Music, Dog bark, Siren, Silence]

शुरू से ट्रांसक्रिप्शन

audio transcription के लिए प्लेबैक के साथ एक फ़्री-टेक्स्ट फ़ील्ड रखें। एनोटेटर टाइप करते-करते waveform पर आगे-पीछे जा सकते हैं।

yaml
annotation_schemes:
  - annotation_type: text
    name: transcript
    description: "Type what is said in this clip."

पहले से मौजूद ट्रांसक्रिप्ट को एनोटेट करना

शुरू से ट्रांसक्राइब करना महँगा पड़ता है। ज़्यादातर प्रोजेक्ट किसी पहले से मौजूद ट्रांसक्रिप्ट से शुरू होते हैं, जो Whisper से आया हो, किसी क्लाउड ASR API से, या वीडियो के साथ डाउनलोड किए गए कैप्शन से। Potato 21 ट्रांसक्रिप्ट और सबटाइटल फ़ॉर्मैट पढ़ता है और उनके टर्न को ऑडियो से सिंक स्पीकर बबल के रूप में दिखाता है, ताकि एनोटेटर सेगमेंट दोबारा बनाने के बजाय उन्हें लेबल करें।

yaml
instance_display:
  fields:
    - key: conversation
      type: audio_dialogue
      label: "Transcript"
      span_target: true
      display_options:
        show_timestamps: true
        allow_speaker_assignment: auto

आप इनमें से कौन सा चाहते हैं, यह इस पर टिका है कि आप माप क्या रहे हैं। जब ट्रांसक्रिप्ट ही आख़िरी उत्पाद हो, या ऑडियो इतना ख़राब हो कि ASR का आउटपुट एनोटेटरों को ग़लत शब्दों से बाँध देगा, तब शुरू से ट्रांसक्राइब कराएँ। जब आपकी दिलचस्पी सामग्री में हो, या आप ASR की गुणवत्ता जाँच रहे हों और चाहते हों कि ग़लतियाँ दिखें, तब पहले से मौजूद ट्रांसक्रिप्ट से शुरू करें।

देखें Whisper ट्रांसक्रिप्ट एनोटेट करना और YouTube सबटाइटल एनोटेट करना

गुणवत्ता रेटिंग: MOS और बोधगम्यता

व्यक्तिपरक ऑडियो गुणवत्ता mean opinion score से मापी जाती है, यानी 1–5 की Likert रेटिंग जिसका सुनने वालों पर औसत लिया जाता है। इसमें speech quality (MOS) और speech intelligibility आते हैं।

yaml
annotation_schemes:
  - annotation_type: likert
    name: mos
    description: "Rate the overall quality of this audio."
    size: 5
    min_label: "Bad"
    max_label: "Excellent"

स्केल डिज़ाइन करने के सुझावों के लिए रेटिंग स्केल देखें।

भाव और भावना

speech emotion recognition और audio sentiment analysis में एक श्रेणी (भाव) को आयामी रेटिंग (arousal, valence) के साथ जोड़ा जाता है, radio के साथ slider या likert से।

Speaker diarization

Speaker diarization यह बताता है कि कब कौन बोला। एनोटेटर समय के span चिह्नित करते हैं और हर एक को किसी स्पीकर से जोड़ते हैं, यानी span एनोटेशन के साथ एक जोड़ने का चरण।

अगर आपने diarization पहले ही चला रखा है, WhisperX से या किसी क्लाउड API से, तो Potato स्पीकर के लेबल सीधे पढ़ लेता है और एनोटेटरों को सिर्फ़ ग़लतियाँ सुधारनी होती हैं। बिना diarization वाले टर्न Unassigned के रूप में एक पिकर के साथ दिखते हैं, और गड़बड़ ऑडियो पर सुनकर बताने वाला इंसान अक्सर अपने आप चलने वाले सिस्टम से आगे निकल जाता है।

व्यावहारिक सुझाव

  • क्लिप इतने छोटे रखें कि एक या दो बार सुनकर फ़ैसला हो जाए; लंबे क्लिप से सहमति गिरती है।
  • event detection के लिए पहले तय कर लें कि सीमाएँ कितनी सटीक होनी चाहिए और सहमति span के स्तर पर मापें, देखें इंटर-एनोटेटर सहमति
  • सभी क्लिप की आवाज़ का स्तर एक जैसा कर लें ताकि गुणवत्ता रेटिंग सिर्फ़ वॉल्यूम से तय न हो।

आगे पढ़ें