Skip to content
Tutorials5 min read

Klangereignisse erkennen und taggen

So richtest du eine Annotation ein, die einzelne Geräusche wie Sprache, Musik, Applaus oder Umgebungslärm mit Zeitspannen erfasst.

Potato Team

Bei der Klangereigniserkennung geht es darum, bestimmte Geräusche in einer Aufnahme zu finden: ein bellender Hund, eine Sirene, ein Stück Musik, eine zufallende Tür. Dieses Tutorial behandelt zeitmarkenbasierte Annotation zum Training von Modellen zur Geräuscherkennung. Die Audio-Optionen dahinter stehen in der Dokumentation zur Audio-Annotation.

Arten der Annotation von Klangereignissen

Die einfachste Form ist das Tagging auf Clip-Ebene: Du labelst einen ganzen Clip mit den Geräuschen, die darin vorkommen. Die zeitliche Erkennung geht weiter und markiert Anfang und Ende jedes Ereignisses. Genaue Zeitmarken pro Ereignis nennt man üblicherweise „starkes“ Labeln, das bloße Vorhandensein ohne Zeitangabe „schwaches“ Labeln. Was du brauchst, hängt davon ab, was dein Modell lernen soll.

Geräusch-Tagging auf Clip-Ebene

Für kurze Clips mit einzelnen Ereignissen:

yaml
annotation_task_name: "Sound Event Classification"
 
data_files:
  - data/audio_clips.json
 
item_properties:
  audio_path: audio_path
 
annotation_schemes:
  - annotation_type: audio_annotation
    name: sound_class
    description: "What sound is in this clip?"
    labels:
      - Dog bark
      - Car horn
      - Siren
      - Music
      - Speech
      - Footsteps
      - Door knock
      - Glass breaking
      - Gunshot
      - Baby cry
      - Other
      - Silence/noise only

Zeitliche Klangereigniserkennung

Markieren, wann Ereignisse auftreten:

yaml
annotation_task_name: "Sound Event Detection"
 
data_files:
  - data/recordings.json
 
item_properties:
  audio_path: audio_path
 
annotation_schemes:
  - annotation_type: audio_annotation
    playback_rate_control: true
    name: events
    description: "Mark all sound events with timestamps"
    labels:
      - name: speech
        color: "#3B82F6"
      - name: music
        color: "#8B5CF6"
      - name: vehicle
        color: "#EF4444"
      - name: animal
        color: "#F59E0B"
      - name: nature
        color: "#10B981"
      - name: mechanical
        color: "#6B7280"

Vollständige Konfiguration für Klangereignisse

yaml
annotation_task_name: "AudioSet-Style Event Detection"
 
data_files:
  - data/audio_10sec.json
 
item_properties:
  audio_path: audio_url
 
