Anotación de Audio
Segmenta archivos de audio y asigna etiquetas a regiones de tiempo con visualización de forma de onda.
Anotación de Audio
La herramienta de anotación de audio de Potato permite a los anotadores segmentar archivos de audio y asignar etiquetas a regiones de tiempo a través de una interfaz basada en forma de onda.
Funcionalidades
- Visualización de forma de onda
- Creación de segmentos basados en tiempo
- Asignación de etiquetas a segmentos
- Controles de reproducción con velocidad variable
- Navegación con zoom y desplazamiento
- Atajos de teclado
- Caché de formas de onda del lado del servidor
Configuración Básica
yaml
annotation_schemes:
- name: "speakers"
description: "Mark when each speaker is talking"
annotation_type: "audio_annotation"
labels:
- name: "Speaker 1"
color: "#3B82F6"
- name: "Speaker 2"
color: "#10B981"Opciones de Configuración
| Campo | Tipo | Predeterminado | Descripción |
|---|---|---|---|
name | string | Requerido | Identificador único para la anotación |
description | string | Requerido | Instrucciones mostradas a los anotadores |
annotation_type | string | Requerido | Debe ser "audio_annotation" |
mode | string | "label" | Modo de anotación: "label", "questions" o "both" |
labels | list | Condicional | Requerido para los modos label o both |
segment_schemes | list | Condicional | Requerido para los modos questions o both |
min_segments | integer | 0 | Segmentos mínimos requeridos |
max_segments | integer | null | Segmentos máximos permitidos (null = ilimitado) |
zoom_enabled | boolean | true | Habilitar controles de zoom |
playback_rate_control | boolean | false | Mostrar selector de velocidad de reproducción |
Configuración de Etiquetas
yaml
labels:
- name: "speech"
color: "#3B82F6"
key_value: "1"
- name: "music"
color: "#10B981"
key_value: "2"
- name: "silence"
color: "#64748B"
key_value: "3"Modos de Anotación
Modo Etiqueta (Predeterminado)
Los segmentos reciben etiquetas de categoría:
yaml
annotation_schemes:
- name: "emotion"
description: "Label the emotion in each segment"
annotation_type: "audio_annotation"
mode: "label"
labels:
- name: "happy"
color: "#22C55E"
- name: "sad"
color: "#3B82F6"
- name: "angry"
color: "#EF4444"
- name: "neutral"
color: "#64748B"Modo Preguntas
Cada segmento responde preguntas dedicadas:
yaml
annotation_schemes:
- name: "transcription"
description: "Transcribe each segment"
annotation_type: "audio_annotation"
mode: "questions"
segment_schemes:
- name: "transcript"
annotation_type: "text"
description: "Enter the transcription"
- name: "confidence"
annotation_type: "likert"
description: "How confident are you?"
size: 5Modo Ambos
Combina el etiquetado con cuestionarios por segmento:
yaml
annotation_schemes:
- name: "detailed_diarization"
description: "Label speakers and add notes"
annotation_type: "audio_annotation"
mode: "both"
labels:
- name: "Speaker A"
color: "#3B82F6"
- name: "Speaker B"
color: "#10B981"
segment_schemes:
- name: "notes"
annotation_type: "text"
description: "Any notes about this segment?"Configuración Global de Audio
Configura el manejo de formas de onda en tu archivo de configuración:
yaml
audio_annotation:
waveform_cache_dir: "waveform_cache/"
waveform_look_ahead: 5
waveform_cache_max_size: 1000
client_fallback_max_duration: 1800| Campo | Descripción |
|---|---|
waveform_cache_dir | Directorio para datos de forma de onda en caché |
waveform_look_ahead | Número de instancias próximas a pre-calcular |
waveform_cache_max_size | Número máximo de archivos de forma de onda en caché |
client_fallback_max_duration | Máximo de segundos para generación de forma de onda del lado del navegador (predeterminado: 1800) |
Ejemplos
Diarización de Hablantes
yaml
annotation_schemes:
- name: "diarization"
description: "Identify who is speaking at each moment"
annotation_type: "audio_annotation"
mode: "label"
labels:
- name: "Interviewer"
color: "#8B5CF6"
key_value: "1"
- name: "Guest"
color: "#EC4899"
key_value: "2"
- name: "Overlap"
color: "#F59E0B"
key_value: "3"
zoom_enabled: true
playback_rate_control: trueDetección de Eventos Sonoros
yaml
annotation_schemes:
- name: "sound_events"
description: "Mark all sound events"
annotation_type: "audio_annotation"
labels:
- name: "speech"
color: "#3B82F6"
- name: "music"
color: "#10B981"
- name: "applause"
color: "#F59E0B"
- name: "laughter"
color: "#EC4899"
- name: "silence"
color: "#64748B"
min_segments: 1Revisión de Transcripción
yaml
annotation_schemes:
- name: "transcription_review"
description: "Review and correct the transcription for each segment"
annotation_type: "audio_annotation"
mode: "questions"
segment_schemes:
- name: "transcript"
annotation_type: "text"
description: "Enter or correct the transcription"
textarea: true
- name: "quality"
annotation_type: "radio"
description: "Audio quality"
labels:
- "Clear"
- "Noisy"
- "Unintelligible"Atajos de Teclado
| Tecla | Acción |
|---|---|
Space | Reproducir/pausar |
← / → | Retroceder/avanzar |
[ | Marcar inicio de segmento |
] | Marcar fin de segmento |
Enter | Crear segmento |
Delete | Eliminar segmento seleccionado |
1-9 | Seleccionar etiqueta |
+ / - | Acercar/alejar zoom |
0 | Ajustar vista |
Formato de Datos
Datos de Entrada
Tu archivo de datos debe incluir rutas de archivos de audio o URLs:
json
[
{
"id": "audio_001",
"audio_url": "https://example.com/audio/recording1.mp3"
},
{
"id": "audio_002",
"audio_url": "/data/audio/recording2.wav"
}
]Configura el campo de audio:
yaml
item_properties:
id_key: id
text_key: audio_urlFormato de Salida
json
{
"id": "audio_001",
"annotations": {
"diarization": [
{
"start": 0.0,
"end": 5.5,
"label": "Interviewer"
},
{
"start": 5.5,
"end": 12.3,
"label": "Guest"
},
{
"start": 12.3,
"end": 14.0,
"label": "Overlap"
}
]
}
}Para el modo de preguntas, los segmentos incluyen respuestas anidadas:
json
{
"start": 0.0,
"end": 5.5,
"transcript": "Hello and welcome to the show.",
"quality": "Clear"
}Formatos de Audio Soportados
- MP3 (recomendado)
- WAV
- OGG
- M4A
Mejores Prácticas
- Pre-cachear formas de onda - Usa caché del lado del servidor para conjuntos de datos grandes
- Habilitar control de reproducción - La velocidad variable ayuda con la segmentación precisa
- Usar atajos de teclado - Mucho más rápido que hacer clic
- Definir límites claros - Especifica qué constituye el inicio/fin de un segmento
- Elegir el modo apropiado - Usa "label" para clasificación, "questions" para anotación detallada
- Establecer límites de segmentos - Usa
min_segmentspara asegurar cobertura