noise suppression with librespeaker in RespeakerCorev2


I’ve tried step by step you procedura but I still get the same error.

I will buy a faster SD and try again.

It is possible that my feedback will be a little delayed this time.

I have another question related to this library. If you prefer I can open a new issue.

Do you have any guidance or example on how to return the output of the librespeaker audio processing pipeline to a linux device instead of a file?

Thanks for your help!

HI Cinettoa,

Any feedback is welcome!

And please open a new issue of your question;). Can you explain more about your question? Do you mean that you need to process audio stream on ReSpeaker and then send that stream to another Linux device?


I’m going to open a new issue so you can reply me there!

The same problem with “out of the box” example. I’m using new librespeaker_2.0.1 library version

You mean the “bad_array_new_length” problem when using librespeaker_2.0.1 ? Or the “Noise Suppression doesn’t work” problem? Can you provide more information? Thanks!

Noise Suppression doesn’t work

I've tried again using a fast sd card (sundisk 128Gb V30 U1 A2) but still the same error.
What about if I create an image of my respeaker core v2 and I send to you for testing?
how can I send you such a big image?


Hi Cinettoa,

You can upload your image to Google Drive. But one more thing need to confirm before that, check if you are using the latest image downloaded from here: <LINK_TEXT text=“ … 14&lang=en”></LINK_TEXT>



I confirm that I am using the respeaker-debian-9-lxqt-sd-20180801-4gb.img which should be the last.

Tomorrow I upload the image of my sd card and send you the link of my google drive.

Hi, I’ve sent you the google drive link via private messaging.

Please let me know your findings

Hi Jerry,

Do you have any feedback from your testing?

I tried to compile and link the code, but there are references to header files that do not exist in the librespeaker-dev include files, e.g. “vep_doa_kws_node.h”.

If I download the missing header files from searching on the net, it compiles but does not link:

/tmp/ccaZ9AuP.o: In function main':<br/> undefined reference to respeaker::VepAecBeamformingNode::Create(int, bool)’ undefined reference to `respeaker::VepDoaKwsNode::Create(std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, int, bool, bool)’

collect2: error: ld returned 1 exit status

librespeaker Version: 2.1.1-build181119


I’ve seen the new release 2.1.1 and I’ve tried to compile the new examples. It seems that the librespeaker-dev package doesn’t install the header files. So I’ve downloaded them (from librespeaker website one by one with copy and paste…)

then put respeaker.h in /usr/include/respeaker/

and all the other headers in /usr/include/respeaker/chain_nodes .

Then you need to modify the examples because they contain the wrong path to the various models for hotwords (librespeaker package actually install those models but the examples contains a wrong path).

Then you can compile with g++ as usual.

However I would like to say that it is pretty disappointing that nobody from Respeaker is following this forum since one month.

Hi Cinettoa,

I apologize for my late reply. I am very sorry about this.

Does this new librespeaker2.1.1 work on your board?

For the header files problems, I think you have to remove “/usr/local/lib/pkgconfig/respeaker.pc” manually.

Sincere apology,


Hi Jerry,

Thanks for your reply.

I’ve just finished to test the new Librespeaker 2.1.1 and seems like the issue for the NS module is fixed.

Thanks for your effort to improve the product.

Now I have to find out the way to send the output to Snips or to another ASR but I guess I have to try out the respeakerd code for this.

If you have any additional suggestion you are more than welcome!

How do you think that if we capture audio via alsa api and redirect the processed audio stream with alsa-aloop? Then snips or other ASRs can capture the processed audio stream easily.

Hi Jerry,

This way could be god. the more general the best so to adapt to future available ASR API.

Are you going to develop a new respeaker release for this?

Yes, this is what we are doing.

sounds good! do you a timeline for the new release?


The new release is still need some time to go, but I can send you a test version, you can download from this link:

<LINK_TEXT text=“ … f8?lang=en”></LINK_TEXT>

Install the lib:

tar -jxvf librespeaker.tar.bz2

sudo dpkg -i librespeaker_2.1.2-build181212_armhf.deb

sudo dpkg -i librespeaker-dev_2.1.2-build181212_armhf.deb

Compile the example:

g++ -o alsa_aloop_test -lrespeaker -lsndfile -fPIC -std=c++11 -fpermissive -I/usr/include/respeaker/ -DWEBRTC_LINUX -DWEBRTC_POSIX -DWEBRTC_NS_FLOAT -DWEBRTC_APM_DEBUG_DUMP=0 -DWEBRTC_INTELLIGIBILITY_ENHANCER=0

/** @example

  • This is an example that shows how to redirect the processed audio stream into a specific Alsa device(Loopback PCM).
  • To run this example, you have to run ‘sudo modprobe snd-aloop’ first. And make sure “pulseaudio” doesn’t start, then
  • you can use “arecord -Dhw:Loopback,1,0 -c 1 -r 16000 -f S16_LE loop_test.wav” to arecord the processed audio stream.
  • Further more, you can setup a third party voice assistant to capture voice from “hw:Loopback,1,0”, to run the assistant directly.


    Note that the header files are located in /usr/include/respeaker, and you can find how to use aloop_node in “aloop_output_node.h”. The other APIs are the same as

    the previous version.

    And the config files are in /usr/share/respeaker

    Feel free to ask me if you have any question.