Install AI denoiser extension with Agora web SDK.
import {AIDenoiserExtension} from "agora-extension-ai-denoiser";
const extension = new AIDenoiserExtension({assetsPath:'./external'});
AgoraRTC.registerExtensions([extension]);
extension.onloaderror = (e) => {
openDenoiserButton.enabled = false;
console.log(e);
}
Create a processor by denioser extension.
const processor = extension.createProcessor();
await processor.enable();
processor.onoverload = async (elapsedTimeInMs) => {
console.log("overload!!!", elapsedTimeInMs);
await processor.disable();
}
Connect the processor to microphone audio track to process the audio pipeline.
const audioTrack = await AgoraRTC.createMicrophoneAudioTrack();
audioTrack.pipe(processor).pipe(audioTrack.processorDestination);
await processor.enable();
Control the denoiser function enabled or disabled.
() => {
if (processor.enabled) {
await processor.disable();
} else {
await processor.enable();
}
}
Change the denoiser mode and level.
await processor.setMode("NSNG");
await processor.setMode("STATIONARY_NS");
await processor.setLevel("LEVEL26");
await processor.setLevel("LEVEL40");
Dump audio (download files which are 30s audio file before the method called and two audio files 30s after the method called)
processor.ondump = (blob, name) => {
const objectURL = URL.createObjectURL(blob);
const tag = document.createElement("a");
tag.download = name;
tag.href = objectURL;
tag.click();
setTimeout(() => {
URL.revokeObjectURL(objectURL);
}, 0);
}
processor.ondumpend = () => {
console.log("dump ended!!");
}
processor.dump();