Transkriptionsprüfung für Audio einrichten
So konfigurierst du in Potato eine Aufgabe zur Transkriptionsprüfung: Wellenformdarstellung, Wiedergabe mit variabler Geschwindigkeit und direkte Textkorrektur, um die ASR-Qualität zu bewerten.
Gute Trainingsdaten für ASR fangen meist damit an, dass ein Mensch den ersten Entwurf der Maschine prüft. Dieses Tutorial zeigt, wie du eine Oberfläche baust, in der Annotierende das Audio hören, die Wellenform sehen und das maschinell erzeugte Transkript korrigieren. Die Audio-Optionen dahinter stehen in der Dokumentation zur Audio-Annotation.
Was wir bauen
Eine Oberfläche mit:
- Wellenformdarstellung
- Wiedergabesteuerung (Abspielen, Pause, Geschwindigkeit)
- bearbeitbarem Transkripttext
- Qualitätsbewertung für das Audio
- Kennzeichnung der Sicherheit bei unklaren Abschnitten
Grundkonfiguration
annotation_task_name: "Transcription Review"
data_files:
- "data/transcripts.json"
item_properties:
id_key: id
text_key: asr_transcript
annotation_schemes:
# Audio playback
- annotation_type: audio_annotation
name: audio_player
# Corrected transcript
- annotation_type: text
name: corrected_transcript
description: "Edit the transcript to match what you hear"
rows: 4
placeholder: "Type the corrected transcript..."
label_requirement:
required: true
# Quality rating
- annotation_type: radio
name: audio_quality
description: "Rate the audio quality"
labels:
- Clear
- Slightly noisy
- Very noisy
- UnintelligibleFormat der Beispieldaten
Lege data/transcripts.json an:
{"id": "audio_001", "audio_path": "/audio/recording_001.wav", "asr_transcript": "Hello how are you doing today"}
{"id": "audio_002", "audio_path": "/audio/recording_002.wav", "asr_transcript": "The weather is nice outside"}
{"id": "audio_003", "audio_path": "/audio/recording_003.wav", "asr_transcript": "Please call me back when your free"}Audio-Annotation einrichten
Audio-Annotation läuft in Potato über den Typ audio_annotation in deinen Annotationsschemata. Der Player zeichnet die Wellenform und ergänzt die Wiedergabesteuerung von selbst, du musst das also nicht verkabeln:
annotation_schemes:
- annotation_type: audio_annotation
name: audio_player
description: "Listen to the audio recording"Der Audioplayer bringt Bedienelemente für Abspielen und Pause, für das Springen an eine Stelle und für die Geschwindigkeit schon mit.
Vollständige Transkriptionsoberfläche
annotation_task_name: "ASR Correction and Annotation"
data_files:
- "data/asr_output.json"
item_properties:
id_key: id
text_key: hypothesis
annotation_schemes:
# Audio player
- annotation_type: audio_annotation
name: audio_player
# Main transcript correction
- annotation_type: text
name: transcript
description: "Correct the transcript below"
rows: 4
rows: 4
label_requirement:
required: true
# Speaker identification
- annotation_type: radio
name: num_speakers
description: "How many speakers are in this recording?"
labels:
- "1 speaker"
- "2 speakers"
- "3+ speakers"
- "Cannot determine"
# Audio quality
- annotation_type: radio
name: quality
description: "Overall audio quality"
labels:
- name: Excellent
description: "Crystal clear, studio quality"
- name: Good
description: "Clear speech, minor background noise"
- name: Fair
description: "Understandable but noisy"
- name: Poor
description: "Very difficult to understand"
- name: Unusable
description: "Cannot transcribe accurately"
# Issues checklist
- annotation_type: multiselect
name: issues
description: "Select all issues present (if any)"
labels:
- Background noise
- Overlapping speech
- Accented speech
- Fast speech
- Mumbling/unclear
- Technical audio issues
- Non-English words
- Profanity present
- None
# Confidence
- annotation_type: likert
name: confidence
description: "How confident are you in your transcription?"
size: 5
min_label: "Guessing"
max_label: "Certain"
annotation_guidelines:
title: "Transcription Guidelines"
content: |
## Your Task
Listen to the audio and correct the ASR transcript.
## Transcription Rules
- Transcribe exactly what is said
- Include filler words (um, uh, like)
- Use proper punctuation and capitalization
- Mark unintelligible sections with [unintelligible]
- Mark uncertain words with [word?]
## Special Notations
- [unintelligible] - Cannot understand
- [word?] - Uncertain about word
- [crosstalk] - Overlapping speech
- [noise] - Non-speech sound
- [pause] - Significant silenceAnnotation auf Wortebene
Für detaillierte Korrekturen auf Wortebene kannst du Span-Annotation neben den Textfeldern einsetzen:
annotation_schemes:
- annotation_type: audio_annotation
name: audio_player
- annotation_type: text
name: transcript
rows: 4
- annotation_type: span
name: word_corrections
description: "Mark words that needed correction"
title: transcript
labels:
- name: corrected
color: "#FCD34D"
description: "Word was changed"
- name: inserted
color: "#4ADE80"
description: "Word was added"
- name: uncertain
color: "#F87171"
description: "Still not sure"Transkription auf Segmentbasis
Bei langen Audiodateien kannst du deine Daten als Segmente mit Zeitangaben vorbereiten:
data_files:
- "data/segments.json"
item_properties:
id_key: id
text_key: asr_text
annotation_schemes:
- annotation_type: audio_annotation
name: audio_player
- annotation_type: text
name: transcript
rows: 4
description: "Correct the transcript for this segment"Datenformat mit Segmentzeiten:
{
"id": "seg_001",
"audio_path": "/audio/long_recording.wav",
"start_time": 0.0,
"end_time": 5.5,
"asr_text": "Welcome to today's presentation"
}Ausgabeformat
{
"id": "audio_001",
"audio_path": "/audio/recording_001.wav",
"original_transcript": "Hello how are you doing today",
"annotations": {
"transcript": "Hello, how are you doing today?",
"num_speakers": "1 speaker",
"quality": "Good",
"issues": ["None"],
"confidence": 5
},
"annotator": "transcriber_01",
"time_spent_seconds": 45
}Qualitätskontrolle
Potato erfasst die Annotationszeit automatisch. Für die Qualitätskontrolle mischst du ein paar Aufmerksamkeitsprüfungen in deine Datendatei: Clips mit bekannter richtiger Antwort, an denen du siehst, wer gar nicht wirklich zuhört.
Wohin und wie Annotationen geschrieben werden, lässt sich konfigurieren:
output_annotation_dir: "annotation_output"
export_annotation_format: "json"Hinweise zu Transkriptionsaufgaben
Ordentliche Kopfhörer und ein ruhiger Raum erledigen den größten Teil der Genauigkeit. Verlangsame das Audio für die Stellen, die du nicht ganz verstehst, und rechne mit mehr als einem Durchgang: hören, transkribieren, dann noch einmal prüfen. Transkribieren zehrt an der Konzentration, plane also regelmäßige Pausen ein.
Nächste Schritte
- Ergänze Sprecherdiarisierung für Audio mit mehreren Sprechern
- Richte neben der Transkription eine Emotionsklassifikation ein
- Konfiguriere Crowdsourcing für Transkription in großem Umfang
Vollständige Audio-Dokumentation unter Audio-Annotation.