Skip to content
Tutorials4 min read

Annotation de diarisation de locuteurs

Construisez une tâche d'identification de locuteurs avec des formes d'onde audio, des marqueurs temporels et l'attribution d'étiquettes de locuteurs.

Potato Team·

Annotation de diarisation de locuteurs

La diarisation de locuteurs répond à la question « qui a parlé quand ? » Ce tutoriel couvre la construction d'interfaces pour annoter les tours de parole, corriger la diarisation automatique et gérer les conversations multi-locuteurs.

Qu'est-ce que la diarisation de locuteurs ?

La diarisation de locuteurs segmente l'audio en régions homogènes par locuteur. Les applications incluent :

  • Transcription de réunions
  • Analyse de centres d'appels
  • Production de podcasts
  • Traitement d'interviews
  • Enregistrements juridiques/de tribunal

Configuration basique de la diarisation

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"

Créer des segments de locuteurs

Flux de travail

  1. Lancez la lecture audio ou cliquez sur la forme d'onde pour naviguer
  2. Cliquez et faites glisser sur la forme d'onde pour sélectionner une plage temporelle
  3. Appuyez sur une touche numérique ou cliquez sur une étiquette de locuteur
  4. Le segment est coloré et étiqueté
  5. Ajustez les limites en faisant glisser les bords
  6. Continuez jusqu'à ce que l'audio entier soit segmenté

Contrôles clavier

Potato fournit des raccourcis clavier intégrés pour le contrôle de la lecture audio, incluant la lecture/pause et la navigation.

Correction de diarisation pré-annotée

Souvent, vous corrigerez une diarisation automatique :

yaml
data_files:
  - "data/auto_diarized.json"

Format des données :

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"}
  ]
}

Informations détaillées sur les locuteurs

Capturez des métadonnées supplémentaires sur les locuteurs :

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

Gestion de la parole superposée

yaml
annotation_schemes:
  - annotation_type: audio_annotation
    name: speakers
    labels:
      - name: Speaker 1
        color: "#FF6B6B"
      - name: Speaker 2
        color: "#4ECDC4"
      - name: Overlap
        color: "#FFEAA7"

Diarisation de réunion/interview

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

Format de sortie

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"
  }
}

Conseils pour la diarisation

  1. Écoutez d'abord : familiarisez-vous avec les locuteurs avant d'annoter
  2. Notez les caractéristiques des locuteurs : hauteur de voix, accent, style de parole
  3. Gérez les chevauchements de manière cohérente : décidez d'une stratégie à l'avance
  4. Utilisez le contrôle de vitesse : ralentissez pour les sections difficiles
  5. Marquez l'incertitude : il est normal d'utiliser « Unknown » quand nécessaire

Prochaines étapes


Voir /docs/features/audio-annotation pour la documentation audio complète.