Skip to content

Anotação de Áudio

Segmente arquivos de áudio no Potato e atribua rótulos a regiões de tempo. Exibe uma forma de onda interativa com controles de reprodução, ajuste de velocidade e marcação de limites de tempo.

A ferramenta de anotação de áudio do Potato permite que os anotadores segmentem arquivos de áudio e atribuam rótulos a regiões de tempo por meio de uma interface baseada em forma de onda.

Recursos

  • Visualização de forma de onda
  • Criação de segmentos baseada em tempo
  • Atribuição de rótulos a segmentos
  • Controles de reprodução com velocidade variável
  • Navegação com zoom e rolagem
  • Atalhos de teclado
  • Cache de forma de onda no servidor

Configuração 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"

Opções de Configuração

CampoTipoPadrãoDescrição
namestringObrigatórioIdentificador único da anotação
descriptionstringObrigatórioInstruções exibidas aos anotadores
annotation_typestringObrigatórioDeve ser "audio_annotation"
modestring"label"Modo de anotação: "label", "questions" ou "both"
labelslistCondicionalObrigatório para os modos label ou both
segment_schemeslistCondicionalObrigatório para os modos questions ou both
min_segmentsinteger0Número mínimo de segmentos exigido
max_segmentsintegernullNúmero máximo de segmentos permitido (null = ilimitado)
zoom_enabledbooleantrueHabilita os controles de zoom
playback_rate_controlbooleanfalseMostra o seletor de velocidade de reprodução

Configuração de Rótulos

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 Anotação

Modo de Rótulo (Padrão)

Os segmentos recebem rótulos de categoria:

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 de Perguntas

Cada segmento responde a perguntas 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: 5

Modo Ambos

Combina a rotulagem com questionários 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?"

Configuração Global de Áudio

Configure o tratamento da forma de onda no seu arquivo de configuração:

yaml
audio_annotation:
  waveform_cache_dir: "waveform_cache/"
  waveform_look_ahead: 5
  waveform_cache_max_size: 1000
  client_fallback_max_duration: 1800
CampoDescrição
waveform_cache_dirDiretório para os dados de forma de onda em cache
waveform_look_aheadNúmero de instâncias futuras a pré-computar
waveform_cache_max_sizeNúmero máximo de arquivos de forma de onda em cache
client_fallback_max_durationMáximo de segundos para geração de forma de onda no navegador (padrão: 1800)

Exemplos

Diarização de Locutores

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: true

Detecção 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: 1

Revisão de Transcrição

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"
        multiline: true
      - name: "quality"
        annotation_type: "radio"
        description: "Audio quality"
        labels:
          - "Clear"
          - "Noisy"
          - "Unintelligible"

Atalhos de Teclado

TeclaAção
SpaceReproduzir/pausar
/ Retroceder/avançar
[Marcar início do segmento
]Marcar fim do segmento
EnterCriar segmento
DeleteRemover segmento selecionado
1-9Selecionar rótulo
+ / -Aumentar/diminuir zoom
0Ajustar à visualização

Formato dos Dados

Dados de Entrada

Seu arquivo de dados deve incluir caminhos ou URLs dos arquivos de áudio:

json
[
  {
    "id": "audio_001",
    "audio_url": "https://example.com/audio/recording1.mp3"
  },
  {
    "id": "audio_002",
    "audio_url": "/data/audio/recording2.wav"
  }
]

Configure o campo de áudio:

yaml
item_properties:
  id_key: id
  text_key: audio_url

Formato de Saída

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"
      }
    ]
  }
}

No modo de perguntas, os segmentos incluem respostas aninhadas:

json
{
  "start": 0.0,
  "end": 5.5,
  "transcript": "Hello and welcome to the show.",
  "quality": "Clear"
}

Formatos de Áudio Suportados

  • MP3 (recomendado)
  • WAV
  • OGG
  • M4A

Boas Práticas

  1. Pré-cacheie as formas de onda - Use o cache no servidor para grandes conjuntos de dados
  2. Habilite o controle de reprodução - A velocidade variável ajuda na segmentação precisa
  3. Use os atalhos de teclado - Muito mais rápido do que clicar
  4. Defina limites claros - Especifique o que constitui o início/fim de um segmento
  5. Escolha o modo apropriado - Use "label" para classificação e "questions" para anotação detalhada
  6. Defina limites de segmentos - Use min_segments para garantir a cobertura