Annotazione Audio
Annota file audio con visualizzazione della forma d'onda e controlli di riproduzione.
Annotazione Audio
Potato 2.0 fornisce potenti funzionalità di annotazione audio con visualizzazione della forma d'onda basata su Peaks.js, etichettatura dei segmenti e scorciatoie da tastiera complete.
Casi d'Uso
- Trascrizione e revisione del parlato
- Diarizzazione dei parlanti
- Analisi musicale
- Rilevamento di eventi audio
- Riconoscimento delle emozioni nel parlato
- Controllo della qualità nei call center
Abilitazione del Supporto Audio
Aggiungi una sezione audio_annotation alla tua configurazione:
annotation_schemes:
- annotation_type: audio
name: audio_segments
description: "Segment and label the audio"
labels:
- Speech
- Music
- Silence
- NoiseModalità Operative
Potato supporta tre modalità di annotazione audio:
Modalità Etichetta
Segmenta l'audio e assegna etichette di categoria a ciascun segmento:
annotation_schemes:
- annotation_type: audio
name: speaker_diarization
mode: label
description: "Identify speakers in the audio"
labels:
- Speaker A
- Speaker B
- Overlap
label_colors:
"Speaker A": "#3b82f6"
"Speaker B": "#10b981"
"Overlap": "#f59e0b"Modalità Domande
Aggiungi domande di annotazione per segmento:
annotation_schemes:
- annotation_type: audio
name: speech_quality
mode: questions
description: "Evaluate speech segments"
segment_questions:
- name: clarity
type: likert
size: 5
min_label: "Unclear"
max_label: "Very clear"
- name: emotion
type: radio
labels: [Neutral, Happy, Sad, Angry]Modalità Entrambi
Combina l'etichettatura con domande per segmento:
annotation_schemes:
- annotation_type: audio
name: full_analysis
mode: both
description: "Label and analyze audio segments"
labels:
- Speech
- Music
- Noise
segment_questions:
- name: quality
type: likert
size: 5Opzioni di Configurazione
Impostazione di Base
annotation_schemes:
- annotation_type: audio
name: segments
description: "Create audio segments"
labels:
- Label A
- Label B
# Vincoli opzionali
min_segments: 1
max_segments: 50Scorciatoie da Tastiera
Le etichette possono essere assegnate usando i tasti numerici da 1 a 9:
annotation_schemes:
- annotation_type: audio
name: speakers
labels:
- Speaker A # Premi 1
- Speaker B # Premi 2
- Overlap # Premi 3Colori delle Etichette
Personalizza i colori dei segmenti:
annotation_schemes:
- annotation_type: audio
name: segments
labels:
- Speech
- Music
- Silence
label_colors:
"Speech": "#3b82f6"
"Music": "#10b981"
"Silence": "#6b7280"Prestazioni della Forma d'Onda
Per prestazioni ottimali con file audio lunghi, installa lo strumento BBC audiowaveform:
# macOS
brew install audiowaveform
# Ubuntu/Debian
sudo apt-get install audiowaveform
# O compila dai sorgenti
# https://github.com/bbc/audiowaveformQuesto abilita la generazione della forma d'onda lato server. Senza di esso, viene usata la generazione lato client (adatta per file di durata inferiore a 30 minuti).
Caching della Forma d'Onda
Configura il caching per prestazioni migliori:
audio_config:
cache_dir: "audio_cache/"
precompute_depth: 100 # Pre-genera le forme d'onda per i primi N elementi
client_fallback_max_duration: 1800 # 30 minuti in secondiFormato dei Dati
Riferimento Audio Semplice
[
{"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
audio_key: audio_pathCon Trascrizioni
[
{
"id": "1",
"audio_path": "audio/call_001.wav",
"transcript": "Hello, how can I help you today?"
}
]Formato di Output
Le annotazioni vengono salvate con i timestamp dei segmenti:
{
"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"
}
]
}
}Scorciatoie da Tastiera
Potato fornisce ampie scorciatoie da tastiera per un'annotazione efficiente:
| Scorciatoia | Azione |
|---|---|
Spazio | Riproduci/Pausa |
[ | Imposta l'inizio del segmento alla posizione corrente |
] | Imposta la fine del segmento alla posizione corrente |
1-9 | Assegna un'etichetta al segmento corrente |
Canc | Rimuovi il segmento corrente |
Freccia Sinistra | Torna indietro di 5 secondi |
Freccia Destra | Vai avanti di 5 secondi |
Freccia Su | Zoom in |
Freccia Giù | Zoom out |
Inizio | Vai all'inizio |
Fine | Vai alla fine |
+ | Aumenta la velocità di riproduzione |
- | Diminuisce la velocità di riproduzione |
Configurazioni di Esempio
Diarizzazione dei Parlanti
task_name: "Speaker Diarization"
task_dir: "."
port: 8000
data_files:
- "data/recordings.json"
item_properties:
id_key: id
audio_key: audio_path
annotation_schemes:
- annotation_type: audio
name: speakers
mode: label
description: "Identify who is speaking"
labels:
- Speaker 1
- Speaker 2
- Speaker 3
- Overlap
- Silence
label_colors:
"Speaker 1": "#3b82f6"
"Speaker 2": "#10b981"
"Speaker 3": "#f59e0b"
"Overlap": "#ef4444"
"Silence": "#6b7280"
min_segments: 1
audio_config:
cache_dir: "audio_cache/"
precompute_depth: 50
output_annotation_dir: "output/"
output_annotation_format: "json"
allow_all_users: trueRevisione della Trascrizione
task_name: "Transcription Quality Review"
task_dir: "."
port: 8000
data_files:
- "data/transcripts.json"
item_properties:
id_key: id
text_key: transcript
audio_key: audio_path
annotation_schemes:
- annotation_type: audio
name: errors
mode: questions
description: "Mark transcription errors"
segment_questions:
- name: error_type
type: radio
labels:
- Missing word
- Wrong word
- Extra word
- Spelling error
- name: severity
type: likert
size: 3
min_label: "Minor"
max_label: "Major"
- annotation_type: radio
name: overall_accuracy
description: "Overall transcript accuracy"
labels:
- Accurate
- Minor errors
- Major errors
- Unusable
output_annotation_dir: "output/"
output_annotation_format: "json"Controllo Qualità Call Center
task_name: "Call Center Quality Assurance"
task_dir: "."
port: 8000
data_files:
- "data/calls.json"
item_properties:
id_key: call_id
audio_key: recording_path
annotation_schemes:
# Annotazione a livello di segmento
- annotation_type: audio
name: conversation
mode: both
description: "Segment the conversation"
labels:
- Agent
- Customer
- Hold
- Silence
segment_questions:
- name: sentiment
type: radio
labels: [Positive, Neutral, Negative, Frustrated]
# Valutazione a livello di chiamata
- 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"
textarea: true
output_annotation_dir: "output/"
output_annotation_format: "json"Formati Audio Supportati
- WAV (consigliato per la migliore qualità)
- MP3
- OGG
- FLAC
- M4A
- WebM
Suggerimenti per le Prestazioni
- Installa audiowaveform - Essenziale per i file audio lunghi
- Abilita il caching - Usa
cache_dirper memorizzare le forme d'onda pre-generate - Usa WAV per la qualità - I formati compressi possono introdurre artefatti
- Pre-elabora l'audio - Normalizza i livelli, taglia i silenzi non necessari
- Considera le dimensioni dei file - I file grandi rallentano il caricamento
- Usa il pre-calcolo - Pre-genera le forme d'onda per le istanze iniziali
Risoluzione dei Problemi
Forma d'Onda Non Caricata
- Controlla che il percorso del file audio sia corretto
- Verifica che il formato del file sia supportato
- Installa audiowaveform per i file lunghi
- Controlla la console del browser per gli errori
Prestazioni Lente
- Installa lo strumento audiowaveform
- Abilita il caching della forma d'onda
- Riduci le dimensioni dei file audio
- Usa l'impostazione precompute_depth
Segmenti Non Salvati
- Assicurati che la directory di output sia scrivibile
- Controlla la configurazione del formato di annotazione
- Verifica che il segmento abbia sia l'ora di inizio che quella di fine