首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Web Audio API -自动增益控制?

Web Audio API -自动增益控制?
EN

Stack Overflow用户
提问于 2021-08-28 00:35:25
回答 1查看 240关注 0票数 1

有没有办法用web-audio api创建自动增益控制?在我的例子中,我正在构建一个基于web的视频聊天应用程序,它可以接收多个音频流(人们交谈)并播放它们。有没有办法调整它们的相对音量水平,使每个人的音量大致相同?我不希望一个人听起来很安静,而另一个人听起来很响亮。

GainNodes似乎是非常手动的;他们希望您弄清楚.gain.value应该是什么。我想我可以通过analyserNode运行每个音轨,计算音量水平,然后基于此手动调整每个人的个人增益节点,但我想知道是否有更简单的方法来进行自动增益控制?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-05 20:22:11

如果你正在制作一个基于网络的聊天应用,当你首先捕获麦克风音频时,自动增益控制实际上是很容易处理的:

代码语言:javascript
运行
复制
const stream = await navigator.mediaDevices.getUserMedia({
  audio: {
    autoGainControl: true
  },
  video: true
});

(请注意,autoGainControl实际上在默认情况下处于启用状态。您无需手动启用它。)

但是,如果你仍然想减少播放时的动态范围,你需要的是一个DynamicsCompressorNode。这将消除嘈杂和安静部分之间的差异。在该节点之后,您可以添加固定的GainNode来弥补压缩器中的损失。

您使用的specific compression settings是一个品味问题,在这一点上有很多争论。你可以从2毫秒的攻击时间,10毫秒的释放时间,3:1的比率,-20 dB阈值,也许6 dB的化妆增益开始,然后调整。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68960508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档