跳转到主要内容

speexdsp噪声抑制库的Python绑定

项目描述

speexdsp噪声抑制库的Python绑定

修改自 https://github.com/xiongyihui/speexdsp-python

Personalized PercepNet: Real-time, Low-complexity Target Voice Separation and Enhancement中所述,您可以在噪声减少模型训练中使用它。

在用此数据训练之前,使用VAD和轻量级降噪器(SpeexDSP1)消除静态噪声。

要求

  • swig
  • 编译工具链
  • python
  • libspeexdsp-dev

构建

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

入门

"""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()

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

如图所示,进行噪声抑制

image

项目详情


下载文件

下载适用于您的平台文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分布

此版本没有可用的源分布文件。请参阅 生成分发存档 的教程。

构建分布

speexdsp_ns-0.1.2-cp312-cp312-manylinux_2_28_x86_64.whl (161.6 kB 查看哈希值)

上传时间 CPython 3.12 manylinux: glibc 2.28+ x86_64

speexdsp_ns-0.1.2-cp312-cp312-manylinux_2_28_aarch64.whl (158.2 kB 查看哈希值)

上传时间 CPython 3.12 manylinux: glibc 2.28+ ARM64

speexdsp_ns-0.1.2-cp311-cp311-manylinux_2_28_x86_64.whl (159.9 kB 查看哈希值)

上传时间 CPython 3.11 manylinux: glibc 2.28+ x86_64

speexdsp_ns-0.1.2-cp311-cp311-manylinux_2_28_aarch64.whl (156.8 kB 查看哈希值)

上传时间 CPython 3.11 manylinux: glibc 2.28+ ARM64

speexdsp_ns-0.1.2-cp310-cp310-manylinux_2_28_x86_64.whl (158.6 kB 查看哈希值)

上传时间 CPython 3.10 manylinux: glibc 2.28+ x86_64

speexdsp_ns-0.1.2-cp310-cp310-manylinux_2_28_aarch64.whl (155.5 kB 查看哈希值)

上传时间 CPython 3.10 manylinux: glibc 2.28+ ARM64

speexdsp_ns-0.1.2-cp39-cp39-manylinux_2_28_x86_64.whl (158.5 kB 查看哈希值)

上传时间 CPython 3.9 manylinux: glibc 2.28+ x86_64

speexdsp_ns-0.1.2-cp39-cp39-manylinux_2_28_aarch64.whl (155.4 kB 查看哈希值)

上传时间 CPython 3.9 manylinux: glibc 2.28+ ARM64

speexdsp_ns-0.1.2-cp38-cp38-manylinux_2_28_x86_64.whl (159.2 kB 查看哈希值)

上传时间 CPython 3.8 manylinux: glibc 2.28+ x86_64

speexdsp_ns-0.1.2-cp38-cp38-manylinux_2_28_aarch64.whl (156.1 kB 查看哈希值)

上传时间 CPython 3.8 manylinux: glibc 2.28+ ARM64

speexdsp_ns-0.1.2-cp37-cp37m-manylinux_2_28_x86_64.whl (157.4 kB 查看哈希值)

上传于 CPython 3.7m manylinux: glibc 2.28+ x86-64

speexdsp_ns-0.1.2-cp37-cp37m-manylinux_2_28_aarch64.whl (154.1 kB 查看哈希值)

上传于 CPython 3.7m manylinux: glibc 2.28+ ARM64

支持者