-
Notifications
You must be signed in to change notification settings - Fork 12
Description
The RNNoise, Neural Speech Enhancement, and the Browser talk by @jmvalin -- which btw. has a superb audio quality in its recording :) -- explains the complexity of RNNoise (for a 48 kHz mono input signal) is around 40 megaflops, with the following top 3:
– DNN (matrix-vector multiply): 17.5 MFLOPS
– FFT/IFFT: 7.5 MFLOPS
– Pitch search (convolution): 10 MFLOPS
@jmvalin concludes:
So, if we wanna optimize RNNoise, then these are the things we need to look at.
The WebNN API recently added the Gated Recurrent Unit (GRU) and corresponding operators webmachinelearning/webnn#83 to fill the operator gaps to enable hardware acceleration of models that make use of GRUs, such as RNNoise.
In earlier related discussions @jmvalin noted:
Honestly what I've like to see at some point is a WebBLAS (plus FFT and convolution/correlation). That would probably cover most use cases -- including a big chunk of WebML.
The WebNN API also recently added the general matrix multiplication (gemm) of the Basic Linear Algebra Subprograms (BLAS), specifically its Level 3.
Couple of questions or discussion points in the context of the workshop:
-
What are the areas that need further focus on the web platform to ensure also future noise suppression models (DSP/DNN hybrids, or pure DNN maybe 100-1000x bigger?) could keep on performing?
-
What is the state of real-time (or near real-time) analysis of waveforms in pure userland JavaScript with libraries such as DSP.js in comparison with the Web Audio API primitives (e.g. AnalyserNode)? What are the gaps and issues that need to be filled in with a JS library or hand-rolled code?
I suspect @teropa might have perspectives and input to this discussion, so looping him in.
@padenot for the Web Audio API expertise.
@huningxin for feedback on noise suppression hardware perspectives.