Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

VoiceInput · Windows 语音输入法

按住快捷键说话,松开后将整理好的文字输入当前文本框。

使用范围:仅限个人非商业使用;禁止未经授权的商用和二次开发。详见 许可协议 和 2.7.0 版本说明。

软件自动从 GitHub Releases 检查并下载新版,安装版在后台静默安装、便携版原地替换,完成后自动重新打开,见 2.6.0 版本说明。检查与下载机制见 2.2.0 版本说明。

VoiceInput 是一款 Windows 托盘语音输入工具,使用阿里云百炼进行语音识别,使用 DeepSeek 对整轮文字进行轻量润色,支持专业词库、本地历史记录和纠错学习。程序使用原生 WinUI 3 界面,提供自包含安装版和便携版,与现有拼音输入法配合使用,不注册到 Windows 的语言切换列表。

普通操作保留复制、快速润色及采集诊断优化见 2.1.12 版本说明。Win10 麦克风包兼容修复见 2.1.11 版本说明。运行日志与故障导出见 2.1.10 版本说明及日志使用说明;录音排障见 Win10 录音启动与浮窗验证,输入接口研究见 Win10 输入与剪贴板策略。

下载与版本说明 · 构建状态 · 问题反馈

功能

  • 按住说话:默认使用右侧 Ctrl,也可选择 F8 或 F9。松开后收齐尾句,把完整结果直接输入到原窗口当前光标处,不占用剪贴板,不自动按回车发送。标准文本框一次替换选区;其他软件按字符输入,期间临时关闭目标输入法,避免候选词或标点转换干扰。多行正文、特殊控件或直接输入不可用时,改用整段复制和一次 Ctrl+V。没有输入焦点时仍完成识别、文字处理和自动复制;可到目标输入框手动 Ctrl+V。
  • 仅听写:可在主窗口或托盘开启,完成后自动复制正文,适用于无焦点或无法自动输入的编辑器。
  • 原生 WinUI 3 界面:侧边导航组织听写、历史、词库、设置与帮助;原生对话框和文件选择器。识别浮窗采用约 360 × 56 DIP 的单行磨砂胶囊,在目标屏幕底部居中,左侧音量、中间最新文字、右侧计时或投递结果;不抢焦点,鼠标穿透。胶囊采用桌面 Acrylic、半圆端部、细描边与柔和阴影,透明外沿不遮挡桌面。开启 Windows 大字体时适当调整尺寸;结束后停留 3 秒再淡出,保存失败持续提醒。系统关闭透明效果、高对比度或不支持材质时使用平滑实色胶囊;托盘菜单继续沿用 Windows 原生窗口外框。
  • 开机自启动:在设置中开启后,Windows 登录时静默驻留托盘,按快捷键才开始录音;可随时关闭。
  • 整轮润色:一次长按对应一次全文润色,保留数值、单位、否定关系和专业术语。提示词可编辑、试用及恢复默认;处理失败或校验未通过时保留整理前文字,已确认的本地纠错仍保留。
  • 长语音输入:默认录音时限为 10 分钟,最多可设为 30 分钟。服务端识别片段在客户端合并,期间不分片润色。
  • 专业词库:支持项目和全局词库、手动权重、动态词频、标准写法保护,以及 TXT、CSV、JSON 导入导出;可查看本轮实际提交的热词。
  • AI 词库生成:按领域和数量要求生成词条,可选 Max 思考深度,预览、编辑后导入。
  • 纠错学习:从本程序内保存的手动修订中发现候选,在本地统计重复纠错次数,确认后可将旧写法自动纠正为标准写法,并参与后续热词排序;支持关闭自动纠正、忽略和撤销学习。
  • 历史与提词:按项目、时间或关键词查找本地记录,也可从允许整理的全部历史中提取词条,支持取消、续跑和来源追溯。
  • 输入兼容性:按下/松开事件决定录音时长;不再因系统查询不到 Ctrl 按下状态而误取消。文字跟随原窗口内的当前焦点:编辑器重建或切换内部控件、点击调整光标、滚动页面都不会停止自动输入。其他窗口短暂弹出(通知、提示)时给予 1.5 秒恢复时间,持续切走后保留听写并自动复制。没有原生输入焦点时自动转为仅听写并复制。密码框和普通文本框一样直接输入,投递前再次检查当前控件。
  • 输入保护与诊断:检测输入目标变化,区分焦点变化和辅助功能查询异常;提供本地麦克风测试及录音诊断。
  • 运行日志与导出:自动记录启动、麦克风、识别、文字处理、复制粘贴及异常阶段。在“设置 → 更新与维护 → 导出运行日志”保存一个 .log 文件,包含近期运行记录;准备麦克风卡住时也可导出。日志自动滚动,不记录 Key、录音、识别正文或设备原始名称。

