Skip to content

Creeeeeeeeeeper/simple_volume_ducking

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Simple Volume Ducking

一个 Windows 平台的Audio Ducking工具,当检测到麦克风输入时自动降低背景音乐音量,停止说话后自动恢复。适用于直播、录制时需要发言并播放背景音乐等场景,避免背景音盖过输入声音。

功能特性

  • 实时监测麦克风输入音量
  • 自动压低系统音量或指定应用音量
  • 可配置触发阈值、压低比例、恢复延迟和恢复时间
  • 终端图形界面,实时显示音量状态
  • 支持选择不同的输入设备和目标应用

注意!

如果使用蓝牙耳机,蓝牙耳机不能同时作为麦克风输入和音频输出设备,否则会切换到通话模式导致背景音乐消失。建议使用有线麦克风或独立的输入设备。

推荐使用:

  • 蓝牙耳机作为输出设备(听到背景音乐),笔记本麦克作为输入设备
  • 使用电脑外放作为输出设备(公共场合就别外放了QVQ),同时可以使用笔记本的麦克作为输入设备

截图

preview

使用方法

# 直接运行
./simple_volume_ducking.exe

# 或从源码构建
go build -o simple_volume_ducking.exe .

参数说明

参数 默认值 说明
触发阈值 0.3 麦克风音量超过此值时触发压低,此默认值可能对机械键盘较为灵敏,可继续提高以自适应
压低比例 0.85 压低到原音量的 (1-比例),0.85 表示压低到 15%
恢复延迟 2500ms 停止说话后等待多久开始恢复
恢复时间 1500ms 音量从压低状态恢复到原始的过渡时间

操作方式

  • Tab / Shift+Tab: 切换焦点
  • Enter: 确认输入 / 点击按钮
    • 输入框内更改参数的话,改完记得按回车,并观察状态栏内是否改变,以判断是否修改成功
  • Q / Ctrl+C: 退出程序

技术栈

  • Go 1.21+
  • tview: 终端 UI 框架
  • go-wca: Windows Core Audio API 封装
  • Windows WASAPI: 音频捕获和音量控制

核心 API

  • IAudioClient / IAudioCaptureClient: 麦克风音频捕获
  • IAudioEndpointVolume: 系统主音量控制
  • ISimpleAudioVolume: 应用独立音量控制
  • IAudioMeterInformation: 实时音频峰值获取

系统要求

  • Windows 10 / 11
  • Go 1.21 或更高版本(编译时需要)

构建

go mod tidy
go build -o simple_volume_ducking.exe .

License

MIT

About

A Windows platform audio ducking tool.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages