Showcase/Respiratory Sound Classification
advancedaudio

Respiratory Sound Classification

Classify lung and respiratory sounds for medical diagnosis following ICBHI 2017 Challenge format.

🎧

audio annotation

Configuration Fileconfig.yaml

task_name: "Respiratory Sound Classification"

# Server configuration
server:
  port: 8000

# Audio settings
audio:
  enabled: true
  display: waveform
  waveform_color: "#EF4444"
  progress_color: "#F87171"
  speed_control: true
  speed_options: [0.5, 0.75, 1.0]

# Data configuration
data_files:
  - path: data/respiratory_sounds.json
    audio_field: audio_file

# Annotation schemes
annotation_schemes:
  # Overall classification
  - annotation_type: radio
    name: overall_classification
    description: "Overall respiratory sound classification"
    labels:
      - Normal (healthy breathing)
      - Abnormal (pathological sounds present)
      - Poor quality (cannot assess)

  # Adventitious sounds (abnormal sounds)
  - annotation_type: multiselect
    name: adventitious_sounds
    description: "What abnormal sounds are present? (Select all that apply)"
    labels:
      - Crackles (fine) - brief, discontinuous, high-pitched
      - Crackles (coarse) - louder, lower-pitched, longer
      - Wheezes - continuous, high-pitched, musical
      - Rhonchi - continuous, low-pitched, snoring
      - Stridor - high-pitched, inspiratory
      - Pleural friction rub - creaking/grating
      - None (normal breathing only)

  # Breathing phase affected
  - annotation_type: multiselect
    name: phase_affected
    description: "During which phase are abnormal sounds heard?"
    labels:
      - Inspiration
      - Expiration
      - Both phases
      - Cannot determine
      - Not applicable (normal)

  # Sound intensity
  - annotation_type: radio
    name: sound_intensity
    description: "Intensity of abnormal sounds (if present)"
    labels:
      - Subtle (barely audible)
      - Mild
      - Moderate
      - Severe (very pronounced)
      - Not applicable

  # Location (if known)
  - annotation_type: radio
    name: likely_location
    description: "Where might these sounds originate? (Based on characteristics)"
    labels:
      - Upper airways
      - Lower airways/bronchi
      - Lung parenchyma
      - Pleural
      - Cannot determine
      - Not applicable

  # Recording quality
  - annotation_type: likert
    name: recording_quality
    description: "Quality of the respiratory recording"
    size: 5
    min_label: "Very poor"
    max_label: "Excellent"

  # Artifacts present
  - annotation_type: multiselect
    name: artifacts
    description: "What artifacts or noise are present?"
    labels:
      - Heart sounds (normal)
      - Movement artifact
      - Talking/coughing
      - Equipment noise
      - Environmental noise
      - None

  # Clinical confidence
  - annotation_type: likert
    name: confidence
    description: "Confidence in your classification"
    size: 5
    min_label: "Low"
    max_label: "High"

  # Notes
  - annotation_type: text
    name: clinical_notes
    description: "Additional clinical observations (optional)"
    textarea: true
    required: false

# User settings
allow_all_users: false
authorized_users:
  - clinician1@hospital.org
  - clinician2@hospital.org

instances_per_annotator: 100

# Output
output:
  path: annotations/
  format: json

Get This Design

This design is available in our showcase. Copy the configuration below to get started.

Quick start:

# Create your project folder
mkdir respiratory-sound-classification
cd respiratory-sound-classification
# Copy config.yaml from above
potato start config.yaml

Details

Annotation Types

radiomultiselect

Domain

AudioMedical

Use Cases

medical audiorespiratory soundsclinical diagnosis

Tags

audiomedicalrespiratorylung soundsdiagnosis