快速开始

运行要求

项目 要求
系统 Windows 10 1809(17763)及以上 / Windows 11 x64
音频 可用的麦克风,并允许桌面应用访问麦克风
网络 能够访问阿里云百炼和 DeepSeek 官方服务
凭据 自行配置百炼和 DeepSeek API Key,账户需有相应服务权限和可用额度
运行时 安装版与便携版均包含 .NET 和 Windows App SDK,无需另装运行时

下载与配置

  1. 打开 Releases,选择 VoiceInput-Setup-<版本号>.exe 安装版,或 VoiceInput-Portable-x64-<版本号>.zip 便携版。安装版按向导安装;便携版须完整解压,运行顶层的 VoiceInput.exe。
  2. 打开“设置”,填写百炼 API Key、地域、业务空间 ID 和 DeepSeek API Key。地域、业务空间与 Key 应对应;使用官方兼容地址时,勾选对应选项。
  3. 选择麦克风并保存设置。可先运行“本地麦克风测试(3 秒)”,再分别测试云端连接。云端测试会实际调用 API,可能计费。
  4. 在目标应用的可编辑文本框内放好光标,按住所选说话键(默认右侧 Ctrl);浮窗会显示收音和识别状态。
  5. 松开快捷键,等待识别收尾。默认最多等润色 0.8 秒,之后使用完整识别正文及已确认纠错;可在设置中关闭“优先快速上屏”。等待时普通回车跳过剩余润色,Esc 取消。其他按键会停止本轮自动输入,继续识别并自动复制;鼠标点击和滚轮不影响。程序把结果输入到原窗口的当前光标处,剪贴板保持不变;改用粘贴时正文留在剪贴板。没有可靠输入位置时完成听写并自动复制,可到目标输入框手动 Ctrl+V。

首次启动会打开管理窗口,关闭窗口后程序留在托盘。双击托盘图标可重新打开;彻底关闭程序请使用托盘菜单中的“退出”。当前程序与安装包未签名;更新包通过 GitHub 发布清单的 SHA-256 校验。

安装版与便携版

安装版默认安装到当前用户的 %LOCALAPPDATA%\Programs\VoiceInput,无需管理员权限,支持从 Windows 的“已安装的应用”卸载。升级和卸载前请从托盘退出程序;卸载保留配置、词库和历史数据。

便携版无需安装,解压目录按下表组织。请保留整个目录,只启动顶层 VoiceInput.exe。

文件或目录 用途
VoiceInput.exe 启动入口
app/ 主程序、运行时、DLL 和界面资源
licenses/ 第三方许可证
README.txt 运行与升级说明
LICENSE.txt 个人非商业使用许可协议

两种版本继续使用同一 Windows 用户的原有数据目录,便携版的配置与历史也保存在 %LOCALAPPDATA%\RealtimeTranscription。移动程序目录不会迁移或清空数据。API Key 和敏感内容使用当前用户的 DPAPI 加密,便携包不含个人数据。

开机自启动

在“设置”中开启“开机自启动”后,程序于当前用户登录 Windows 时驻留托盘,不展开主窗口,也不开始录音。开关直接读取 Windows 的启动注册状态。若在 Windows 的“启动应用”中禁用,请按界面提示到系统设置恢复;程序不会覆盖系统禁用决定。

便携目录移动后,手动启动新位置的 VoiceInput.exe 并检查自启动状态。卸载安装版会移除指向该安装位置的自启动项,保留其他便携位置的启动设置。

常用操作

