如何让AutoHotkey将音频输出至麦克风?旧键盘改音效板需求
解决方案:用AutoHotkey将音频播放到麦克风输入
刚好折腾过类似的旧键盘改音效板方案,你的需求核心是把音频输出路由到系统的麦克风输入通道,而不是默认扬声器。下面分步骤给你落地实操方案:
1. 先搭建虚拟音频路由
Windows原生没有音频输出转输入的功能,所以需要先装一个免费的虚拟音频线缆工具(比如VB-Cable)。安装完成后,系统会生成两个新设备:
CABLE Output:作为音频的“输出目标”CABLE Input:作为对应的“输入源”(会被系统识别成麦克风)
接下来在系统声音设置里做两步关键配置:
- 把
CABLE Input设为默认麦克风设备,这样微信、Zoom这类应用会自动读取这个虚拟输入的声音 - 如果需要自己也能听到音效,可以在音频管理器里设置“多设备回放”,把声音同时输出到扬声器和
CABLE Output
2. AutoHotkey实现音频播放到虚拟设备
下面给你两种常用的实现方式,按需选择:
方式一:用AHK自带的SoundPlay(仅支持WAV格式)
首先需要获取CABLE Output的设备ID,运行这段小脚本就能查到:
SoundGet, deviceList, , Devices MsgBox, 所有音频输出设备ID:`n%deviceList%
找到对应CABLE Output的ID(比如数字2),然后用下面的脚本绑定键盘按键播放:
; 绑定F1键播放指定WAV到虚拟设备 F1:: SoundPlay, C:\your-sound-folder\sound1.wav, , 2 ; 最后一个参数是设备ID return ; 绑定F2键播放另一个音效 F2:: SoundPlay, C:\your-sound-folder\sound2.wav, , 2 return
方式二:调用FFmpeg(支持所有主流音频格式)
如果你的音效是MP3、FLAC这类非WAV格式,用FFmpeg更灵活。先确保FFmpeg已经加到系统PATH里,然后用AHK的RunWait调用命令行:
; 绑定F3键播放MP3到CABLE Output F3:: RunWait, ffmpeg -i "C:\your-sound-folder\sound3.mp3" -f dshow -audio_device "CABLE Output" -acodec pcm_s16le -ar 44100 -ac 2 -, Hide return
参数说明:-audio_device指定输出到虚拟设备,Hide是让命令行窗口后台运行不弹窗。
3. 额外优化建议
- 如果你的旧键盘是单独的USB键盘,可以用AHK的
#InstallKeybdHook配合GetKeyState来只响应这个键盘的输入,完全不干扰主键盘操作 - 可以把音效文件路径设为变量,方便批量修改:
soundFolder := "C:\your-sound-folder\" F1::SoundPlay, % soundFolder "sound1.wav", , 2
内容的提问来源于stack exchange,提问作者K. Looijmans
相关产品推荐
相关产品推荐

