lucianodato / speech-denoiser Goto Github PK
View Code? Open in Web Editor NEWA speech denoise lv2 plugin based on RNNoise library
License: GNU Lesser General Public License v3.0
A speech denoise lv2 plugin based on RNNoise library
License: GNU Lesser General Public License v3.0
info i am windows user but i am willing to install linux since i want to learn programming and i want to remove noise from {justpaste.it/2h1dw} this archives by using this software
what i want to know
-Q1 how to install this in linux and what are plug-in and how to install them?
-Q2 how to remove noise ?
removing this noise is so much imp for me any help would be helpful !!
`ldf@ldf-MS-7B79:~/speech-denoiser$ chmod +x install.sh && ./install.sh
You are on a Linux system. Building for Linux
Updating build configuration files for rnnoise, please wait....
./autogen.sh: 10: autoreconf: not found
mv: cannot stat '../ltmain.sh': No such file or directory
./install.sh: line 24: ./configure: No such file or directory
make: *** No targets specified and no makefile found. Stop.
The Meson build system
Version: 0.53.2
Source dir: /home/ldf/speech-denoiser
Build dir: /home/ldf/speech-denoiser/build
Build type: native build
Project name: speech-denoiser
Project version: undefined
C compiler for the host machine: cc (gcc 9.3.0 "cc (Ubuntu 9.3.0-10ubuntu2) 9.3.0")
C linker for the host machine: cc ld.bfd 2.34
Host machine cpu family: x86_64
Host machine cpu: x86_64
meson.build:13:0: ERROR: C library 'rnnoise-nu' not found
A full log can be found at /home/ldf/speech-denoiser/build/meson-logs/meson-log.txt
ninja: error: loading 'build.ninja': No such file or directory
ninja: error: loading 'build.ninja': No such file or directory` installed everything and i got this error? Am I still missing something?
Hi,
I am using a ubuntu 14.04 PC to install speech-denoiser.
After giving "chmod +x install.sh && ./install.sh" command i am getting this errors:
./autogen.sh: 10: ./autogen.sh: autoreconf: not found
mv: cannot stat ‘../ltmain.sh’: No such file or directory
./install.sh: line 24: ./configure: No such file or directory
make: *** No targets specified and no makefile found. Stop.
./install.sh: line 36: meson: command not found
./install.sh: line 41: cd: build: No such file or directory
./install.sh: line 42: ninja: command not found
./install.sh: line 43: ninja: command not found
I'm on Ubuntu 19.04, and I successfully built and installed your sdenoise.lv2
plugin from your master
branch. I have also installed ffmpeg which can allegedly transform audio files using an installed lv2
filter.
Presumably the command to use your filter is ...
ffmpeg -i $INPUT -af lv2=plugin=https\\\\://github.com/lucianodato/speech-denoiser $OUTPUT
... but it gives me an Error initializing filter 'lv2' with args 'plugin=https://github.com/lucianodato/speech-denoiser'
error:
ding@ding-linux-03:~/Desktop/denoise$ INPUT=/data/sample_car.wav
ding@ding-linux-03:~/Desktop/denoise$ OUTPUT=/data/sample_car.sdenoise.wav
ding@ding-linux-03:~/Desktop/denoise$ docker run \
> --mount type=bind,src=/home/ding/Desktop/denoise-data,dst=/data \
> denoise \
> "ffmpeg -i $INPUT -af lv2=plugin=https\\\\://github.com/lucianodato/speech-denoiser $OUTPUT"
ffmpeg version 4.1.3-0ubuntu1 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 8 (Ubuntu 8.3.0-6ubuntu1)
configuration: --prefix=/usr --extra-version=0ubuntu1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
libavutil 56. 22.100 / 56. 22.100
libavcodec 58. 35.100 / 58. 35.100
libavformat 58. 20.100 / 58. 20.100
libavdevice 58. 5.100 / 58. 5.100
libavfilter 7. 40.101 / 7. 40.101
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 3.100 / 5. 3.100
libswresample 3. 3.100 / 3. 3.100
libpostproc 55. 3.100 / 55. 3.100
Guessed Channel Layout for Input Stream #0.0 : stereo
Input #0, wav, from '/data/sample_car.wav':
Metadata:
encoder : Lavf58.12.100
Duration: 00:01:05.02, bitrate: 1411 kb/s
Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, stereo, s16, 1411 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (pcm_s16le (native) -> pcm_s16le (native))
Press [q] to stop, [?] for help
error: attempt to map invalid URI `https'
[lv2 @ 0x561771d961c0] Invalid plugin URI <https>
[AVFilterGraph @ 0x561771d4ebc0] Error initializing filter 'lv2' with args 'plugin=https://github.com/lucianodato/speech-denoiser'
Error reinitializing filters!
Failed to inject frame into filter network: Invalid argument
Error while processing the decoded data for stream #0:0
Conversion failed!
BTW, here is the Dockerfile
that I used get this ffmpeg command ready.
FROM ubuntu:19.04
SHELL ["/bin/bash", "-c"]
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update \
&& apt-get install --yes apt-utils \
&& apt-get install --yes ffmpeg build-essential cmake git python3 python3-pip ninja-build \
dh-autoreconf pkg-config lv2-dev
RUN pip3 install meson
# --------------------------------
# lv2 speech-denoiser
# --------------------------------
RUN mkdir -p /github/lucianodato/speech-denoiser
WORKDIR /github/lucianodato/speech-denoiser
RUN chmod -R a+rwx . \
&& git clone https://github.com/lucianodato/speech-denoiser.git .
RUN chmod +x install.sh \
&& ./install.sh
# --------------------------------
# data folder
# --------------------------------
RUN mkdir /data \
&& chmod -R a+rwx /data
WORKDIR /data
ENTRYPOINT ["/bin/bash", "-c"]
And here are the actual docker commands that I used:
docker build --tag denoise:latest .
INPUT=/data/sample_car.wav
OUTPUT=/data/sample_car.sdenoise.wav
docker run \
--mount type=bind,src=/home/ding/Desktop/denoise-data,dst=/data \
denoise \
"ffmpeg -i $INPUT -af lv2=plugin=https\\\\://github.com/lucianodato/speech-denoiser $OUTPUT"
FreeBSD 11.2
Currently, soft-bypassing only sets the wet factor to 0, still performing the same denoising work. Since RNNoise is kind of expensive (my computer cannot run it reliably at 64 frames/period, it uses more than 90% dsp), bypassing it should disable the noise computations (maybe still keeping the buffer full to be able to feed RNNoise as soon as the wet_dry variable is > 0).
A workaround currently is to remove completely the plugin, which is usable because it has no parameter (yet?).
Hi,
I've been fussing with RNNoise and made a slightly-incompatible fork that:
(1) Supports multiple neural network models, several of which I've trained (and I'm still training more),
(2) Supports a simple ASCII file format for future models, and
(3) Parameterizes the maximum attenuation to perform.
I've been scratching my head over whether to learn a whole plugin infrastructure in order to get it working slightly more tastefully, and since you have mixing wet and dry as a todo item (with the goal presumably the same as maximum attenuation, but frankly doing it in the library is a bit cleaner), maybe we can scratch each other's itches.
My rnnoise: https://github.com/GregorR/rnnoise-nu
My rnnoise models (informational, not needed to use the library): https://github.com/GregorR/rnnoise-models
In terms of the library, the changes are small. rnnoise_create
takes an RNNModel *
as an argument, or NULL to use the default (this was what necessitated breaking compatibility). rnnoise_models
returns a NULL-terminated list of models (meaningless string names) and rnnoise_get_model
gets a model by name. Alternatively, rnnoise_model_from_file
can load a model from a file, to be freed by rnnoise_model_free
. Finally, rnnoise_set_param
lets you set the (solitary) configurable parameter.
(An aside: My knowledge of LV2 is limited to... well, nothing, but I was surprised to find while poking at your library that there doesn't seem to be any mention of number of channels. Does LV2 just send each channel through a different instance of the plugin, or is this plugin single-channel-specific?)
While installing i am getting below error
CC src/denoise.lo
src/denoise.c: In function ‘rnnoise_init’:
src/denoise.c:328:12: error: ‘RNNState {aka struct RNNState}’ has no member named ‘model’
st->rnn.model = model;
^
src/denoise.c:330:12: error: ‘RNNState {aka struct RNNState}’ has no member named ‘model’
st->rnn.model = &model_cb;
^
src/denoise.c:331:56: error: ‘RNNState {aka struct RNNState}’ has no member named ‘model’
st->rnn.vad_gru_state = calloc(sizeof(float), st->rnn.model->vad_gru_size);
^
src/denoise.c:332:58: error: ‘RNNState {aka struct RNNState}’ has no member named ‘model’
st->rnn.noise_gru_state = calloc(sizeof(float), st->rnn.model->noise_gru_size);
^
src/denoise.c:333:60: error: ‘RNNState {aka struct RNNState}’ has no member named ‘model’
st->rnn.denoise_gru_state = calloc(sizeof(float), st->rnn.model->denoise_gru_size);
^
Makefile:625: recipe for target 'src/denoise.lo' failed
make[1]: *** [src/denoise.lo] Error 1
I'm interested in using this for a project, is there any way I can install this on a Windows platform?
I have a workaround for this, so it's not a huge issue. I described everything here, to see if some ffmpeg expert would be up for the task.
https://stackoverflow.com/questions/58600620/ffmpeg-complex-filtering-how-to-get-around
Hi there!
When using the latest version from Arch repos (0.47.0) meson cannot build the software:
meson.build:13:0: ERROR: C library 'rnnoise' not found
A full log can be found at /home/crocoduck/abs/.BuildTests/speech-denoiser-git/src/speech-denoiser/build/meson-logs/meson-log.txt
==> ERROR: A failure occurred in build().
Aborting...
However, it does build just fine when using meson 0.46.1, which is the latest one cached by pacman on my system. I attached the meson-log.txt file.
It could be very well a problem in the Arch Linux meson package, but to make sure I must ask whether you are observing the same. The other option is that meson 0.47.0 has some change that break your meson.build file, or some bug. This is the issue that inspired me to downgrade meson.
Hope it helps!
Hey there,
Would it be possible for you to support building to a VST plugin target? https://github.com/werman/noise-suppression-for-voice does this currently, but your plugin is far more actively developed. This would allow for usage in DAW and Broadcast applications, like Open Broadcaster Software
I type the install commands and this happens
ldf@ldf-MS-7B79:~/speech-denoiser$ chmod +x install.sh && ./install.sh You are on a Linux system. Building for Linux Updating build configuration files for rnnoise, please wait.... configure.ac:8: installing 'scripts/compile' configure.ac:13: installing 'scripts/install-sh' configure.ac:13: installing 'scripts/missing' Makefile.am:9: error: Libtool library used but 'LIBTOOL' is undefined Makefile.am:9: The usual way to define 'LIBTOOL' is to add 'LT_INIT' Makefile.am:9: to 'configure.ac' and run 'aclocal' and 'autoconf' again. Makefile.am:9: If 'LT_INIT' is in 'configure.ac', make sure Makefile.am:9: its definition is in aclocal's search path. Makefile.am: installing 'scripts/depcomp' autoreconf: automake failed with exit status: 1 mv: cannot stat '../ltmain.sh': No such file or directory configure: WARNING: unrecognized options: --disable-shared, --enable-static checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking whether gcc understands -c and -o together... yes checking how to run the C preprocessor... gcc -E checking for grep that handles long lines and -e... /usr/bin/grep checking for egrep... /usr/bin/grep -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking minix/config.h usability... no checking minix/config.h presence... no checking for minix/config.h... no checking whether it is safe to define EXTENSIONS... yes checking for special C compiler options needed for large files... no checking for _FILE_OFFSET_BITS value needed for large files... no checking for a BSD-compatible install... /usr/bin/install -c checking for a thread-safe mkdir -p... /usr/bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make supports the include directive... yes (GNU style) checking whether make supports nested variables... yes checking dependency style of gcc... gcc3 checking whether to enable maintainer-specific portions of Makefiles... yes checking for inline... inline ./configure: line 4436: LT_INIT: command not found checking whether make supports nested variables... (cached) yes ./configure: line 4532: LT_LIB_M: command not found checking for gcc way to treat warnings as errors... -Werror checking if gcc supports attribute(( visibility("default") ))... yes checking if gcc supports -fvisibility=hidden... yes configure: creating ./config.status config.status: error: cannot find input file:Makefile.in'
make: *** No targets specified and no makefile found. Stop.
The Meson build system
Version: 0.53.2
Source dir: /home/ldf/speech-denoiser
Build dir: /home/ldf/speech-denoiser/build
Build type: native build
Project name: speech-denoiser
Project version: undefined
C compiler for the host machine: cc (gcc 9.3.0 "cc (Ubuntu 9.3.0-10ubuntu2) 9.3.0")
C linker for the host machine: cc ld.bfd 2.34
Host machine cpu family: x86_64
Host machine cpu: x86_64
meson.build:13:0: ERROR: C library 'rnnoise-nu' not found
A full log can be found at /home/ldf/speech-denoiser/build/meson-logs/meson-log.txt
ninja: error: loading 'build.ninja': No such file or directory
ninja: error: loading 'build.ninja': No such file or directory
Hi!
While lurking around in the code I had a look at static_rnnoise.sh. I see that you clone rnnoise there. I was just wondering whether you considered using a Git Submodule instead. Just a thought.
Hey there!
really nice plugin. I'd like to move it to the Arch Linux [community] repository. For that to happen you'll need to release a first version of it though!
Please keep in mind, that you have a submodule in your code (consider using git subtree instead), that will turn out to be just an empty folder, once you do a git tag for this project (as github sadly doesn't do this).
I'm thinking about moving to a Mac for my audio processing but I really need a plugin for RNNoise to bring with me. Is there a way I can use this in a DAW on Mac?
Since rrnoise API is still in flux and you cannot provide meaningful controls for the plugin, maybe you can add a wet/dry control so that one can make the noise removal less strong (in some cases, the start of some F or S are removed a bit too much by rrnoise).
In the code you already use a wet/dry value for soft bypass anyway, so it should be very simple to do.
Thanks for your work,is it possible to provide a so library with a .h file?not just a plugin?Thanks
Hi there!
Amazing software here! While preparing an Arch Linux PKGBUILD I found this by running namcap on the end result:
$ namcap speech-denoiser-git-r33.24fe9f4-1-x86_64.pkg.tar.xz
speech-denoiser-git E: Dependency glibc detected and not included (libraries ['usr/lib/libc.so.6', 'usr/lib/libm.so.6'] needed in files ['usr/lib/lv2/sdenoise.lv2/sdenoise.so'])
Maybe worth to check if glibc is a required dependency and, if so, update README.md likewise.
I haven't checked yet, but it would be nice if the rnnoise tree were updated to the current upstream version, which has seen two years of development since you last cloned it. I can try myself, but I haven't seen if the API has changed significantly yet.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.