看课程的时候,老师声音太轻,得把音量往上拉;切到下一个视频,开场音乐突然很响,又赶紧调低。听歌、看直播、刷视频,每个网页似乎都有自己的音量标准。
我做了一个 Chrome 插件,叫 Balance Voice · 网页音量均衡,想让这些来回调音量的操作少一点。
它可以让常见网页音视频使用统一音量,自动平衡声音强弱,也能在一个面板里单独调整不同网页。音频在本机处理,无需账号,不录音、不上传音频。
**项目地址:tyrantqiao/balanceVoice**。项目采用 MIT 协议开源,欢迎试用。
为什么想做这个插件
浏览器里能发出声音的东西越来越多,控制入口却很分散:播放器里有一个音量条,系统里还有一个音量条,打开几个标签页之后,还得先找出到底是哪一页在响。
我想要的体验很直接:
- 新打开的普通音视频网页,能自动跟随统一音量。
- 声音忽大忽小时,尽量自动平衡,少一点手动干预。
- 某个网页需要临时调低或静音,直接在插件面板操作。
- 处理声音这件事,在自己的电脑上完成。
Balance Voice 就是围绕这几件小事做的。如果你经常在浏览器里看课、听歌、看直播,应该很容易理解这种需求。
打开一个面板,管理多个网页
插件上方是统一输出音量,可以用滑块在 0–100% 之间调整,也提供轻声、日常、饱满几个快捷档位。默认音量是 70%,可以根据自己的使用习惯再调。
「所有网页默认启用」预设开启。普通 HTTP / HTTPS 网页里的 HTML 音视频播放器会自动使用统一设置,不用每打开一页就再点一次启用;动态出现的播放器和匹配的 iframe 也能纳入管理。
下方的「网页音量动态」会按标签页列出受管理的网页,可以查看输入、输出电平及近期变化曲线,也可以直接操作:
- 静音或取消静音:临时让某个网页安静下来。
- 调低或调高:每次调整 10 个百分点,让这一页保持自己的音量。
- 跟随统一:取消单页音量设定,重新跟随上方的全局设置。
- 停止管理:让这一页恢复由原来的播放器控制。
工具栏图标上的数字会显示正在管理的网页数,同一页即使有多个播放器也只计一次。关闭插件面板后,管理仍会继续。
声音忽大忽小,让插件帮忙平衡
统一音量能减少操作,但相同的百分比,并不意味着每段内容听起来都一样响。录音设备、后期处理、背景音乐都会造成差异。
Balance Voice 的自动响度均衡会根据可读取的音频分析声音强弱,压低较响的部分,适度提升较轻的部分,让变化尽量平稳。
它提供两种管理方式:
| 使用方式 | 适合的情况 | 处理方式 |
|---|---|---|
| 默认自动模式 | 日常网页里的普通音视频播放器 | 自动管理播放器音量,可读取音频时分析并调整 |
| 增强均衡:整页接管 | 需要处理标签页完整音频,包括 Web Audio 的场景 | 手动授权接管,用 AudioWorklet 在音频线程中均衡和限幅 |
日常使用可以先保持默认模式。需要整页接管时,先关闭「所有网页默认启用」,再在目标网页点击「增强均衡:接管当前网页」。接管后可以重新开启默认模式;插件会避免对已经接管的标签页重复调节。
这里也有实际边界:默认模式的播放器音量最高为 100%,特别轻的音源未必能被提升到理想响度;均衡需要短暂时间收敛,也可能把较轻的背景噪声一起带起来。它采用 RMS 均衡,并不保证所有内容的主观听感完全一致。
可以设置数字峰值上限
面板里的「最大输出峰值」可以在 −60~0 dBFS 之间设置,默认值是 −1 dBFS。数值越负,上限越低。
这个设置约束的是数字音频的峰值,与上方的音量百分比是两个概念。单独调整某个网页的音量,只要它仍受管理,也会受到这个上限约束。
两种模式的精度不同:默认模式约每 100 ms 采样调整,突发峰值可能短暂超限;整页接管则在音频线程中限制数字采样峰值。音频无法分析时,默认模式会保守衰减播放器音量,但不能验证实际峰值。
这个上限按受管理音源独立生效,不是多个网页或系统混音后的总上限。dBFS 也不是耳边声压,插件无法测量实际听音音量,不能把它当作听力安全保证。
怎么安装:无需编译,加载源码即可
需要 Chrome 116 或更高版本。目前通过开发者模式安装,尚未提供 Chrome 网上应用店入口。
- 打开 GitHub 项目,通过
Code → Download ZIP下载源码,解压到一个长期保留的目录。 - 在 Chrome 地址栏输入
chrome://extensions/,开启右上角的「开发者模式」。 - 点击「加载已解压的扩展程序」,选择项目内的
extension文件夹,不要选整个仓库目录。 - 在浏览器扩展菜单中固定 Balance Voice,刷新已经打开的网页。
- 保持「所有网页默认启用」开启,播放普通网页音视频,就可以开始调整了。
安装和日常使用不需要 Node.js,也不需要运行构建命令。 如果 Chrome 询问网站访问范围,请允许扩展在需要管理的网站上运行。
安装目录需要保留,Chrome 会直接读取里面的文件。以后更新源码,在扩展管理页点击重新加载,再刷新已经打开的网页即可。
音频留在自己的电脑上
Balance Voice 的音频分析与处理都在本机实时完成,不保存音频文件,不上传音频,没有账号系统,也没有接入分析服务。
统一音量、峰值上限等全局设置保存在本机;单页音量和停止状态保存在当前浏览器会话中。需要整页接管时,插件使用 Chrome 的标签页音频捕获能力;普通网页自动控制则依赖网页访问权限。
有些网页仍会受到浏览器限制:跨域或 DRM 音频可能无法分析,纯 Web Audio、封闭 Shadow DOM 等场景不能靠默认模式覆盖;浏览器内部页面和本地文件也不在当前支持范围内。插件面板会显示相应状态,具体说明可以查看 使用手册。
欢迎试用,也欢迎一起改进
这个项目想解决的是一个很日常的小麻烦:打开浏览器之后,少追着音量条跑几次。
如果你也经常遇到课程太轻、视频突然变响,或者几个网页的音量很难统一,可以装上试试看。遇到兼容性问题,欢迎 提交 Issue,告诉我 Chrome 版本、网页类型、使用模式和复现步骤,方便继续改进。
代码按 MIT 协议开源,也欢迎一起完善播放器兼容性、交互和测试。
觉得有用的话,欢迎在 GitHub 给 Balance Voice 点个 Star,或者分享给经常在浏览器里看课、听歌、看直播的朋友。