Feature Request - Fully disable Speex preprocessing #1329

Open
opened 2026-02-20 20:59:16 -05:00 by deekerman · 13 comments
Owner

Originally created by @mumbledenoise on GitHub (Jan 27, 2018).

Speex preprocessing noticeably reduces sound quality. I've received some comments that Mumble doesn't sound as good as some other VOIP options. To test, I removed all Speex preprocessing in the source, and sound quality was better than anything we've ever tested.

It might be specific to our environment/equipment, as some microphones don't seem to be affected as much.

Would love to see an option for this under the Audio Processing settings. Or perhaps disable Speex preprocessing completely whenever the user sets Noise Suppression to Off.

Thanks!

Originally created by @mumbledenoise on GitHub (Jan 27, 2018). Speex preprocessing noticeably reduces sound quality. I've received some comments that Mumble doesn't sound as good as some other VOIP options. To test, I removed all Speex preprocessing in the source, and sound quality was better than anything we've ever tested. It might be specific to our environment/equipment, as some microphones don't seem to be affected as much. Would love to see an option for this under the Audio Processing settings. Or perhaps disable Speex preprocessing completely whenever the user sets Noise Suppression to Off. Thanks!
Author
Owner

@mkrautz commented on GitHub (Jan 27, 2018):

A hidden setting for this would be fine by me. (Which would, in time, be accessible via something like Firefox's about:config.)

However, echo cancellation is somewhat coupled with the preprocessor.

See https://github.com/mumble-voip/mumble/blob/master/src/mumble/AudioInput.cpp, search for "speex_preprocess_".

@mkrautz commented on GitHub (Jan 27, 2018): A hidden setting for this would be fine by me. (Which would, in time, be accessible via something like Firefox's about:config.) However, echo cancellation is somewhat coupled with the preprocessor. See https://github.com/mumble-voip/mumble/blob/master/src/mumble/AudioInput.cpp, search for "speex_preprocess_".
Author
Owner

@lastmetroid commented on GitHub (Jan 26, 2020):

2 years later and still no update on this? Mumble is unusable on a laptop, creating a permant 2-3W drain because of this, even with no one else but yourself connected to the server, no one speaking.

@lastmetroid commented on GitHub (Jan 26, 2020): 2 years later and still no update on this? Mumble is unusable on a laptop, creating a permant 2-3W drain because of this, even with no one else but yourself connected to the server, no one speaking.
Author
Owner

@Krzmbrzl commented on GitHub (Jan 26, 2020):

The issue is labeled as "help wanted" indicating that we'd be happy to accept a PR dealing with this issue. However we simply don't have the capacity to implement every PR ourselves. We are dependent on support from the community for these kind of things.

Thus if you feel like this is an important feature, feel free to create said PR or motivate someone willing to do it.

In general I'd think it shouldn't be that much work. I also believe the hardest part of this is to figure out how echo cancelation is being dealt with in this case.

@Krzmbrzl commented on GitHub (Jan 26, 2020): The issue is labeled as "help wanted" indicating that we'd be happy to accept a PR dealing with this issue. However we simply don't have the capacity to implement every PR ourselves. We are dependent on support from the community for these kind of things. Thus if you feel like this is an important feature, feel free to create said PR or motivate someone willing to do it. In general I'd think it shouldn't be that much work. I also believe the hardest part of this is to figure out how echo cancelation is being dealt with in this case.
Author
Owner

@lastmetroid commented on GitHub (Jan 26, 2020):

Why cant there be a simple switch be implemented, to deactivate every audio processing, or while no one is speaking? I dont mind a bit higher latency.

@lastmetroid commented on GitHub (Jan 26, 2020): Why cant there be a simple switch be implemented, to deactivate every audio processing, or while no one is speaking? I dont mind a bit higher latency.
Author
Owner

@Krzmbrzl commented on GitHub (Jan 26, 2020):

I'm far from being familiar with the audio system but from what I think to know, noise canceling depends on a continuous input to get some sort of background spectrum. I don't know though how this will interfere with your suggestion.

The only thing that I can say to this is that you are very welcome to try it out, open a PR and share your findings. If this does indeed not affect other parts of Mumble in a negative way, then I'm pretty sure we'll merge that PR :)

@Krzmbrzl commented on GitHub (Jan 26, 2020): I'm far from being familiar with the audio system but from what I think to know, noise canceling depends on a continuous input to get some sort of background spectrum. I don't know though how this will interfere with your suggestion. The only thing that I can say to this is that you are very welcome to try it out, open a PR and share your findings. If this does indeed not affect other parts of Mumble in a negative way, then I'm pretty sure we'll merge that PR :)
Author
Owner

