Annotation audio
Segmentez des fichiers audio et attribuez des étiquettes aux régions temporelles avec visualisation de forme d'onde.
Annotation audio
L'outil d'annotation audio de Potato permet aux annotateurs de segmenter des fichiers audio et d'attribuer des étiquettes aux régions temporelles via une interface basée sur les formes d'onde.
Fonctionnalités
- Visualisation de forme d'onde
- Création de segments temporels
- Attribution d'étiquettes aux segments
- Contrôles de lecture avec vitesse variable
- Navigation par zoom et défilement
- Raccourcis clavier
- Mise en cache côté serveur des formes d'onde
Configuration de base
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"Options de configuration
| Champ | Type | Défaut | Description |
|---|---|---|---|
name | string | Obligatoire | Identifiant unique de l'annotation |
description | string | Obligatoire | Instructions affichées aux annotateurs |
annotation_type | string | Obligatoire | Doit être "audio_annotation" |
mode | string | "label" | Mode d'annotation : "label", "questions" ou "both" |
labels | list | Conditionnel | Obligatoire pour les modes label ou both |
segment_schemes | list | Conditionnel | Obligatoire pour les modes questions ou both |
min_segments | integer | 0 | Nombre minimum de segments requis |
max_segments | integer | null | Nombre maximum de segments autorisés (null = illimité) |
zoom_enabled | boolean | true | Activer les contrôles de zoom |
playback_rate_control | boolean | false | Afficher le sélecteur de vitesse de lecture |
Configuration des étiquettes
yaml
labels:
- name: "speech"
color: "#3B82F6"
key_value: "1"
- name: "music"
color: "#10B981"
key_value: "2"
- name: "silence"
color: "#64748B"
key_value: "3"Modes d'annotation
Mode étiquette (par défaut)
Les segments reçoivent des étiquettes de catégorie :
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"Mode questions
Chaque segment répond à des questions dédiées :
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: 5Mode combiné
Combine l'étiquetage avec des questionnaires par segment :
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?"Configuration audio globale
Configurez la gestion des formes d'onde dans votre fichier de configuration :
yaml
audio_annotation:
waveform_cache_dir: "waveform_cache/"
waveform_look_ahead: 5
waveform_cache_max_size: 1000
client_fallback_max_duration: 1800| Champ | Description |
|---|---|
waveform_cache_dir | Répertoire pour les données de formes d'onde mises en cache |
waveform_look_ahead | Nombre d'instances à venir à pré-calculer |
waveform_cache_max_size | Nombre maximum de fichiers de formes d'onde en cache |
client_fallback_max_duration | Durée maximale en secondes pour la génération côté navigateur (défaut : 1800) |
Exemples
Diarisation de locuteurs
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: trueDétection d'événements sonores
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: 1Revue de transcription
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"Raccourcis clavier
| Touche | Action |
|---|---|
Espace | Lecture/pause |
← / → | Reculer/avancer |
[ | Marquer le début du segment |
] | Marquer la fin du segment |
Entrée | Créer le segment |
Suppr | Supprimer le segment sélectionné |
1-9 | Sélectionner l'étiquette |
+ / - | Zoom avant/arrière |
0 | Ajuster la vue |
Format de données
Données d'entrée
Votre fichier de données doit inclure des chemins ou URL de fichiers audio :
json
[
{
"id": "audio_001",
"audio_url": "https://example.com/audio/recording1.mp3"
},
{
"id": "audio_002",
"audio_url": "/data/audio/recording2.wav"
}
]Configurez le champ audio :
yaml
item_properties:
id_key: id
text_key: audio_urlFormat de sortie
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"
}
]
}
}En mode questions, les segments incluent des réponses imbriquées :
json
{
"start": 0.0,
"end": 5.5,
"transcript": "Hello and welcome to the show.",
"quality": "Clear"
}Formats audio supportés
- MP3 (recommandé)
- WAV
- OGG
- M4A
Bonnes pratiques
- Pré-cachez les formes d'onde - Utilisez la mise en cache côté serveur pour les grands ensembles de données
- Activez le contrôle de lecture - La vitesse variable aide à la segmentation précise
- Utilisez les raccourcis clavier - Beaucoup plus rapide que le clic
- Définissez des limites claires - Spécifiez ce qui constitue le début/fin d'un segment
- Choisissez le mode approprié - Utilisez "label" pour la classification, "questions" pour l'annotation détaillée
- Fixez des limites de segments - Utilisez
min_segmentspour assurer la couverture