Skip to content
Tutorials4 min read

Anotação de Diarização de Locutores

Monte uma tarefa de identificação de locutores no Potato com formas de onda de áudio interativas, marcadores de tempo, atribuição de rótulos de locutor e medição de concordância entre anotadores.

Potato Team

A diarização de locutores responde à pergunta "quem falou e quando?" Este tutorial mostra como construir interfaces para anotar turnos de fala, corrigir diarização automática e lidar com conversas que têm vários locutores. Para a referência completa do esquema de áudio, consulte a documentação de origem.

O que é diarização de locutores?

A diarização de locutores divide o áudio em trechos que pertencem a um único locutor. Ela aparece em:

  • Transcrição de reuniões
  • Análise de central de atendimento
  • Produção de podcasts
  • Processamento de entrevistas
  • Gravações judiciais/jurídicas

Configuração Básica de Diarização

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"

Criando Segmentos de Locutor

Fluxo de trabalho

  1. Reproduza o áudio ou clique na forma de onda para navegar
  2. Clique e arraste sobre a forma de onda para selecionar um intervalo de tempo
  3. Pressione uma tecla numérica ou clique em um rótulo de locutor
  4. O segmento fica colorido e rotulado
  5. Ajuste os limites arrastando as bordas
  6. Continue até que todo o áudio esteja segmentado

Controles de Teclado

O Potato oferece atalhos de teclado integrados para controle de reprodução de áudio, incluindo reproduzir/pausar e navegação.

Correção de diarização pré-anotada

Boa parte do tempo você não rotula do zero, mas sim corrige a saída de um diarizador automático:

yaml
data_files:
  - "data/auto_diarized.json"

Formato dos dados:

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

Informações detalhadas do locutor

Capture metadados adicionais sobre cada locutor:

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

Lidando com Fala Sobreposta

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

Diarização de Reuniões/Entrevistas

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 de Saída

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

Dicas para Diarização

  1. Ouça primeiro: familiarize-se com os locutores antes de anotar
  2. Anote as características do locutor: tom de voz, sotaque, estilo de fala
  3. Trate sobreposições de forma consistente: defina uma estratégia desde o início
  4. Use o controle de velocidade: reduza a velocidade nos trechos difíceis
  5. Marque a incerteza: tudo bem usar "Unknown" quando necessário

Próximos Passos


Consulte /docs/features/audio-annotation para a documentação completa de áudio.