Skip to content

Latest commit

 

History

History
104 lines (74 loc) · 5.29 KB

File metadata and controls

104 lines (74 loc) · 5.29 KB
NoMusic

NoMusic - Remove Background Music From Videos

NoMusic is a browser extension that removes background music from tab audio in real time with an entirely local processing pipeline.

Install

  • Chrome Web Store:
    Chrome Web Store
  • Microsoft Edge Add-ons:
    Edge Add-ons

What It Does

  • Captures the active tab audio stream.
  • Runs speech enhancement in the browser with ONNX Runtime Web (onnxruntime-web) and Web Audio worklets.
  • Offers multiple audio models (Standard and Lite) to balance between processing power and audio quality.
  • Applies RNNoise denoising after enhancement.
  • Auto-follows the active tab when the extension is enabled.
  • Keeps processing on-device with no backend service.
  • Supports native fullscreen for videos while the extension is active.
  • Includes English and Arabic localizations for the popup interface.

The current extension is aimed at people who want to watch online video content without background music.

How It Works

The extension is built around a Manifest V3 service worker and an offscreen document:

  • background.js manages extension state, the offscreen document, active-tab tracking, tab capture orchestration, and popup messaging.
  • offscreen.js creates the audio graph and coordinates the real-time processing pipeline.
  • fastenhancer-worker.js runs the FastEnhancer ONNX model in a worker.
  • ring-buffer-audio-processor.js bridges audio frames between the Web Audio graph and the worker through shared buffers.
  • rnnoise-worklet.js runs RNNoise as an AudioWorklet stage.
  • content.js is injected only into the captured tab to detect fullscreen events and synchronize OS-level window state.
  • popup.js powers the browser action UI.

At a high level, the pipeline is:

  1. Capture the current tab audio.
  2. Feed stereo audio into the FastEnhancer worker.
  3. Pass the enhanced stream through per-channel RNNoise worklets.
  4. Play the processed result back to the user.

Project Structure

Load From Source

  1. Clone or download this repository.
  2. Open Chrome and go to chrome://extensions.
  3. Enable Developer mode.
  4. Select Load unpacked.
  5. Choose this project folder.

Development Notes

  • There is no build step in the current repository. The extension can be loaded directly from source.
  • The audio pipeline uses local model/runtime assets already committed under assets.
  • Manifest permissions include tab capture, tabs, storage, active tab access, offscreen documents, and scripting (used solely to inject the fullscreen helper into the captured tab).

Privacy

NoMusic is designed to process audio locally in the browser. This repository does not include a server component, remote inference service, or cloud upload path for captured audio.

Third-Party Components

This repository includes or depends on third-party runtime/model assets, including ONNX Runtime Web, RNNoise runtime assets, and the FastEnhancer model files committed under assets.

If you redistribute this project, keep the relevant third-party license terms, attribution requirements, and model usage terms in mind.

Acknowledgements

This project builds on open-source speech enhancement and inference work from the following repositories:

Credit goes to the authors and contributors of those projects for the underlying models, runtimes, and research this extension depends on.

License

This project is open-sourced under the ISC license. See LICENSE.