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.
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
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
- Reproduza o áudio ou clique na forma de onda para navegar
- Clique e arraste sobre a forma de onda para selecionar um intervalo de tempo
- Pressione uma tecla numérica ou clique em um rótulo de locutor
- O segmento fica colorido e rotulado
- Ajuste os limites arrastando as bordas
- 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:
data_files:
- "data/auto_diarized.json"Formato dos dados:
{
"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:
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
- UnknownLidando com Fala Sobreposta
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
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 de Saída
{
"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
- Ouça primeiro: familiarize-se com os locutores antes de anotar
- Anote as características do locutor: tom de voz, sotaque, estilo de fala
- Trate sobreposições de forma consistente: defina uma estratégia desde o início
- Use o controle de velocidade: reduza a velocidade nos trechos difíceis
- Marque a incerteza: tudo bem usar "Unknown" quando necessário
Próximos Passos
- Combine com transcrição para notas completas de reuniões
- Acrescente detecção de emoção por locutor
- Configure o controle de qualidade para concordância entre vários anotadores
Consulte /docs/features/audio-annotation para a documentação completa de áudio.