操作 入口与说明
修改润色提示词 “设置 → 识别与润色 → 编辑与试用润色提示词”,编辑后点击“保存提示词”;恢复默认后也需保存
生成领域词库 “词库 → AI 生成”,例如填写“HR 领域专业术语”、目标 100 个,检查结果后导入
学习纠错 “对照与编辑 → 原始片段修订”保存改字,再到“词库 → 纠错学习”确认候选
提取历史词条 在“历史记录”或“设置”点击“提取全部历史词条”,候选确认后启用
查看词库作用 “词库 → 查看下轮热词”查看排名和实际权重;“听写 → 查看本轮词库”查看提交快照、保护词与纠正次数
找回未自动输入的结果 双击托盘图标,在“听写”复制文字并手动粘贴
开机自启动 在“设置”开启或关闭;开启后登录 Windows 时静默驻留托盘
只听写、不自动输入 在主窗口或托盘开启“仅听写”,按住说话键录音,完成后自动复制正文

纠错学习仅处理本程序内的手动编辑;历史提词仅扫描本程序保存的记录,不读取其他应用或 ChatGPT 的聊天记录。修改历史正文不会改写已经输入到外部文档中的文字。

动态词频与确认纠错

开启“根据使用与人工纠错调整热词优先级”后,程序按当前项目内不同录音会话累计词条使用与人工纠正次数,并结合最近使用时间、手动权重、项目范围和置顶状态选择最多 200 个热词。活跃词条可提高排序和实际识别权重,用户保存的手动权重不变。关闭动态调整后,恢复按手动设置排序。

统计需要同时允许本地保存、学习和该会话的词条整理。重复保存、同轮多次提及不重复计数;自动纠正及 AI 润色不会作为新的人工纠错。修改、撤销或删除来源会更新统计,全局词条也按当前项目分别计数。新增统计从升级后的保存与明确确认学习开始,不会自动扫描全部旧历史。

在纠错候选确认窗口勾选“自动纠正这组已确认写法”,后续录音结束后会先应用这组映射,再进行全文润色;关闭润色仍可自动纠正,原始识别文本保留。旧版已学习记录默认继续仅作为热词,可在“纠错学习 → 已学习”中选择记录并启用自动纠正。手动填写或导入的别名不会自动取得替换权限。

自动纠正采用精确匹配,跳过引文、代码、数字或单位变化、中文正负及指数变化、数量比较变化、否定变化、冲突映射、重叠匹配及不完整的识别轮次;不跨 ASR 片段替换。同一标准词支持多个经确认的旧写法,可逐条关闭或撤回;列表显示映射实际有效状态和失效原因。手动修改词条共享别名不会代替逐条映射授权;应在纠错学习列表管理每条映射。

词库保留大小写区别,mA/MA、Co/CO 可以分别保存、统计和提交。旧版已经合并删除的专业写法需要重新导入。热词“已提交”表示识别任务已接受启动请求,不代表云端一定正确识别了该词;仍需用自己的语音核对实际效果。

