Metadata-Version: 2.4
Name: ovos-audio-transformer-plugin-bandpass
Version: 0.0.2a1
Summary: Band-pass filter audio transformer for OpenVoiceOS
Author-email: JarbasAi <jarbasai@mailfence.com>
License: Apache-2.0
Project-URL: Homepage, https://github.com/OpenVoiceOS/ovos-audio-transformer-plugin-bandpass
Keywords: ovos,plugin,audio,transformer,stt,dsp
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy
Requires-Dist: scipy>=1.10
Requires-Dist: ovos-plugin-manager<3.0.0,>=0.5.0
Requires-Dist: ovos-utils<1.0.0,>=0.3.0
Provides-Extra: test
Requires-Dist: pytest; extra == "test"
Dynamic: license-file

# ovos-audio-transformer-plugin-bandpass

[![License: Apache-2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
[![Python](https://img.shields.io/badge/python-3.10%2B-blue)](https://www.python.org/)

A band-pass filter **audio transformer** for OpenVoiceOS. It runs on the captured
speech audio before STT and attenuates energy outside a configurable pass-band.

The default 300–3400 Hz band is the telephone speech band: it removes
low-frequency rumble (HVAC, handling noise) and high-frequency hiss that carry no
phonetic information, which can improve recognition on noisy inputs without
touching the speech formants.

## Install

```bash
pip install ovos-audio-transformer-plugin-bandpass
```

## Configure

Enable it in `mycroft.conf` under `audio_transformers` (any component that runs
the audio-transformer pipeline — the listener, or the STT server — will apply it):

```json
{
  "audio_transformers": {
    "ovos-audio-transformer-plugin-bandpass": {
      "low_hz": 300,
      "high_hz": 3400,
      "order": 4,
      "sample_rate": 16000
    }
  }
}
```

| Option | Default | Meaning |
|--------|---------|---------|
| `low_hz` | `300` | Lower edge of the pass-band, in Hz. |
| `high_hz` | `3400` | Upper edge of the pass-band, in Hz. |
| `order` | `4` | Butterworth filter order; higher is a steeper roll-off. |
| `sample_rate` | `16000` | Sample rate of the incoming PCM audio, in Hz. |

Edges are clamped into the open interval below Nyquist, so an aggressive band on a
low sample rate degrades gracefully instead of failing.
