athena-signal  by athena-team

Speech signal processing library for research/engineering projects

created 5 years ago
536 stars

Top 60.0% on sourcepulse

GitHubView on GitHub
Project Summary

Athena-signal is an open-source C library with Python bindings for speech signal processing, targeting researchers and engineers. It provides implementations of core algorithms like Acoustic Echo Cancellation (AEC), Noise Suppression (NS), Direction of Arrival (DOA), and various beamforming techniques (MVDR, GSC), enabling enhanced audio capture and processing in custom projects.

How It Works

The library leverages C for performance-critical signal processing, exposing its functionality to Python for ease of use and integration. Key modules include AEC with multiple cancellation stages, HPF via cascaded IIR filters, DOA using the Capon algorithm (MVDR), and beamformers like MVDR and GSC. Noise estimation employs the MCRA method, and VAD is integrated with double-talk detection. Modules are individually configurable via switches, allowing flexible pipeline construction.

Quick Start & Requirements

  • Install: Build wheel from source (swig -python athena_signal/dios_signal.i, python setup.py bdist_wheel sdist), then pip install --ignore-installed dist/athena_signal-*.whl.
  • Prerequisites: Python 3.x, SWIG, NumPy, Setuptools.
  • Configuration: Requires manual setting of microphone count, reference channels, and microphone coordinates (3D) for beamforming/DOA modules.
  • Examples: examples/athena_signal_test.py demonstrates usage.

Highlighted Details

  • Implements Acoustic Echo Cancellation (AEC), Noise Suppression (NS), Automatic Gain Control (AGC), High Pass Filter (HPF), Direction of Arrival (DOA), MVDR, and GSC.
  • MVDR and GSC support arbitrary microphone array geometries via user-defined mic_coord.
  • Noise reduction based on "Minima Controlled Recursive Averaging" (MCRA).
  • Modules are individually switchable for flexible pipeline configuration.

Maintenance & Community

  • Open to contributions via issues and pull requests.
  • Contact information for questions and suggestions is provided.
  • Acknowledges contributions from WebRTC and Speex.

Licensing & Compatibility

  • The README does not explicitly state a license. This requires clarification for commercial use or closed-source integration.

Limitations & Caveats

  • The library is primarily implemented in C, requiring SWIG for Python bindings, which can complicate builds.
  • Microphone array geometry (mic_coord) must be manually specified for advanced modules.
  • No explicit benchmarks or performance metrics are provided in the README.
Health Check
Last commit

4 years ago

Responsiveness

1 week

Pull Requests (30d)
0
Issues (30d)
0
Star History
10 stars in the last 90 days

Explore Similar Projects

Feedback? Help us improve.