我正在通过WebRTC MediaStream从getUserMedia发送音频。我想发送所有类型的音频数据,而不仅仅是声音。我的问题是,即使麦克风拾取了一些背景噪音,如果没有声音,音频也会中断。我认为问题出在创建商品时与voiceActivityDetection参数有关,但是即使禁用它,问题仍然存在。我应该如何在不进行语音处理的情况下通过MediaStream发送基本原始的音频数据?
最佳答案
不幸的是,在设计这些API时,它们在默认情况下启用了许多处理功能。幸运的是,可以使用getUserMedia
音频限制将其禁用:
autoGainControl: false,
echoCancellation: false,
noiseSuppression: false
这将大大改善您的音频质量。但是请注意,整个WebRTC堆栈仍会影响您的音频。 WebRTC call 针对实时语音通信进行了优化。音频的速度会不断调整,以保持尽可能实时。经常会添加舒适噪音(可以通过调整SDP来禁用)。音频比特率通常设置得很低(也可以通过SDP进行调整)。如果音频质量对您来说很重要(例如音乐),则WebRTC可能不是最佳选择。请考虑使用MediaRecorder。
关于javascript - WebRTC音频仅在语音上激活,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63803736/