Opus amplification of background tone/noise.
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 3.3k
- Forks
- 808
- PR merge metrics
- No merged PRs in 30d
Description
I'm running into an issue where a very low volume (pretty much inaudible) tone present in the background is being amplified and distorted into a loud screech. The tone in the 8kHz input signal is composed of a repeating pattern of five zero samples followed by a single sample at positive 8 on the linear-16 scale. So essentially a 1333Hz very low hum. It just seems to always be there in audio received from a specific VOIP carrier.
In the following screen cap, the top waveform is the input signal (mostly silence with a few background noises) and the bottom waveform is the output after compressing to Opus and decompressing to 48kHz linear-16.
I was able to reproduce this with the Opus 1.5.2 distribution compiled under/for Windows using cmake with the following configuration:
cmake .. -DOPUS_DRED=OFF -DOPUS_PLC=ON -DOPUS_OSCE=ON
In the attached zip I've included a source file of a simple app that reads raw u-law/8kHz from a file, compresses to opus, decompresses to linear-16 at 48kHz. I've also included an example file containing the troublesome input signal. This code, and the provided input file are what produced the waveforms above. Consult the source file to see how the encoder and decoder are configured.
The system these were built/run on was Core i9-13900 running Windows 11 (10.0.26100.2314) and both Opus and the executable were built using MSVC 19.40.33812 (Visual Studio 2022).
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the attached source file and example input in opus_gain_bug.zip, then reproduce the result using the stated Opus 1.5.2 CMake configuration on the supplied 8 kHz input. Trace the encoder and decoder settings shown in the source and compare the decompressed 48 kHz output with the input waveform. Done means the low-level repeating tone no longer becomes a loud screech under this reproduction.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c, cmake
- Domain
- audio-video-rtc
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100