Feature Contribution: Advanced Audio Processing — ML Noise Suppression, Noise Gate, Compressor #584
Replies: 4 comments
|
Double check your branch. You may have leaked root passwords for some of your servers in your docs (even though the IPs look private). |
0 replies
|
Thanks for the heads up! Removed the password and scrubbed it from git history. Changing the passwords on the affected servers now. |
0 replies
|
Thanks a lot for your work on this! The lack of a noise gate is what is keeping me from switching over from Teamspeak. I hope it will be merged. |
0 replies
|
This will be available in v2 (and potentially earlier on canary). |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Feature Contribution
I've implemented three new audio processing features for the voice system and would like to offer them upstream. The implementation is complete and tested on my self-hosted instance.
Branch:
cproudlock:echowire-refactor(diff)Summary
Adds three new audio processing features using
@sapphi-red/web-noise-suppressorand the Web Audio API:DynamicsCompressorNodethat evens out loud and quiet audio for more consistent voice levels.Processing Chain
When all three are disabled, no processor is attached — zero overhead.
Why not
@livekit/krisp-noise-filter?Krisp requires LiveKit Cloud and doesn't work with self-hosted LiveKit.
@sapphi-red/web-noise-suppressorprovides ready-made AudioWorklet nodes for RNNoise with WASM SIMD auto-detection, making it a drop-in solution for any deployment.Files Changed
pnpm-workspace.yaml@sapphi-red/web-noise-suppressorto catalogfluxer_app/package.jsonfluxer_app/rspack.config.mjsdist/audio-worklets/fluxer_app/src/utils/AudioProcessor.tsxTrackProcessor<Track.Kind.Audio>implementationfluxer_app/src/stores/VoiceSettingsStore.tsxfluxer_app/src/stores/voice/VoiceMediaManager.tsxapplyAudioProcessor()methodfluxer_app/src/stores/voice/MediaEngineFacade.tsxapplyAudioProcessor()fluxer_app/src/actions/VoiceSettingsActionCreators.tsxfluxer_app/src/components/modals/tabs/VoiceTab.tsxSettings Added
advancedNoiseSuppressionnoiseGateEnablednoiseGateThresholdcompressorEnabledImplementation Details
TrackProcessor<Track.Kind.Audio>interface for clean integrationdist/audio-worklets/via rspack CopyPluginAll reactions