Skip to content
Tutorials4 min read

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.

Potato Team

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

yaml
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

  1. Riproduci l'audio oppure clicca sulla forma d'onda per spostarti
  2. Clicca e trascina sulla forma d'onda per selezionare un intervallo di tempo
  3. Premi un tasto numerico o clicca l'etichetta di un parlante
  4. Il segmento si colora e riceve l'etichetta
  5. Aggiusta i confini trascinando i bordi
  6. 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.

yaml
data_files:
  - "data/auto_diarized.json"

Formato dei dati:

json
{
  "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:

yaml
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
      - Unknown

Gestire le sovrapposizioni

yaml
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

yaml
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 issues

Formato di output

json
{
  "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

  1. Ascolta prima: prendi confidenza con le voci prima di annotare
  2. Prendi nota dei tratti di ogni parlante: tono, accento, modo di parlare
  3. Tratta le sovrapposizioni sempre allo stesso modo: stabilisci la regola in partenza
  4. Usa il controllo della velocità: rallenta nei punti difficili
  5. Segnala l'incertezza: usare «Unknown» quando serve va benissimo

Prossimi passi


Per la documentazione audio completa vedi Annotazione Audio.