将音频实时转换为手柄震动反馈的高性能Python应用程序 Real-time audio to controller vibration feedback with advanced sound processing
- ⚡ 低延迟处理 - 最低16ms的音频缓冲,超快响应
- 🎵 智能频率分离 - 自动分离低频和高频信号
- 🌈 6频段分析 - 从超低音到高音的全频段解析
- 🎯 声音识别 - 自动识别爆炸、金属撞击等特殊音效
- 💥 冲击增强 - 检测音频突变并增强震动反馈
- 🕹️ XInput兼容 - 支持Xbox手柄和兼容设备
- 🎛️ 精细调节 - 独立控制左右马达强度和频率
- ⚙️ 差异化震动 - 根据声音类型提供不同震动模式
- 🔄 热插拔支持 - 运行时动态连接和断开手柄
- 🧪 强制震动测试 - 即使未检测到手柄也可测试
- 📊 实时监控 - 可视化音频频谱和震动强度
- 📁 配置管理 - 保存和加载个性化设置方案
- 🎨 中文界面 - 完整本地化支持
- 📈 实时图表 - matplotlib集成的专业级数据可视化
- 🎚️ 标签式布局 - 清晰分类的功能面板
- 🎤 麦克风输入 - 支持所有音频输入设备
- 🔊 系统音频 - 通过立体声混音捕获播放中的音乐/游戏
- 🎮 游戏音效 - 实时处理游戏音频转换为触觉反馈
- 🎬 影音娱乐 - 增强电影和音乐的沉浸体验
- Windows 10/11 (推荐 | Recommended)
- Windows 7/8.1 (基本支持 | Basic Support)
- XInput兼容手柄 (Xbox 360/One/Series 控制器)
- 音频输入设备 (麦克风或立体声混音)
- 支持音频输出的设备
- Python 3.7 或更高版本
- pip 包管理器
git clone https://github.com/Kirin-0321/audio-to-controller-vibration.git
cd audio-to-controller-vibrationpip install -r requirements.txt方法一:直接启动 | Direct Launch
python main.py方法二:管理员启动 (推荐) | Admin Launch (Recommended)
- 双击
启动程序.bat文件 - 或运行:
python main.py --chunk-size 16
-
连接XInput兼容手柄
- 有线连接或蓝牙配对
- 确保Windows识别为XInput设备
-
手柄检测与测试
# 测试手柄连接 python test/xinput_controller_test.py
-
GUI中的手柄控制
- 🔄 刷新手柄 - 重新扫描连接的设备
- 💪 强制震动测试 - 测试震动功能
- ⏹️ 强制停止 - 立即停止所有震动
- 右键系统托盘音量图标
- 选择 "录制设备" 或 "声音设置"
- 启用 "立体声混音" 设备
- 设为默认录制设备
主输出设备 → 扬声器/耳机
同时输出 → 立体声混音 → 程序捕获
- 低频敏感度 (Low Freq Sensitivity):
0.5-3.0- 控制低音震动强度 - 高频敏感度 (High Freq Sensitivity):
0.5-3.0- 控制高音震动强度 - 总体强度 (Overall Intensity):
0.1-2.0- 全局震动倍数 - 频率分离点 (Frequency Cutoff):
200-800Hz- 低/高频分界点
- 平滑因子 (Smoothing Factor):
0.0-0.9- 震动变化的平滑程度 - 攻击时间 (Attack Time):
0.01-1.0s- 震动启动速度 - 衰减时间 (Decay Time):
0.1-2.0s- 震动衰减速度 - 频率差增强 (Frequency Difference):
0.0-1.0- 增强频率间的差异
- 最小音量阈值:
0.001-0.1- 触发震动的最小音量 - 最大音量阈值:
0.5-1.0- 震动饱和点 - 低频最小阈值:
0.001-0.3- 低频马达触发阈值 - 高频最小阈值:
0.001-0.3- 高频马达触发阈值
{
"low_freq_sensitivity": 1.5,
"high_freq_sensitivity": 2.0,
"sound_classification": true,
"impact_enhancement": true,
"explosion_boost": 3.0
}{
"low_freq_sensitivity": 2.0,
"high_freq_sensitivity": 1.2,
"smoothing_factor": 0.3,
"attack_time": 0.2,
"decay_time": 0.8
}{
"low_freq_sensitivity": 1.8,
"high_freq_sensitivity": 1.5,
"frequency_cutoff": 300,
"smoothing_factor": 0.2
}- 在GUI中调节参数到满意状态
- 点击 "💾 保存配置"
- 输入配置名称 (如 "我的游戏设置")
- 配置保存至
config/文件夹
- 从下拉菜单选择已保存的配置
- 点击 "📂 加载配置" 应用设置
- 或双击配置名称快速加载
- 点击 "🔄 重置默认" 恢复到
default_config.json设置
# 1. 检查手柄连接
python test/xinput_controller_test.py
# 2. 更新手柄驱动
# 3. 使用"刷新手柄"功能
# 4. 尝试"强制震动测试"# 1. 检查音频设备
python main.py --list-devices
# 2. 启用立体声混音
python test/system_audio_setup.py
# 3. 检查设备权限# 1. 降低缓冲区大小
python main.py --chunk-size 16
# 2. 启用高优先级 (默认启用)
python main.py --no-high-priority # 禁用对比
# 3. 关闭不必要的后台程序- GUI会自动检测中文字体 (Microsoft YaHei)
- 如仍显示异常,请安装中文字体包
# 手柄连接测试
python test/xinput_controller_test.py
# 系统音频设置
python test/system_audio_setup.py
# 延迟测试配置
python test/test_latency_configs.py详细文档位于 md/ 文件夹:
- 🌐 多语言支持 - 英语和其他语言界面
- 🎵 音频文件播放 - 直接播放音频文件进行测试
- 🤖 AI智能预设 - 基于音频内容的智能参数调节
- 📱 移动端遥控 - 手机app远程控制
- 🎛️ MIDI控制器 - 支持MIDI设备输入控制
- 🔌 插件系统 - 支持第三方功能扩展
欢迎为项目做出贡献!请遵循以下步骤:
- Fork 仓库
- 创建功能分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送分支 (
git push origin feature/AmazingFeature) - 创建 Pull Request
# 克隆开发版本
git clone https://github.com/Kirin-0321/audio-to-controller-vibration.git
cd audio-to-controller-vibration
# 安装开发依赖
pip install -r requirements.txt
# 运行测试
python test/xinput_controller_test.py本项目采用 MIT 许可证 - 详情请参阅 LICENSE 文件
- XInput-Python - XInput手柄控制库
- PyAudio - Python音频处理库
- NumPy & SciPy - 科学计算和信号处理
- Matplotlib - 数据可视化
- 所有为这个项目贡献想法和反馈的用户
- Issues: GitHub Issues
- Discussions: GitHub Discussions
