هذه الصفحة غير متوفرة بلغتك بعد. يتم عرض النسخة الإنجليزية.
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
| 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"
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: 5Kombinierter 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| 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"
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: trueSchallereigniserkennung
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: 1Transkriptionsü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
| 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