Skip to content

About

Windows 全局后台调用豆包输入法语音识别桥接工具。无需切换当前输入法,在任意程序中一键长按说话并直接写回光标,支持微信输入法、微软拼音等。

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VoiceWinBridge

Windows 全局后台语音输入桥接工具。

项目背景

豆包输入法的语音识别体验很不错,但 Windows 端的日常打字输入与界面体验相比 macOS 版本或微信输入法等还不够顺手。

平时打字更习惯使用微信输入法等工具,但又想方便地用到豆包的语音识别功能。本项目可以在不切换系统当前输入法的前提下,通过后台静默调用豆包语音识别,并将结果直接写回原光标处。


主要功能

  • 不切换输入法:日常打字继续使用当前输入法,按下快捷键即可调用豆包语音并直接上屏。
  • 双模式快捷键:支持“按住说话”(松开上屏)与“持续语音”(单击开/关),可在设置中录制单键,底层过滤避免 Alt/Ctrl 粘连或误触系统菜单。
  • 光标跟随预览浮窗:在输入光标附近悬浮展示识别中的文字,支持动态宽度,不抢占输入焦点。
  • 深浅色主题:设置窗口、预览浮窗与右键托盘菜单支持跟随系统、浅色或深色显示,支持系统标题栏深色效果。
  • 无额外依赖:基于系统自带的 .NET Framework 4.x 编译运行,无第三方类库依赖。

环境要求

  • 操作系统:Windows 10 / Windows 11
  • 运行环境:.NET Framework 4.x(系统自带)
  • 依赖软件:本机已安装豆包输入法(仅调用其本地后台服务,无需设为默认输入法)

快速开始

# 1. 编译构建(在仓库根目录下执行,输出到 artifacts\VoiceWinBridge.exe)
powershell -ExecutionPolicy Bypass -File .\build.ps1
# 或执行 scripts 目录中的脚本:
powershell -ExecutionPolicy Bypass -File .\scripts\build.ps1

# 2. 注册开机自启并启动
powershell -ExecutionPolicy Bypass -File .\scripts\install.ps1

# 3. 停止运行并取消开机自启
powershell -ExecutionPolicy Bypass -File .\scripts\uninstall.ps1

# 4. 生成独立分享包(输出到 artifacts\share\)
powershell -ExecutionPolicy Bypass -File .\scripts\package-share.ps1

提示:构建时若检测到正在运行的进程会自动重启更新;日志(debug.log)与配置文件(settings.json)保存在 artifacts\ 目录中。


界面与设置

右键托盘图标可打开菜单:设置 / 暂停(启用) / 退出。

设置项 说明
快捷键配置 分别设置“按住说话”与“持续语音”按键;支持单键录制与互斥校验
开机自动启动 写入当前用户注册表启动项,指向当前 exe 路径
显示实时预览浮窗 开启或关闭跟随光标的语音预览浮窗(默认关闭)
主题 支持跟随系统(默认推荐)、浅色、深色,设置界面可即时预览切换
豆包输入法安装目录 默认自动探测;也可手动选择包含 rpc.dll 与 ImeService.exe 的安装目录

工作原理

KeyboardHook (低级键盘钩子)
    │  按住 / 单击判定、按键消费与组合键透传
    ▼
VoiceController (状态机)
    │  互斥、异常复位、预览文本传递
    ▼
DoubaoVoiceClient ── rpc.dll ──► \\.\pipe\ObricIme\oime-server(豆包本地 RPC 服务)
    │  流式实时预览 / 最终识别文本
    ▼
TextInjector (SendInput Unicode 注入,WM_CHAR 保底) ──► 目标程序光标位置

目录结构

VoiceWinBridge/
├── src/                            # C# 源码与图标资源
│   ├── VoiceWinBridge.cs           # 程序入口与托盘逻辑
│   ├── KeyboardHook.cs             # 键盘钩子与按键过滤
│   ├── VoiceController.cs          # 语音状态机
│   ├── DoubaoVoiceClient.cs        # 豆包本地 RPC 客户端
│   ├── TextInjector.cs             # 文本注入写回
│   ├── Logger.cs                   # 本地日志
│   ├── NativeMethods.cs            # Win32 API 与 DWM 声明
│   ├── SinkWindow.cs               # 消息接收窗
│   ├── SettingsForm.cs             # 设置窗口
│   ├── HotkeyBox.cs                # 快捷键录入控件
│   ├── KeyName.cs                  # 按键显示名转换
│   ├── VoicePreviewOverlay.cs      # 光标跟随预览浮窗
│   ├── PreviewLabel.cs             # 浮窗文本标签
│   ├── ModernMenuRenderer.cs       # 托盘右键菜单渲染
│   └── VoiceWinBridge.ico          # 应用图标
├── scripts/                        # 构建与管理脚本
│   ├── build.ps1                   # 编译脚本
│   ├── package-share.ps1           # 打包脚本
│   ├── install.ps1                 # 安装自启脚本
│   └── uninstall.ps1               # 卸载脚本
├── build.ps1                       # 根目录一键编译入口
├── artifacts/                      # 编译产物与运行日志(已 gitignore)
│   ├── VoiceWinBridge.exe          # 主程序
│   ├── settings.json               # 配置文件
│   └── debug.log                   # 运行日志
└── README.md                       # 项目说明

注意事项

  • 本工具仅调用本机已安装豆包输入法的本地服务,不收集任何用户隐私数据。
  • 设置的快捷键会被本程序拦截消费;若同时使用了其他全局快捷键或按键重映射工具,请避免冲突。
  • 首次运行时若遇到 Windows SmartScreen 提示,选择“仍要运行”即可。

致谢与声明

  • 本项目源代码来自: LINUX DO (L站) 社区用户 ChiyoSekai 与 Sunflower2050 的开源分享,原帖链接:《不切换系统输入法,全局后台调用豆包语音识别并写回原光标位置》。
  • 个人修改: 本项目仅是在原帖代码的基础上,根据个人的日常使用习惯进行了少许修改与界面补充。
  • AI 辅助编程: 代码修改过程中使用了 ZCode Weekend Build 限时周末编程活动提供的 glm-5.3-flash 以及 Google Antigravity 平台上的 gemini-3.8-flash 模型进行辅助编写和图标设计。
  • 软件声明: 本工具仅作为个人自用与学习交流分享,相关输入法商标与服务版权归其各自所有者所有。

About

Windows 全局后台调用豆包输入法语音识别桥接工具。无需切换当前输入法,在任意程序中一键长按说话并直接写回光标,支持微信输入法、微软拼音等。

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages