Annotare la diarizzazione dei parlanti
Come costruire in Potato un task di identificazione dei parlanti, con forma d'onda interattiva, marcatori temporali, assegnazione delle etichette dei parlanti e misura dell'accordo tra annotatori.
La diarizzazione dei parlanti risponde alla domanda «chi ha parlato e quando?». Questo tutorial mostra come costruire interfacce per annotare i turni di parola, correggere una diarizzazione automatica e gestire conversazioni con più voci. Per il riferimento completo degli schemi audio, vedi la documentazione di riferimento.
Che cos'è la diarizzazione dei parlanti?
La diarizzazione divide l'audio in tratti che appartengono a un solo parlante. Serve in casi come:
- Trascrizione di riunioni
- Analisi delle chiamate nei call center
- Produzione di podcast
- Elaborazione di interviste
- Registrazioni giudiziarie e legali
Configurazione di base per la diarizzazione
annotation_task_name: "Speaker Diarization"
data_files:
- "data/conversations.json"
annotation_schemes:
- annotation_type: audio_annotation
name: speakers
description: "Mark when each speaker talks"
labels:
- name: Speaker 1
color: "#FF6B6B"
keyboard_shortcut: "1"
- name: Speaker 2
color: "#4ECDC4"
keyboard_shortcut: "2"
- name: Speaker 3
color: "#45B7D1"
keyboard_shortcut: "3"
- name: Overlap
color: "#FFEAA7"
keyboard_shortcut: "o"
- name: Silence
color: "#9CA3AF"
keyboard_shortcut: "s"Creare i segmenti dei parlanti
Come si procede
- Riproduci l'audio oppure clicca sulla forma d'onda per spostarti
- Clicca e trascina sulla forma d'onda per selezionare un intervallo di tempo
- Premi un tasto numerico o clicca l'etichetta di un parlante
- Il segmento si colora e riceve l'etichetta
- Aggiusta i confini trascinando i bordi
- Vai avanti finché tutto l'audio è segmentato
Comandi da tastiera
Potato ha già le sue scorciatoie da tastiera per i controlli di riproduzione, play e pausa e spostamento nel clip compresi.
Correggere una diarizzazione già fatta
Spesso non etichetti da zero: stai correggendo l'output di un diarizzatore automatico.
data_files:
- "data/auto_diarized.json"Formato dei dati:
{
"id": "meeting_001",
"audio_path": "/audio/meeting_001.wav",
"auto_segments": [
{"start": 0.0, "end": 3.5, "speaker": "Speaker 1"},
{"start": 3.5, "end": 8.2, "speaker": "Speaker 2"},
{"start": 8.2, "end": 12.0, "speaker": "Speaker 1"}
]
}Informazioni dettagliate sui parlanti
Puoi raccogliere metadati aggiuntivi su ciascun parlante:
annotation_schemes:
- annotation_type: audio_annotation
name: speakers
labels:
- name: Speaker A
color: "#FF6B6B"
- name: Speaker B
color: "#4ECDC4"
- name: Speaker C
color: "#45B7D1"
- name: Unknown
color: "#9CA3AF"
# Speaker characteristics
- annotation_type: radio
name: speaker_a_gender
description: "Speaker A Gender"
labels:
- Male
- Female
- Unknown
- annotation_type: text
name: speaker_a_role
description: "Speaker A Role (if identifiable)"
- annotation_type: radio
name: speaker_b_gender
description: "Speaker B Gender"
labels:
- Male
- Female
- UnknownGestire le sovrapposizioni
annotation_schemes:
- annotation_type: audio_annotation
name: speakers
labels:
- name: Speaker 1
color: "#FF6B6B"
- name: Speaker 2
color: "#4ECDC4"
- name: Overlap
color: "#FFEAA7"Diarizzazione di riunioni e interviste
annotation_task_name: "Meeting Diarization"
data_files:
- "data/meetings.json"
annotation_schemes:
# Speaker turns
- annotation_type: audio_annotation
name: turns
description: "Mark each speaker turn"
labels:
- name: Moderator
color: "#EF4444"
keyboard_shortcut: "m"
- name: Participant 1
color: "#3B82F6"
keyboard_shortcut: "1"
- name: Participant 2
color: "#10B981"
keyboard_shortcut: "2"
- name: Participant 3
color: "#F59E0B"
keyboard_shortcut: "3"
- name: Participant 4
color: "#8B5CF6"
keyboard_shortcut: "4"
- name: Unknown
color: "#6B7280"
keyboard_shortcut: "u"
- name: Overlap
color: "#FCD34D"
keyboard_shortcut: "o"
- name: Silence/Noise
color: "#D1D5DB"
keyboard_shortcut: "s"
# Speech type annotation
- annotation_type: radio
name: speech_type
description: "Type of speech"
labels:
- Statement
- Question
- Response
- Interruption
- Backchannel
# Overall quality
- annotation_type: radio
name: recording_quality
description: "Overall recording quality"
labels:
- Excellent - All speakers clear
- Good - Most speech understandable
- Fair - Some difficulty
- Poor - Significant issuesFormato di output
{
"id": "meeting_001",
"audio_path": "/audio/meeting_001.wav",
"annotations": {
"turns": [
{
"start": 0.0,
"end": 5.2,
"label": "Moderator",
"attributes": {
"speech_type": "Statement"
}
},
{
"start": 5.2,
"end": 12.8,
"label": "Participant 1",
"attributes": {
"speech_type": "Response"
}
},
{
"start": 11.5,
"end": 12.8,
"label": "Overlap"
}
],
"recording_quality": "Good - Most speech understandable"
}
}Consigli per la diarizzazione
- Ascolta prima: prendi confidenza con le voci prima di annotare
- Prendi nota dei tratti di ogni parlante: tono, accento, modo di parlare
- Tratta le sovrapposizioni sempre allo stesso modo: stabilisci la regola in partenza
- Usa il controllo della velocità: rallenta nei punti difficili
- Segnala l'incertezza: usare «Unknown» quando serve va benissimo
Prossimi passi
- Combinala con la trascrizione per avere verbali completi
- Aggiungi il riconoscimento delle emozioni per ciascun parlante
- Imposta il controllo qualità per l'accordo tra più annotatori
Per la documentazione audio completa vedi Annotazione Audio.