Skip to content
Cette page n'est pas encore disponible dans votre langue. La version anglaise est affichée.

Annotazione Audio

Annota file audio con visualizzazione della forma d'onda e controlli di riproduzione.

Annotazione Audio

Potato 2.0 fornisce potenti funzionalità di annotazione audio con visualizzazione della forma d'onda basata su Peaks.js, etichettatura dei segmenti e scorciatoie da tastiera complete.

Casi d'Uso

  • Trascrizione e revisione del parlato
  • Diarizzazione dei parlanti
  • Analisi musicale
  • Rilevamento di eventi audio
  • Riconoscimento delle emozioni nel parlato
  • Controllo della qualità nei call center

Abilitazione del Supporto Audio

Aggiungi una sezione audio_annotation alla tua configurazione:

yaml
annotation_schemes:
  - annotation_type: audio
    name: audio_segments
    description: "Segment and label the audio"
    labels:
      - Speech
      - Music
      - Silence
      - Noise

Modalità Operative

Potato supporta tre modalità di annotazione audio:

Modalità Etichetta

Segmenta l'audio e assegna etichette di categoria a ciascun segmento:

yaml
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"

Modalità Domande

Aggiungi domande di annotazione per segmento:

yaml
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]

Modalità Entrambi

Combina l'etichettatura con domande per segmento:

yaml
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: 5

Opzioni di Configurazione

Impostazione di Base

yaml
annotation_schemes:
  - annotation_type: audio
    name: segments
    description: "Create audio segments"
    labels:
      - Label A
      - Label B
 
    # Vincoli opzionali
    min_segments: 1
    max_segments: 50

Scorciatoie da Tastiera

Le etichette possono essere assegnate usando i tasti numerici da 1 a 9:

yaml
annotation_schemes:
  - annotation_type: audio
    name: speakers
    labels:
      - Speaker A  # Premi 1
      - Speaker B  # Premi 2
      - Overlap    # Premi 3

Colori delle Etichette

Personalizza i colori dei segmenti:

yaml
annotation_schemes:
  - annotation_type: audio
    name: segments
    labels:
      - Speech
      - Music
      - Silence
    label_colors:
      "Speech": "#3b82f6"
      "Music": "#10b981"
      "Silence": "#6b7280"

Prestazioni della Forma d'Onda

Per prestazioni ottimali con file audio lunghi, installa lo strumento BBC audiowaveform:

bash
# macOS
brew install audiowaveform
 
# Ubuntu/Debian
sudo apt-get install audiowaveform
 
# O compila dai sorgenti
# https://github.com/bbc/audiowaveform

Questo abilita la generazione della forma d'onda lato server. Senza di esso, viene usata la generazione lato client (adatta per file di durata inferiore a 30 minuti).

Caching della Forma d'Onda

Configura il caching per prestazioni migliori:

yaml
audio_config:
  cache_dir: "audio_cache/"
  precompute_depth: 100  # Pre-genera le forme d'onda per i primi N elementi
  client_fallback_max_duration: 1800  # 30 minuti in secondi

Formato dei Dati

Riferimento Audio Semplice

json
[
  {"id": "1", "audio_path": "audio/recording_001.wav"},
  {"id": "2", "audio_path": "audio/recording_002.wav"}
]
yaml
data_files:
  - "data/audio_data.json"
 
item_properties:
  id_key: id
  audio_key: audio_path

Con Trascrizioni

json
[
  {
    "id": "1",
    "audio_path": "audio/call_001.wav",
    "transcript": "Hello, how can I help you today?"
  }
]

Formato di Output

Le annotazioni vengono salvate con i timestamp dei segmenti:

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

Scorciatoie da Tastiera

Potato fornisce ampie scorciatoie da tastiera per un'annotazione efficiente:

ScorciatoiaAzione
SpazioRiproduci/Pausa
[Imposta l'inizio del segmento alla posizione corrente
]Imposta la fine del segmento alla posizione corrente
1-9Assegna un'etichetta al segmento corrente
CancRimuovi il segmento corrente
Freccia SinistraTorna indietro di 5 secondi
Freccia DestraVai avanti di 5 secondi
Freccia SuZoom in
Freccia GiùZoom out
InizioVai all'inizio
FineVai alla fine
+Aumenta la velocità di riproduzione
-Diminuisce la velocità di riproduzione

Configurazioni di Esempio

Diarizzazione dei Parlanti

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

Revisione della Trascrizione

yaml
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"

Controllo Qualità Call Center

yaml
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:
  # Annotazione a livello di segmento
  - 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]
 
  # Valutazione a livello di chiamata
  - 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"

Formati Audio Supportati

  • WAV (consigliato per la migliore qualità)
  • MP3
  • OGG
  • FLAC
  • M4A
  • WebM

Suggerimenti per le Prestazioni

  1. Installa audiowaveform - Essenziale per i file audio lunghi
  2. Abilita il caching - Usa cache_dir per memorizzare le forme d'onda pre-generate
  3. Usa WAV per la qualità - I formati compressi possono introdurre artefatti
  4. Pre-elabora l'audio - Normalizza i livelli, taglia i silenzi non necessari
  5. Considera le dimensioni dei file - I file grandi rallentano il caricamento
  6. Usa il pre-calcolo - Pre-genera le forme d'onda per le istanze iniziali

Risoluzione dei Problemi

Forma d'Onda Non Caricata

  • Controlla che il percorso del file audio sia corretto
  • Verifica che il formato del file sia supportato
  • Installa audiowaveform per i file lunghi
  • Controlla la console del browser per gli errori

Prestazioni Lente

  • Installa lo strumento audiowaveform
  • Abilita il caching della forma d'onda
  • Riduci le dimensioni dei file audio
  • Usa l'impostazione precompute_depth

Segmenti Non Salvati

  • Assicurati che la directory di output sia scrivibile
  • Controlla la configurazione del formato di annotazione
  • Verifica che il segmento abbia sia l'ora di inizio che quella di fine