输入行为与限制

  • 左侧 Ctrl 不触发录音。右 Ctrl 与其他键组成快捷键时会取消本轮语音;F8、F9 的按键事件仍会传递给目标应用,应避免与常用快捷键冲突。
  • Esc、其他键盘输入、持续切换到其他窗口、设备变化、锁屏和睡眠会取消本轮自动输入。鼠标点击、滚轮和同一窗口内的焦点变化不会取消;文字输入到松手时的光标处。已确认的识别文字仍可查看和复制。
  • 上一轮收尾尚未结束时不能开始下一轮。达到录音时限后停止自动输入,保留已确认文字供复制。
  • 自动输入默认“直接输入到光标处”,不占用剪贴板:标准 Edit/RichEdit 文本框通过 EM_REPLACESEL 一次替换选区,可用目标软件的撤销;其他软件通过一次 SendInput 发送整段 Unicode 字符,系统不会把它与实际键鼠输入交错。中、日、韩输入法处于开启状态时,先临时关闭目标输入法,等目标处理完这批字符后恢复原状态,避免 2.1.4 中出现的个别文字被标点替换。无法确认输入法状态时不冒险键入。
  • 多行正文、超过 4000 字、管理员权限软件拒绝输入或直接输入不可用且未发出任何字符时,改用整段复制和一次 Ctrl+V,正文留在剪贴板。直接输入可能已部分到达目标时,不再粘贴重发,只复制完整正文并提示核对。可在“设置 → 输入与麦克风 → 上屏方式”关闭直接输入,始终使用粘贴。
  • “已输入”“已发起粘贴”表示系统接收了输入,本身不代表已经核实目标应用的正文。剪贴板被占用时短暂等待,仍不可用则保留结果供手动复制;结果不确定时提示核对,不自动重发。无需自动输入时可开启“仅听写”。
  • 自动输入结合 Win32 和 UI Automation。键盘能输入的地方都直接输入,密码框也不例外;投递前再次检查当前控件,原生文本框只读或控件禁用时只复制。UIA 信息未知时按原生焦点输入。程序不强制抢回焦点,不重复输入。辅助功能查询在独立工作进程中运行,超时后终止并在下一轮重新捕获。
  • 起录阶段先采集音频;收到首帧后浮窗立即显示“正在聆听”,无需等待云端就绪。词库准备与允许启动后的网络握手并行,识别任务仍使用本轮刷新的词库。长按门槛和目标检查通过后才建立识别连接,服务确认任务后才按序上传音频。本地启动缓存最多 15 秒,连接后正常上传积压最多 5 秒。发现采样缺口或无法完整收齐尾包时取消自动输入,保留已确认文字。
  • “查看录音诊断”记录失败阶段、异常类型、HRESULT,以及按键至首帧录音、按键至识别就绪的毫秒数,用于区分本地设备启动与网络等待。失败后请先复制诊断,再运行会覆盖诊断的麦克风测试。麦克风尚未产出首帧时显示“准备麦克风”,松键后不会恢复聆听状态。
  • 已选麦克风断开或明确失效时,本轮临时使用 Windows 默认通信麦克风,保留原设备设置以便重连后恢复;设置页明确显示失效状态,本地测试和快捷键录音采用相同选择规则。设备占用、权限不足、音频服务停止或格式不支持时显示相应建议,不自动改用其他麦克风。
  • 全文自动润色最多处理 30,000 个 Unicode 字符,支持确定的填充语、局部口吃删除和有限标点整理。超限、失败或响应不完整时保留完整的整理前文字(含已应用的确认纠错)。编辑提示词不会解除数字、否定、引文和语序保护;超出允许范围的改写会显示回退原因。

具体应用的兼容性、真实麦克风和云端接口仍需实机验证。各版本的自动测试与构建结果请查看对应 Actions 记录;验证记录中的测试数量属于所标注的历史版本。

数据与隐私

云端处理

功能 发送内容与服务
语音识别 录音音频及选中的识别热词发送至百炼
全文润色 本轮确认文字、润色提示词及相关词库上下文发送至 DeepSeek
AI 词库生成 领域要求和生成所需上下文发送至 DeepSeek
当前会话或全部历史提词 符合保存与学习许可条件的来源文字发送至 DeepSeek
纠错候选发现、本地麦克风测试 在本地处理,不额外调用云端 API

服务费用由用户自己的账户承担。程序中的每日词库 AI 预算仅覆盖词库生成和词条整理,不包含语音识别及普通全文润色;预算按 UTC 00:00(中国标准时间 08:00)重置。

本地保存

用户数据位于 %LOCALAPPDATA%\RealtimeTranscription\:

文件 内容
settings.json 非秘密设置
credentials.dat 使用当前 Windows 用户的 DPAPI 加密保存的 API Key
sessions.db 历史、项目、词库及纠错数据;敏感内容使用 DPAPI 加密负载,查询索引并非全部加密
sessions.db-wal、sessions.db-shm SQLite 运行期文件

默认保存本地文本历史,不保存录音文件。可关闭文本保存,或单独撤回某条会话的词条整理许可。导出的 TXT、Markdown 和 JSON 为明文。

保留期限在设置保存后立即执行,驻留期间每分钟维护。数据库无法初始化时自动进入无记忆模式,暂停历史、词库和学习,保留听写与复制;新内容暂不保存。修复数据目录后点击“重试保存”恢复。遇到较新数据库版本时拒绝继续读写,不覆盖原数据。

升级与备份

升级前从托盘退出旧版,备份完整用户数据目录,再运行新版。现有设置、Key、历史和词库继续沿用。

