I am looking for a way to remove a known signal, A, of fixed length, from an unknown audio stream, B, when signal A can be mixed into signal B at any point in time. I may be mistaking but converting signal A to the frequency domain and performing an STFT where the window is approximately the size of the data buffer of signal B then subtracting these wouldn't work because the amount of signal A that may be contained in signal B is unknown.

Simply, i want to do live noise removal, when the noise is known. What are some methods of approaching this?

  • $\begingroup$ Maybe cross correlation might be a better option. $\endgroup$ – fibonatic Jun 2 '18 at 10:23
  • $\begingroup$ So, I'll check how similar the signals are using cross correlation and then based off that, perform spectral subtraction? $\endgroup$ – Will D Jun 2 '18 at 10:34
  • $\begingroup$ It will tell you at what time A and B are most similar, and I think that peak also can tell you the magnitude. $\endgroup$ – fibonatic Jun 2 '18 at 11:34
  • $\begingroup$ I would suggest to also try this NMF approach. It depends on a type of the signals but it should generally work well. $\endgroup$ – jojek Jun 3 '18 at 7:14
  • $\begingroup$ With regards to that approach, will that work if you are using an audio stream and only have a snippit of the data that you want to denoise in a buffer, or does it only work on two known sources? $\endgroup$ – Will D Jun 3 '18 at 11:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.