@lastmetroid commented on GitHub (Jan 26, 2020):

Open a PR? What do you mean? Try out what?

@lastmetroid commented on GitHub (Jan 26, 2020): Open a PR? What do you mean? Try out what?
Author
Owner

@Krzmbrzl commented on GitHub (Jan 26, 2020):

PR = Pull request
See https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests

It basically. Means that you'd fork this repository, implement the respective functionality and then submit that PR which can be viewed as a proposal to include your implementation into Mumble's source code.

@Krzmbrzl commented on GitHub (Jan 26, 2020): PR = Pull request See https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests It basically. Means that you'd [fork](https://guides.github.com/activities/forking/) this repository, implement the respective functionality and then submit that PR which can be viewed as a proposal to include your implementation into Mumble's source code.
Author
Owner

@lastmetroid commented on GitHub (Jan 26, 2020):

This looks too complicated, I am not a c programmer, I am just into Java. If you implement a cheap toggle off switch and link me a test build, I am happy to test it for you.

@lastmetroid commented on GitHub (Jan 26, 2020): This looks too complicated, I am not a c programmer, I am just into Java. If you implement a cheap toggle off switch and link me a test build, I am happy to test it for you.
Author
Owner

@Krzmbrzl commented on GitHub (Jan 26, 2020):

I'm not a fan of dirty solutions. These typically involve a lot of trial and error. And before touching the whole audio stuff, I'd have to look into the audio processing as a whole, because currently I don't really have a clue about it xD
I might come back to your offer of being a potential test dummy :)

@Krzmbrzl commented on GitHub (Jan 26, 2020): I'm not a fan of dirty solutions. These typically involve a lot of trial and error. And before touching the whole audio stuff, I'd have to look into the audio processing as a whole, because currently I don't really have a clue about it xD I might come back to your offer of being a potential test dummy :)
Author
Owner

@lastmetroid commented on GitHub (Jan 26, 2020):

I dont want any difficult changes to the audio processing, I just want a dirty quick switch to literally deactivate all audio processing. The irony is, there is a checkbox in Mumble for echo cancelation, but it seems to be ignored. Same goes if my mic is muted, it doesnt make sense for Mumble still process the muted mic.

@lastmetroid commented on GitHub (Jan 26, 2020): I dont want any difficult changes to the audio processing, I just want a dirty quick switch to literally deactivate all audio processing. The irony is, there is a checkbox in Mumble for echo cancelation, but it seems to be ignored. Same goes if my mic is muted, it doesnt make sense for Mumble still process the muted mic.
Author
Owner

@Krzmbrzl commented on GitHub (Jan 26, 2020):

I dont want any difficult changes to the audio processing, I just want a dirty quick switch to literally deactivate all audio processing

Then go ahead. The processing happens here: https://github.com/mumble-voip/mumble/blob/master/src/mumble/AudioInput.cpp

The irony is, there is a checkbox in Mumble for echo cancelation, but it seems to be ignored

What makes you think that?

Same goes if my mic is muted, it doesnt make sense for Mumble still process the muted mic.

See #171 - it's only for PulseAudio for now, but I assume other backends will follow

@Krzmbrzl commented on GitHub (Jan 26, 2020): > I dont want any difficult changes to the audio processing, I just want a dirty quick switch to literally deactivate all audio processing Then go ahead. The processing happens here: https://github.com/mumble-voip/mumble/blob/master/src/mumble/AudioInput.cpp > The irony is, there is a checkbox in Mumble for echo cancelation, but it seems to be ignored What makes you think that? > Same goes if my mic is muted, it doesnt make sense for Mumble still process the muted mic. See #171 - it's only for PulseAudio for now, but I assume other backends will follow
Author
Owner

@lastmetroid commented on GitHub (Jan 26, 2020):

So it is even worse, the issue is 7 years old, and no one cared so far just to implement a simple off switch and put it into a checkbox on the GUI settings.

@lastmetroid commented on GitHub (Jan 26, 2020): So it is even worse, the issue is 7 years old, and no one cared so far just to implement a simple off switch and put it into a checkbox on the GUI settings.
Author
Owner

@DavidOliver commented on GitHub (Jan 26, 2020):

@makedir, are you perhaps having a bad day? Can I suggest you keep any future responses respectful of developers and constructive please?

You've shared your point of view and have declined to take on the work, so perhaps there's no need for more noise on this issue.

@DavidOliver commented on GitHub (Jan 26, 2020): @makedir, are you perhaps having a bad day? Can I suggest you keep any future responses respectful of developers and constructive please? You've shared your point of view and have declined to take on the work, so perhaps there's no need for more noise on this issue.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/mumble-mumble-voip#1329
No description provided.