Skip to content
यह पृष्ठ अभी आपकी भाषा में उपलब्ध नहीं है। अंग्रेज़ी संस्करण दिखाया जा रहा है।

Audio-Annotation

Audiodateien segmentieren und Zeitbereichen mit Wellenformvisualisierung Beschriftungen zuweisen.

Audio-Annotation

Potatos Audio-Annotationswerkzeug ermöglicht es Annotatoren, Audiodateien zu segmentieren und Zeitbereichen über eine wellenformbasierte Oberfläche Beschriftungen zuzuweisen.

Funktionen

  • Wellenformvisualisierung
  • Zeitbasierte Segmenterstellung
  • Beschriftungszuweisung zu Segmenten
  • Wiedergabesteuerung mit variabler Geschwindigkeit
  • Zoom- und Scrollnavigation
  • Tastaturkürzel
  • Serverseitiges Wellenform-Caching

Grundkonfiguration

yaml
annotation_schemes:
  - name: "speakers"
    description: "Mark when each speaker is talking"
    annotation_type: "audio_annotation"
    labels:
      - name: "Speaker 1"
        color: "#3B82F6"
      - name: "Speaker 2"
        color: "#10B981"

Konfigurationsoptionen

FeldTypStandardBeschreibung
namestringErforderlichEindeutiger Bezeichner für die Annotation
descriptionstringErforderlichAnweisungen für Annotatoren
annotation_typestringErforderlichMuss "audio_annotation" sein
modestring"label"Annotationsmodus: "label", "questions" oder "both"
labelslistBedingtErforderlich für label- oder both-Modus
segment_schemeslistBedingtErforderlich für questions- oder both-Modus
min_segmentsinteger0Mindestanzahl erforderlicher Segmente
max_segmentsintegernullMaximale Anzahl erlaubter Segmente (null = unbegrenzt)
zoom_enabledbooleantrueZoom-Steuerung aktivieren
playback_rate_controlbooleanfalseWiedergabegeschwindigkeitsauswahl anzeigen

Beschriftungskonfiguration

yaml
labels:
  - name: "speech"
    color: "#3B82F6"
    key_value: "1"
  - name: "music"
    color: "#10B981"
    key_value: "2"
  - name: "silence"
    color: "#64748B"
    key_value: "3"

Annotationsmodi

Beschriftungsmodus (Standard)

Segmente erhalten Kategoriebeschriftungen:

yaml
annotation_schemes:
  - name: "emotion"
    description: "Label the emotion in each segment"
    annotation_type: "audio_annotation"
    mode: "label"
    labels:
      - name: "happy"
        color: "#22C55E"
      - name: "sad"
        color: "#3B82F6"
      - name: "angry"
        color: "#EF4444"
      - name: "neutral"
        color: "#64748B"

Fragenmodus

Jedes Segment beantwortet dedizierte Fragen:

yaml
annotation_schemes:
  - name: "transcription"
    description: "Transcribe each segment"
    annotation_type: "audio_annotation"
    mode: "questions"
    segment_schemes:
      - name: "transcript"
        annotation_type: "text"
        description: "Enter the transcription"
      - name: "confidence"
        annotation_type: "likert"
        description: "How confident are you?"
        size: 5

Kombinierter Modus

Verbindet Beschriftung mit segmentbezogenen Fragebögen:

yaml
annotation_schemes:
  - name: "detailed_diarization"
    description: "Label speakers and add notes"
    annotation_type: "audio_annotation"
    mode: "both"
    labels:
      - name: "Speaker A"
        color: "#3B82F6"
      - name: "Speaker B"
        color: "#10B981"
    segment_schemes:
      - name: "notes"
        annotation_type: "text"
        description: "Any notes about this segment?"

Globale Audio-Konfiguration

Wellenformverarbeitung in der Konfigurationsdatei einrichten:

yaml
audio_annotation:
  waveform_cache_dir: "waveform_cache/"
  waveform_look_ahead: 5
  waveform_cache_max_size: 1000
  client_fallback_max_duration: 1800
