MCPcopy Index your code
hub / github.com/DataDog/dtln-rs

github.com/DataDog/dtln-rs @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
45 symbols 71 edges 13 files 6 documented · 13%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

dtln-rs

dtln-rs provides near real-time noise suppression for audio.

Built on a Dual-Signal Transformation LSTM Network (DTLN) approach but designed to be lightweight and portable, this module provide an embeddable noise reduction solution. It is packaged as a small Rust project that produces a WebAssembly module, a native Rust target library, and a NodeJS native module that can be easily embedded in your clients, and interfaced with WebRTC.

Description

This project is a noise reduction module that utilizes Rust and Node.js. It provides various scripts for building and installing the module on different platforms.

Installation

To install the module, you can use one of the following scripts based on your platform:

  • Mac x86_64: npm run install-mac-x86_64
  • Mac ARM64: npm run install-mac-arm64
  • WASM: npm run install-wasm
  • Native: npm run install-native

Build Steps

The following build steps are available in the package.json:

  • install-mac-x86_64: Cleans the build environment and builds the project for the x86_64 architecture on macOS. It uses cargo-cp-artifact to copy the build artifact and renames it to dtln.js.

  • install-mac-arm64: Similar to the x86_64 script, but targets the ARM64 architecture on macOS.

  • install-wasm: Runs a Node.js script to install the WebAssembly version of the module.

  • build: Builds the project using cargo with JSON-rendered diagnostics.

  • build-debug: Runs the build script in debug mode.

  • build-release: Runs the build script in release mode.

  • install-native: Determines the target architecture and runs the appropriate installation script for macOS.

  • test: Runs the test suite using cargo test.

Usage

To use the dtln-rs module, follow these steps:

  1. Installation: Follow the installation instructions above to set up the module on your platform.
  2. Running the Module: After installation, you can run the module using the appropriate command for your platform.
  3. Configuration: If there are any configuration files or environment variables, describe how to set them up here.

Contributing

We welcome contributions to the dtln-rs project! If you would like to contribute, please follow these steps:

  1. Fork the repository.
  2. Create a new branch for your feature or bugfix.
  3. Make your changes and commit them with clear and concise messages.
  4. Push your changes to your fork.
  5. Submit a pull request to the main repository.

Please ensure that your code adheres to the project's coding standards and includes appropriate tests.

Support

If you encounter any issues or have questions, please open an issue in the GitHub repository. We will do our best to assist you.

Author

Jason Thomas

License

This project is licensed under the MIT License - see the LICENSE file for details.

Extension points exported contracts — how you extend this code

DtlnProcessEngine (Interface)
The main interface trait that all processors must implement. [2 implementers]
src/dtln_processor.rs

Core symbols most depended-on inside this repo

denoise
called by 5
src/dtln_processor.rs
denoise
called by 4
src/dtln_engine.rs
to_result
called by 4
src/tflite.rs
dtln_create
called by 3
src/dtln_engine.rs
dtln_denoise
called by 3
src/dtln_engine.rs
check_is_wav
called by 2
src/main.rs
stop
called by 2
src/dtln_processor.rs
infer
called by 1
src/dtln_engine.rs

Shape

Function 22
Class 11
Method 10
Enum 1
Interface 1

Languages

Rust98%
TypeScript2%

Modules by API surface

src/dtln_processor.rs11 symbols
src/tflite.rs8 symbols
src/dtln_utilities.rs7 symbols
src/dtln_engine.rs7 symbols
src/wasm.rs4 symbols
src/lib.rs4 symbols
src/main.rs2 symbols
dtln_pre.js1 symbols
build.rs1 symbols

For agents

$ claude mcp add dtln-rs \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact