I'm currently trying to get a clean as possible audio channel via webrtc. Via the getUserMedia mediaconstraints object, I've set the following options:
constraints: {
audio: {
mandatory: {
echoCancellation: false,
googEchoCancellation: false,
googAutoGainControl: false,
googAutoGainControl2: false,
googNoiseSuppression: false,
googHighpassFilter: false,
googTypingNoiseDetection: false,
//googAudioMirroring: false // For some reason setting googAudioMirroring causes a navigator.getUserMedia error: NavigatorUserMediaError
}
},
video: false
},
This greatly improves the audio quality, but there still seems to be audio processing present which causes the mutilation of the audio in the form of high frequency noise with some of the test samples.
There is a Chrome flag --use-file-for-fake-audio-capture
as described at http://peter.sh/experiments/chromium-command-line-switches/#use-file-for-fake-audio-capture which allows input via file for testing. As mentioned in the description of the flag, all audio processing has to be disabled or the audio will be distorted - so there seems to be additional options for this purpose.
I also tried the --disable-audio-track-processing --audio-buffer-size=16 --enable-exclusive-audio
Chrome flags, but still there seems to be some audio processing.
Is there any way to disable the still present audio processing (preferably via JS API)?
Audio_Processing
whether it is Pre-Processing or Post-Processing: Android_Audio_Processing_Using_WebRTC, You can also visit this reference: https://mcmap.net/q/245096/-how-to-record-microphone-to-more-compressed-format-during-webrtc-call-on-android – Viridity