Noise reduction for microphone

RVMedia support and discussion (components for displaying and controlling IP cameras, webcams, video conferencing, video chats, recording audio and video files)
Post Reply
thomasvoelker
Posts: 4
Joined: Sat Mar 28, 2020 10:49 am

Noise reduction for microphone

Post by thomasvoelker »

Cheers,

I did a few testing with the brand new licensed RVMedia. I experimented with the settings for noise reduction and SoundMinLevel and SoundIgnoreInterval but was not able to get rid of a humming sound (comming from the mic?) and surrounding sounds (chatting daugthers in the background).

I also experience some sound latency (0.5 to 1 sec) just with RVMicrophone and RVAudioplayer directly connected. Video is shown without latency - so the sound latency is quite annoying.

Computer is a Ryzen 9 3900X with 64GB RAM, WebCam a MS HD 3000.

Any suggestions welcome.

Sergey Tkachenko
Site Admin
Posts: 15166
Joined: Sat Aug 27, 2005 10:28 am
Contact:

Re: Noise reduction for microphone

Post by Sergey Tkachenko »

While a new video frame can be displayed immediately when acquired, some amount of sound samples must be accumulated before playing, it is unavoidable.
Some settings you can try
1) Microphone.BufferDuration (= 1000 = 1 sec by default). This is a size of sound buffer used by the component. If you reduce it, delays may be decreased, but too small buffers may reduce sound quality.
2) Camera.Latency (= 1000 = 1 sec by default). A delay between displaying video frames. You can reduce it to match sound.

As for noise reduction, probably we will improve it in future, but it is not planned for near future, sorry.

jimhawkins2
Posts: 10
Joined: Thu Dec 03, 2009 11:58 am
Location: HUll, UK
Contact:

Re: Noise reduction for microphone

Post by jimhawkins2 »

The sound quality is much more variable than the video. Specifically, it's hard to eliminate pops and crackles and keep the latency down to something acceptable.

One possible reason for excessive latency is that TRVMicrophone uses TMemory streams for buffering. I've got about 30+ years of experience doing audio, and the fact is that a ring buffer is far more efficient, Memory streams have a load of file system overhead which is not needed and is far slower than working with static arrays.

The Server example also uses memory streams in this way, and I would recommend looking closely at this issue.

Speech at 8-bit 8000 s/s is not acceptable for professional applications. The best trade-off in my experience is to use 16-bit 16,000 s/s. The DEVCAPS may not expose this value, but works on a vast variety of computers. With a decent headset the results can be perfect.

Post Reply