Noise suppression during audio calls is expected from any real-time communication platform. Good denoising means exhaustive use of modern neural networks. AI implies heavy processing, real-time requires speed, and a large number of calls means a large need for resources. Therefore, the questions are: can clients do the necessary processing and can AI solutions be integrated on the client side? We will present a neural network for noise suppression implemented as part of the Infobip WebRTC platform. A generic way of integrating AI solutions with client-side JavaScript will be described, with a special focus on real-time requirements. The final solution based on RNNoise will be presented.
5. Sead Delalić
• PhD in Computer Science
• University of Sarajevo
• Optimization, Data mining, AI
• Senior Teaching Assistant at Faculty of Science
• AI Consultant at Infobip
• 5+ years of experience in AI industry
• 25 research/scientific papers
11. Answers
• Interested in
‣ hearing the voice of the person speaking.
• We don’t want
‣ static noise;
‣ air conditioner sound and similar noises;
‣ babble noise;
‣ typing sounds.
12. Answers
• Interested in
‣ hearing the voice of the person speaking.
• We don’t want
‣ static noise;
‣ air conditioner sound and similar noises;
‣ babble noise;
‣ typing sounds.
• Everything should be in real-time, while the call is ongoing.
• The total delay must be below 200 ms, ideally below 100 ms.
38. Web Audio API
• Controlling audio on the Web
‣ Choose sources
‣ Add effects
‣ Create visualizations
‣ etc.
• Audio nodes to create routing graph
• Custom processor nodes
41. NumJs & TensorFlow.js
• NumJs
‣ Scientific computing with JS
‣ FFT & matrix operations
• TensorFlow.js
‣ Hardware-accelerated JS library for DL
‣ Convert Keras format to TFJS & run model in JS
56. Conclusion
• A hot topic in the WebRTC world
• A solution for real-time usage
‣ Different types of noises and generalization
‣ Speech enhancement
• Great room for improvement
57. Make some noise
for AI in JavaScript
Sead Delalić, PhD
delalic.sead@infobip.com | delalic.sead@pmf.unsa.ba
Notas del editor
Uzmemo signal, podijelimo ga na komade, 40ms, pa se pomjeramo za 20, fft, mel, mfcc, delte I gledamo prethodne, delta delta, gainove dobijemo I množimo gainove sa melom
Uzmemo signal, podijelimo ga na komade, 40ms, pa se pomjeramo za 20, fft, mel, mfcc, delte I gledamo prethodne, delta delta, gainove dobijemo I množimo gainove sa melom