Tutorial: Implement AI noise reduction

Implement AI noise reduction

Function Introduction

The AI Denoiser plugin can reduce noise in calls and minimize the impact of environmental noise on communication. It can effectively suppress keyboard sounds, collisions, and other noises during calls, making it particularly suitable for scenarios where transient noise is sensitive, such as in conference settings.

This article will introduce how to apply AI Denoiser to the local audio stream in TRTC applications. Click here to experience it online for the denoising demo.

Prerequisites

For usage fee instructions, please see TRTC Edition Features and Pricing.

Supported browsers: Chrome 66+, Edge 79+, Safari 14.1+, Firefox 76+. For Android systems, Chrome version needs to be above 92.

To make the best use of AI Denoiser, it is recommended to use the latest version of Chrome browser.

Note:

If there is background music in the microphone input, the denoising plugin may treat it as noise and eliminate it.

Implementation Process

Deploying Resources for Denoising

Dynamic loading of file dependencies: The AI Denoiser plugin relies on some files. To ensure that the browser can load and run these files properly, you need to complete the following steps:

Publish the denoiser-wasm.js file from the node_modules/trtc-sdk-v5/plugins/ai-denoiser directory to a CDN or a static resource server, and it should be in the same public path. If you need to use the denoising feature, you need to pass the URL of the above public path, and the plugin will dynamically load the dependent files.

  • If the Host URL of the files in the directory is different from the Host URL of the web application, you need to enable CORS policy for accessing the file domain.
  • Do not place the directory files under an HTTP service, as loading HTTP resources under an HTTPS domain will be blocked by the browser's security policy.

Enable Denoising

await trtc.startLocalAudio();
await trtc.startPlugin('AIDenoiser', {
  assetsPath: 'XXXXX/assets/', // For example: the denoiser-wasm.js file is stored in the assets directory
  sdkAppId: 123456,
  userId: 'user_123',
  userSig: 'XXXXXXXX'
});

Disable Denoising

await trtc.stopPlugin('AIDenoiser');

packages/api-cloud-next/docs/en/tutorials/35-advanced-ai-denoiser.md

API Description

trtc.startPlugin('AIDenoiser', options)

Used to enable denoising.

options:

Name Type Attributes Description
assetsPath string The location where the denoiser-wasm.js file is stored, for example: if it is stored in the assets directory, pass 'XXXXX/assets/'
sdkAppId number The sdkAppId of the current application
userId string The userId of the current user
userSig string The userSig of the current user

Example:

await trtc.startLocalAudio();
await trtc.startPlugin('AIDenoiser', {
  assetsPath: 'XXXXX/assets/',  // For example: the denoiser-wasm.js file is stored in the assets directory
  sdkAppId: 123456,
  userId: 'user_123',
  userSig: 'XXXXXXXX'
});

trtc.stopPlugin('AIDenoiser')

Used to disable denoising

Example:

await trtc.stopPlugin('AIDenoiser');