Skip to content
advancedaudio

Respiratory Sound Classification

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

Respiratory Sound Classification annotation interface preview

Configuration Fileconfig.yaml

yaml
annotation_task_name: "Respiratory Sound Classification"
task_dir: "."

port: 8000

# Data configuration
data_files:
  - "data/respiratory_sounds.json"

item_properties:
  id_key: "id"
  text_key: "text"
instance_display:
  fields:
    - key: audio_url
      type: audio
      label: "Recording"
    - key: text
      type: text
      label: "Notes"

# 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)"
    multiline: true
    required: false

# User settings

# Output
output_annotation_dir: "annotation_output/"
export_annotation_format: "jsonl"

Sample Datasample-data.json

json
[
  {
    "id": "respiratory_sound_classification_1",
    "audio_url": "https://upload.wikimedia.org/wikipedia/commons/3/37/The-description-of-cough-sounds-by-healthcare-professionals-1745-9974-2-1-S1.ogg",
    "text": "Cough recording from a clinical study"
  },
  {
    "id": "respiratory_sound_classification_2",
    "audio_url": "https://upload.wikimedia.org/wikipedia/commons/0/06/The-description-of-cough-sounds-by-healthcare-professionals-1745-9974-2-1-S2.ogg",
    "text": "Cough recording from a clinical study"
  }
]

// ... and 3 more items

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