Skip to main content

Python bindings of speexdsp noise suppression library

Project description

Python bindings of speexdsp noise suppression library

Modified from https://github.com/xiongyihui/speexdsp-python

You can use it in Noise reduction model training as said in Personalized PercepNet: Real-time, Low-complexity Target Voice Separation and Enhancement.

Use a VAD and lightweight denoiser (SpeexDSP1) to eliminate the stationary noise before using this data for training.

Requirements

  • swig
  • compile toolchain
  • python
  • libspeexdsp-dev

Build

sudo apt install libspeexdsp-dev
sudo apt install swig
python setup.py install

Get started

"""Acoustic Noise Suppression for wav files."""

import wave
import sys
from speexdsp_ns import NoiseSuppression


if len(sys.argv) < 3:
    print('Usage: {} near.wav out.wav'.format(sys.argv[0]))
    sys.exit(1)


frame_size = 256

near = wave.open(sys.argv[1], 'rb')

if near.getnchannels() > 1:
    print('Only support mono channel')
    sys.exit(2)

out = wave.open(sys.argv[2], 'wb')
out.setnchannels(near.getnchannels())
out.setsampwidth(near.getsampwidth())
out.setframerate(near.getframerate())


print('near - rate: {}, channels: {}, length: {}'.format(
        near.getframerate(),
        near.getnchannels(),
        near.getnframes() / near.getframerate()))

noise_suppression = NoiseSuppression.create(frame_size, near.getframerate())

in_data_len = frame_size
in_data_bytes = frame_size * 2

while True:
    in_data = near.readframes(in_data_len)
    if len(in_data) != in_data_bytes:
        break

    in_data = noise_suppression.process(in_data)

    out.writeframes(in_data)

near.close()
out.close()

or

python examples/main.py in.wav out.wav

Noise suppression as show in figure below:

image

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

platypush_speexdsp_ns-0.1.2.tar.gz (8.6 kB view details)

Uploaded Source

File details

Details for the file platypush_speexdsp_ns-0.1.2.tar.gz.

File metadata

  • Download URL: platypush_speexdsp_ns-0.1.2.tar.gz
  • Upload date:
  • Size: 8.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for platypush_speexdsp_ns-0.1.2.tar.gz
Algorithm Hash digest
SHA256 aacb6da72051135b00ec4ea3cffd508ba7818a950e07b1a72f565146bb8f47a8
MD5 d6753bddc2d00ffd8f2050a51c9d9a49
BLAKE2b-256 f2d3a72abf7c003ba8f23337dc19ea7c90ef65d9258221e6b89ea137d1a467fd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page