Impostare la revisione di una trascrizione audio
Come configurare in Potato un task di revisione delle trascrizioni audio, con forma d'onda, riproduzione a velocità variabile e correzione del testo in linea per valutare la qualità dell'ASR.
I buoni dati di addestramento per l'ASR di solito partono da una persona che controlla la prima bozza della macchina. Questo tutorial mostra come costruire un'interfaccia in cui gli annotatori ascoltano l'audio, vedono la forma d'onda e correggono la trascrizione generata automaticamente. Per le opzioni audio su cui si appoggia, vedi la documentazione sull'annotazione audio.
Che cosa costruiamo
Un'interfaccia con:
- Visualizzazione della forma d'onda
- Controlli di riproduzione (play, pausa, regolazione della velocità)
- Testo della trascrizione modificabile
- Un giudizio sulla qualità dell'audio
- Un'indicazione di confidenza per i segmenti incerti
Configurazione di base
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
- UnintelligibleFormato dei dati di esempio
Crea data/transcripts.json:
{"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"}Impostare l'annotazione audio
L'annotazione audio in Potato usa il tipo audio_annotation dentro gli schemi di annotazione. Il player disegna da sé la forma d'onda e aggiunge i controlli di riproduzione, quindi non devi collegarli tu:
annotation_schemes:
- annotation_type: audio_annotation
name: audio_player
description: "Listen to the audio recording"Il player audio ha già i controlli per play e pausa, per spostarsi dentro il clip e per regolare la velocità.
Interfaccia di trascrizione completa
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 silenceAnnotazione a livello di parola
Per correzioni puntuali parola per parola, puoi affiancare ai campi di testo l'annotazione a span:
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"Trascrizione per segmenti
Per i file audio lunghi puoi preparare i dati come segmenti, con i tempi:
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"Formato dei dati con i tempi dei segmenti:
{
"id": "seg_001",
"audio_path": "/audio/long_recording.wav",
"start_time": 0.0,
"end_time": 5.5,
"asr_text": "Welcome to today's presentation"
}Formato di output
{
"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
}Controllo di qualità
Potato registra da solo il tempo di annotazione. Per il controllo di qualità, mescola nel file di dati qualche elemento di controllo dell'attenzione: clip con una risposta corretta nota, che ti fanno individuare gli annotatori che in realtà non stanno ascoltando.
Puoi configurare dove e come vengono scritte le annotazioni:
output_annotation_dir: "annotation_output"
export_annotation_format: "json"Consigli per i task di trascrizione
Cuffie decenti e una stanza silenziosa fanno gran parte del lavoro sull'accuratezza. Rallenta l'audio nei punti che non afferri bene e metti in conto più di un passaggio: ascoltare, trascrivere, poi tornare indietro a verificare. Trascrivere sfianca, quindi prevedi pause regolari.
Prossimi passi
- Aggiungi la diarizzazione dei parlanti per l'audio con più parlanti
- Affianca alla trascrizione la classificazione delle emozioni
- Configura il crowdsourcing per trascrizioni su larga scala
Documentazione audio completa su Annotazione Audio.