FeldBeschreibung
waveform_cache_dirVerzeichnis für gecachte Wellenformdaten
waveform_look_aheadAnzahl der vorab zu berechnenden nächsten Instanzen
waveform_cache_max_sizeMaximale Anzahl gecachter Wellenformdateien
client_fallback_max_durationMaximale Sekunden für browserseitige Wellenformerzeugung (Standard: 1800)

Beispiele

Sprecherdiarisierung

yaml
annotation_schemes:
  - name: "diarization"
    description: "Identify who is speaking at each moment"
    annotation_type: "audio_annotation"
    mode: "label"
    labels:
      - name: "Interviewer"
        color: "#8B5CF6"
        key_value: "1"
      - name: "Guest"
        color: "#EC4899"
        key_value: "2"
      - name: "Overlap"
        color: "#F59E0B"
        key_value: "3"
    zoom_enabled: true
    playback_rate_control: true

Schallereigniserkennung

yaml
annotation_schemes:
  - name: "sound_events"
    description: "Mark all sound events"
    annotation_type: "audio_annotation"
    labels:
      - name: "speech"
        color: "#3B82F6"
      - name: "music"
        color: "#10B981"
      - name: "applause"
        color: "#F59E0B"
      - name: "laughter"
        color: "#EC4899"
      - name: "silence"
        color: "#64748B"
    min_segments: 1

Transkriptionsüberprüfung

yaml
annotation_schemes:
  - name: "transcription_review"
    description: "Review and correct the transcription for each segment"
    annotation_type: "audio_annotation"
    mode: "questions"
    segment_schemes:
      - name: "transcript"
        annotation_type: "text"
        description: "Enter or correct the transcription"
        textarea: true
      - name: "quality"
        annotation_type: "radio"
        description: "Audio quality"
        labels:
          - "Clear"
          - "Noisy"
          - "Unintelligible"

Tastaturkürzel

TasteAktion
SpaceAbspielen/Pausieren
/ Rückwärts/vorwärts spulen
[Segmentstart markieren
]Segmentende markieren
EnterSegment erstellen
DeleteAusgewähltes Segment entfernen
1-9Beschriftung auswählen
+ / -Hinein-/herauszoomen
0Ansicht anpassen

Datenformat

Eingabedaten

Die Datendatei sollte Audiodateipfade oder URLs enthalten:

json
[
  {
    "id": "audio_001",
    "audio_url": "https://example.com/audio/recording1.mp3"
  },
  {
    "id": "audio_002",
    "audio_url": "/data/audio/recording2.wav"
  }
]

Das Audiofeld konfigurieren:

yaml
item_properties:
  id_key: id
  text_key: audio_url

Ausgabeformat

json
{
  "id": "audio_001",
  "annotations": {
    "diarization": [
      {
        "start": 0.0,
        "end": 5.5,
        "label": "Interviewer"
      },
      {
        "start": 5.5,
        "end": 12.3,
        "label": "Guest"
      },
      {
        "start": 12.3,
        "end": 14.0,
        "label": "Overlap"
      }
    ]
  }
}

Im Fragenmodus enthalten Segmente verschachtelte Antworten:

json
{
  "start": 0.0,
  "end": 5.5,
  "transcript": "Hello and welcome to the show.",
  "quality": "Clear"
}

Unterstützte Audioformate

  • MP3 (empfohlen)
  • WAV
  • OGG
  • M4A

Bewährte Vorgehensweisen

  1. Wellenformen vorab cachen - Serverseitiges Caching für große Datensätze verwenden
  2. Wiedergabesteuerung aktivieren - Variable Geschwindigkeit hilft bei präziser Segmentierung
  3. Tastaturkürzel verwenden - Wesentlich schneller als Klicken
  4. Klare Grenzen definieren - Festlegen, was den Anfang/das Ende eines Segments ausmacht
  5. Geeigneten Modus wählen - „label" für Klassifizierung, „questions" für detaillierte Annotation
  6. Segmentlimits setzen - min_segments verwenden, um vollständige Abdeckung sicherzustellen