Anotação de Áudio
Configure a anotação de áudio baseada em forma de onda no Potato. Exiba controles de reprodução interativos, defina marcadores de tempo e combine com esquemas radio, likert ou de texto.
O Potato 2.0 oferece uma anotação de áudio poderosa com visualização de forma de onda baseada em Peaks.js, rotulagem de segmentos e atalhos de teclado abrangentes.
Casos de uso
- Transcrição e revisão de fala
- Diarização de locutores
- Análise musical
- Detecção de eventos de áudio
- Reconhecimento de emoções na fala
- Garantia de qualidade de central de atendimento
Ativando o suporte a áudio
Adicione uma seção audio_annotation à sua configuração:
annotation_schemes:
- annotation_type: audio
name: audio_segments
description: "Segment and label the audio"
labels:
- Speech
- Music
- Silence
- NoiseModos de operação
O Potato oferece três modos de anotação de áudio:
Modo de rótulo
Segmente o áudio e atribua rótulos de categoria 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 perguntas
Adicione perguntas de anotação 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
Combine a rotulagem com perguntas 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: 5Opções de configuração
Configuração 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: 50Atalhos de teclado
Os rótulos podem ser atribuídos usando as teclas numéricas 1-9:
annotation_schemes:
- annotation_type: audio
name: speakers
labels:
- Speaker A # Press 1
- Speaker B # Press 2
- Overlap # Press 3Cores dos rótulos
Personalize as cores dos segmentos:
annotation_schemes:
- annotation_type: audio
name: segments
labels:
- Speech
- Music
- Silence
label_colors:
"Speech": "#3b82f6"
"Music": "#10b981"
"Silence": "#6b7280"Desempenho da forma de onda
Para um desempenho ideal com arquivos de áudio longos, instale a ferramenta audiowaveform da BBC:
# macOS
brew install audiowaveform
# Ubuntu/Debian
sudo apt-get install audiowaveform
# Or build from source
# https://github.com/bbc/audiowaveformIsso ativa a geração de forma de onda no lado do servidor. Sem ela, a geração no lado do cliente é usada (adequada para arquivos com menos de 30 minutos).
Cache de forma de onda
Configure o cache para melhor desempenho:
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 dados
Referência simples de áudio
[
{"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_pathCom transcrições
[
{
"id": "1",
"audio_path": "audio/call_001.wav",
"transcript": "Hello, how can I help you today?"
}
]Formato de saída
As anotações são salvas com carimbos de data/hora dos segmentos:
{
"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"
}
]
}
}Atalhos de teclado
O Potato oferece atalhos de teclado abrangentes para uma anotação eficiente:
| Atalho | Ação |
|---|---|
Space | Reproduzir/Pausar |
[ | Definir início do segmento na posição atual |
] | Definir fim do segmento na posição atual |
1-9 | Atribuir rótulo ao segmento atual |
Delete | Remover segmento atual |
Left Arrow | Retroceder 5 segundos |
Right Arrow | Avançar 5 segundos |
Up Arrow | Aumentar zoom |
Down Arrow | Diminuir zoom |
Home | Ir para o início |
End | Ir para o fim |
+ | Aumentar a velocidade de reprodução |
- | Diminuir a velocidade de reprodução |
Exemplos de configuração
Diarização de locutores
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: trueRevisão de transcrição
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"QA de central de atendimento
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 áudio compatíveis
- WAV (recomendado para a melhor qualidade)
- MP3
- OGG
- FLAC
- M4A
- WebM
Dicas de desempenho
- Instale o audiowaveform - Essencial para arquivos de áudio longos
- Ative o cache - Use
cache_dirpara armazenar formas de onda pré-geradas - Use WAV para qualidade - Formatos comprimidos podem introduzir artefatos
- Pré-processe o áudio - Normalize os níveis, corte silêncios desnecessários
- Considere os tamanhos dos arquivos - Arquivos grandes deixam o carregamento mais lento
- Use precompute - Pré-gere formas de onda para as instâncias iniciais
Solução de problemas
Forma de onda não carrega
- Verifique se o caminho do arquivo de áudio está correto
- Confirme se o formato do arquivo é compatível
- Instale o audiowaveform para arquivos longos
- Verifique o console do navegador em busca de erros
Desempenho lento
- Instale a ferramenta audiowaveform
- Ative o cache de forma de onda
- Reduza os tamanhos dos arquivos de áudio
- Use a configuração precompute_depth
Segmentos não são salvos
- Garanta que o diretório de saída tenha permissão de escrita
- Verifique a configuração do formato de anotação
- Confirme se o segmento tem horários de início e fim