Respiratory rate measuring instruments may be used to detect patterns of respiration. For example, such respiratory rate measuring instruments may use a flow-rate and pressure-relationship, a pressure and temperature change, infrared imaging techniques, or oxygen and carbon dioxide amount change analysis to detect changes in respiratory rate of a monitored individual.
The same numbers are used throughout the disclosure and the figures to reference like components and features. Numbers in the 100 series refer to features originally found in
As discussed above, respiratory rate measuring instruments may use various techniques to detect patterns of respiration. For example, some instruments may use a flow-rate and pressure-relationship, a pressure and temperature change, infrared imaging techniques, oxygen and carbon dioxide amount change. However, such respiratory rate measuring instruments may be designed for use in a hospital. For example, the respiratory rate measuring instruments may be usually large in size, high in price, complex, or otherwise inconvenient to use at home. Moreover, such respiratory rate measuring instruments may also not be portable.
In some examples, audio of respiration may be captured and used to detect respiratory rates. For example, a low-pass filter may be used to generate a signal envelope in an audio signal containing respiratory sounds. As used herein, an envelope refers to smooth curve outlining extremes in an audio sample. However, setting the low-pass filter to a bandwidth that is too low or too high may result in inaccurate detections or failed detections. For example, if the bandwidth is too low, then the envelope may not be able to distinguish fast breathing and may cause potential detections to be missed. On the other hand, if the bandwidth is too high, there may be more spikes in the audio signal of slower breathing that may cause false detections. As used herein, a spike refers to a sudden steep increase followed by a sudden steep drop in amplitude of an audio signal. Audio of respiration may refer to the audio signals created as a result of respiration.
The present disclosure relates generally to techniques for detecting respiratory rates in audio. Specifically, the techniques described herein include an apparatus, method, and system for detecting respiratory rates in audio signals using an adaptive low-pass filter. For example, the adaptive low-pass filter may have an adaptive bandwidth that may be adaptive to a detected mean breath rate. An example apparatus includes an audio receiver to receive audio including respiratory sounds. The apparatus includes an adaptive low-pass filter to process the audio using a bandwidth based on a mean breath rate to generate an envelope. The apparatus further includes a peak detector to detect a plurality of peaks from the envelope. The apparatus also includes a respiratory rate calculator to calculate a respiratory rate based on the detected plurality of peaks. In some examples, the apparatus further includes an audio preprocessor to preprocess the audio to generate preprocessed audio, the preprocessed audio to be processed to generate the envelope. The apparatus can also further include a filter bandwidth updater to update a bandwidth of the adaptive low-pass filter based on an updated mean breath rate.
The techniques described herein thus enable a dynamic bandwidth that significantly improves the accuracy of respiratory detection in audio signals. For example, adapting the bandwidth of the low-pass filter to the audio signal may reduce false detections while preventing missed detections. Moreover, the detected patterns of respiration using the techniques described herein may be used to enable health and work benefits. In some examples, respiratory rates may be increased by stress or anxiety. For example, stress may cause changes in one's mind and body and this will be reflected in respiratory rate. By knowing more about personal breathing patterns, a user can discover stress factors, factors that engage the user, when normal stress of the user turns into anxiety or worry, and apply breathing management to help control stress levels. The techniques may thus provide a mobile solution of monitoring respiratory rates and thus stress levels in users.
The example system 100 includes an audio data receiver 102. For example, the audio data receiver may receive audio including respiratory sounds. The system 100 also includes a preprocessor 104 that is communicatively coupled to audio data receiver 102. For example, the preprocessor 104 may preprocess audio to remove noise. The preprocessor 104 is communicatively coupled to a bandwidth initializer 106. For example, the bandwidth initializer 106 may set an initial value for a bandwidth of an adaptive low-pass filter 108. The adaptive low-pass filter 108 is communicatively coupled to the bandwidth initializer 106. In some examples, the adaptive low-pass filter 108 can be used to generate envelopes from a received audio based on the bandwidth value. The system 100 also includes a peaks finder 110 that is communicatively coupled to the adaptive low-pass filter 108. For example, the peaks finder 110 may be used to detect peaks in envelopes generated by the adaptive low-pass filter 108. The system 100 further includes a respiratory rate calculator 112 that is communicatively coupled to the peaks finder 110 that can calculate a respiratory rate based on the detected peaks. The system also further includes a bandwidth updater 114 that is communicatively coupled to both the respiratory rate calculator 112 and the adaptive low-pass filter 108.
As shown in
The preprocessor 104 can process the audio to make the audio more suitable for envelope generation and peak finding. For example, the preprocessor 104 can remove noise from the audio or reduce a DC offset of the audio. As used herein, a DC offset refers to a mean value of the waveform of the audio. For example, if the mean amplitude of an audio waveform is zero, then there is no DC offset. In some examples, the preprocessor 104 can also take an absolute value of the audio to generate a preprocessed audio, as described in greater detail below.
The bandwidth initializer 106 can set an initial bandwidth for the adaptive low-pass filter 108. For example, given nine breaths and a breath duration of about 14,000 milliseconds, the average duration of a breath in
The adaptive low-pass filter 108 may then generate an envelope for the received audio. For example, the envelope may be generated based on the initial bandwidth value.
The peaks finder 110 can then detect peaks in the envelope. For example, one peak may be detected for each inhalation and exhalation sound in the audio.
The respiratory rate calculator 112 can then detect a respiratory rate based on the detected peaks. For example, the respiratory rate calculator 112 can detect a breath for every two detected peaks. In some examples, a duration of a breath may be the time between two consecutive peaks. As used herein, a breath refers to an inhalation or an exhalation, rather than a full breathing cycle that includes both an inhalation and an exhalation.
The bandwidth updater 114 can update the bandwidth of the adaptive low-pass filter 108. For example, the bandwidth updater 114 can update the bandwidth of the adaptive low-pass filter 108 in real-time. In some examples, if the breathing rate of a user is much higher or lower than 0.65 Hz, or the breathing rate of a user moves up or down, then the bandwidth of the adaptive low-pass filter 108 may be updated.
The diagram of
At block 202, a processor can collect audio data. For example, an audio sample may be captured by a microphone. The audio sample may include respiratory sounds corresponding to the breathing of a user.
At block 204, the processor performs preprocessing on the audio data. For example, the preprocessing may be applied to the audio data in order to remove noise. In some examples, a difference may be calculated between two data in response to detecting that there is a DC offset in an audio. In some examples, the absolute value of the audio signal may be calculated. In some examples, a band stop filter may be applied to remove a certain frequency interference. For example, AC interference may be at 50 Hz or 60 Hz.
At block 206, the processor performs a bandwidth initialization. For example, an initial value for the bandwidth to be used by an adaptive low-pass filter may be set. In some examples, the initial value set for the bandwidth may be based on an average breath rate. For example, the average duration of a breath in
At block 208, the processor causes an adaptive low-pass filtering. For example, an adaptive low-pass filter can apply the low-pass filtering on audio or preprocessed audio to generate an envelope corresponding to the audio. In some examples, the envelope may be based on different bandwidth values depending on a mean breath rate, as described in greater detail below.
At block 210, the processor performs a peak finding algorithm. For example, one or more peaks may be detected in the envelope generated at block 208. In some examples, the one or more peaks can be detected using one or more adaptive thresholds. For example, the thresholds can be based on peak amplitude and distance between detected peaks.
At block 212, the processor performs a respiratory rate calculation. For example, the respiratory rate calculation may divide the total number of peaks over a period of time. For example, the respiratory rate may measure the total number of breaths (inhalations or exhalations) in a given period of time.
At block 214, the processor receives a current breath duration. For example, the current breath duration can have been calculated by the duration between the current and the previous peak.
At block 216, the processor performs a weighted mean duration calculation. For example, the current weighted mean duration can be calculated by the weighted mean of the current duration and a previously calculated weighted mean.
At block 218, the processor performs a mean breath rate calculation. For example, the mean breath rate can be calculated by 1 second divided by the weighted mean duration from block 216.
At decision diamond 220, the processor can determine whether mean breath rate is equal to or greater than the value one. If the mean breath rate is equal to or greater than the value one, then the process may continue at block 222. If the mean breath rate is not equal to or greater than the value one, then the process may continue at decision diamond 224.
At block 222, the processor increases the bandwidth in response to detecting that the mean breath rate has increased. For example, the processor can calculate the new bandwidth based on the equation:
F
Pnew
=F
Pold*MeanBreathRate Eq. 1
where the MeanBreathRate is equal to or greater than one, FPnew is a newly calculated bandwidth for an adaptive low-pass filter, and FPold is a previously used bandwidth of the adaptive low-pass filter.
At decision diamond 224, the processor can determine whether mean breath rate is equal to or greater than the value 0.5. For example, if the mean breath rate is equal to or greater than the value 0.5, then the process may continue at block 226. If the mean breath rate is not equal to or greater than 0.5, then the process may continue at block 228.
At block 226, the processor sets the new bandwidth to the same value as the old bandwidth in response to detecting a breath rate between 0.5 and 1. In some examples, the processor may not update the bandwidth of the adaptive low-pass filter such that the adaptive low-pass filter continues to use the same bandwidth.
At block 228, processor decreases the bandwidth in response to detecting a mean breathing rate less than 0.5. For example, the processor can decrease the bandwidth based on the equation:
F
Pnew
=F
Pold*2*MeanBreathRate Eq. 2
where the MeanBreathRate is less than 0.5.
Thus, as described above, when a user is breathing faster, the bandwidth may be increased such that the resulting envelope has more detail. On the other hand; when the user is breathing slower, the bandwidth may be reduced such that the envelope is not too spiky to avoid false detections of peaks. Using such an adaptive bandwidth for the adaptive low-pass filter, the accuracy of the detection of peaks and thus respiratory rate may be significantly improved.
This process flow diagram is not intended to indicate that the blocks of the example process 200 are to be executed in any particular order, or that all of the blocks are to be included in every case. Further, any number of additional blocks not shown may be included within the example process 200, depending on the details of the specific implementation. For example, although three ranges for the mean bandwidth are use above, including >1, between 0.5 and 1, and <0.5, in some examples, the number of cases and the numbers (0.5, 1, 2 . . . ) can be further fine-tuned. For example, the ranges can be divided into additional ranges, or FPnew=FPold*1.05*MeanBreathRate in some examples, and FPnew=FPold*1.12*MeanBreathRate in other examples.
The diagram of
The diagram of
The preprocessed audio signal 400B of
The diagram of
As shown in
The diagram of
In some examples, an accuracy of the detection can be determined using the equation:
Accuracy=((Number of Breaths)−(Number of Wrong Detections)−(Number of Missing Detections))/(Number of Breaths) Eq. 3
For example, according to the Nyquist Theorem, the bandwidth Fp can be at least twice the breathing rate. In the example audio sample used for the detection results above with a sampling rate of 8 k/s, the normal breathing rate is about 0.65 Hz, the deep breathing rate is about 0.44 Hz, and the shallow rapid breathing rate is about 2.2 Hz. As shown in Table 1, the shallow rapid breathing detection is not working when Fp<4, and the normal and deep breathing detection is good when Fp=1.2 or 2. On the other hand, when the bandwidth Fp is too large, more details are showing in the envelope. The envelope may thus be very spiky, with many tiny peaks detectable in one breathing, leading to increased wrong detections. Thus, as shown in Table 1, when the bandwidth Fp>=6, both normal breathing and deep breathing detections are worse.
In some examples, by making the change from slow deep breathing 504 to rapid shallow breathing 506 gradual instead of sudden, there may be fewer missing detections in the detection results 500. For example, the use of a mean breath rate may be used to gradually change a bandwidth of an adaptive low-pass filter. The improved envelope extraction may thus increase detection accuracy. For example, the adaptive bandwidth may gradually follow the change of breathing rate and prevent missed detections accordingly.
The diagram of
At block 602, a processor receives audio including a number of respiratory sounds. For example, the respiratory sounds may be sounds related to inhaling and exhaling of a user.
At block 604, the processor preprocesses the audio to generate preprocessed audio. For example, the processor can preprocess the audio to reduce a DC offset of the audio. In some examples, the processor can take an absolute value of the audio to generate a preprocessed audio.
At block 606, the processor processes the audio using an adaptive low-pass filter with an adaptive bandwidth based on a mean breath rate to generate an envelope. In some examples, the processor can set an initial value for the bandwidth of the adaptive low-pass filter based on an average breath rate. Additionally, in some examples, the processor can set the initial value for the bandwidth of the adaptive low-pass filter based on a detected activity of a user. For example, the detected activity may be running, walking, sitting, etc.
At block 608, the processor detects a plurality of peaks from the envelope. For example, the processor can detect if one or more adaptive thresholds based on peak amplitude and distance between peaks are exceeded.
At block 610, the processor calculates a respiratory rate based on the detected plurality of peaks. For example, the processor can detect a breath based on a number of detected peaks.
At block 612, the processor modifies the bandwidth of the adaptive-low pass filter based on an updated mean breath rate. For example, the processor can increase the bandwidth of the adaptive-low pass filter in response to detecting an increase in the mean breath rate. In some examples, the processor can decrease the bandwidth of the adaptive-low pass filter in response to detecting a decrease in the mean breath rate.
This process flow diagram is not intended to indicate that the blocks of the example process 600 are to be executed in any particular order, or that all of the blocks are to be included in every case. Further, any number of additional blocks not shown may be included within the example process 600, depending on the details of the specific implementation. For example, the processor can also detect a stress level based on the respiratory rate and sending a notification in response to detecting the stress level exceeds a threshold stress level. In some examples, the processor can detect a mood of a user based on the respiratory rate.
Referring now to
The memory device 704 can include random access memory (RAM), read only memory (ROM), flash memory, or any other suitable memory systems. For example, the memory device 704 may include dynamic random access memory (DRAM).
The computing device 700 may also include a graphics processing unit (GPU) 708. As shown, the CPU 702 may be coupled through the bus 706 to the GPU 708. The GPU 708 may be configured to perform any number of graphics operations within the computing device 700. For example, the GPU 708 may be configured to render or manipulate graphics images, graphics frames, videos, or the like, to be displayed to a user of the computing device 700.
The memory device 704 can include random access memory (RAM), read only memory (ROM), flash memory, or any other suitable memory systems. For example, the memory device 704 may include dynamic random access memory (DRAM). The memory device 704 may include device drivers 710 that are configured to execute the instructions for detecting respiratory rates. The device drivers 710 may be software, an application program, application code, or the like.
The CPU 702 may also be connected through the bus 706 to an input/output (I/O) device interface 712 configured to connect the computing device 700 to one or more I/O devices 714. The I/O devices 714 may include, for example, a keyboard and a pointing device, wherein the pointing device may include a touchpad or a touchscreen, among others. The I/O devices 714 may be built-in components of the computing device 700, or may be devices that are externally connected to the computing device 700. In some examples, the memory 704 may be communicatively coupled to I/O devices 714 through direct memory access (DMA).
The CPU 702 may also be linked through the bus 706 to a display interface 716 configured to connect the computing device 700 to a display device 718. The display device 718 may include a display screen that is a built-in component of the computing device 700. The display device 718 may also include a computer monitor, television, or projector, among others, that is internal to or externally connected to the computing device 700.
The computing device 700 also includes a storage device 720. The storage device 720 is a physical memory such as a hard drive, an optical drive, a thumbdrive, an array of drives, a solid-state drive, or any combinations thereof. The storage device 720 may also include remote storage drives.
The computing device 700 may also include a network interface controller (NIC) 722. The NIC 722 may be configured to connect the computing device 700 through the bus 706 to a network 724. The network 724 may be a wide area network (WAN), local area network (LAN), or the Internet, among others. In some examples, the device may communicate with other devices through a wireless technology. For example, the device may communicate with other devices via a wireless local area network connection. In some examples, the device may connect and communicate with other devices via Bluetooth® or similar technology.
The computing device 700 further includes a microphone 726. For example, the microphone may include one or more transducers that can convert sound into electrical signals. For example, the microphone 726 may be located in a device such as glasses. As one example, the microphone 726 may be embedded into the nose bridge of a pair of glasses.
The computing device 700 further includes an adaptive respiratory rate detector 728. For example, the adaptive respiratory rate detector 728 can be used to detect respiratory rates in audio signals. The adaptive respiratory rate detector 728 can include an audio receiver 730, an audio preprocessor 732, an adaptive low-pass filter 734, a peak detector 736, a respiratory rate calculator 738, and a filter bandwidth updater 740. In some examples, each of the components 730-740 of the adaptive respiratory rate detector 728 may be a microcontroller, embedded processor, or software module. The audio receiver 730 can receive audio including respiratory sounds. For example, the audio may be an audio signal corresponding to an audio sample of breathing of a user. The audio preprocessor 732 can reduce a DC offset of the audio to generate preprocessed audio, reduce or remove noise, generate an absolute value of audio signals, or any combination thereof. For example, the preprocessed audio can be processed to generate the envelope. In some examples, the audio preprocessor 732 can take an absolute value of the audio to generate a preprocessed audio. The adaptive low-pass filter 734 can process the audio using an adaptive bandwidth based on a detected mean breath rate to generate an envelope. For example, the mean breath rate may be a weighted mean breath rate, with more recent breaths having a higher weight, and older breaths having less weight. The adaptive bandwidth of the adaptive low-pass filter 734 may be adaptive to the mean breath rate. In some examples, an initial bandwidth used by the adaptive low-pass filter is based on an average breath rate. In some examples, an initial bandwidth used by the adaptive low-pass filter is estimated based on a detected activity of a user. For example, the initial bandwidth may be set based on whether the user is running, walking, sitting, etc. In some examples, the adaptive low-pass filter 734 can process preprocessed audio to generate the envelope. The peak detector 736 can detect a plurality of peaks from the envelope. For example, the peak detector 736 can detect peaks using one or more adaptive thresholds based on peak amplitude and distance between peaks. The respiratory rate calculator 738 can calculate a respiratory rate based on the detected plurality of peaks. For example, the respiratory rate calculator 738 can detect a breath rate based on a number of detected peaks. For example, the respiratory rate calculator 738 can detect a breath rate based on a number of detected peaks and the duration of the peaks. The filter bandwidth updater 740 can calculate a mean breath rate based on historical data and update the bandwidth based on the mean breath rate. For example, filter bandwidth updater 740 can calculate a weighted mean breath rate based on historical data. The filter bandwidth updater 740 can then update the bandwidth based on the weighted mean breath rate. For example, a weight of the weighted mean breath rate is based on a regularity of the breathing rate. In some examples, the filter bandwidth updater 740 can increase the bandwidth of the adaptive low-pass filter in response to detecting an increase in the mean breath rate. In some examples, the filter bandwidth updater 740 can decrease the bandwidth of the adaptive low-pass filter in response to detecting a decrease in the mean breath rate.
The block diagram of
The various software components discussed herein may be stored on one or more computer readable media 800, as indicated in
The block diagram of
Example 1 is an apparatus for detecting respiratory rates. The apparatus includes an audio receiver to receive audio including respiratory sounds. The apparatus also includes an adaptive low-pass filter to process the audio using an adaptive bandwidth based on a mean breath rate to generate an envelope. The apparatus further includes a peak detector to detect a plurality of peaks from the envelope. The apparatus also further includes a respiratory rate calculator to calculate a respiratory rate based on the detected plurality of peaks.
Example 2 includes the apparatus of example 1, including or excluding optional features. In this example, the apparatus includes a bandwidth updater to calculate the mean breath rate based on historical data and update the bandwidth based on the mean breath rate.
Example 3 includes the apparatus of any one of examples 1 to 2, including or excluding optional features. In this example, the apparatus includes a bandwidth updater to calculate a weighted mean breath rate based on historical data and update the bandwidth based on the weighted mean breath rate, wherein a weight of the weighted mean breath rate is based on a regularity of the breathing rate.
Example 4 includes the apparatus of any one of examples 1 to 3, including or excluding optional features. In this example, the apparatus includes a bandwidth updater to increase the bandwidth of the adaptive low-pass filter in response to detecting an increase in the mean breath rate.
Example 5 includes the apparatus of any one of examples 1 to 4, including or excluding optional features. In this example, the apparatus includes a bandwidth updater to decrease the bandwidth of the adaptive low-pass filter in response to detecting a decrease in the mean breath rate.
Example 6 includes the apparatus of any one of examples 1 to 5, including or excluding optional features. In this example, the apparatus includes an audio preprocessor to reduce a DC offset of the audio to generate preprocessed audio, the preprocessed audio to be processed to generate the envelope.
Example 7 includes the apparatus of any one of examples 1 to 6, including or excluding optional features. In this example, the apparatus includes an audio preprocessor to take an absolute value of the audio to generate a preprocessed audio, the adaptive low-pass filter to process the preprocessed audio to generate the envelope.
Example 8 includes the apparatus of any one of examples 1 to 7, including or excluding optional features. In this example, the peak detector is to detect peaks using one or more adaptive thresholds based on peak amplitude and distance between peaks.
Example 9 includes the apparatus of any one of examples 1 to 8, including or excluding optional features. In this example, the mean breath rate includes a weighted mean breath rate.
Example 10 includes the apparatus of any one of examples 1 to 9, including or excluding optional features. In this example, an initial bandwidth used by the adaptive low-pass filter is estimated based on a detected activity of a user.
Example 11 is a method for detecting respiratory rates. The method includes receiving, via a processor, audio including respiratory sounds. The method also includes processing, via the processor, the audio using an adaptive low-pass filter with and adaptive bandwidth based on a mean breath rate to generate an envelope. The method also further includes detecting, via the processor, a plurality of peaks from the envelope. The method also includes calculating, via the processor, a respiratory rate based on the detected plurality of peaks.
Example 12 includes the method of example 11, including or excluding optional features. In this example, the method includes modifying, via the processor, the bandwidth of the adaptive-low pass filter based on an updated mean breath rate.
Example 13 includes the method of any one of examples 11 to 12, including or excluding optional features. In this example, the method includes increasing the bandwidth of the adaptive-low pass filter in response to detecting an increase in an updated mean breath rate or decreasing the bandwidth of the adaptive-low pass filter in response to detecting a decrease in an updated mean breath rate.
Example 14 includes the method of any one of examples 11 to 13, including or excluding optional features. In this example, detecting the peaks includes detecting that one or more adaptive thresholds based on peak amplitude and distance between peaks are exceeded.
Example 15 includes the method of any one of examples 11 to 14, including or excluding optional features. In this example, calculating the respiratory rate includes detecting a breath based on a number of detected peaks.
Example 16 includes the method of any one of examples 11 to 15, including or excluding optional features. In this example, the method includes preprocessing, via the processor, the audio to reduce a DC offset of the audio.
Example 17 includes the method of any one of examples 11 to 16, including or excluding optional features. In this example, the method includes preprocessing, via the processor, the audio by taking an absolute value of the audio to generate a preprocessed audio.
Example 18 includes the method of any one of examples 11 to 17, including or excluding optional features. In this example, the method includes setting an initial value for the bandwidth of the adaptive low-pass filter based on an average breath rate or a detected activity of a user.
Example 19 includes the method of any one of examples 11 to 18, including or excluding optional features. In this example, the method includes detecting a stress level based on the respiratory rate and sending a notification in response to detecting the stress level exceeds a threshold stress level.
Example 20 includes the method of any one of examples 11 to 19, including or excluding optional features. In this example, the method includes detecting a mood of a user based on the respiratory rate.
Example 21 is at least one computer readable medium for detecting respiratory rates having instructions stored therein that direct the processor to receive audio including respiratory sounds. The computer-readable medium also includes instructions that direct the processor to process the audio using an adaptive low-pass filter with an adaptive bandwidth based on a mean breath rate to generate an envelope. The computer-readable medium further includes instructions that direct the processor to detect a plurality of peaks from the envelope. The computer-readable medium also further includes instructions that direct the processor to calculate a respiratory rate based on the detected plurality of peaks.
Example 22 includes the computer-readable medium of example 21, including or excluding optional features. In this example, the computer-readable medium includes instructions to modify the bandwidth of the adaptive-low pass filter based on an updated mean breath rate.
Example 23 includes the computer-readable medium of any one of examples 21 to 22, including or excluding optional features. In this example, the computer-readable medium includes instructions to increase the bandwidth of the adaptive-low pass filter in response to detecting an increase in the detected breath rate or decrease the bandwidth of the adaptive-low pass filter in response to detecting a decrease in the detected breath rate.
Example 24 includes the computer-readable medium of any one of examples 21 to 23, including or excluding optional features. In this example, the computer-readable medium includes instructions to detect a peak in response to detecting that one or more adaptive thresholds based on peak amplitude and distance between peaks are exceeded in the audio.
Example 25 includes the computer-readable medium of any one of examples 21 to 24, including or excluding optional features. In this example, the computer-readable medium includes instructions to detect a breath based on a number of detected peaks.
Example 26 includes the computer-readable medium of any one of examples 21 to 25, including or excluding optional features. In this example, the computer-readable medium includes instructions to preprocess the audio to reduce a DC offset of the audio.
Example 27 includes the computer-readable medium of any one of examples 21 to 26, including or excluding optional features. In this example, the computer-readable medium includes instructions to preprocess the audio by taking an absolute value of the audio to generate a preprocessed audio.
Example 28 includes the computer-readable medium of any one of examples 21 to 27, including or excluding optional features. In this example, the computer-readable medium includes instructions to set an initial value for the bandwidth of the adaptive low-pass filter based on an average breath rate or a detected activity of a user.
Example 29 includes the computer-readable medium of any one of examples 21 to 28, including or excluding optional features. In this example, the computer-readable medium includes instructions to detect a stress level based on the respiratory rate and send a notification in response to detecting the stress level exceeds a threshold stress level.
Example 30 includes the computer-readable medium of any one of examples 21 to 29, including or excluding optional features. In this example, the computer-readable medium includes instructions to detect a mood of a user based on the respiratory rate.
Example 31 is a system for detecting respiratory rates. The system includes audio receiver to receive audio including respiratory sounds. The system also includes an adaptive low-pass filter to process the audio using an adaptive bandwidth based on a mean breath rate to generate an envelope. The system further includes a peak detector to detect a plurality of peaks from the envelope. The system also further includes a respiratory rate calculator to calculate a respiratory rate based on the detected plurality of peaks.
Example 32 includes the system of example 31, including or excluding optional features. In this example, the system includes a bandwidth updater to calculate the mean breath rate based on historical data and update the bandwidth based on the mean breath rate.
Example 33 includes the system of any one of examples 31 to 32, including or excluding optional features. In this example, the system includes a bandwidth updater to calculate a weighted mean breath rate based on historical data and update the bandwidth based on the weighted mean breath rate, wherein a weight of the weighted mean breath rate is based on a regularity of the breathing rate.
Example 34 includes the system of any one of examples 31 to 33, including or excluding optional features. In this example, the system includes a bandwidth updater to increase the bandwidth of the adaptive low-pass filter in response to detecting an increase in the mean breath rate.
Example 35 includes the system of any one of examples 31 to 34, including or excluding optional features. In this example, the system includes a bandwidth updater to decrease the bandwidth of the adaptive low-pass filter in response to detecting a decrease in the mean breath rate.
Example 36 includes the system of any one of examples 31 to 35, including or excluding optional features. In this example, the system includes an audio preprocessor to reduce a DC offset of the audio to generate preprocessed audio, the preprocessed audio to be processed to generate the envelope.
Example 37 includes the system of any one of examples 31 to 36, including or excluding optional features. In this example, the system includes an audio preprocessor to take an absolute value of the audio to generate a preprocessed audio, the adaptive low-pass filter to process the preprocessed audio to generate the envelope.
Example 38 includes the system of any one of examples 31 to 37, including or excluding optional features. In this example, the peak detector is to detect peaks using one or more adaptive thresholds based on peak amplitude and distance between peaks.
Example 39 includes the system of any one of examples 31 to 38, including or excluding optional features. In this example, the mean breath rate includes a weighted mean breath rate.
Example 40 includes the system of any one of examples 31 to 39, including or excluding optional features. In this example, an initial bandwidth used by the adaptive low-pass filter is estimated based on a detected activity of a user.
Example 41 is a system for detecting respiratory rates. The system includes means for receiving audio including respiratory sounds. The system also includes means for processing the audio using an adaptive bandwidth based on a mean breath rate to generate an envelope. The system further includes means for detecting a plurality of peaks from the envelope. The system also further includes means for calculating a respiratory rate based on the detected plurality of peaks.
Example 42 includes the system of example 41, including or excluding optional features. In this example, the system includes means for calculating the mean breath rate based on historical data and update the bandwidth based on the mean breath rate.
Example 43 includes the system of any one of examples 41 to 42, including or excluding optional features. In this example, the system includes means for calculating a weighted mean breath rate based on historical data and updating the bandwidth based on the weighted mean breath rate, wherein a weight of the weighted mean breath rate is based on a regularity of the breathing rate.
Example 44 includes the system of any one of examples 41 to 43, including or excluding optional features. In this example, the system includes means for increasing the bandwidth of the means for detecting the plurality of peaks in response to detecting an increase in the mean breath rate.
Example 45 includes the system of any one of examples 41 to 44, including or excluding optional features. In this example, the system includes means for decreasing the bandwidth of the means for detecting the plurality of peaks in response to detecting a decrease in the mean breath rate.
Example 46 includes the system of any one of examples 41 to 45, including or excluding optional features. In this example, the system includes means for reducing a DC offset of the audio to generate preprocessed audio, the preprocessed audio to be processed to generate the envelope.
Example 47 includes the system of any one of examples 41 to 46, including or excluding optional features. In this example, the system includes means for taking an absolute value of the audio to generate a preprocessed audio, the means for detecting the plurality of peaks to process the preprocessed audio to generate the envelope.
Example 48 includes the system of any one of examples 41 to 47, including or excluding optional features. In this example, the means for detecting a plurality of peaks is to detect peaks using one or more adaptive thresholds based on peak amplitude and distance between peaks.
Example 49 includes the system of any one of examples 41 to 48, including or excluding optional features. In this example, the mean breath rate includes a weighted mean breath rate.
Example 50 includes the system of any one of examples 41 to 49, including or excluding optional features. In this example, an initial bandwidth used by the means for detecting the plurality of peaks is estimated based on a detected activity of a user.
Not all components, features, structures, characteristics, etc. described and illustrated herein need be included in a particular aspect or aspects. If the specification states a component, feature, structure, or characteristic “may”, “might”, “can” or “could” be included, for example, that particular component, feature, structure, or characteristic is not required to be included. If the specification or claim refers to “a” or “an” element, that does not mean there is only one of the element. If the specification or claims refer to “an additional” element, that does not preclude there being more than one of the additional element.
It is to be noted that, although some aspects have been described in reference to particular implementations, other implementations are possible according to some aspects. Additionally, the arrangement and/or order of circuit elements or other features illustrated in the drawings and/or described herein need not be arranged in the particular way illustrated and described. Many other arrangements are possible according to some aspects.
In each system shown in a figure, the elements in some cases may each have a same reference number or a different reference number to suggest that the elements represented could be different and/or similar. However, an element may be flexible enough to have different implementations and work with some or all of the systems shown or described herein. The various elements shown in the figures may be the same or different. Which one is referred to as a first element and which is called a second element is arbitrary.
It is to be understood that specifics in the aforementioned examples may be used anywhere in one or more aspects. For instance, all optional features of the computing device described above may also be implemented with respect to either of the methods or the computer-readable medium described herein. Furthermore, although flow diagrams and/or state diagrams may have been used herein to describe aspects, the techniques are not limited to those diagrams or to corresponding descriptions herein. For example, flow need not move through each illustrated box or state or in exactly the same order as illustrated and described herein.
The present techniques are not restricted to the particular details listed herein. Indeed, those skilled in the art having the benefit of this disclosure will appreciate that many other variations from the foregoing description and drawings may be made within the scope of the present techniques. Accordingly, it is the following claims including any amendments thereto that define the scope of the present techniques.