Skip to main content

Clap Detection System

Overview

This project implements a clap detection system using an a mic or raw audio data as input. It can detect clap patterns including single and double claps.

If you found this repository useful, please give it a ⭐!.

Features

  • Clap pattern detection.
  • Dynamic threshold adjustment for robust clap detection.
  • Bandpass filtering to focus on clap frequencies.
  • Audio recording and saving capabilities. Live Visualization Failed to load

Troubleshooting

PyAudio

  • Option A

    If clap-detector fails to install due to pyaudio issues, try to install portaudio19 using sudo apt install portaudio19-dev, then install clap-detector normally using pip install clap-detector.
  • Option B

    If pyaudio still fails to install after trying option A, try to install it using sudo apt install python3-pyaudio, then install clap-detector normally pip install clap-detector.

Input

  • If there are issues with audio input, check the inputDevice in the ClapDetector constructor.

Accuracy

  • Adjust the bandpass filter parameters for better clap detection in different environments.

Requirements

  • Python3
  • PyAudio
  • NumPy
  • SciPy

Installation

option A:

  1. install from the official pypi package:
    pip install clap-detector
    

option B:

  1. Install the required Python packages:

    pip install pyaudio numpy scipy
    
  2. Clone the repository:

    git clone https://github.com/TzurSoffer/clapDetection/
    cd clapDetection/src/clapDetector
    
  3. Run the clap detection script:

    python clapDetector.py
    

Configuration

  • Adjust parameters in the ClapDetector class constructor to fine-tune the clap detection system.

Usage

option A:

  1. clone the repository, if you have not already using git clone https://github.com/TzurSoffer/clapDetection/

  2. go into the examples folder and choose one of the scripts you would like to run.

option B:

  1. Create a script that uses this library

    import time
    from clapDetector import ClapDetector, printDeviceInfo
    
    print("""
          --------------------------------
          The application initially attempts to use the system's default audio device. If this doesn't work or if you prefer to use a different device, you can change it. Below are the available audio devices. Find the one you are using and change the 'inputDevice' variable to the name or index of your preferred audio device. Then, restart the program, and it should properly capture audio.
          --------------------------------
          """)
    printDeviceInfo()
    
    thresholdBias = 6000
    lowcut=200               #< increase this to make claps detection more strict 
    highcut=3200             #< decrease this to make claps detection more strict
    clapDetector = ClapDetector(inputDevice=-1, logLevel=10)
    clapDetector.initAudio()
    
    try:
       while True:
          audioData = clapDetector.getAudio()
    
          result = clapDetector.run(thresholdBias=thresholdBias, lowcut=lowcut, highcut=highcut, audioData=audioData)
          resultLength = len(result)
          if resultLength == 2:
                print(f"Double clap detected! bias {thresholdBias}, lowcut {lowcut}, and highcut {highcut}")
                clapDetector.saveAudio(folder="./")
          time.sleep(1/60)
    
    except KeyboardInterrupt:
       print("Exited gracefully")
    except Exception as e:
       print(f"error: {e}")
    finally:
       clapDetector.stop()
    
  2. The system will continuously monitor audio input and detect claps.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Release files for clap-detector 2.0.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for clap-detector 2.0.7
File Size Uploaded
clap_detector-2.0.7.tar.gz 11.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for clap-detector 2.0.7
File Interpreter ABI Platform
clap_detector-2.0.7-py3-none-any.whl Python 3 none any Details

Total release size: 21.2 kB

Release files / clap_detector-2.0.7.tar.gz

Download URL clap_detector-2.0.7.tar.gz
Size 11.0 kB
Tags Source
SHA-256 checksum
How to use checksums
61801fb4fe903f53d17131950fd4a7939bb97a79c94cc0cb28d37896923d7b1e
BLAKE2b-256 checksum
How to use checksums
c623be1f259e45881b4b7fe7bbef0b6e21fa1cc4a44b28df6b5d3177931eabee
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.3

Release files / clap_detector-2.0.7-py3-none-any.whl

Download URL clap_detector-2.0.7-py3-none-any.whl
Size 10.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d2bffe7e287d119683faaeda229c0724230ab08085dad58a41d111681e4be8e9
BLAKE2b-256 checksum
How to use checksums
c7f685d0c375efe004f881f2f0293b1cc2086dea01358f4f506a821d6aeafaf1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.3

Release history Release notifications | RSS feed

This release

2.0.7 This release

2 release files

2.0.6

2 release files

2.0.5

2 release files

2.0.4

2 release files

2.0.3

2 release files

2.0.2

2 release files

2.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page