WebRTC音频仅在语音上激活

时间:2020-09-09 01:59:07

标签: javascript audio webrtc mediastream

我正在通过WebRTC MediaStream从getUserMedia发送音频。我想发送所有类型的音频数据,而不仅仅是声音。我的问题是,即使麦克风拾取了一些背景噪音,如果没有声音,音频也会中断。我认为问题出在创建商品时与​​voiceActivityDetection参数有关,但是即使禁用它,问题仍然存在。我应该如何在不进行语音处理的情况下通过MediaStream发送本质上原始的音频数据?

1 个答案:

答案 0 :(得分:0)

不幸的是,在设计这些API时,默认情况下它们是在启用了许多处理的情况下构建的。幸运的是,可以根据您的getUserMedia音频限制将其禁用:

autoGainControl: false,
echoCancellation: false,
noiseSuppression: false

这将大大改善您的音频质量。但是请注意,整个WebRTC堆栈仍会影响您的音频。 WebRTC呼叫针对实时语音通信进行了优化。音频的速度会不断调整,以保持尽可能实时。经常会添加舒适噪音(可以通过调整SDP来禁用)。音频比特率通常设置得很低(也可以通过SDP进行调整)。如果音频质量对您来说很重要(例如音乐),则WebRTC可能不是最佳选择。请考虑使用MediaRecorder。