Anotación de Audio
Anota archivos de audio con visualización de forma de onda y controles de reproducción.
Anotación de Audio
Potato 2.0 proporciona una potente anotación de audio con visualización de forma de onda impulsada por Peaks.js, etiquetado de segmentos y atajos de teclado completos.
Casos de Uso
- Transcripción y revisión de voz
- Diarización de hablantes
- Análisis musical
- Detección de eventos de audio
- Reconocimiento de emociones en el habla
- Aseguramiento de calidad en centros de llamadas
Habilitación del Soporte de Audio
Añade una sección audio_annotation a tu configuración:
annotation_schemes:
- annotation_type: audio
name: audio_segments
description: "Segment and label the audio"
labels:
- Speech
- Music
- Silence
- NoiseModos Operacionales
Potato admite tres modos de anotación de audio:
Modo de Etiquetado
Segmenta el audio y asigna etiquetas de categoría a cada segmento:
annotation_schemes:
- annotation_type: audio
name: speaker_diarization
mode: label
description: "Identify speakers in the audio"
labels:
- Speaker A
- Speaker B
- Overlap
label_colors:
"Speaker A": "#3b82f6"
"Speaker B": "#10b981"
"Overlap": "#f59e0b"Modo de Preguntas
Añade preguntas de anotación por segmento:
annotation_schemes:
- annotation_type: audio
name: speech_quality
mode: questions
description: "Evaluate speech segments"
segment_questions:
- name: clarity
type: likert
size: 5
min_label: "Unclear"
max_label: "Very clear"
- name: emotion
type: radio
labels: [Neutral, Happy, Sad, Angry]Modo Combinado
Combina el etiquetado con preguntas por segmento:
annotation_schemes:
- annotation_type: audio
name: full_analysis
mode: both
description: "Label and analyze audio segments"
labels:
- Speech
- Music
- Noise
segment_questions:
- name: quality
type: likert
size: 5Opciones de Configuración
Configuración Básica
annotation_schemes:
- annotation_type: audio
name: segments
description: "Create audio segments"
labels:
- Label A
- Label B
# Optional constraints
min_segments: 1
max_segments: 50Atajos de Teclado
Las etiquetas pueden asignarse usando las teclas numéricas 1-9:
annotation_schemes:
- annotation_type: audio
name: speakers
labels:
- Speaker A # Press 1
- Speaker B # Press 2
- Overlap # Press 3Colores de Etiquetas
Personaliza los colores de los segmentos:
annotation_schemes:
- annotation_type: audio
name: segments
labels:
- Speech
- Music
- Silence
label_colors:
"Speech": "#3b82f6"
"Music": "#10b981"
"Silence": "#6b7280"Rendimiento de la Forma de Onda
Para un rendimiento óptimo con archivos de audio largos, instala la herramienta audiowaveform de BBC:
# macOS
brew install audiowaveform
# Ubuntu/Debian
sudo apt-get install audiowaveform
# Or build from source
# https://github.com/bbc/audiowaveformEsto habilita la generación de formas de onda del lado del servidor. Sin ella, se utiliza la generación del lado del cliente (adecuada para archivos de menos de 30 minutos).
Caché de Formas de Onda
Configura el almacenamiento en caché para un mejor rendimiento:
audio_config:
cache_dir: "audio_cache/"
precompute_depth: 100 # Pre-generate waveforms for first N items
client_fallback_max_duration: 1800 # 30 minutes in secondsFormato de Datos
Referencia de Audio Simple
[
{"id": "1", "audio_path": "audio/recording_001.wav"},
{"id": "2", "audio_path": "audio/recording_002.wav"}
]data_files:
- "data/audio_data.json"
item_properties:
id_key: id
audio_key: audio_pathCon Transcripciones
[
{
"id": "1",
"audio_path": "audio/call_001.wav",
"transcript": "Hello, how can I help you today?"
}
]Formato de Salida
Las anotaciones se guardan con marcas de tiempo de segmento:
{
"id": "audio_1",
"annotations": {
"segments": [
{
"start": 0.0,
"end": 2.5,
"label": "Speaker A",
"questions": {
"clarity": 4,
"emotion": "Neutral"
}
},
{
"start": 2.5,
"end": 5.2,
"label": "Speaker B"
}
]
}
}Atajos de Teclado
Potato proporciona amplios atajos de teclado para una anotación eficiente:
| Atajo | Acción |
|---|---|
Space | Reproducir/Pausar |
[ | Establecer inicio del segmento en la posición actual |
] | Establecer fin del segmento en la posición actual |
1-9 | Asignar etiqueta al segmento actual |
Delete | Eliminar segmento actual |
Left Arrow | Retroceder 5 segundos |
Right Arrow | Avanzar 5 segundos |
Up Arrow | Acercar zoom |
Down Arrow | Alejar zoom |
Home | Ir al inicio |
End | Ir al final |
+ | Aumentar velocidad de reproducción |
- | Disminuir velocidad de reproducción |
Configuraciones de Ejemplo
Diarización de Hablantes
task_name: "Speaker Diarization"
task_dir: "."
port: 8000
data_files:
- "data/recordings.json"
item_properties:
id_key: id
audio_key: audio_path
annotation_schemes:
- annotation_type: audio
name: speakers
mode: label
description: "Identify who is speaking"
labels:
- Speaker 1
- Speaker 2
- Speaker 3
- Overlap
- Silence
label_colors:
"Speaker 1": "#3b82f6"
"Speaker 2": "#10b981"
"Speaker 3": "#f59e0b"
"Overlap": "#ef4444"
"Silence": "#6b7280"
min_segments: 1
audio_config:
cache_dir: "audio_cache/"
precompute_depth: 50
output_annotation_dir: "output/"
output_annotation_format: "json"
allow_all_users: trueRevisión de Transcripción
task_name: "Transcription Quality Review"
task_dir: "."
port: 8000
data_files:
- "data/transcripts.json"
item_properties:
id_key: id
text_key: transcript
audio_key: audio_path
annotation_schemes:
- annotation_type: audio
name: errors
mode: questions
description: "Mark transcription errors"
segment_questions:
- name: error_type
type: radio
labels:
- Missing word
- Wrong word
- Extra word
- Spelling error
- name: severity
type: likert
size: 3
min_label: "Minor"
max_label: "Major"
- annotation_type: radio
name: overall_accuracy
description: "Overall transcript accuracy"
labels:
- Accurate
- Minor errors
- Major errors
- Unusable
output_annotation_dir: "output/"
output_annotation_format: "json"Control de Calidad de Centro de Llamadas
task_name: "Call Center Quality Assurance"
task_dir: "."
port: 8000
data_files:
- "data/calls.json"
item_properties:
id_key: call_id
audio_key: recording_path
annotation_schemes:
# Segment-level annotation
- annotation_type: audio
name: conversation
mode: both
description: "Segment the conversation"
labels:
- Agent
- Customer
- Hold
- Silence
segment_questions:
- name: sentiment
type: radio
labels: [Positive, Neutral, Negative, Frustrated]
# Call-level assessment
- annotation_type: likert
name: professionalism
description: "Agent professionalism"
size: 5
min_label: "Poor"
max_label: "Excellent"
- annotation_type: likert
name: resolution
description: "Issue resolution"
size: 5
min_label: "Unresolved"
max_label: "Fully resolved"
- annotation_type: multiselect
name: issues
description: "Select any issues observed"
labels:
- Long hold time
- Agent interrupted
- Incorrect information
- Missing greeting
- Unprofessional language
- annotation_type: text
name: notes
description: "Additional observations"
textarea: true
output_annotation_dir: "output/"
output_annotation_format: "json"Formatos de Audio Soportados
- WAV (recomendado para mejor calidad)
- MP3
- OGG
- FLAC
- M4A
- WebM
Consejos de Rendimiento
- Instalar audiowaveform - Esencial para archivos de audio largos
- Habilitar caché - Usa
cache_dirpara almacenar formas de onda pregeneradas - Usar WAV para calidad - Los formatos comprimidos pueden introducir artefactos
- Preprocesar audio - Normalizar niveles, recortar silencios innecesarios
- Considerar tamaños de archivo - Los archivos grandes ralentizan la carga
- Usar precompute - Pregenerar formas de onda para las instancias iniciales
Solución de Problemas
La Forma de Onda No Carga
- Verificar que la ruta del archivo de audio sea correcta
- Comprobar que el formato de archivo sea soportado
- Instalar audiowaveform para archivos largos
- Revisar la consola del navegador en busca de errores
Rendimiento Lento
- Instalar la herramienta audiowaveform
- Habilitar caché de formas de onda
- Reducir el tamaño de los archivos de audio
- Usar la configuración precompute_depth
Los Segmentos No Se Guardan
- Asegurar que el directorio de salida tenga permisos de escritura
- Verificar la configuración del formato de anotación
- Comprobar que el segmento tenga tiempos de inicio y fin