{"_id":"agora-extension-ai-denoiser","_rev":"4056082","name":"agora-extension-ai-denoiser","description":"```javascript import {AIDenoiserExtension} from \"agora-extension-ai-denoiser\"; // Create AIDenoiserExtension instance, assetsPath is the path of wasm files. const extension = new AIDenoiserExtension({assetsPath:'./external'});","dist-tags":{"latest":"1.1.0"},"maintainers":[{"name":"agora.io","email":""},{"name":"agorabuilder","email":""}],"time":{"modified":"2025-09-24T04:10:07.000Z","created":"2022-03-11T12:14:52.256Z","1.1.0":"2022-11-10T09:33:20.178Z","1.0.0":"2022-07-27T08:44:04.052Z","1.0.0-beta2":"2022-04-28T10:47:20.928Z","1.0.0-beta1":"2022-03-31T09:37:12.061Z","1.0.0-beta":"2022-03-11T12:14:52.256Z"},"users":{},"author":{"name":"agora"},"versions":{"1.1.0":{"name":"agora-extension-ai-denoiser","version":"1.1.0","description":"```javascript import {AIDenoiserExtension} from \"agora-extension-ai-denoiser\"; // Create AIDenoiserExtension instance, assetsPath is the path of wasm files. const extension = new AIDenoiserExtension({assetsPath:'./external'});","keywords":[],"main":"index.js","module":"index.esm.js","typings":"index.d.ts","author":{"name":"agora"},"peerDependencies":{"agora-rtc-sdk-ng":">=4.15.0"},"license":"MIT","_id":"agora-extension-ai-denoiser@1.1.0","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","dist":{"shasum":"4719af4af1459abe66db742e27b1b7a52402b33d","size":3341805,"noattachment":false,"key":"/agora-extension-ai-denoiser/-/agora-extension-ai-denoiser-1.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/agora-extension-ai-denoiser/download/agora-extension-ai-denoiser-1.1.0.tgz"},"_npmUser":{"name":"agora.io","email":"Sales@agora.io"},"directories":{},"maintainers":[{"name":"agora.io","email":""},{"name":"agorabuilder","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/agora-extension-ai-denoiser_1.1.0_1668072799868_0.7442645584552625"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-11-10T09:38:18.313Z","publish_time":1668072800178,"_cnpm_publish_time":1668072800178},"1.0.0":{"name":"agora-extension-ai-denoiser","version":"1.0.0","description":"```javascript import {AIDenoiserExtension} from \"agora-extension-ai-denoiser\"; // Create AIDenoiserExtension instance, please make sure this instance is a singleton, assetsPath is the path of wasm and wasmjs. const denoiser = new AIDenoiserExtension({asse","keywords":[],"main":"index.js","module":"index.esm.js","typings":"agora-extension-ai-denoiser.d.ts","author":{"name":"agora"},"peerDependencies":{"agora-rtc-sdk-ng":">=4.10.0"},"license":"MIT","_id":"agora-extension-ai-denoiser@1.0.0","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","dist":{"shasum":"ea9846e5c0692154996df90803531d53f768feaa","size":3334888,"noattachment":false,"key":"/agora-extension-ai-denoiser/-/agora-extension-ai-denoiser-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/agora-extension-ai-denoiser/download/agora-extension-ai-denoiser-1.0.0.tgz"},"_npmUser":{"name":"agora.io","email":"Sales@agora.io"},"directories":{},"maintainers":[{"name":"agora.io","email":""},{"name":"agorabuilder","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/agora-extension-ai-denoiser_1.0.0_1658911443739_0.8462453941555714"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-07-27T10:00:39.872Z","publish_time":1658911444052,"_cnpm_publish_time":1658911444052},"1.0.0-beta2":{"name":"agora-extension-ai-denoiser","version":"1.0.0-beta2","description":"```javascript import {AIDenoiserExtension} from \"agora-extension-ai-denoiser\"; // Create AIDenoiserExtension instance, please make sure this instance is a singleton, assetsPath is the path of wasm and wasmjs. const denoiser = new AIDenoiserExtension({asse","keywords":[],"main":"index.js","module":"index.esm.js","typings":"agora-extension-ai-denoiser.d.ts","author":{"name":"agora"},"peerDependencies":{"agora-rtc-sdk-ng":">=4.10.0"},"license":"MIT","_id":"agora-extension-ai-denoiser@1.0.0-beta2","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","dist":{"shasum":"0619827055b3c4c3367e89528f74bf4b4701c17a","size":3332473,"noattachment":false,"key":"/agora-extension-ai-denoiser/-/agora-extension-ai-denoiser-1.0.0-beta2.tgz","tarball":"http://registry.cnpm.dingdandao.com/agora-extension-ai-denoiser/download/agora-extension-ai-denoiser-1.0.0-beta2.tgz"},"_npmUser":{"name":"agora.io","email":"Sales@agora.io"},"directories":{},"maintainers":[{"name":"agora.io","email":""},{"name":"agorabuilder","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/agora-extension-ai-denoiser_1.0.0-beta2_1651142840684_0.6748777573783056"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-04-28T10:48:09.447Z","publish_time":1651142840928,"_cnpm_publish_time":1651142840928},"1.0.0-beta1":{"name":"agora-extension-ai-denoiser","version":"1.0.0-beta1","description":"```javascript import {AIDenoiserExtension} from \"agora-extension-ai-denoiser\"; // Create AIDenoiserExtension instance, please make sure this instance is a singleton, assetsPath is the path of wasm and wasmjs. const denoiser = new AIDenoiserExtension({asse","keywords":[],"main":"index.js","module":"index.esm.js","typings":"agora-extension-ai-denoiser.d.ts","author":{"name":"agora"},"license":"MIT","_id":"agora-extension-ai-denoiser@1.0.0-beta1","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","dist":{"shasum":"e62a5d5d70b29676d6b009d2b8c35080a8551a09","size":3332804,"noattachment":false,"key":"/agora-extension-ai-denoiser/-/agora-extension-ai-denoiser-1.0.0-beta1.tgz","tarball":"http://registry.cnpm.dingdandao.com/agora-extension-ai-denoiser/download/agora-extension-ai-denoiser-1.0.0-beta1.tgz"},"_npmUser":{"name":"agora.io","email":"Sales@agora.io"},"directories":{},"maintainers":[{"name":"agora.io","email":""},{"name":"agorabuilder","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/agora-extension-ai-denoiser_1.0.0-beta1_1648719431804_0.6361496235591597"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-03-31T09:59:20.047Z","publish_time":1648719432061,"_cnpm_publish_time":1648719432061},"1.0.0-beta":{"name":"agora-extension-ai-denoiser","version":"1.0.0-beta","description":"```javascript import {AIDenoiserExtension} from \"agora-extension-ai-denoiser\"; // Create AIDenoiserExtension instance, please make sure this instance is a singleton, assetsPath is the path of wasm and wasmjs. const denoiser = new AIDenoiserExtension({asse","keywords":[],"main":"index.js","module":"index.esm.js","typings":"agora-extension-ai-denoiser.d.ts","author":{"name":"agora"},"license":"MIT","_id":"agora-extension-ai-denoiser@1.0.0-beta","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","dist":{"shasum":"2b12add9aba41d992c798118e786e37f57b29b09","size":6861874,"noattachment":false,"key":"/agora-extension-ai-denoiser/-/agora-extension-ai-denoiser-1.0.0-beta.tgz","tarball":"http://registry.cnpm.dingdandao.com/agora-extension-ai-denoiser/download/agora-extension-ai-denoiser-1.0.0-beta.tgz"},"_npmUser":{"name":"agora.io","email":"Sales@agora.io"},"directories":{},"maintainers":[{"name":"agora.io","email":""},{"name":"agorabuilder","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/agora-extension-ai-denoiser_1.0.0-beta_1647000891985_0.6529898203208986"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-03-11T12:14:59.381Z","publish_time":1647000892256,"_cnpm_publish_time":1647000892256}},"readme":"### Install AI denoiser extension with Agora web SDK.\n\n```javascript\nimport {AIDenoiserExtension} from \"agora-extension-ai-denoiser\";\n// Create AIDenoiserExtension instance, assetsPath is the path of wasm files.\nconst extension = new AIDenoiserExtension({assetsPath:'./external'});\n\n// Register AI denoiser extension into AgoraRTC.\nAgoraRTC.registerExtensions([extension]);\n\n// listen the loaderror callback to handle loading module failed.\nextension.onloaderror = (e) => {\n  // if loading denoiser is failed, disable the function of denoiser. For example, set your button disbled.\n  openDenoiserButton.enabled = false;\n  console.log(e);\n}\n```\n\n### Create a processor by denioser extension.\n\n```javascript\nconst processor = extension.createProcessor();\n\n// If you want to enable the processor by default.\nawait processor.enable();\n\n// If you want to disable the processor by default.\n// await processor.disable();\n\n// Optional, listen the processor`s overlaod callback to catch overload message\nprocessor.onoverload = async (elapsedTimeInMs) => {\n  console.log(\"overload!!!\", elapsedTimeInMs);\n  // fallback or disable\n  // await processor.setMode(\"STATIONARY_NS\");\n  await processor.disable();\n}\n```\n\n### Connect the processor to microphone audio track to process the audio pipeline.\n\n```javascript\nconst audioTrack = await AgoraRTC.createMicrophoneAudioTrack();\n\naudioTrack.pipe(processor).pipe(audioTrack.processorDestination);\n\nawait processor.enable();\n```\n\n### Control the denoiser function enabled or disabled.\n\n```javascript\n() => {\n  if (processor.enabled) {\n    await processor.disable();\n  } else {\n    await processor.enable();\n  }\n}\n```\n\n### Change the denoiser mode and level.\n\n```javascript\nawait processor.setMode(\"NSNG\"); // recommended\nawait processor.setMode(\"STATIONARY_NS\");\n\nawait processor.setLevel(\"LEVEL26\"); // recommended\nawait processor.setLevel(\"LEVEL40\");\n```\n\n### Dump audio (download files which are 30s audio file before the method called and two audio files 30s after the method called)\n```javascript\nprocessor.ondump = (blob, name) => {\n  const objectURL = URL.createObjectURL(blob);\n  const tag = document.createElement(\"a\");\n  tag.download = name;\n  tag.href = objectURL;\n  tag.click();\n  setTimeout(() => {\n    URL.revokeObjectURL(objectURL);\n  }, 0);\n}\n\nprocessor.ondumpend = () => {\n  console.log(\"dump ended!!\");\n}\n\nprocessor.dump();\n```\n","_attachments":{},"license":"MIT"}