Skip to content

Audio-Annotation

Audiodateien segmentieren und Zeitbereichen mit Wellenformvisualisierung Beschriftungen zuweisen.

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"

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"

Fragenmodus

Jedes Segment beantwortet dedizierte Fragen:

yaml
annotation_schemes:
  - name: "transcription"

Kombinierter Modus

Verbindet Beschriftung mit segmentbezogenen Fragebögen:

yaml
annotation_schemes:
  - name: "detailed_diarization"

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"

Schallereigniserkennung

yaml
annotation_schemes:
  - name: "sound_events"

Transkriptionsüberprüfung

yaml
annotation_schemes:
  - name: "transcription_review"

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