尧图精选

把小米蓝牙遥控器 2 Pro 变成 Windows 11 语音编程遥控器:从搜不到设备到控制 Codex

🕒 发布时间:2026/10/2 12:55:45 📁 来源:尧图网络
拿着一个带麦克风的遥控器按住说出需求松开转成文字再按确认键交给 Codex 写代码——这就是我这次想实现的操作方式。设备选的是小米蓝牙遥控器 2 Pro电脑运行 Windows 11。原本以为只要完成蓝牙配对再映射几个快捷键就能使用实际却遇到了几个问题Windows 蓝牙设置搜不到遥控器配对后系统没有把遥控器识别成普通麦克风方向键能用返回键却没有反应Codex 听写正常微信输入法听写时好时坏切换听写方式会反复弹出管理员确认窗口。经过排查最终实现了遥控器语音输入、确认发送、返回删除以及 Codex 和微信输入法两种听写方式的切换。这篇文章重点介绍几个值得展开的技术问题安装和操作过程则尽量简化。一、最终实现了什么目前这套方案的主要操作如下遥控器按键功能麦克风键按住说话松开结束录音中央确认键相当于 Enter在 Codex 输入框中发送返回键退格删除光标前的文字方向键移动光标或进行界面导航TV 键切换 Codex 听写和微信输入法听写电源键打开 Codex主页键显示桌面菜单键相当于 Esc音量键配置为调节系统音量尚未单独实测另外屏幕右下角增加了常驻提示显示当前使用的听写方式以及“录音中”“识别中”“可以按住说话”等状态。这里显示的是遥控器当前调用哪个语音识别工具不是 Windows 当前选中的文字输入法。两者需要区分。二、Windows 搜不到设备不一定是蓝牙驱动坏了最开始Windows 的添加设备界面始终找不到遥控器。检查本机后发现MediaTek 蓝牙适配器状态正常蓝牙服务正在运行Microsoft 蓝牙 LE 枚举器正常系统中已有其他低功耗蓝牙设备记录。这些结果不能证明所有蓝牙功能都正常但足以说明暂时没有必要直接重装驱动或重置整个蓝牙环境。让遥控器靠近电脑长按 TV 键进入指示灯闪烁的配对状态后通过主动 BLE 扫描成功发现了名为“小米蓝牙语音遥控器”的设备信号强度约为 −50 dBm。它还广播了 HID 服务00001812-0000-1000-8000-00805f9b34fb这说明电脑能够接收到遥控器问题需要继续从设备发现和配对流程排查。普通配对失败确认式配对成功直接调用 Windows 的普通配对接口时返回了失败状态。随后改用自定义配对流程处理CONFIRM_ONLY配对请求再接受该设备的确认事件配对成功。关键逻辑可以概括为customdevice_information.pairing.customdefconfirm(sender,args):args.accept()tokencustom.add_pairing_requested(confirm)try:resultawaitcustom.pair_async(DevicePairingKinds.CONFIRM_ONLY)finally:custom.remove_pairing_requested(token)实际脚本在接受请求前已经根据扫描结果限定了唯一的小米遥控器避免对附近其他设备进行不明确的配对。配对后Windows 中出现了正常状态的“小米蓝牙语音遥控器”硬件标识为VID2717 PID32B8 REV00A4需要强调的是这次成功使用了确认式配对接口并不意味着所有“Windows 搜不到遥控器”的情况都由同一个原因造成。如果只是设置界面不显示设备还可以尝试把 Windows 的“蓝牙设备发现”改成“高级”。这是微软排障文档提供的处理方向。三、带麦克风的遥控器为什么没有出现在录音设备里配对成功后方向键可以像键盘一样工作但遥控器麦克风并没有直接出现在 Windows 的声音输入列表中。原因在于这款遥控器的按键和语音走的是不同链路按键 遥控器 → 蓝牙 HID → Windows 键盘输入 语音 遥控器麦克风 → 私有 ATVV 服务 → 软件解码 → 虚拟麦克风它的语音数据通过 ATVV 私有 GATT 服务传输不是 Windows 可以直接使用的普通蓝牙录音设备。本次确认到的 ATVV 服务 UUID 为AB5E0001-5A21-4F05-BC7D-AF01F617B664因此除了蓝牙配对还需要软件完成语音服务连接、协议握手、ADPCM 解码以及向虚拟音频设备输出声音。选择 MiVibe Remote 做基础桥接我最后采用了开源项目 MiVibe Remote它提供 Windows 版本、遥控器按键映射以及面向 Codex 的语音预设。本次使用的 Windows 软件版本为0.1.20来自仓库的v0.1.22 Release。下载安装包后核对了 GitHub 发布信息中的 SHA-256。虚拟音频使用 VB-CABLE。驱动安装包从 VB-Audio 官方来源下载并检查了安装器签名。完整语音链路变成了遥控器麦克风 ↓ BLE ATVV 语音数据 ↓ MiVibe 解码、重采样 ↓ CABLE Input播放端 ↓ CABLE Output录音端 ↓ Codex 或微信输入法日志最终确认了 ATVV 服务发现、音频路由就绪以及16 kHz语音格式协商成功。这些日志证明桥接链路已经建立但“用户说话后能否真正出字”仍然要在目标软件中实测。四、虚拟麦克风与电脑扬声器要分开配置安装虚拟音频设备后我遇到了另一个很容易让人困惑的问题电脑播放视频没有声音了因为 Windows 声音输出指向了虚拟音频设备。实际上遥控器语音输入和电脑正常播放声音可以同时工作用途本次使用的设备Windows 正常声音输出扬声器Realtek AudioCodex 录音输入CABLE Output微信输入法录音输入CABLE OutputMiVibe 语音输出CABLE Input关键是Windows 的默认声音输出不用切到 VB-CABLE。YouTube、音乐和系统声音继续从真实扬声器播放MiVibe 则单独把遥控器音频送进虚拟麦克风。日常需要切换扬声器或耳机时可以通过 Windows 的声音输出选择界面操作不必连带修改 Codex 和微信输入法的麦克风设置。五、Codex 听写最后用了 Ctrl Shift D基础桥接配置推荐使用右 Alt 触发 Codex 的按住听写。但在我的电脑上尝试设置右 Alt 时没有得到预期效果还触发了系统界面。因此我把两端统一改为Codex 听写快捷键Ctrl Shift D 遥控器语音触发Ctrl Shift D 触发方式按住型这只是本次选用的自定义组合键不是所有电脑必须使用的默认快捷键。这里还有一个界面上的易混淆点“语音聊天热键”用于启动语音聊天“听写快捷键”用于把说话内容转成文字。遥控器这次接入的是后者。完成设置后实际操作就是光标放进 Codex 输入框 ↓ 按住遥控器麦克风键说出需求 ↓ 松开等待文字出现 ↓ 检查文字 ↓ 按中央确认键发送中央确认键对应 Enter。它的行为取决于当前焦点在输入框里可以发送在其他界面里则可能是确认选项。六、返回键没有反应是 HID 信号被丢弃了另一个典型问题是方向键和确认键正常返回键却无法删除文字。检查对应模块后发现RC003 返回键使用的 HID usage 为0x00F1Windows 蓝牙 HID 驱动收到这类报告后没有把它转换成普通的退格键事件因此只配置“返回键 → Backspace”还不够。基础软件提供了增强按键模块通过设备对应的 HidOverGatt 驱动宿主读取报告再将返回键转换成退格操作。启用后日志出现了完整的事件链返回键按下 ↓ 读取 HID usage 0x00F1 ↓ 匹配 back 映射 ↓ 发送 Backspace ↓ 返回键松开随后在输入框中实测返回键可以正常删除文字。这个模块需要管理员权限。因此启动或蓝牙重连时可能需要一次管理员确认。七、TV 切换为什么反复弹出管理员提示最初为了切换 Codex 和微信输入法我采用了一个直接的办法修改语音快捷键配置 → 重启桥接进程它确实可以切换模式但也产生了副作用增强按键模块随着桥接重启需要重新连接驱动宿主于是 TV 键每切换一次都可能弹出管理员确认。这个方案在日常使用中明显不方便。后来改成了蓝牙桥接持续运行 ↓ 基础软件只负责音频和按键 ↓ 独立控制器负责听写快捷键 ↓ TV 键只更新当前听写模式这样切换模式不再重启蓝牙桥接也不需要重复初始化增强按键模块。需要说明的是独立控制器、模式提示和后续微信兼容处理是本次在本机增加的辅助功能不是直接安装上游软件后就自带的完整效果。八、微信输入法能弹浮窗不等于整条链路正常本机微信输入法的设置是启动语音输入左 Ctrl F12 按住说话左 Alt S 麦克风CABLE Output但直接把遥控器麦克风键映射为左 Alt S 后微信输入法并不稳定。排查时我把问题拆成了三步用电脑键盘按住左 Alt S检查微信语音浮窗能否启动用遥控器录音检查桥接日志是否收到音频观察微信浮窗的波形是否跳动以及最终是否提交文字。结果是键盘可以启动浮窗遥控器也有音频后续测试中微信波形能够跳动但仍出现过不出字的情况。所以“出现浮窗”“收到音频”“成功上屏”必须分别验证不能把前两项当成最终成功。最后采用松开后回放识别稳定一些的处理方式是将录音和微信快捷键触发分开按住遥控器麦克风 ↓ 在内存中缓冲录音 ↓ 松开遥控器 ↓ 分步模拟按住左 Alt S ↓ 将录音回放到 CABLE Input ↓ 微信从 CABLE Output 接收音频 ↓ 松开快捷键提交识别这个方式避开了遥控器按住期间对模拟快捷键的干扰但有一个明确的取舍微信模式不是边说边出字而是松开遥控器后再进行回放识别。例如说了 5 秒松开后还需要等待这段录音回放以及微信完成识别。音频只在内存中处理没有为这套流程额外保存录音文件。Codex 模式则继续保持原来的按住听写方式。九、最后一个隐蔽问题F5 状态滞留导致识别被误取消微信模式最难定位的一次故障是状态提示会变化、录音有声音但始终不出字。日志给出了关键原因WETYPE buffered samples... WETYPE aborted: F5 still held遥控器麦克风键会产生 F5 信号。为了避免在浏览器或其他程序中误触发刷新桥接软件会拦截这类事件。但辅助控制器当时又使用了GetAsyncKeyState(VK_F5)来判断麦克风键是否已经松开。问题是这个 Windows 按键状态可能与遥控器实际状态不一致。日志已经收到 ATVV 录音结束事件检测却仍然认为 F5 按着于是取消了微信识别。最终修复是使用 ATVV 的录音结束事件作为依据去掉对 F5 全局状态的不可靠判断保留重复开始和回放重叠保护。修改后再次实测确认微信输入法能够正常出字。这次排查也说明私有设备协议已经提供了明确事件时不宜再用被拦截过的系统按键状态作为唯一判断依据。十、实际使用时注意微信模式的操作节奏我曾经这样操作先点一下麦克风 → 等微信浮窗 → 再按住说话在缓冲回放方案中这会产生两次录音。前一段还在识别后一段已经开始容易造成重叠或中断。现在正确的操作是直接按住说话 → 松开 → 等识别结束 → 再开始下一句为减少误操作我增加了右下角状态提示并加入了以下保护重复的录音开始事件不重复开启采集识别回放期间不接受新的录音开始忽略短于 0.65 秒的点按按键注入失败时释放已经按下的修饰键。相关自动检查覆盖了按键释放、模式切换、重复录音和 F5 状态误判等情况。微信识别和文字上屏仍然需要真实设备验证。十一、这套方案适合怎样的使用场景对于 Codex遥控器已经可以完成一个比较自然的语音编程循环说出需求 → 检查转写 → 确认发送 → 查看结果 → 继续补充。微信输入法则提供了另一种文字输入方式可以在普通文本框中使用。不过本次采用的微信兼容方案仍有回放等待时间不能把它当作实时听写方案。目前用户实测确认的功能包括Windows 成功添加遥控器Codex 听写可用返回键退格可用TV 切换不再反复弹管理员提示当前模式和录音状态显示正常修正 F5 误判后微信输入法能够出字。这次验证是在一台 Windows 11 电脑和一只小米遥控器 2 Pro 上完成的还不能代表所有蓝牙适配器、遥控器固件和输入法版本也没有完成长时间稳定性测试。如果准备自己尝试建议先打通 Codex 听写再逐步加入返回键兼容、输入法切换和状态提示。这样每增加一层功能都能明确判断故障来自哪里。参考项目与资料MiVibe Remote 开源项目本次使用的 v0.1.22 ReleaseMiVibe Remote 的 Codex 配置说明MicrosoftWindows 蓝牙问题排查本文记录一次本机实践。上游项目会继续更新安装前请检查当前版本说明本文新增的辅助控制器功能应与上游原生功能区分。
上一篇/下一篇内容由系统自动关联 返回资讯列表 →