This is easy integrated into Pulseaudio using PulseEffects (https://github.com/wwmm/pulseeffects).
(The PulseEffects support is new, I used to use NoiseTorch (https://github.com/lawl/NoiseTorch) which is more dedicated but has a weird UI and some other downsides)
Can you elaborate? (maintainer here, always interested in feedback)
This would solve my biggest issue that when turning on and switching my input to it, other programs sometimes need to be restarted to pick up the microphone change.
Otherwise, keep up the great work!
(Instructions for Windows. The OBS stuff would be the same, you'll just need to figure out your own solution for virtual audio devices.)
1. You'll need a virtual audio device. So grab Virtual Audio Cable or VB-Audio Cable. Both have a free version that let you set up a single device.
2. In OBS, add your microphone as an "Audio Input Capture". Right click on it, select Filters, and add a "Noise Suppression". (For future playing, you may want to come back here and add a "Noise Gate" as well. Basically "if the audio is too quiet, mute the input completely.)
3. Now go to File -> Settings, Audio, and under "Advanced" select the virtual audio cable as your monitoring device. Hit OK.
4. In the Audio Mixer panel at the bottom middle of your window, select any of the gear icons and hit "Advanced Audio Properties". In the row for your microphone input, change "Audio Monitoring" to "Monitor and Output".
5. You should now be getting your de-noised/gated/etc microphone coming in to the virtual audio device. Now in your voice chat program, just change the microphone input to the virtual audio device.
I've got a relatively quiet workspace, but I still live with three people and two dogs so the ambient noise is there. This cuts most of my dog's sounds (even if she's playing and creating a ruckus), ambient noise from people upstairs, my keyboard, etc. I'm stuck in meetings a good chunk of my day so I try to avoid having to wear headphones (just gets tiresome), and the noise gating and some strategic microphone positioning works perfect for keeping the meeting audio from my speakers from feeding back in. (Along with having all the meeting audio running through a very aggressive compressor to normalize everyone's volume into a very tight range.)
OBS also includes a virtual camera option, so I use that to crop out a tighter shot from my fairly wide angle camera so people can't see as much of the mess around the room and do some colour adjustment because it's a cheap camera and looks kinda garbage otherwise.
Incidentally I purchased an Elgato Wave:3 Mic (https://www.elgato.com/en/wave-3) because it includes a free virtual audio device for Mac, which piqued my curiosity. It turns out that Rogue Ameoba provides the extension for virtual audio devices, so it's a good value!
Another option for both Win/Mac is the Blue Yeti X (https://www.bluemic.com/en-us/products/yeti-x/), which has Blue Voice to denoise/noise gate/equalize audio without additional drivers aside from the base software (I use a headset which supports Blue Voice and it's ok, but def not as good as RNNVoice)
Then you still get a FAILED: meson-install Permission denied: '/Library/Audio/Plug-Ins/LV2' error, so change INSTALL_DIR_MAC in install.sh to~/Library/Audio/Plug-Ins/LV2 and install via the github page
Versus piping my audio through OBS as a way of using RNNoise and doing noise gating, OBS retains the original audio quality quite well and does a really good job of removing clicks/clacks/etc.
Krisp made my voice sound like I was talking through two tin cans and a string, and, at least in my environment, did not do a very good job of actually removing any of the background sounds.
I've also tried it in Discord (as it's integrated directly into Discord) and kept running into a problem of it deciding my own voice was noise and just cutting me out mid word.
They have a free tier (gives you 120min/week of noise cancelling), so anyone looking to try it definitely worth using that first. I'd suggest turning on audio monitoring in some headphones and listening to yourself a bit though and deciding if the quality is acceptable to you.
That said, I'm interested to see open source alternatives as I'm interested to see how they work.
And honestly I could've even lived with that except for the severe degradation in audio quality.
On a slightly related note, I quite like listening to mechanical keyboard sounds when my favorite programmers are doing a stream. I ended up buying one for myself because I just had to hear the sound up close. Mmm...
Demo here : https://www.youtube.com/watch?v=Y7dKyGoqn9w
If using Discord, Krisp is built-in. On Windows/Mac, you can also install Krisp standalone.
On Linux, I would recommend NoiseTorch or other similar software.
If you have a non-RTX nVidia GPU, you can use RTX Voice, which is the same functionality as the nVidia Broadcast noise removal, and doesn't require an RTX card despite the name.
I was using RTX Voice on my GTX 1070 just fine.
I only wish the menu bar icon were more prominent somehow, or had the option to overlay a floating semi-transparent window that displayed mute status. I'm always paranoid about whether I'm actually muted and wish I could make it glaringly obvious to myself.
Maybe if those "modern" video-conference apps had one, decades old option that was (and still is) avaliable in
almost all gaming-oriented voice software (ventrilo, mumble, teamspeak, discord) called
PUSH 2 TALK
then this problem would be solved, same with the problem of kids/other people in the background (especially this)
but yea, we need AI/Blockchain based solutions that require thousands of hours of engineering effort that probably will be provided by some Startup and cost 15$.
It's insane how enterprise software is behind gaming in that particular matter, do those people even use their software?
What's PUSH 2 TALK?
PUSH 2 TALK is not TURN ON / TURN OFF switch where you actually mute yourself. It's that you talk while having some button being pushed down e.g MOUSE SCROLL (MOUSE3) (for me it's probably one of the most practical choices)
so in this case you're always muted unless you want to talk
Why it's so great? because you can e.g play game, write code, do stuff on your PC and when you want to mute yourself, then you don't have to try to find some shortcuts or even worse - put video-co app on focus and click mute button, but instead you just stop pressing your PUSH2TALK hotkey! :P
There's some strange psychological thing getting some people to mute their side. I guess it's because some people are used to a ton of noise around them they assume others are ok with it too, but I'm probably reading way too much into things.
I'm not sure whether we're at the same page here
PUSH 2 TALK is not TURN ON / TURN OFF switch where you actually mute yourself, it is that you talk while having some button being pushed down e.g MOUSE SCROLL (MOUSE3) (for me it's probably one of the most practical choices)
Mute yourself and then hit spacebar. You'll be unmuted until you release
Not sure if this is on by default, by the option for this behavior is in Preferences > Audio > Press and hold 'Space Key' to temporarily unmute
Though tbf, Zoom has to be in focus in order for that to work
e.g can you write code in your fancy IDE and hit space to unmute temporarily yourself?
Ok, I now see
>Though tbf, Zoom has to be in focus in order for that to work
automatically switch the mute indicator on zoom, so others can see I’m on mute
push to talk mode would be neat instead of click to unmute and another to mute again
anybody knows if the button is hackable in some way? (osx)
Is it possible this is an OS limitation? It wouldn't surprise me if macOS, for instance, had privacy restrictions on apps capturing the keyboard when they're out of focus. No idea if that's the case, just wondering.
It's the space bar, and not global (of course), but I stay muted 100% of the time, and press and hold the space bar while I'm talking, then let got when I'm done.
That's not an "of course" thing (of course). All of the above mentioned apps (Discord etc.) support the PTT hotkeys being global. Windows and OSX support global hotkeys in apps.
The zoom app has lots of room for better features, for sure.
I did find out the hard way that the combination of Mac's VNC server and my client on Windows send a stream of press-and-release messages when I press and hold the space bar on the remote side.
It took me a surprisingly long time to figure out what people where describing when I tried to speak.
Given that a lot of business voice chat is essentially phone calls (rather than group meetings), it makes some sense that toggle predominates UI designs.
Edit: everyone suggesting me to use my mouse: i use a laptop without a mouse and sit on my sofa while in meetings. I prefer to unmute myself while there’s a discussion where I’m part of and mute myself when I’m not talking anymore. Push to talk every 10 seconds for 10 minutes is much more inconvenient than just having the mic on all the time.
Note that I do not work as a programmer.
Meeting while using vim? Need a second pedal!
Use your mouse then - e.g scroll button (on push, on scroll, whatever you want) or side buttons on modern / gaming mouses
The new tech shouldn't be written off as a waste of money.
The old school push-to-talk shouldn't be written off as archaic.
I’m currently doing VC off an iPad while sat in front of my Linux workstation.
The workstation has no microphone. What kind of mic could I get for it, to migrate all my VC to the workstation?
If you don't have meetings all day I can recommend the Logitech H800. Build quality and comfort are meh, but: It's small, you can use a wireless dongle with linux, switch easily between computer and phone by turning it to bluetooth on the headset and sound is decent.
While for microphones (and other audio equipment) there's almost no limit to how expensive you can go, any halfway decent USB microphone should probably be good enough that you're bottlenecked by the application's codec/bitrate.
If you were willing to splurge a bit, you might look at the likes of the Blue Yeti, Rode NT-USB, AKG Lyra, Audio Technica AT2020 USB, or even Shure MV7 which range between $150 and $300.
TBH, I have been wondering if there is a "wishlist" of small utilities/apps people would want to see on the Linux desktop. I have been looking for project inspiration and would love to do something that actually gets used.
I have rtx voice running all the time (starts totaly silently with pc) and totaly forget its there.
As I have headphones without mic my mic is positioned right between bottom rim of monitor and keyboard (mechanical) and this piece of magic filters keyboard sounds off like its not even there and leaves voice intact.
Absolutely adore that.
Somehow I fear that nvidia broadcast will ruin it. It is already getting bloater (hooks camera, background filters) and I fear it would ask for updates here and then. The quality I love about RTX Voice is that I dont notice it at all, apart from its tray icon.
In my experience, it does a great job cancelling out keyboard clicks and clacks. Even if I sit here and slam on my spacebar harder than I'd ever hit it even writing an angry email, it's cancelling it all. And I've never had an issue with it _not_ picking up my voice.
If you're just looking for _a_ solution to the problem, I'd give something with RNNoise a try.
If you have a non-RTX card (like a GTX 1070), get RTX voice. Despite the name, it does not require an RTX card.
Seriously, nVidia's noise removal is absolute magic, as far as I'm concerned. https://youtu.be/uWUHkCgslNE