Anotación de Diarización de Hablantes
Construye una tarea de identificación de hablantes con formas de onda de audio, marcadores de tiempo y asignación de etiquetas de hablante.
Anotación de Diarización de Hablantes
La diarización de hablantes responde a la pregunta "¿quién habló cuándo?" Este tutorial cubre la construcción de interfaces para anotar turnos de habla, corregir diarización automática y manejar conversaciones con múltiples hablantes.
¿Qué es la Diarización de Hablantes?
La diarización de hablantes segmenta el audio en regiones homogéneas por hablante. Las aplicaciones incluyen:
- Transcripción de reuniones
- Análisis de centros de llamadas
- Producción de podcasts
- Procesamiento de entrevistas
- Grabaciones judiciales/legales
Configuración Básica de Diarización
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"Creación de Segmentos de Hablantes
Flujo de Trabajo
- Reproduce el audio o haz clic en la forma de onda para navegar
- Haz clic y arrastra en la forma de onda para seleccionar un rango de tiempo
- Presiona una tecla numérica o haz clic en una etiqueta de hablante
- El segmento se colorea y etiqueta
- Ajusta los límites arrastrando los bordes
- Continúa hasta que todo el audio esté segmentado
Controles de Teclado
Potato proporciona atajos de teclado integrados para el control de reproducción de audio, incluyendo reproducir/pausar y navegación.
Corrección de Diarización Pre-anotada
A menudo corregirás diarización automática:
data_files:
- "data/auto_diarized.json"Formato de datos:
{
"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"}
]
}Información Detallada del Hablante
Captura metadatos adicionales del hablante:
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
- UnknownManejo de Habla Superpuesta
annotation_schemes:
- annotation_type: audio_annotation
name: speakers
labels:
- name: Speaker 1
color: "#FF6B6B"
- name: Speaker 2
color: "#4ECDC4"
- name: Overlap
color: "#FFEAA7"Diarización de Reuniones/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 Salida
{
"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"
}
}Consejos para la Diarización
- Escucha primero: Familiarízate con los hablantes antes de anotar
- Nota las características del hablante: Tono, acento, estilo de habla
- Maneja superposiciones consistentemente: Decide una estrategia de antemano
- Usa control de velocidad: Reduce la velocidad para secciones difíciles
- Marca la incertidumbre: Está bien usar "Unknown" cuando sea necesario
Próximos Pasos
- Combina con transcripción para notas completas de reuniones
- Añade detección de emociones por hablante
- Configura control de calidad para acuerdo multi-anotador
Consulta /docs/features/audio-annotation para documentación completa de audio.