There is a huge demand for fast and effective detection of COVID-19. There are many studies that suggest that respiratory sound data, like coughing, breathing are among the most effective techniques for detecting the COVID-19. The aim of this project is to show that how the most common respiratory illness such as cough can be detected using voice data and differentiate between healthy breathing and coughs. The same technique can be used to identify other serious respiratory disease such as pneumonia, COVID-19 etc. There are many studies show that the COVID-19 can be easily and effectively identified using cough recordings. Following is the link to such findings:

Above are the few findings. In this project I have developed an ML model using Edge Impulse Studio that uses mel-frequency cepstrum (MFCC) to extract voice features from sound recordings and classify between healthy breath and cough. Building the Machine Learning (ML) model that detects COVID-19 requires highly accurate and large amount of voice recording data which is currently not available. But this project shows that such system could be easily build using the technique given here. However the data for building such system can be collected using the technique described in following article:

Utilize the Power of the Crowd for Data Collection

But this also require lot of time and peoples contribution. Apart from analyzing the sound data, there is also a need to maintain a proper distance while going in public places to minimize the spread of respiratory related infections. The sensor node in this project also alerts its user to maintain proper distance when they come closer to other people in public. Thus the system helps in creating/maintaining the Healthy Spaces.

The Project Name

The name of the project is Respiratory Health Analyzer abbreviated as RoHARoHA is an Urdu word which means soul or life. The aim of this project is also to save the human life through creating Healthy Spaces.

The Architecture

The following figure show the architecture of the RoHA project. The tinyML model is developed using Edge Impulse. This tinyML model processes the human voice using MFCC to extract features from it which can be used to perform analysis on the patterns of voice data. This model takes input from built in microphone on AWS IoT Edu Kit and analyze the respiratory health based on the sound recording. The inferencing result is then displayed on the sensor node and data is also sent to AWS IoT Core using MQTT protocol. The data is then forwarded to DynamoDB for permanent storage. The custom web app is built using PHP, gathers the data from DynamoDB and display the status of respiratory health, cough count and healthy count. The sensor node also detect human distancing using PIR sensor and alert the person about it on the sensor node screen.

RoHA Architecture

RoHA Architecture 

The Steps

Following are the steps involved in developing this project:

  1. Create a tinyML model using Edge Impulse
  2. Setup environment for AWS IoT Edu Kit
  3. Configure AWS IoT core
  4. Configure IAM
  5. Configure DynamoDB service
  6. Create AWS IoT rule for DynamoDB
  7. Test the AWS IoT rule and DynamoDB table
  8. Build the firmware
  9. Install the Web Server
  10. Get AWS SDK for PHP & Build Web App
  11. Run the Web Application

(Please read Building Instruction section for detailed instructions)

Application Dashboard

Web Application DashboardVideo Demo

Respiratory Health Analyzer (RoHA) Sensor Node and Application description 

Conclusion & Future Scope

The project RoHA shows how we can build a system to analyze the respiratory health of a person using AWS IoT Edu Kit, and AWS services (IoT Core + DynamoDB). The analysis of respiratory health is very important to fight with disease like COVID-19 etc. Using such system the early signs can be identified and necessary action can be taken. For building such system a good data-set is needed and researchers around the world are working on it. At present, in this project I have only gave an example on how to build such system. The tinyML model in the project works on two labels and small data-set. However for industrial grade system enough amount of data-set is required upon which the tinyML model has to be re-build. That's the only updation required in this project. I am also planning to include other services provided by AWS that could enrich the functionality of the system.

Thank you for taking time to read this project. This is open source project. Please feel free to use this project. For more details and code please visit