1.4.0 将数据库升级到版本 3,新增可追溯的词频统计。回退至 1.3.x 或更早版本时,需要恢复升级前的备份。DPAPI 绑定 Windows 用户,直接复制加密文件到其他用户或电脑不保证能够解密。详见 1.3.0 升级说明。

1.5.0 沿用数据库版本 3,改进多别名和大小写处理。升级前已开启的明确纠错权限继续沿用;旧版仅追溯、未授权的别名不会自动开启替换。

从源码构建

推荐在 Windows 上使用 PowerShell 构建。安装 global.json 指定的 .NET SDK 10.0.401,安装 Visual Studio 2022 或更新版本的“使用 C++ 的桌面开发”组件,并确保可以还原 NuGet 依赖。打包脚本会下载并校验固定版本的 Inno Setup 6.7.3 编译器。

git clone https://github.com/arcxya09/voiceinput-windows.git
cd voiceinput-windows
.\build.ps1

build.ps1 会按依赖锁文件还原包,编译并运行回归测试,然后发布 Windows x64 自包含程序。输出位置:

  • artifacts/VoiceInput-Setup-<版本号>.exe:当前用户安装包。
  • artifacts/VoiceInput-Portable-x64-<版本号>.zip:整理目录后的便携包,须完整解压。
  • artifacts/publish/win-x64/:WinUI 主程序与运行依赖。

脚本结束时输出发布文件的 SHA-256。仅运行测试可使用:

dotnet restore tests/Tests.csproj --locked-mode -m:1
dotnet build tests/Tests.csproj -c Release --no-restore -m:1
dotnet tests/bin/Release/net10.0/Tests.dll

项目结构

路径 内容
src/Core/ 状态机、润色校验、词库规则、纠错比较和音频重采样
src/Infrastructure/ 云端接口、DPAPI 和 SQLite 存储
src/Desktop/ 原生 WinUI 3 界面、WASAPI 采集、托盘和流程协调
src/Desktop/Input/ 全局快捷键、输入目标验证和文字投递
src/Launcher/ 原生 Windows 启动入口
installer/ 安装、卸载及便携目录打包配置
tests/ 核心、协议、存储和协调器回归测试
docs/ 技术设计、更新说明和验证记录
licenses/ 第三方许可证与运行时声明
LICENSE.txt 项目主许可协议
.github/workflows/ GitHub Actions 构建与发布配置

自动构建与发布

Pull Request 会执行回归测试、Windows 构建、发布脚本离线测试和实际 EXE 的桌面冒烟检查。推送到 main 或在 main 手动运行 发布工作流,同时执行安装、启动和卸载验证,通过后发布安装包、便携 ZIP、源码包、构建日志和 SHA256SUMS.txt。发布步骤核对服务器最终状态、tag 提交和下载附件的哈希。

发布新版本时,更新 Directory.Build.props 中的 Version,并添加 docs/releases/<版本号>.md。工作流成功后创建对应的 v<版本号> Release;已发布版本的附件保持不变。仅修改文档无需提升应用版本。

文档

问题反馈与授权

请通过 Issues 提交问题,附上程序版本、Windows 版本、目标应用、复现步骤、预期与实际结果。出现问题后,在设置中“导出运行日志”,附上 .log 文件并说明出错的大致时间。录音问题也可附“本地麦克风测试”和“查看录音诊断”的结果;输入位置问题请说明是否切换窗口、移动光标或操作输入法候选框。不要提交 API Key、个人录音、私密正文或用户数据库。

本项目不开放未经授权的代码修改和二次开发。欢迎通过 Issues 报告问题或提出建议;如需修改、贡献代码、商用、组织部署或再分发,请先联系维护者并取得有权授权者的明确书面许可。

许可证

本项目采用自定义的 VoiceInput 个人非商业使用许可协议,属于源码可见软件,不是开源软件。

  • 允许自然人为个人非商业目的免费下载、安装、使用未修改的正式版本,并制作必要备份。
  • 允许查看源码;禁止未经书面授权的商业使用、组织部署、代码修改、二次开发、衍生版本和二次分发。
  • 正常修改软件设置、提示词和个人词库不属于二次开发;许可不对用户自己的输入和生成内容追加权利限制。
  • 第三方组件仍按各自许可证使用,见 licenses/。法定权利及托管平台服务条款要求的权限按许可正文处理。