annotation_schemes:
  # Temporal event marking with audio playback
  - annotation_type: audio_annotation
    playback_rate_control: true
    name: sound_events
    description: "Mark all distinct sound events"
    labels:
      # Human sounds
      - name: Speech
        color: "#3B82F6"
        keyboard_shortcut: "1"
        category: human
      - name: Singing
        color: "#8B5CF6"
        keyboard_shortcut: "2"
        category: human
      - name: Laughter
        color: "#EC4899"
        category: human
      - name: Cough/Sneeze
        color: "#F472B6"
        category: human
 
      # Music
      - name: Music
        color: "#A855F7"
        keyboard_shortcut: "m"
        category: music
      - name: Musical instrument
        color: "#7C3AED"
        category: music
 
      # Animals
      - name: Dog
        color: "#F59E0B"
        keyboard_shortcut: "d"
        category: animal
      - name: Cat
        color: "#FBBF24"
        category: animal
      - name: Bird
        color: "#FCD34D"
        category: animal
 
      # Vehicles
      - name: Car
        color: "#EF4444"
        keyboard_shortcut: "c"
        category: vehicle
      - name: Motorcycle
        color: "#DC2626"
        category: vehicle
      - name: Siren
        color: "#B91C1C"
        category: vehicle
      - name: Aircraft
        color: "#991B1B"
        category: vehicle
 
      # Environment
      - name: Rain
        color: "#06B6D4"
        category: nature
      - name: Thunder
        color: "#0891B2"
        category: nature
      - name: Wind
        color: "#0E7490"
        category: nature
      - name: Water
        color: "#0D9488"
        category: nature
 
      # Domestic
      - name: Door
        color: "#84CC16"
        category: domestic
      - name: Alarm
        color: "#65A30D"
        category: domestic
      - name: Appliance
        color: "#4D7C0F"
        category: domestic
 
      # Other
      - name: Noise/Unknown
        color: "#6B7280"
        keyboard_shortcut: "n"
        category: other
 
 
    # Segment attributes
 
  # Clip-level tags (weak labels)
  - annotation_type: multiselect
    name: clip_tags
    description: "What sounds are present anywhere in this clip?"
    labels:
      - Speech
      - Music
      - Vehicle sounds
      - Animal sounds
      - Nature sounds
      - Domestic sounds
      - Silence
 
  # Audio quality
  - annotation_type: radio
    name: quality
    description: "Recording quality"
    labels:
      - Clean (clear sounds)
      - Moderate noise
      - Very noisy
      - Distorted/clipped
 
annotation_guidelines:
  title: "Sound Event Detection Guide"
  content: |
    ## Your Task
    Mark the START and END times of each distinct sound event.
 
    ## Event Detection Rules
    - Mark sounds that are clearly audible
    - Include overlapping sounds (use multiple labels)
    - Short sounds (<100ms) may be a single point
 
    ## Segment Boundaries
    - Start: When sound becomes audible
    - End: When sound fades or stops
 
    ## Confidence Levels
    - Clear: Easily identifiable
    - Moderate: Reasonably sure
    - Faint: Background, hard to identify
 
    ## Foreground vs Background
    - Foreground: Main focus of audio
    - Background: Ambient sounds
 

Ausgabeformat

json
{
  "id": "clip_001",
  "audio_url": "/audio/street_scene.wav",
  "duration": 10.0,
  "annotations": {
    "sound_events": [
      {
        "label": "Speech",
        "start": 0.5,
        "end": 3.2,
        "attributes": {
          "confidence": "Clear",
          "foreground": true
        }
      },
      {
        "label": "Car",
        "start": 1.8,
        "end": 4.5,
        "attributes": {
          "confidence": "Moderate",
          "foreground": false
        }
      },
      {
        "label": "Dog",
        "start": 6.1,
        "end": 6.8,
        "attributes": {
          "confidence": "Clear",
          "foreground": true
        }
      }
    ],
    "clip_tags": ["Speech", "Vehicle sounds", "Animal sounds"],
    "quality": "Moderate noise"
  }
}

Vorannotation mit einem Detektor

Du kannst die Oberfläche mit Modellvorhersagen vorbelegen, damit Annotierende korrigieren statt bei null anzufangen:

yaml
pre_annotation:
  enabled: true
  field: detected_events
  show_confidence: true
  confidence_threshold: 0.3
  allow_modification: true

Hinweise zur Annotation von Klangereignissen

Gute Kopfhörer machen hier einen echten Unterschied, weil viele Ereignisse leise sind, und ein ruhiger Raum hilft ebenfalls. Die meisten Annotierenden arbeiten in zwei Durchgängen: einmal, um die Ereignisse zu finden, dann noch einmal, um die Zeitmarken zu schärfen. Auf 0,5x heruntergebremste Wiedergabe macht Grenzen deutlich leichter zu setzen. Legt vorher fest, was als hörbar gilt, damit alle die Grenze an derselben Stelle ziehen.

Nächste Schritte


Vollständige Audio-Dokumentation unter Audio-Annotation.