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:
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aacb6da72051135b00ec4ea3cffd508ba7818a950e07b1a72f565146bb8f47a8
|
|
| MD5 |
d6753bddc2d00ffd8f2050a51c9d9a49
|
|
| BLAKE2b-256 |
f2d3a72abf7c003ba8f23337dc19ea7c90ef65d9258221e6b89ea137d1a467fd
|