Audio-Annotation
Audiodateien mit Wellenformvisualisierung und Wiedergabesteuerung annotieren.
Potato 2.0 bietet leistungsstarke Audio-Annotation mit Wellenformvisualisierung auf Basis von Peaks.js, Segment-Beschriftung und umfangreichen Tastaturkürzeln.
Anwendungsfälle
- Sprachtranskription und -überprüfung
- Sprecherdiarisierung
- Musikanalyse
- Audioreizerkennung
- Emotionserkennung in Sprache
- Qualitätssicherung im Call-Center
Audio-Unterstützung aktivieren
Fügen Sie Ihrer Konfiguration einen audio_annotation-Abschnitt hinzu:
annotation_schemes:
- annotation_type: audio_annotation
name: audio_segments
description: "Segment and label the audio"
labels:
- Speech
- Music
- Silence
- NoiseBetriebsmodi
Potato unterstützt drei Audio-Annotationsmodi:
Label-Modus
Audio segmentieren und jedem Segment Kategorie-Labels zuweisen:
annotation_schemes:
- annotation_type: audio_annotation
name: speaker_diarization
mode: label
description: "Identify speakers in the audio"
labels:
- Speaker A
- Speaker B
- OverlapFragen-Modus
Fragen pro Segment hinzufügen:
annotation_schemes:
- annotation_type: audio_annotation
name: speech_quality
mode: questions
description: "Evaluate speech segments"
segment_schemes:
- annotation_type: radio
name: speaker_type
description: "Who is speaking?"
labels: ["host", "guest", "unknown"]
- annotation_type: likert
name: clarity
description: "How clear is this segment?"
size: 5
min_label: "Unintelligible"
max_label: "Perfectly clear"Kombinierter Modus
Beschriftung mit Fragen pro Segment kombinieren:
annotation_schemes:
- annotation_type: audio_annotation
name: full_analysis
mode: both
description: "Label and analyze audio segments"
labels:
- Speech
- Music
- Noise
segment_schemes:
- annotation_type: radio
name: foreground
description: "Is this the foreground audio?"
labels: ["Yes", "No"]Konfigurationsoptionen
Grundeinrichtung
annotation_schemes:
- annotation_type: audio_annotation
name: segments
description: "Create audio segments"
labels:
- Label A
- Label B
# Optional constraints
min_segments: 1
max_segments: 50Tastaturkürzel
Labels können mit den Zifferntasten 1–9 zugewiesen werden:
annotation_schemes:
- annotation_type: audio_annotation
name: speakers
description: "Mark each speaker turn"
labels:
- Speaker A # Press 1
- Speaker B # Press 2
- Overlap # Press 3Label-Farben
Segmentfarben anpassen:
annotation_schemes:
- annotation_type: audio_annotation
name: segments
description: "Segment the recording and label each region"
labels:
- name: Speech
color: "#22C55E"
- name: Music
color: "#3B82F6"
- name: Silence
color: "#9CA3AF"Wellenformleistung
Für optimale Leistung bei langen Audiodateien installieren Sie das BBC-Audiowaveform-Tool:
# macOS
brew install audiowaveform
# Ubuntu/Debian
sudo apt-get install audiowaveform
# Or build from source
# https://github.com/bbc/audiowaveformDies ermöglicht die serverseitige Wellenformgenerierung. Ohne dieses Tool wird die clientseitige Generierung verwendet (geeignet für Dateien unter 30 Minuten).
Wellenform-Caching
Caching für bessere Leistung konfigurieren:
audio_annotation:
waveform_cache_dir: waveform_cache/ # Where pre-computed waveforms are stored
waveform_look_ahead: 3 # Pre-compute the next N instances
waveform_cache_max_size: 50 # Maximum cached waveform files
client_fallback_max_duration: 1800 # Longest file the browser will render, in secondsDatenformat
Einfache Audio-Referenz
[
{"id": "1", "audio_path": "audio/recording_001.wav"},
{"id": "2", "audio_path": "audio/recording_002.wav"}
]data_files:
- "data/audio_data.json"
item_properties:
id_key: id
text_key: audio_path # The field holding the audio URLMit Transkripten
[
{
"id": "1",
"audio_path": "audio/call_001.wav",
"transcript": "Hello, how can I help you today?"
}
]Ausgabeformat
Annotationen werden mit Segment-Zeitstempeln gespeichert:
{
"id": "audio_1",
"annotations": {
"segments": [
{
"start": 0.0,
"end": 2.5,
"label": "Speaker A",
"questions": {
"clarity": 4,
"emotion": "Neutral"
}
},
{
"start": 2.5,
"end": 5.2,
"label": "Speaker B"
}
]
}
}Tastaturkürzel
Potato bietet umfangreiche Tastaturkürzel für effiziente Annotation:
| Kürzel | Aktion |
|---|---|
Leertaste | Wiedergabe/Pause |
[ | Segmentanfang an aktueller Position setzen |
] | Segmentende an aktueller Position setzen |
1–9 | Label dem aktuellen Segment zuweisen |
Entf | Aktuelles Segment entfernen |
Pfeil links | 5 Sekunden zurückspulen |
Pfeil rechts | 5 Sekunden vorspulen |
Pfeil oben | Hineinzoomen |
Pfeil unten | Herauszoomen |
Pos1 | Zum Anfang springen |
Ende | Zum Ende springen |
+ | Wiedergabegeschwindigkeit erhöhen |
- | Wiedergabegeschwindigkeit verringern |
Beispielkonfigurationen
Sprecherdiarisierung
annotation_task_name: "Speaker Diarization"
task_dir: "."
port: 8000
data_files:
- "data/recordings.json"
item_properties:
id_key: id
text_key: audio_path
annotation_schemes:
- annotation_type: audio_annotation
name: speakers
mode: label
description: "Identify who is speaking"
labels:
- Speaker 1
- Speaker 2
- Speaker 3
- Overlap
- Silence
min_segments: 1
# Diarization recordings run long, so precompute a few ahead of the annotator.
audio_annotation:
waveform_cache_dir: waveform_cache/
waveform_look_ahead: 5
output_annotation_dir: "output/"
export_annotation_format: jsonl
user_config:
allow_all_users: trueTranskriptionsüberprüfung
annotation_task_name: "Transcription Quality Review"
task_dir: "."
port: 8000
data_files:
- "data/transcripts.json"
item_properties:
id_key: id
text_key: audio_path
annotation_schemes:
- annotation_type: audio_annotation
name: errors
mode: questions
description: "Mark transcription errors"
# Questions mode collects answers per marked region, so the error type and
# the correction stay attached to the stretch of audio they describe.
segment_schemes:
- annotation_type: radio
name: error_type
description: "What kind of error is this?"
labels: ["Substitution", "Deletion", "Insertion", "Speaker mix-up"]
- annotation_type: text
name: correction
description: "What should the transcript say?"
- annotation_type: radio
name: overall_accuracy
description: "Overall transcript accuracy"
labels:
- Accurate
- Minor errors
- Major errors
- Unusable
output_annotation_dir: "output/"
export_annotation_format: jsonlCall-Center-Qualitätssicherung
annotation_task_name: "Call Center Quality Assurance"
task_dir: "."
port: 8000
data_files:
- "data/calls.json"
item_properties:
id_key: call_id
text_key: recording_path
annotation_schemes:
# Segment-level annotation
- annotation_type: audio_annotation
name: conversation
mode: both
description: "Segment the conversation"
labels:
- Agent
- Customer
- Hold
- Silence
# Who is speaking is a label; how the turn went is a question about it.
segment_schemes:
- annotation_type: radio
name: tone
description: "Tone of this turn"
labels: ["Calm", "Neutral", "Escalated"]
# Call-level assessment
- annotation_type: likert
name: professionalism
description: "Agent professionalism"
size: 5
min_label: "Poor"
max_label: "Excellent"
- annotation_type: likert
name: resolution
description: "Issue resolution"
size: 5
min_label: "Unresolved"
max_label: "Fully resolved"
- annotation_type: multiselect
name: issues
description: "Select any issues observed"
labels:
- Long hold time
- Agent interrupted
- Incorrect information
- Missing greeting
- Unprofessional language
- annotation_type: text
name: notes
description: "Additional observations"
rows: 4
output_annotation_dir: "output/"
export_annotation_format: jsonlUnterstützte Audioformate
- WAV (empfohlen für beste Qualität)
- MP3
- OGG
- FLAC
- M4A
- WebM
Leistungstipps
- Audiowaveform installieren – Essenziell für lange Audiodateien
- Caching aktivieren –
cache_dirverwenden, um vorberechnete Wellenformen zu speichern - WAV für Qualität nutzen – Komprimierte Formate können Artefakte erzeugen
- Audio vorverarbeiten – Pegel normalisieren, unnötige Stille entfernen
- Dateigrößen beachten – Große Dateien verlangsamen das Laden
- Vorberechnung nutzen – Wellenformen für initiale Instanzen vorberechnen
Fehlerbehebung
Wellenform lädt nicht
- Audio-Dateipfad auf Richtigkeit prüfen
- Sicherstellen, dass das Dateiformat unterstützt wird
- Audiowaveform für lange Dateien installieren
- Browser-Konsole auf Fehler prüfen
Langsame Leistung
- Audiowaveform-Tool installieren
- Wellenform-Caching aktivieren
- Audiodateigrößen reduzieren
precompute_depth-Einstellung verwenden
Segmente werden nicht gespeichert
- Sicherstellen, dass das Ausgabeverzeichnis beschreibbar ist
- Annotationsformat-Konfiguration prüfen
- Sicherstellen, dass das Segment sowohl Start- als auch Endzeiten hat