{
  "fetched_at": "2026-10-19T07:21:06Z",
  "source_url": "https://www.kaggle.com/competitions/airs-ai-in-respiratory-sounds/data",
  "pages": [
    {
      "name": "data-description",
      "content": "The dataset contains three type of data for each individual. The data is identified using candidateID assigned to each person. The sounds can be mapped using this candidateID. The sound and embedding files are present in the directory of given candidateID\n\n## Files\n\n*   **train.csv** - the training set\n*   **test.csv** - the test set\n*   **sounds/{candidateID}** - the directory corresponding to the person having the candidateID. Each directory contains four different files.\n   *   **cough.wav** - recording of cough sound containing at least 3 cough bouts, where maximium length of recording is 15 secs.\n   *   **vowel.wav** - recording of chanting of vowel O sound where maximum length of recording is 6 secs.\n   *   **emb_cough.json** - list of embeddings of size 512 of first four cough bouts in cough.wav\n   *   **emb_vowel.json** - list of embeddings of size 512 of vowel sound containing only one embedding of sound from 2 sec to 4 sec interval in vowel.wav\n\n## Columns\n\n*   `candidateID` - Mapping of the person to sound recordings, embeddings, disease and other physiological/demographical information provided in the table.\n*   `age` - Age of the person. It is an *integer* number in between 18 and 80\n*   `gender` - Gender of the person. A *Boolean* output\n*   `tbContactHistory` - Any neighboring or co-living family/friend/co-worker had TB or not. A *boolean* output\n*   `wheezingHistory` - History of wheezing or not. A *Boolean* output\n*   `phlegmCough` - the person produce phlegm with cough or not. A *Boolean* output\n*   `familyAsthmaHistory` - Any history of Asthma in the family or not. A *Boolean* output.\n*   `feverHistory` - history of fever/weight loss >3kg/decreased appetite in last one month from the time of recording. a  *Boolean* output.\n*   `coldPresent` - cold present at the time of recording or not. A *Boolean* output\n*   `packYears` - Number of cigarette packs smoked by the person in his entire lifetime. *Integer* number between 0 to 800\n*   `disease` - label of disease of the person. It includes **three labels**, two if diseased classes and one of healthy individuals. *Integer* value denoting one class and this is our **target** variable.\n\nThe participant of this competition is free to use any or all files provided in the data to predict the label of the disease.\n\n",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Description",
      "content": "To begin with let  us refer to already existing promising research done in the field of respiratory sounds. One of the best available dataset for covid-19 is [COUGHVID](https://paperswithcode.com/dataset/coughvid). Along with that Google's self supervised [HeAR](https://github.com/Google-Health/google-health/tree/master/health_acoustic_representations) model to create biomarkers from 2 sec audio sounds reduces the computation efforts and reduces efforts on creating machine learning models. Another recent development with [OPERA](https://github.com/evelyn0414/opera) is increasing the interest of scientist and its use to develop diagnostic tools.\n\n## Preprocessing for audio files\nIt is common practice to fix the length and sample rate for input audio in order to further train the model. Below are some steps for padding and ensuring correct sample rate\n```\ndef pad_audio(y, target_length):\n    \"\"\"Pads the audio with zeros to match the target length.\"\"\"\n    if len(y) < target_length:\n        padding = target_length - len(y)\n        y = np.pad(y, (0, padding), 'constant')\n    return y\n\ndef truncate_audio(y, target_length):\n    \"\"\"Truncates the audio to match the target length.\"\"\"\n    if len(y) > target_length:\n        y = y[:target_length]\n    return y\n\ndef adjust_audio(y, target_length=32000):\n    \"\"\"Adjusts the audio to match the target length by padding or truncating.\"\"\"\n    if len(y) < target_length:\n        return pad_audio(y, target_length)\n    else:\n        return truncate_audio(y, target_length)\n\ndef ensure_sample_rate(original_sample_rate, waveform,\n                       desired_sample_rate=16000):\n    \"\"\"Resample waveform if required.\"\"\"\n    if original_sample_rate != desired_sample_rate:\n        desired_length = int(round(float(len(waveform)) /\n                                  original_sample_rate * desired_sample_rate))\n        waveform = scipy.signal.resample(waveform, desired_length)\n    return desired_sample_rate, waveform\n```\n\n\n## Isolation of cough sounds\n- As a part of preprocessing the isolate cough bouts from cough sounds, the following code was used  \n```\ndef segment_cough_sound(signal, sr, cough_threshold=0.05, min_cough_duration=0.1, padding=0.05):\n\n    hop_length = int(min_cough_duration*sr)\n    if len(signal.shape) > 1:\n        signal = np.mean(signal, axis=1)\n\n    energy = rms(y=signal, hop_length=hop_length)[0]\n\n    # Normalize the energy values\n    normalized_energy = (energy - np.min(energy)) / (np.max(energy) - np.min(energy))\n\n    # Set the energy threshold for event detection\n    cough_threshold = np.max(normalized_energy) * cough_threshold\n    min_cough_samples = round(sr * min_cough_duration)\n\n\n    # Find the cough segments\n    cough_segments = []\n    event_start = None\n\n    for i, value in enumerate(normalized_energy):\n        if value >= cough_threshold:\n            if event_start is None:\n                event_start = i*hop_length\n        else:\n            if event_start is not None:\n                cough_duration = i*hop_length - event_start\n                if cough_duration >= min_cough_samples:\n                    event_end = i*hop_length + int(padding * sr)\n                    event_start -= int(padding * sr)\n                    event_start = max(event_start, 0)\n                    cough_segments.append(signal[event_start: event_end+1])\n                event_start = None\n\n    # Convert cough segments to time in seconds\n    # cough_segments = [(start / sr, end / sr) for start, end in cough_segments]\n\n    return cough_segments\n```\n- As a final step cough sounds can be identified using [YAMNet](https://www.tensorflow.org/hub/tutorials/yamnet) model\n",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Evaluation",
      "content": "The evaluation section describes how submissions will be scored and how participants should format their submissions.\n\nSubmissions are evaluated on [macro f1-scores](https://scikit-learn.org/stable/modules/generated/sklearn.metrics.f1_score.html) between the predicted label and the observed target.\n\nThe Macro F1 Score is an evaluation metric that is especially useful for imbalanced datasets and multiclass classification problems. It computes the F1 score (the harmonic mean of precision and recall) for each class individually and then averages these scores across all classes. For more details about the calculation of macro f1 score you can look into the discussion posts in the competition\n\n\n## Submission File\nFor each ID in the test set, you must predict a label for the TARGET variable. The file should contain a header and have the following format:\n\n    candidateID,disease\n    candidateID-2,0\n    candidateID-5,0\n    candidateID-6,0\n    etc.",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "rules",
      "content": "#COMPETITION RULES\n\n1. Introduction: These rules (hereinafter “Rules”) govern the competition organized by DIY\nHealthcare Private Limited (hereinafter “DIY Healthcare”). By entering the competition,\nparticipants agree to comply with these Rules.\n2. Eligibility: Participation in the competition is open to individuals and teams, provided they\nmeet the eligibility criteria specified by DIY Healthcare. Employees, contractors, and\naffiliates of DIY Healthcare are ineligible to participate.\n3. Competition Objective: The competition involves the use of a dataset provided by DIY\nHealthcare to develop AI models for a specified task. Participants will create AI models\nbased on the data, which will be evaluated according to criteria established by DIY\nHealthcare.\n4. Data Use: DIY Healthcare will provide a set of data to participants solely for the purposes\nof this competition. Participants may only use the data for the creation of AI models as part of\nthe competition and may not use, share, distribute, or repurpose the data for any other\npurpose without prior written consent from DIY Healthcare.\n5. Intellectual Property: All intellectual property rights in the dataset provided by DIY\nHealthcare remain with DIY Healthcare. Participants shall have no rights to the dataset\nbeyond what is granted by these Rules. Any AI model developed by participants during the\ncompetition will be the intellectual property of the participants. However, by participating in\nthe competition, participants grant DIY Healthcare a non-exclusive, perpetual, royalty-free,\nand transferable license to use, modify, and distribute the AI models created during the\ncompetition for research and development purposes.\n6. Unauthorized Use of Data: Any unauthorized use of the data provided by DIY Healthcare\nwill result in immediate disqualification from the competition. Unauthorized use includes, but\nis not limited to, copying, distributing, selling, or otherwise disclosing the data to third parties\nwithout prior written permission.\n7. Liability: DIY Healthcare shall not be liable for any damages, losses, or claims arising out\nof or related to the competition, the use of the data, or the development of AI models by\nparticipants. Participants are solely responsible for ensuring that their participation in the\ncompetition and their use of the data comply with all applicable laws and regulations.\n\n8. Disqualification: DIY Healthcare reserves the right to disqualify any participant at its sole\ndiscretion if it determines that the participant has violated these Rules, engaged in any form\nof misconduct, or attempted to unfairly influence the outcome of the competition.\n9. Dispute Resolution: Any disputes arising out of or in connection with this competition\nshall be resolved in accordance with the laws of India, and the courts of [Insert Jurisdiction]\nshall have exclusive jurisdiction.\n10. Amendments: DIY Healthcare reserves the right to amend these Rules at any time\nwithout prior notice. Any such amendments will be communicated to participants in a timely\nmanner.\n\n#COMPETITION TERMS AND CONDITIONS FOR DATA USE AND AI MODEL CREATION\n\n1. Introduction: By participating in the competition organized by DIY Healthcare Private\nLimited (hereinafter “DIY Healthcare”), participants agree to comply with the following\nTerms and Conditions (“Terms”). These Terms govern the use of data provided for the\ncompetition and the creation of AI models.\n2. Data Access and Use: DIY Healthcare will provide participants with access to a dataset\nfor the sole purpose of participating in the competition. Participants may only use the data for\nthe creation of AI models related to the competition’s objectives. Participants are prohibited\nfrom using the data for any other purpose, including commercial or personal gain.\n3. Data Security and Confidentiality: Participants are required to maintain the\nconfidentiality and security of the data provided. The data may not be shared with third\nparties or published in any form, whether online or offline, without the prior written consent\nof DIY Healthcare. Participants are responsible for implementing appropriate security\nmeasures to protect the data from unauthorized access or disclosure.\n4. AI Model Creation: Participants will use the data to develop AI models as part of the\ncompetition. Participants must ensure that their AI models do not contain any harmful,\nillegal, or inappropriate content and that they comply with all applicable laws and\nregulations.\n5. Intellectual Property Rights: Participants retain ownership of the AI models they create\nduring the competition. However, by entering the competition, participants grant DIY\nHealthcare a non-exclusive, royalty-free, perpetual, irrevocable license to use, modify,\ndistribute, and publicly display the AI models for research, promotional, or other purposes\nrelated to the competition.\n6. No Warranty of Data: DIY Healthcare makes no warranties or representations as to the\naccuracy, completeness, or fitness for a particular purpose of the data provided. The data is\nprovided “as is,” and participants assume all risks associated with its use.\n7. Prohibited Activities: Participants are prohibited from:\n  - Altering, selling, or redistributing the data.\n  - Using the data for purposes other than the competition.\n\n  - Engaging in any activities that could harm or misappropriate the intellectual property\nrights of DIY Healthcare or third parties.\n8. Liability: DIY Healthcare shall not be liable for any direct, indirect, incidental, or\nconsequential damages arising out of or related to the competition, the data, or the AI models\ndeveloped by participants. Participants are solely responsible for ensuring compliance with\nall applicable laws in relation to their use of the data and development of AI models.\n9. Termination: DIY Healthcare reserves the right to terminate a participant’s access to the\ncompetition and the data if it determines, at its sole discretion, that the participant has\nviolated these Terms or engaged in any form of misconduct.\n10. Dispute Resolution: In case of any disputes arising from these Terms or the competition,\nsuch disputes shall be governed by the laws of India. The courts of Hisar shall have\nexclusive jurisdiction to resolve such disputes.\n11. Amendments: DIY Healthcare reserves the right to modify these Terms and Conditions\nat any time. Any changes will be communicated to participants and will be effective\nimmediately upon notification.\n12. Acceptance of Terms: By participating in the competition, participants acknowledge that\nthey have read, understood, and agreed to these Terms and Conditions. Participants also agree\nto comply with all applicable laws and regulations while using the data and creating AI\nmodels for the competition.\n\n#PRIZE STRUCTURE\nThe winner of the competition will receive prize money based on their final score. The prize is contingent upon achieving a specific threshold in the evaluation metric.\n\n- Score  above 0.80 and below 0.85: ₹5,000 will be awarded.\n- Score above or equal to 0.85 and below 0.90: ₹10,000 will be awarded.\n- Score above or equal to 0.90 and below 0.95: ₹25,000 will be awarded.\n- Score 0.95 or above: ₹50,000 will be awarded.\n\n## Conditions\nAppropriate Tax Deducted at Source (TDS) will be done as per Indian tax laws.\nIf no participant achieves a score above 0.80, no prize money will be awarded.\nPrize money will be disbursed to the winner within one month of the announcement of the final results.\nThe winner must provide a valid method of contact (email, phone number, etc.) for prize distribution. Failure to provide contact information within 7 days will result in forfeiture of the prize. There may be a delay of disbursement of money in case of ineffective communication.\nAll decisions regarding prize allocation and scoring are final",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "abstract",
      "content": "Competitors will be competing to create a disease classification model to predict respiratory disease using audio files and other features. This challenge focuses on using Medical AI and Sound Recognition to build models for identifying conditions like asthma and COPD. Participants will utilize audio files and patient metadata to tackle a critical healthcare AI problem. By solving this, you'll contribute to advancements in machine learning for respiratory disease detection.\n\nIn this competition, we challenge you to push the boundaries of machine learning in healthcare. With a small but crucial dataset, the task is to predict medical outcomes with high accuracy. Can you devise innovative solutions to tackle limited data in this high-stakes domain?\n\n### Background\ndiseases such as asthma, COPD (Chronic Obstructive Pulmonary Disease), and tuberculosis affect millions worldwide and are leading causes of mortality and morbidity, especially in low- and middle-income countries (LMICs).\n\nImpact of Respiratory Diseases:\n**Asthma**: Asthma affects an estimated 262 million people globally. In 2019, asthma contributed to 21.6 million disability-adjusted life years (DALYs) and was ranked 34th among the leading causes of disease burden globally. Severe asthma impacts the quality of life for both children and adults, with symptoms including wheezing, breathlessness, and frequent hospitalizations​\n\n**COPD**: As the third leading cause of death worldwide, COPD was responsible for 3.23 million deaths in 2019. COPD often results from long-term exposure to harmful pollutants like tobacco smoke and household air pollution. Nearly 90% of COPD deaths occur in LMICs, highlighting the significant health disparities globally​\nWORLD HEALTH ORGANIZATION (WHO)\n\n**Tuberculosis (TB)**: TB remains a significant cause of death globally, with approximately 1.5 million deaths annually. Although primarily affecting the lungs, TB and post-tuberculosis sequelae can lead to chronic respiratory issues like COPD, further increasing the burden on healthcare systems, especially in LMICs.\n\nBy participating in this competition, you contribute to developing AI solutions that can improve early diagnosis and disease management in healthcare settings. Early and accurate detection of these diseases using machine learning on audio recordings could revolutionize healthcare, especially in resource-constrained environments.\n\nThe information provided in this competition include these sounds, vector embeddings for these sounds created using a self supervised model and information of the person. The names of the diseases and information of people are not revealed for confidentiality and ethical considerations to prevent misuse of diagnosis in case of poor detection. \n\n**Goal:** To differentiate diseased individuals from healthy and chronic respiratory diseases of individuals using respiratory sounds.\n",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Prizes",
      "content": "The winner of the competition will receive prize money based on their final score. The prize is contingent upon achieving a specific threshold in the evaluation metric.\n\n- Score  above 0.80 and below 0.85: ₹5,000 will be awarded.\n- Score above or equal to 0.85 and below 0.90: ₹10,000 will be awarded.\n- Score above or equal to 0.90 and below 0.95: ₹25,000 will be awarded.\n- Score 0.95 or above: ₹50,000 will be awarded.\n\nIf no participant achieves a score above 0.80, no prize money will be awarded.",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    }
  ]
}