agora-extension-ai-denoiser
TypeScript icon, indicating that this package has built-in type declarations

1.1.0 • Public • Published

Install AI denoiser extension with Agora web SDK.

import {AIDenoiserExtension} from "agora-extension-ai-denoiser";
// Create AIDenoiserExtension instance, assetsPath is the path of wasm files.
const extension = new AIDenoiserExtension({assetsPath:'./external'});

// Register AI denoiser extension into AgoraRTC.
AgoraRTC.registerExtensions([extension]);

// listen the loaderror callback to handle loading module failed.
extension.onloaderror = (e) => {
  // if loading denoiser is failed, disable the function of denoiser. For example, set your button disbled.
  openDenoiserButton.enabled = false;
  console.log(e);
}

Create a processor by denioser extension.

const processor = extension.createProcessor();

// If you want to enable the processor by default.
await processor.enable();

// If you want to disable the processor by default.
// await processor.disable();

// Optional, listen the processor`s overlaod callback to catch overload message
processor.onoverload = async (elapsedTimeInMs) => {
  console.log("overload!!!", elapsedTimeInMs);
  // fallback or disable
  // await processor.setMode("STATIONARY_NS");
  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"); // recommended
await processor.setMode("STATIONARY_NS");

await processor.setLevel("LEVEL26"); // recommended
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();

Dependencies (0)

    Dev Dependencies (0)

      Package Sidebar

      Install

      npm i agora-extension-ai-denoiser

      Weekly Downloads

      2,731

      Version

      1.1.0

      License

      MIT

      Unpacked Size

      4.87 MB

      Total Files

      7

      Last publish

      Collaborators

      • agora.io
      • agorabuilder