以 LICENSE.txt 完整文本为准。

智能标点默认开启:短词和简短单句省略冗余句末句号,保留问号、感叹号和多句标点;润色未启用或超时也生效,可在语音识别设置关闭。成功发起粘贴后,浮窗约 0.63 秒收起。

音频环境自适应

默认根据当前录音的音量、底噪估计和动态变化,小幅调整百炼 VAD 灵敏度;可在语音识别设置中关闭。轻声环境偏向保留语音,较强底噪且语音可分辨时略提高噪声判定阈值并启用多阈值断句。样本不足、持续噪声、静音和削波时保留服务默认值。分析不会删减、放大或改写音频。参数在每轮任务启动时设置,后续统计供同一麦克风两分钟内的下一轮参考,不额外等待校准。日志记录估计值与选择结果,便于实机验证。

智能领域词库(2.3.0)

在“设置 → 词库与记忆 → AI 词条整理”启用“智能领域词库”并保存,需本地文本记忆、允许学习及 DeepSeek Key。升级后默认关闭,避免自动扩大历史文本的云端使用范围。词库页可点击“更新领域词库”立即分析,或在之后的语音输入结束后自动增量更新。

系统选取当前项目最多 48 条历史中的部分已发布文本,近期最多 3,000 字、较早最多 1,000 字,识别具体话题并预测容易混淆的名称、缩写、音译和专业短语。每次最多生成 20 词,未出现过的扩展词不超过三分之一;必须提供历史关联和具体易错理由。预测结果不代表 ASR 的实测错误率,不读取其他软件的修改记录,不保存录音,不建立自动替换规则。

预测词自动以权重 1 试用,随话题更新替换本轮选择,14 天未更新暂停注入;与个人词合计最多 200 个。原文提取和人工词库继续保留。通过“查看领域分析”“查看词条来源”查看依据;确认或编辑启用词可转为长期个人词条;禁用和删除会阻止自动重新启用。关闭智能领域词库停止分析和预测词注入。删除、修订来源或撤回会话学习许可会使相应分析失效。

后台分析与其他词库 AI 操作共用每日预算,至少间隔 2 分钟;新增 120 字、3 个会话或有新内容且间隔 20 分钟时重新分析。云端请求不阻塞录音启动或粘贴;下一次录音会取消未完成的分析。失败保留上次结果,日志仅记录操作状态和数量。

高精度语音复核(2.4.2 默认关闭)

默认关闭,需要时可在“设置 → 识别与润色 → 识别效果 → 高精度模式”开启。新安装及缺少该字段的旧配置默认关闭;已保存的开关选择保持不变。此前已开启的用户,升级后可取消勾选以减少等待。关闭时使用实时识别结果,保留已有纠错、润色和智能标点。

说话时继续实时预览;松开按键后,将本轮完整音频交给 qwen-audio-3.0-asr-flash 再识别一次,携带本轮已发送的热词;开启 ASR 上下文时,同时附带词表上下文。复核完成后,继续执行已确认纠错、可选润色和智能标点,最后复制并粘贴一次。整段复核与 DeepSeek 文字润色是独立开关。

  • 单次最多复核 3 分钟,PCM 音频仅暂存内存,不写入文件、数据库或日志。超过上限立即释放缓存,整轮使用实时结果,不截取前半段复核。
  • 复核最长等待 12 秒(不包含实时识别收尾与后续润色);回车可跳过复核及润色等待,Esc 取消本轮输入。
  • 接口失败、超时、空结果、格式异常或明显截断时,保留实时识别结果。音频有缺口、实时识别未完整结束时沿用既有安全处理,不通过复核绕过检查。
  • 复核增加一次百炼识别调用及相应费用,独立记录为 asr_review 用量。失败且无法取得用量时记为未知,以服务商账单为准。
  • 迟到结果不能覆盖已输入文字、用户编辑或下一轮会话。历史正文和词库学习使用已采纳的复核原文,流式原文保留为被替代片段,不重复学习,也不计为人工纠错。

官方协议:非实时语音识别 HTTP API。实际准确率和延迟仍需用真实麦克风、口音与专业术语样本评估。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages