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
| Feld | Typ | Standard | Beschreibung |
|---|---|---|---|
name | string | Erforderlich | Eindeutiger Bezeichner für die Annotation |
description | string | Erforderlich | Anweisungen für Annotatoren |
annotation_type | string | Erforderlich | Muss "audio_annotation" sein |
mode | string | "label" | Annotationsmodus: "label", "questions" oder "both" |
labels | list | Bedingt | Erforderlich für label- oder both-Modus |
segment_schemes | list | Bedingt | Erforderlich für questions- oder both-Modus |
min_segments | integer | 0 | Mindestanzahl erforderlicher Segmente |
max_segments | integer | null | Maximale Anzahl erlaubter Segmente (null = unbegrenzt) |
zoom_enabled | boolean | true | Zoom-Steuerung aktivieren |
playback_rate_control | boolean | false | Wiedergabegeschwindigkeitsauswahl 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| Feld | Beschreibung |
|---|---|
waveform_cache_dir | Verzeichnis für gecachte Wellenformdaten |
waveform_look_ahead | Anzahl der vorab zu berechnenden nächsten Instanzen |
waveform_cache_max_size | Maximale Anzahl gecachter Wellenformdateien |
client_fallback_max_duration | Maximale 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
| Taste | Aktion |
|---|---|
Space | Abspielen/Pausieren |
← / → | Rückwärts/vorwärts spulen |
[ | Segmentstart markieren |
] | Segmentende markieren |
Enter | Segment erstellen |
Delete | Ausgewähltes Segment entfernen |
1-9 | Beschriftung auswählen |
+ / - | Hinein-/herauszoomen |
0 | Ansicht 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_urlAusgabeformat
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
- Wellenformen vorab cachen - Serverseitiges Caching für große Datensätze verwenden
- Wiedergabesteuerung aktivieren - Variable Geschwindigkeit hilft bei präziser Segmentierung
- Tastaturkürzel verwenden - Wesentlich schneller als Klicken
- Klare Grenzen definieren - Festlegen, was den Anfang/das Ende eines Segments ausmacht
- Geeigneten Modus wählen - „label" für Klassifizierung, „questions" für detaillierte Annotation
- Segmentlimits setzen -
min_segmentsverwenden, um vollständige Abdeckung sicherzustellen